Modul ini membahas tentang sorting atau pengurutan data menggunakan beberapa metode seperti bubble sort, selection sort, dan insertion sort. Mahasiswa diajak untuk memahami konsep dan cara kerja masing-masing metode pengurutan melalui teori dasar, contoh kode program, dan percobaan kompilasi serta eksekusi program. Tujuan akhirnya adalah mahasiswa mampu menerapkan pengurutan data dengan berbagai metode tersebut dalam menyelesaikan
MATERI PRESENTASI KEPALA TEKNIK TAMBANG KEPMEN 555
SORTING ALGORITMA
1. 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. 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
4. 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. 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. 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. 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. 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. 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. 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. 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!