Sorting merupakan suatu proses untuk menyusun kembali humpunan obyek menggunakan
aturan tertentu. Sorting disebut juga sebagai suatu algoritma untuk meletakkan kumpulan elemen
data kedalam urutan tertentu berdasarkan satu atau beberapa kunci pada tiap-tiap elemen.
1. Divide, yaitu Memilah elemen elemen dari rangkaian data menjadi dua bagian.
2. Conquer, merupakan pembacaan setiap bagian dengan memanggil prosedur merge sort secara
rekursif
3. Kombinasi, yaitu kombinasikan dua bagian tersebut secara rekursif untuk mendapatkan
rangkaian data berurutan
Proses rekursif berhenti jika mencapai elemen dasar. Hal ini terjadi apabila bagian yang akan
diurutkan menyisakan tepat satu elemen. Sisa pengurutan satu elemen tersebut menandakan
bahwa bagian tersebut telah terurut sesuai rangkaian.
Bubble Sorting dilaksanakan dengan cara melakukan penukaran data dengan tepat disebelahnya
secara terus menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan.
Jika tidak ada perubahan berarti data sudah terurut.
Pada dasarnya ada dua macam urutan yang biasa digunakan dalam suatu proses sorting:
Mengurutkan dari data yang mempunyai nilai paling kecil sampai paling besar
Mengurutkan dari data yang mempunyai nilai paling besar sampai paling kecil.
Dasar strateginya adalah memecah dan menguasai. Quicksort dimulai dengan menscan daftar
yang disortir untuk nilai median. Nilai ini, yang disebut tumpuan (pivot), kemudian dipindahkan
ke satu sisi pada daftar dan butir-butir yang nilainya lebih besar dari tumpuan di pindahkan ke
sisi lain.
6. Jelaskan Kelebihan dan Kekurangan masing-masing dari Algoritma Insertion Sort dan
Shell Sort
Insertion Sort :
Kelebihan
Kekurangan
a) Banyaknya operasi yang diperlukan dalam mencari posisi yang tepat untuk elemen larik.
b) Untuk larik yang jumlahnya besar ini tidak praktis.
c) Jika list terurut terbalik sehingga setiap eksekusi dari perintah harus memindai dan
mengganti seluruh bagian sebelum menyisipkan elemen berikutnya.
d) Membutuhkan waktu O(n2) pada data yang tidak terurut, sehingga tidak cocok dalam
pengurutan elemen dalam jumlah besar.
Shell sort :
Kelebihan :
Kekurangan :
a) Membutuhkan method tambahan.
b) Sulit untuk membagi masalah.
A. Sequential search
Disebut juga sebagai metode pencarian urut adalah metode pencarian yang paling sederhana.
Adalah suatu teknik pencarian data dalam array (1 dimensi ) yang akan menelusuri semua
elemen-elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan terlebih
dahulu. Kemungkinan terbaik (best case) adalah jika data yang dicari terletak di indeks array
terdepan (elemen array pertama) sehingga waktu yang dibutuhkan untuk pencarian data sangat
sebentar (minimal). Sedangkan kemungkinan terburuk (worst case) adalah jika data yang dicari
terletak di indeks array terakhir (elemen array terakhir) sehingga waktu yang dibutuhkan untuk
pencarian data sangat lama (maksimal).
Jika pencarian bertujuan untuk menambahkan elemen baru setelah elemen terakhir larik,
maka terdapat sebuah varian dari metode pencarian beruntun yang efektif. Nilai x yang akan
dicari sengaja ditambahkan terlebih dahulu. Data yang ditambahkan setelah elemen terakhir larik
ini disebut sentinel.
C. Binary Search.
Proses pencarian binary search hanya dapat dilakukan pada kumpulan data yang sudah
diurutkan terlebih dahulu. Jika terdapat N buah data yang akan diolah, data yang dicari akan
dibandingkan dengan data ke-N jika data ke-N lebih besar dari data yang dicari maka akan
dilakukan pembagian data menjadi dua bagian. Kemudian ujung data pada setiap bagian
dibandingkan lagi dengan nilai yang akan dicari.
D. Interpolation Search
Proses pencarian data ini hampir sama dengan proses pencarian binary search, pencarian ini
juga dilakukan pada kumpulan data yang sudah urut. Akan tetapi jika pada binary search kita
membagi data menjadi 2 bagian tiap prosesnya,
Sequential search lebih efektif jika digunakan pada sekumpulan data yang sedikit, sedangkan
binary search efektif jika digunakan pada sekumpulan data yang berjumlah banyak.
Sequential search dapat digunakan pada sekumpulan data yang urut ataupun tidak urut,
sedangkan binary search harus pada data yang sudah urut. Sedangkan proses pencarian
interpolation search hampir mirip dengan proses pencarian kata dikamus, yaitu kita mencari data
yang dimaksud dengan cara memperkirakan letak data.
Array adalah sekumpulan variabel yang memiliki tipe data yang sama dan dinyatakan dengan
nama yang sama. Array merupakan konsep yang penting dalam pemrograman, karna array
memungkinkan untuk menyimpan data maupun referensi objek dalam jumlah banyak dan
terindeks. Array menggunakan indeks integer untuk menentukan urutan elemen-elemennya,
dimana elemen pertamanya dimulai dari indeks 0 elemen kedua memiliki indeks 1, dan
seterusnya.
Contoh :
Bentuk umum :
Tipe_data nama_array[jumlah_maks_data];
Contoh :
int Nilai[5]; nilai [1] nilai [2] nilai [3] nilai [4] nilai [5]
70 80 82 60 75
Catatan :
String juga sebenarnya merupakan array yang bertipe karakter. Jumlah elemen array menyatakan
jumlah string.
Array dua dimensi adalah suatu array yang terdiri dari 2 subskrip, yaitu jumlah elemen baris dan
jumlah elemen kolom.
Deklarasi array :
Tipe_array nama_array[baris][kolom];
Untuk mengakses array, misalnya kita ingin mengisi elemen array baris 2 kolom 3 dengan 10
maka perintahnya adalah sbb :
X[1][2] = 10;
Untuk mengisi dan menampilkan isi elemen array ada dua cara yaitu :
Array Multidimensi
Array multidimensi adalah suatu array yang mempunyai subskrip lebih dari dua. Bentuk
pendeklarasian array sama saja dengan array dimensi satu maupun array dimensi dua.
tipe_array nama_array[ukuran1][ukuran2][ukuranN];
Contoh :
float X[2][4][3];