Upload
james-montolalu
View
44
Download
0
Embed Size (px)
Citation preview
1 Disusun oleh tim Asisten | Laboratorium Teknologi Informasi dan Komunikasi
MODUL PRAKTIKUM “STRUKTUR DATA”
Modul 4 : Sorting Dosen Pembimbing : Xaverius Najoan, ST. MT. Bahasa Pemrograman : C Software : Notepad++ dan GCC
LABORATORIUM TEKNOLOGI INFORMASI DAN KOUNIKASI UNIVERSITAS SAM RATULANGI
2012
2 Disusun oleh tim Asisten | Laboratorium Teknologi Informasi dan Komunikasi
TUJUAN 1. Mahasiswa dapat memahami metode-metode pengurutan 2. Mahasiswa dapat menggunakan metode-metode pengurutan untuk memecahkan masalah
ALAT DAN BAHAN
1. PC 2. Compiler (GCC) 3. Text Editor (Notepad++)
DASAR TEORI Sorting adalah suatu proses pengurutan data yang sebelumnya disusun secara acak atau tidak
teratur menjadi urut dan teratur menurut suatu aturan tertentu. Biasanya pengurutan terbagi menjadi 2 bagian, yaitu : ascending (pengurutan dari angka/karakter kecil ke angka/karakter besar) dan descending (pengurutan dari angka/karakter besar ke angka/karakter kecil).
Untuk melakukan proses pengurutan dapat menggunakan beberapa metode, antara lain :
Bubble sort
Selection sort
Insertion sort
BUBBLE SORT
Bubble sort adalah suatu metode pengurutan yang membandingkan elemen yang sekarang dengan elemen berikutnya. Pembandingan elemen dapat dimulai dari data yang paling awal atau data yang paling akhir. Jika perbandingan tersebut sesuai dengan kondisi, maka data langsung ditukar.
Misalkan terdapat data-data sebagai berikut :
5 1 4 2 8
3 Disusun oleh tim Asisten | Laboratorium Teknologi Informasi dan Komunikasi
Langkah Pertama :
( 5 1 4 2 8 ) ( 1 5 4 2 8 ), disini 2 elemen pertama dibandingkan kemudian ditukar karena 5 > 1
( 1 5 4 2 8 ) ( 1 4 5 2 8 ), ditukar karena 5 > 4
( 1 4 5 2 8 ) ( 1 4 2 5 8 ), ditukar karena 5 > 2
( 1 4 2 5 8 ) ( 1 4 2 5 8 ), karena urutan sudah sesuai (5 < 8), maka tidak ditukar
Langkah Kedua :
( 1 4 2 5 8 ) ( 1 4 2 5 8 )
( 1 4 2 5 8 ) ( 1 2 4 5 8 ), ditukar karena 4 > 2
( 1 2 4 5 8 ) ( 1 2 4 5 8 )
( 1 2 4 5 8 ) ( 1 2 4 5 8 )
Langkah Ketiga :
( 1 2 4 5 8 ) ( 1 2 4 5 8 )
( 1 2 4 5 8 ) ( 1 2 4 5 8 )
( 1 2 4 5 8 ) ( 1 2 4 5 8 )
( 1 2 4 5 8 ) ( 1 2 4 5 8 )
Langkah Keempat :
( 1 2 4 5 8 ) ( 1 2 4 5 8 )
( 1 2 4 5 8 ) ( 1 2 4 5 8 )
( 1 2 4 5 8 ) ( 1 2 4 5 8 )
( 1 2 4 5 8 ) ( 1 2 4 5 8 )
Langkah Kelima :
( 1 2 4 5 8 ) ( 1 2 4 5 8 )
( 1 2 4 5 8 ) ( 1 2 4 5 8 )
( 1 2 4 5 8 ) ( 1 2 4 5 8 )
( 1 2 4 5 8 ) ( 1 2 4 5 8 )
4 Disusun oleh tim Asisten | Laboratorium Teknologi Informasi dan Komunikasi
SELECTION SORT
Selection Sort adalah suatu metode pengurutan yang membandingkn elemen yang sekarang dengan elemen berikutnya sampai ke elemen yang terakhir. Jika ditemukan elemen lain yang lebih kecil / lebih besar (sesuai kondisi) dari elemen yang sekarang, maka dicatat posisinya dan langsung ditukar.
Misalkan terdapat data-data sebagai berikut :
5 1 4 2 8
Langkah Pertama :
Posisi : 0 1 2 3 4
Data : 5 1 4 2 8
Index = 0
5 < 1, karena pernyataan bernilai false maka index = 1
1 < 4, index = 1
1 < 2, index = 1
1 < 8, index = 1
Tukar elemen 0 dan elemen 1, menjadi :
Posisi : 0 1 2 3 4
Data : 1 5 4 2 8
Langkah Kedua :
Posisi : 0 1 2 3 4
Data : 1 5 4 2 8
Index = 1
5 < 2, index = 2
4 < 2, index = 3
2 < 8, index = 3
Tukar elemen 1 dan elemen 3, menjadi :
Posisi : 0 1 2 3 4
Data : 1 2 4 5 8
5 Disusun oleh tim Asisten | Laboratorium Teknologi Informasi dan Komunikasi
Langkah Ketiga :
Posisi : 0 1 2 3 4
Data : 1 2 4 5 8
Index = 2
4 < 5, index = 2
4 < 8, index = 2
Tidak ada penukaran, sehingga :
Posisi : 0 1 2 3 4
Data : 1 2 4 5 8
Langkah Keempat :
Posisi : 0 1 2 3 4
Data : 1 2 4 5 8
Index = 3
5 < 8, index = 3
Tidak ada penukaran, sehingga :
Posisi : 0 1 2 3 4
Data : 1 2 4 5 8
Langkah Kelima :
Posisi : 0 1 2 3 4
Data : 1 2 4 5 8
Index = 4
Tidak ada penukaran, sehingga :
Posisi : 0 1 2 3 4
Data : 1 2 4 5 8
6 Disusun oleh tim Asisten | Laboratorium Teknologi Informasi dan Komunikasi
INSERTION SORT
Insertion sort merupakan salah satu algoritma pengurutan dengan cara menyisipkan jika menemukan nilai yang lebih kecil / lebih besar (sesuai dengan kondisi). Sehingga algoritma ini menyelesaikan pengurutan secara bertahap dari kiri ke kanan atau sebaliknya.
Misalkan terdapat data-data sebagai berikut :
5 1 4 2 8
Langkah Pertama :
Posisi : 0 1 2 3 4
Data : 5 1 4 2 8
tmp cek geser
1 5 > 1 data pada posisi [0] pindah pada posisi [1]
Tmp menempati posisi [0]
Posisi : 0 1 2 3 4
Data : 1 5 4 2 8
Langkah Kedua :
Posisi : 0 1 2 3 4
Data : 1 5 4 2 8
tmp cek geser
4 5 > 4 data pada posisi [1] pindah pada posisi [2]
1 < 4
Tmp menempati posisi [1]
Posisi : 0 1 2 3 4
Data : 1 4 5 2 8
7 Disusun oleh tim Asisten | Laboratorium Teknologi Informasi dan Komunikasi
Langkah Ketiga :
Posisi : 0 1 2 3 4
Data : 1 4 5 2 8
tmp cek geser
2 5 > 2 data pada posisi [2] pindah pada posisi [3]
4 > 2 data pada posisi [1] pindah pada posisi [2]
1 < 2
Tmp menempati posisi [1]
Posisi : 0 1 2 3 4
Data : 1 2 4 5 8
Langkah Keempat :
Posisi : 0 1 2 3 4
Data : 1 2 4 5 8
tmp cek geser
8 5 < 8
4 < 8
2 < 8
1 < 8
Tmp menempati posisi [4]
Posisi : 0 1 2 3 4
Data : 1 2 4 5 8
8 Disusun oleh tim Asisten | Laboratorium Teknologi Informasi dan Komunikasi
PROSEDUR PERCOBAAN
Percobaan 1
1. Kompilasi kode sumber bubble_sort.c dibawah ini! Kode Sumber : bubble_sort.c
2. Jalankan program bubble_sort! 3. Jalankan dan tuliskan keluaran bubble_sort! 4. Pelajari dan bandingkan antara kode sumber dan hasil eksekusi bubble_sort ini! 5. Berikan penjelasan anda tentang baris 14 - 22! 6. Berikan kesimpulan anda dari percobaan ini!
9 Disusun oleh tim Asisten | Laboratorium Teknologi Informasi dan Komunikasi
Percobaan 2
1. Kompilasi kode sumber selection_sort.c dibawah ini!
Kode Sumber : selection_sort.c
2. Jalankan program selection_sort! 3. Jalankan dan tuliskan keluaran selection_sort! 4. Pelajari dan bandingkan antara kode sumber dan hasil eksekusi selection_sort ini! 5. Berikan penjelasan anda tentang baris 14 - 24! 6. Berikan kesimpulan anda dari percobaan ini!
10 Disusun oleh tim Asisten | Laboratorium Teknologi Informasi dan Komunikasi
Percobaan 3
1. Kompilasi kode sumber insertion_sort.c dibawah ini!
Kode Sumber : insertion _sort.c
2. Jalankan program selection_sort! 3. Jalankan dan tuliskan keluaran selection_sort! 4. Pelajari dan bandingkan antara kode sumber dan hasil eksekusi selection_sort ini! 5. Berikan penjelasan anda tentang baris 14 - 24! 6. Berikan kesimpulan anda dari percobaan ini!
11 Disusun oleh tim Asisten | Laboratorium Teknologi Informasi dan Komunikasi
TUGAS 1. Buatlah algoritma dan program untuk memasukkan 10 buah data dengan menggunakan metode-
metode yang telah dipelajari, dan tampilkan data tersebut secara ascending dan descending!