nama:Bayu cahyadi <\p>
kelas:TK 19A <\p>
Link : http://algoritma-cplusplus.blogspot.com/2009/06/sorting-searching.html <\p>
https://teknokrat.ac. <\p>
http://ftik.teknokrat.ac.id/ <\p>
sorting & Searching <\p>
SORTING Sorting adalah pengurutan data. Data diurutkan dari yang terkecil sampai yang paling besar atau sebaliknya. Tujuannya supaya data tersebut jadi tersusun rapi, terurut dan teratur. Algoritma untuk melakukan sorting sperti itu ada bermacam-macam diantaranya BubbleSort, SelectionSort, InsertionSort, QuickSort, ExchangeSort, HeapSort, SmoothSort, CocktailSort, ShellSort, MergeSort, dan masih banyak lagi yang lainnya. Kali ini kita akan membahas 5 macam sorting saja yaitu BubbleSort, SelectionSort, InsertionSort, ExchangeSort dan QuickSort.<\p>
1.-BubbleSort <\p>
BubbleSort adalah pengurutan data yang dilakukan dengan membandingkan antara data[n] dengan data[n+1] atau antara data[n] dengan data[n-1] kemudian jika data lebih kecil/besar dilakukan pertukaran. Pada setiap iterasi dapat terjadi beberapa kali pertukaran atau tidak sama sekali. Jumlah iterasi ditentukan oleh banyaknya data atau ‘N’. Iterasi=N-1.” Langkah-langkah bubble sort yaitu : Bandingkan nilai pada data ke-1 dengan data ke-2 Jika nilai data ke-1 lebih besar dari data ke-2 maka tukar posisinya Kemudian data yang lebih besar tersebut dibandingkan lagi dengan data ke-3 Jika data ke-3 lebih kecil dari data ke-2 maka tukar posisinya, dan begitu seterusnya sampai data yang ada jadi terurut.<\p>
Contoh secara manual : iterasi Urutan data 0 87 74 71 54 88 60 1 74 71 54 87 60 88 2 71 54 74 60 87 88 3 54 71 60 74 87 88 4 54 60 71 74 87 88 Contoh syntax bubble sort: void bubble_sort() { for(int i=1;i { for(int j=n-1;j>=i;j--) { if(data[j]} } } Dengan cara ini data akan terurut naik (ascending),untuk data terurut turun (descending) silahkan rubah bagian di bawah ini: (data[j] menjadi: if (data[j]>data[j-1]) tukar(j,j-1); Intinya bubble sort itu salah satu metode yang simpel untuk sorting, tetapi jika jumlah data yang disorting besar akan memakan waktu yang lama.<\p>
SEARCHING Searching adalah pencarian suatu data dalam sekumpulan data . Kali ini kita akan bahas tentang 2 jenis searching yaitu Sequential Search dan Binary Search.<\p>
1.-Sequential Search <\p>
Sequential Search merupakan proses pencarian data dengan metode pencarian langsung. Ini dilakukan dengan cara mencocokkan data yang akan dicari dengan semua data yang ada dalam kelompok data. Proses pencocokan data dilakukan secara berurutan. Satu demi satu dimulai dari data ke1 hingga data pada urutan terakhir.<\p>
Secara manual contoh : Data : 20 25 35 79 80 90 Data yang dicari 35 Iterasi Data keterangan 0 20 25 35 79 80 90 Data awal 1 20 25 35 79 80 90 Belum cocok 2 20 25 35 79 80 90 Belum cocok 3 20 25 35 79 80 90 Data ditemukan Ket : angka yang ditebalkan maksudnya angka yang diseleleksi. Yang diatas pengertian secara manual. Secara teoritis sequential search : pencarian ini hanya melakukan pengulangan dari 1 sampai dengan jumlah data. Pada setiap pengulangan, dibandingkan data ke-i dengan yang dicari. Apabila sama, berarti data telah ditemukan. Sebaliknya apabila sampai akhir pengulangan tidak ada data yang sama, berarti data tidak ada. Pada kasus yang paling buruk, untuk N elemen data harus dilakukan pencarian sebanyak N kali pula. Algoritma pencarian berurutan dapat dituliskan sebagai berikut : i←0 ketemu←false Selama (tidak ketemu) dan (i <= N) kerjakan baris 4 4 Jika (Data[i] = x) maka ketemu ← true, jika tidak i ← i + 1 5 Jika (ketemu) maka i adalah indeks dari data yang dicari, jika tidak data tidak ditemukan Di bawah ini merupakan fungsi untuk mencari data menggunakan pencarian sekuensial. int SequentialSearch(int x) { int i = 0; bool ketemu = false; while ((!ketemu) && (i <> if(Data[i] == x) ketemu = true; else i++; } if(ketemu) return i; else return -1; } <\p>
2.-Binary Search Binary Search adalah sebuah teknik untuk menemukan nilai tertentu dalam sebuah larik (array) linear, dengan menghilangkan setengah data pada setiap langkah, dipakai secara luas tetapi tidak secara ekslusif dalam ilmu komputer. Sebuah pencarian biner mencari nilai tengah (median), melakukan sebuah pembandingan untuk menentukan apakah nilai yang dicari ada sebelum atau sesudahnya, kemudian mencari setengah sisanya dengan cara yang sama. Sebuah pencarian biner adalah salah satu contoh dari algoritma divide and conquer . Penerapan terbanyak dari binary search adalah untuk mencari sebuah nilai tertentu dalam sebuah list terurut. Jika dibayangkan, pencarian biner dapat dilihat sebagai sebuah permainan tebak-tebakan, kita menebak sebuah bilangan, atau nomor tempat, dari daftar (list) nilai. Pencarian diawali dengan memeriksa nilai yang ada pada posisi tengah list; oleh karena nilai-nilainya terurut, kita mengetahui apakah nilai terletak sebelum atau sesudah nilai yang di tengah tersebut, dan pencarian selanjutnya dilakukan terhadap setengah bagian dengan cara yang sama. Contoh syntax nya : int BinarySearch(int x) { int L = 0, R = Max-1, m; bool ketemu = false; while((L <= R) && (!ketemu)) { m = (L + R) / 2; if(Data[m] == x) ketemu = true; else if (x <> R = m - 1; else L = m + 1; } if(ketemu) return m; else return -1; } <\p>