Wednesday, November 20, 2019

Looping Rekursif, For, dan While

Halo guys! Kali ini saya akan membagikan tentang teknik perulangan pada JAVA. Ada banyak teknik perulangan pada JAVA, tapi pada blog kali ini saya akan membahas tentang teknik rekursif. Apa itu teknik rekursif? Singkatnya saya simpulkan teknik rekursif adalah teknik yang dapat mengulang method itu sendiri dan akan berhenti sampai memenuhi suatu kondisi. Kalian dapat mencari definisi tentang teknik rekursif di google untuk penjelasan lebih lanjut. Berikut adalah penerapan 3 teknik perulangan yaitu rekursif, for dan while.

1. Rekursif

Dapat dilihat pada gambar, method rekursif kembali mengulang method rekursif itu sendiri. Ketika nilai x kurang dari 200, maka x= nilai x + 2. Kemudian method rekursif kembali menjalankan nilai x dan akan berhenti ketika nilai x<200.

2.  For


3. While

Method Main
Seluruh method perulangan yang telah dibuat dipanggil ke method main dan dijalankan bersama-sama. Mari kita lihat perbedaan kecepatan antara ketiga teknik perulangan diatas.

Satuan waktu yang digunakan adalah nanosecond/1000.

Dapat dilihat pada gambar bahwa teknik perulangan for lebih cepat dibanding rekursif dan while. Namun tidak berarti teknik for merupakan teknik tercepat dan terbaik. Waktu yang ditempuh akan berubah-ubah. Spesifikasi laptop, jenis aplikasi yang digunakan, banyaknya aplikasi background yang sedang berjalan, banyaknya karakter coding dalam setiap method perulangan juga dapat mempengaruhi kecepatan teknik perulangan. Sekian blog hari ini, semoga bermanfaat^^

Thursday, October 24, 2019

Bubble Sort

Algoritma Bubble Sort merupakan proses pengurutan yang secara berangsur-angsur berpindah ke posisi yang tepat karena itulah dinamakan Bubble yang artinya gelembung. Algoritma ini akan mengurutkan data dari yang terbesar ke yang terkecil (ascending) atau sebaliknya (descending). Secara sederhana, bisa didefenisikan algoritma Bubble Sort adalah pengurutan dengan cara pertukaran data dengan data disebelahnya secara terus menerus sampai dalam satu iterasi tertentu tidak ada lagi perubahan. Berikut cara kerja teknik pengurutan bubble sort.

Cara Kerja Bubble Sort
Pada kasus diatas, kita memiliki sejumlah data acak yaitu 6,5,4,3,2,1 (bukan acak lagi malah menurun hehe). Nah kita ingin mengurutkan data acak diatas secara meningkat dari kecil ke besar (ascending). Bisa dilihat pada gambar, teknik bubble sort ini membandingkan satu persatu indeks/ angka hingga menemukan hasil pengurutan yang diinginkan. 

Soal diatas baru membandingkan 6 angka saja. Tentu saja waktu yang dibutuhkan untuk mengurutkannya tidak sampai satuan detik (bahkan nanodetik). Hari ini kita akan melihat bagaimana perbandingan waktu jika kita ingin mengurutkan lebih dari 90 angka acak. Angka acak akan ditentukan secara otomatis karena saya menggunakan penomoran otomatis dari Java.

Auto-generate number java
  • Pengurutan 100 angka random

Waktu yang dibutuhkan adalah 195.800 nanodetik

  • Pengurutan 1000 angka random

Waktu yang dibutuhkan adalah 4.745.700 nanodetik

  • Pengurutan 10.000 angka random
Waktu yang dibutuhkan adalah 249.898.600 nanodetik

Dapat disimpulkan bahwa semakin banyak angka yang akan diurutkan, maka akan semakin lama waktu untuk mengurutkan sejumlah bilangan acak tersebut. Waktu pengurutan juga bergantung pada panjangnya coding dan jumlah aplikasi yang berjalan didepan maupun dibelakang layar. Mungkin sekian saja untuk bubble sort ini, terimakasih^^.










Looping Rekursif, For, dan While

Halo guys! Kali ini saya akan membagikan tentang teknik perulangan pada JAVA. Ada banyak teknik perulangan pada JAVA, tapi pada blog kali i...