PKN LPKIA BANDUNG

Mata Kuliah : Teori Strukturdata
Nama Dosen : Dadan N. Bagenda

Selasa, 25 Mei 2010

SESI 4

Sorting Algorithm
Bubble Sort -- Selection Sort -- Insertion Sort -- Exchange Sort



Sorting Algorithm
Salah satu bagian penting dari struktur data adalah sorting atau pengurutan data. Ada banyak sekali Algoritma pengurutan data di dunia komputer, yatu : bubble sort, selection sort, insertion sort, exchange sort, quick sort, merge sort, dll.
Setiap algoritma memiliki kelebihan dan kekurangan masing – masing, kita akan mempelajari cukup 4 algoritma saja, yaitu bubble sort, selection sort, insertion sort, dan exchange sort. Bila ingin mempelajari algoritma yang lain silakan berkunjung ke www.wikipedia.org .
Bubble Sort
Perhatikan kode berikut :





Task 1
1.Apa yang dilakukan program diatas ?
2.Lakukan untuk pengurutan sebaliknya!
3.Pengurutan diatas dilakukan dari depan atau belakang? Buat program untuk sebaliknya!
4.Buat program agar user bisa inputkan data secara dinamis, baik untuk ascending, maupun descending!
5.Tambahkan kode agar user dapat melihat proses pengurutan data!
Note : Ascending adalah pengurutan data dari terkecil menuju terbesar, sedangkan descending adalah pengurutan dari data terbesar menuju terkecil.
Exchange Sort
Perhatikan kode berikut :


Task 2
1.Apa yang dilakukan program diatas ?
2.Lakukan untuk pengurutan sebaliknya!
3.Buat program agar user bisa inputkan data secara dinamis, baik untuk ascending, maupun descending!
4.Tambahkan kode agar user dapat melihat proses pengurutan data!
5.Apa perbedaan antara exchange sort dan bubble sort!

Selection Sort
Perhatikan kode berikut :



Task 3
1.Apa yang dilakukan program diatas ?
2.Lakukan untuk pengurutan sebaliknya!
3.Apa fungsi pos?
4.Buat program agar user bisa inputkan data secara dinamis, baik untuk ascending, maupun descending!
5.Tambahkan kode agar user dapat melihat proses pengurutan data!



Insertion Sort
Perhatikan kode berikut :



Task 4
1.Apa yang dilakukan program diatas ?
2.Lakukan untuk pengurutan sebaliknya!
3.Apa fungsi tampung?
4.Buat program agar user bisa inputkan data secara dinamis, baik untuk ascending, maupun descending!
5.Tambahkan kode agar user dapat melihat proses pengurutan data!


Task 5



1.Apa yang menjadi kesalahan pada program diatas?
2.Coba anda perbaiki!



Task 6
1.Gabungkan 4 sorting diatas menjadi 1 program menu pilihan untuk mengurutkan data kode pos.

2.User pertama kali harus memasukkan data terlebih dahulu, apabila tidak ada data, maka pengurutan data tidak bisa berjalan.
3.Data yang masuk hanya bisa berupa angka.
4.Semua metode mengurutkan secara ascending.
5.Pada tiap metode, user dapat melihat proses pengurutan data.

TAMBAHAN
Quick Sort
Quick sort merupakan algoritma kedua tercepat setelah merge sort. Quick sort disebut juga divide and conquer algorithm. Quick sort memiliki average case nLogn
Langkah-langkah quick sort :
1. SELECT
Pilih sebuah element , elemen ini kita sebut pivot

2. DIVIDE
Kemudian pisahkan data menjadi 2 bagian, bagian yang lebih kecil dari pivot dan bagian yang lebih besar dari pivot


3. RECUR and CONQUER
Kemudian 2 bagian tersebut diurutkan secara rekursif dengan memanggil fungsi itu sendiri, misal quicksort()


Perhatikan kode dibawah ini dan silakan di coba deprogram anda masing-masing:



Task 7
1.Bagian mana pada program yang menentukan pivot ?
2.Bagian mana pada program yang memisahkan array menjadi 2 bagian ?
3.Bagian mana pada program yang melakukan fungsi rekursif ?
Daftar Pustaka
•http://en.wikipedia.org/wiki/Sorting_algorithm
•lecturer.eepis-its.edu/~entin/Struktur%20Data/Minggu%2011/Minggu%2011%20Quick.pdf
•http://www.informatika.org/~rinaldi/Stmik/2005-2006/Makalah2006/MakalahStmik2006-27.pdf
•http://lecturer.ukdw.ac.id/anton/strukdat.php

Tidak ada komentar:

Posting Komentar