1.  Sorting

Dalam penyelesaian suatu masalah pasti terdapat banyak cara atau solusi-solusi yang dapat dilakukan, seperti halnya pembuatan program memiliki banyak tehnik atau algoritma yang dapat di gunakan salah satunya untuk kebutuhan SORTING atau PENGURUTAN kumpulan data-data. terdapat 4 algoritma atau tehnik dalam melakukan sorting.

  • Straight Selection Sort. teknik sorting ini dibuat dengan cara melakukan pengecek’an 1 persatu, bila kita akan mengurutkan secara ascending maka kita lakukan pengecek’an nilai tempat yang pertama (index pertama pada array) bila lebih kecil daripada index berikutnya (index 1 dengan index 2, index 1 dengan index 3, ….. index 1 dengan index terakhi) maka kita lakukan pertukaran nilai pada array index tersebut. proses ini dilakukan terus menerus sampai pada pengecekan index terakhir – 1 dengan nidex terakhir.
  • Selection Sort.Teknik sorting ini dibuat dengan cara melakukan pengecek’an 1 persatu, bila kita akan mengurutkan secara ascending maka kita lakukan pengecek’an nilai tempat yang pertama (index pertama pada array)kita bandingkan dengan semua nilai yang ada kita cari nilai minimalnya. lalu simpan index/ letak nilai minimum itu di temukan, setelah pengecekan selesai tukar index awal pengecekan dengan nilai minimum yang telah di simpan tadi. Proses ini dilakukan terus menerus sampai pada pengecekan index terakhir min 1 dengan index terakhir. beda dengan streith selection sort adalah dengan teknik ini melakukan pertukaran nilai lebih sedikit, hanya jumlah data – 1 pertukaran. jadi waktu untuk melakukan proses sorting lebih cepat.
  • Bubble Sort. Teknik ini dilakukan degan pola membawa nilai terbesar menjadi nilai index terakhir array. jadi sistem ini melakukan pengecekan nilai 1 dengan 2, lalu 2 dengan 3 samapai dengan data terakhir, bila nilai index yang lebih kecil lebih besar maka akan dilakukan pertukaran. proses ini dilakuan hingga jumlah data – 1.
  • Modified Bubble Sort. Teknik ini dilakukan degan pola membawa nilai terbesar menjadi nilai index terakhir array. Jadi sistem ini melakukan pengecekan nilai 1 dengan 2, lalu 2 dengan 3 samapai dengan data terakhir, bila nilai index yang lebih kecil lebih besar maka akan dilakukan pertukaran. proses ini dilakuan hingga jumlah data dikurangi 1 atau sampai program tidak melakukan pertukaran. jadi waktu untuk melakukan proses sorting lebih cepat.

Sebenarnya jika kita ingin mengimplementasikan teknik sorting ini ke dalam suatu bahasa pemograman, yang paling penting adalah, kita terlebih dahulu harus memahami konsep dari teknik Sorting itu sendiri. berikut caranya :

Untuk contoh sorting yang paling sederhana ialah :

Anggaplah kita punya nilai yaitu:
nilai [1]=15;
nilai [2]= 9;

Disini kita ingin mengurutkan dengan menggunakan teknik Ascending(pengurutan dari nilai terkecil ke nilai terendah). Tentunya kita ingin menukar kedua angka itu yaitu
nilai[1]=9;dan
nilai[2]=15
Kita tidak bisa melakukannya dengan cara seperti ini.

Demikian juga dengan bentuk ini :
nilai[1]=nilai[2]
nilai[2]=nilai[1], kalau seperti ini program tak akan bekerja.

Pemahaman langkah pertama yaitu dengan cara nilai yang tersimpan pada “nilai[1]” akan dihapus, dan kemudian diganti dengan nilai yang tersimpan pada “nilai[2]“. Sehingga sekarang antara “nilai[1] dan nilai[2]” punya nilai yang sama. Tapi yang terjadi dengan nilai[1] adalah nilai tersebut telah hilang. Dalam penukaran dua variabel, kita harus mendefinisikan variabel ke-tiga, yaitu sebuah temporary yang memegang nilai variabel agar nilai tersebut tidak hilang. Ia akan menjaga proses pembarteran nilai agar salah satu nilai tidak hilang.

Misalnya:
//Pertukaran Variabel
temp = nilai[1]; //pemegang variabel agar tidak hilang”temp”
nilai[1] = nilai[2];
nilai[2] = temp;

Proses pertukaran ini akan berhasil dilakukan sesuai pemahaman teknik sorting, dan pertukaran berhasil dilakukan tanpa nilai yang hilang.

2. Searching

Dalam pencarian data juga terdapat beberapa jenis algoritma, tujuan dari adanya banyak algoritma yang di temukan adalah karena memiliki keuntungan-keuntungan tersendiri, seperti lebih cepatnya bila mengolah data yang jumlahnya lebih dari juta data, ada yang lebih efisien dengan jumlah kurang dari jutaan. serta ada pula yang tidak perlu untuk mengurutkan data terlebih dahulu, tetapi memakan waktu lebih lama.

  • Line Search. teknik searching ini dibuat dengan cara melakukan pengecek’an 1 persatu, yaitu antara data yang di cari dengan kumpulan data yang di miliki, Keuntungan metode ini adalah kita tidak perlu mengurutkan data yang ada, bila mencari data pada kumpulan data yang tidak urut hanya terdapat metode ini yang dapat di lakukan.
  • Binnary Search. teknik ini hanya dapat digunakan hanya pada kumpulan data yang sudah di urutkan, karena teknik ini melakukan pencarian dengan mencari data pada index yang tengah, apakah lebih besar/lebih kecil/sama dengan. bila hasil sama dengan maka nilai yang di cari telah di temukan. bila lebih kecil/lebih besar maka akan di buang setengah data dari yang salah, dan mencari dari indeks yang tengah dari sisanya. demikian samapi data ditemukan atau tidak di temukan.
  • Fibonachi Search. Teknik ini hanya dapat digunakan hanya pada kumpulan data yang sudah di urutkan, karena teknik ini melakukan pencarian dengan mencari data melalui pola bilangan fibonachi. Bila pada binnary search pembandingnya adalah nilai pada index tengahnya jumlah data, pada fibonachi search berbeda yaitu: bilangan fibonachi, yang bilangan fibonachinya terdekat dengan jumlah data tetapi tidak lebih besar dari jumlah data yang akan di proses. Bilangan fibonachi itu di jumlahkan dengan batas paling awal data dikurangi 1. Contohnya: jumlah data yang akan di cari adalah 15, maka batas paling bawah adalah 1 dan batas paling akhir=15 dan index pembandingnya= 13(nilai awal + dijumlahkan Bilangan fibonachi – 1) karena bilangan fibonachi terdekat dengan 15 (data ke 1- data ke 15) adalah 13 (1,2,3,5,8,13,21,34…..), bila data yang di cari lebih besar dari bilangan indeks ke tengahnya maka. batas paling bawah= tetap, batas akhir nilai tengah-1, bila data yang dicari lebih kecil maka batas bawah = nilai tengah +1 dan batas akhir tetap, sedangkan nilai tengahnya memakai fungsi tadi.