Sabtu, 16 April 2016

Algoritma dan Flowchart Buble & Insertion Sort

Selamat siang semua. Kesempatan kali ini saya akan sedikit berbagi mengenai metode pengurutan Buble Sort & Insertion Sort. Sebenarnya ini merupakan tugas kedua saya di mata kuliah Struktur Data. Pada matkul ini mungkin akan sering membuat saya menulis di blog ini. Tapi tak apalah bisa menjadi kesibukan baru buatku. Karena kalo di kost seringnya aku cuma tidur, main hp, makan, ya seperti itulah. Dari pada banyak basa-basi mending langsung saya jelasin aja ya.

1. Pengertian/Konsep Buble Sort
Metode pengurutan gelembung (Bubble Sort) merupakan metode pengurutan paling sederhana, tetapi juga merupakan metode pengurutan yang palng tidak efisien jika datanya banyak.

Metode ini terinspirasi  oleh gelembung sabun yang berada dipermukaan air. Karena berat jenis gelembung sabun lebih ringan daripada berat jenis air, maka gelembung sabun selalu terapung ke atas permukaan.
Bubble sort adalah metode/algoritma pengurutan dengan cara melakukan penukaran data dengan data yang berada tepat disebelahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi (perulangan) tertentu tidak ada lagi perubahan. Jika tidak ada perubahan berarti data sudah terurut.
Disebut pengurutan gelembung karena masing-masing kunci akan dengan lambat menggelembung ke posisinya yang tepat.
Kelebihan Bubble Sort
§  Merupakan metode yang paling simple
§  Metode yang mudah dipahami algoritmanya
Kelemahan Bubble Sort
Meskipun simpel, metode Bubble sort  merupakan metode pengurutan yang paling tidak efisien.  Kelemahan buble sort adalah pada saat mengurutkan data yang sangat besar akan mengalami kelambatan luar biasa, atau dengan kata lain kinerja memburuk cukup signifikan ketika data yang diolah jika  data cukup banyak. Kelemahan lain adalah jumlah pengulangan akan tetap sama jumlahnya walaupun data sesungguhnya sudah cukup terurut. Hal ini disebabkan setiap data dibandingkan dengan setiap data yang lain untuk menentukan posisinya.
Algoritma Bubble Sort
1.    Membandingkan data ke-i dengan data ke-(i+1) (tepat bersebelahan). Jika tidak sesuai maka tukar (data ke-i = data ke-(i+1) dan data ke-(i+1) = data ke-i). Apa maksudnya tidak sesuai? Jika kita menginginkan algoritma menghasilkan data dengan urutan ascending (A-Z) kondisi tidak sesuai adalah data ke-i > data ke-i+1, dan sebaliknya untuk urutan descending (A-Z).
2.    Membandingkan data ke-(i+1) dengan data ke-(i+2). Kita melakukan pembandingan ini sampai data terakhir. Contoh: 1 dgn 2; 2 dgn 3; 3 dgn 4; 4 dgn 5 … ; n-1 dgn n.
3.    Selesai satu iterasi, adalah jika kita sudah selesai membandingkan antara (n-1) dgn n. Setelah selesai satu iterasi kita lanjutkan lagi iterasi berikutnya sesuai dengan aturan ke-1. mulai dari data ke-1 dgn data ke-2, dst.
4.    Proses akan berhenti jika tidak ada pertukaran dalam satu iterasi.

Contoh Flowchart

 


                                                                                          
2. Pengertian/Konsep Insertion Sort

Insertion Sort merupakan algoritma sorting, terutama untuk mengurutkan data dengan jumlah elemen sedikit. Dimana Input berupa deretan angka sejumlah n buah data dan Output berupa permutasi (pengurutan) sejumlah n angka dari input, dimana hasilnya berupa data yang sudah terurut secara ascending maupun descending.


Proses yang terjadi pada pengurutan dengan Insertion Sort adalah dimulai dari data ke-2 kemudian disisipkan pada tempat yang sesuai. Data pada posisi pertama dianggap memang sudah benar pada tempatnya.

Ilustrasinya mirip seperti saat menyisipkan kartu di permainan kartu. Dimulai dengan tangan kiri yang kosong dan kartunya tertumpuk di meja. Selanjutnya kita ambil satu persatu kartu di meja dan diletakkan di tangan kiri dengan posisi yang benar (terurut). Untuk menemukan posisi yang benar, maka kita harus membandingkan satu persatu kartu yang ada (di tangan kiri) secara berurutan. 


Algoritma Insertion Sort 
  1. Simpan nilai Ti kedalam variabel sementara, dengan i = 1.
  2. Bandingkan nilainya dengan elemen sebelumnya.
  3. Jika elemen sebelumnya (Ti-1) lebih besar nilainya daripada Ti, maka tindih nilai Ti  dengan nilai Ti-1 tersebut. Decrement i (kurangi nilainya dengan 1).
  4. Lakukan terus poin ke-tiga, sampai Ti-1 ≤ Ti.
  5. Jika Ti-1 ≤ Ti terpenuhi, tindih nilai di Ti dengan variabel sementara yang disimpan sebelumnya.
  6.  Ulangi langkah dari poin 1 di atas dengan i di-increment (ditambah satu). 


Contoh Flowchart


Mungkin cukup sekian penjelasan singkat dari saya. Jangan bosen mampir disini ya J
Selamat siang. Hamsamnida J J

Rabu, 06 April 2016

Interpolation Search

Selamat siang semua. Lama sudah nggak main-main ke blog ini. Soalnya kemarin lupa password. hehe. Baru sempet ngeblog lagi sekarang ini. Maklumlah sekarang udah lulus dari SMK tercinta, dan sekarang say asedang menempuh pendidikan di salah satu universitas swasta di Jateng, senangnya.

Kesempatan kali ini saya akan membahas sedikit mengenai Interpolation search. Apa sih sebenarnya interpolation search itu?  Interpolation Search adalah sebuah algoritma atau metode untuk mencari nilai key yang diberikan dalam array pada indeks yang telah diperintahkan oleh nilai – nilai kunci. Metode ini didasari pada proses pencarian nomor telepon pada buku telepon yang mana manusia mencari melalui dengan nilai kunci yang terdapat pada buku. Teknik searching ini dilakukan dengan perkiraan letak data. Rumus posisi relatif kunci pencarian dihitung dengan rumus berikut ini :

Posisi =       kunci – data[low]       x (hight – low) + low
              Data[hight] – data[low]

- Jika data[posisi] > data yg dicari, high = pos – 1
- Jika data[posisi] < data yg dicari, low = pos + 1


Untuk program yang akan saya buat, saya juga telah membuat  algoritmanya.




Untuk lebih jelasnya, saya akan memberikan contoh program dan outputnya :



Ini adalah outputnya :


Pada program ini, pertama membuat array dengan nama 'data', panjang 10 dan langsung mengisikan indexnya. Didalam Interpotion search ini menggunakan rumus seperti di awal yang telah saya jelaskan. Setelah proses pencarian selesai, maka program akan menampilkan data yang dicari dan letak indexnya. Pada metode pencarian ini data harus dalam keadaan urut. Jika data belum urut, maka program akan melakukan pengurutab terlebih dahulu. Jika sudah, maka program akan langsung melakukan proses pencarian data. Data yang ingin dicari harus diinputkan terlebih dahulu. Dan hasilnya seperti output diatas, 

Demikian sedikit penjelasan mengenai Interpolation Search, semoga bermanfaat :) 
Tuggu postingan selanjutnya ya :)