Anda di halaman 1dari 13

BAB I

PENDAHULUAN

1.1 Pendahuluan
Pengurutan data atau sorting juga merupakan salah satu proses yang
sangat dibutuhkan didalam pemrograman. Sorting atau pengurutan ini adalah
proses mengatur sekumpulan objek menurut urutan atau susunan tertentu. Adanya
kebutuhan akan pengurutan melahirkan beberapa macam pengurutan. Metode-
metode pengurutan antara lain, yaitu bubble sort, selection sort, insertion sort,
quick sort, merge sort dan lain sebagainya .Dari kumpulan data yang disimpan
dapat mempunyai tipe data yang berbeda-beda dan pengurutan terhadap data
tersebut dapat dilakukan untuk satu atribut atau lebih tergantung pada kebutuhan
yang diinginkan.
Pengurutan atau yang biasa kita kenal sebagai sorting merupakan suatu
proses mengurutkan data dengan suatu aturan tertentu, sehingga tersusun secara
teratur sesuai dengan aturan tersebut. Pada dasarnya ada dua macam aturan
pengurutan yang biasa digunakan yaitu ascending dan descending. Ascending
adalah proses pengurutan data dari data yang paling kecil sampai data yang paling
besar. Descending adalah proses mengurutkan data dari yang paling besar sampai
data yang paling kecil. Proses yang terjadi dalam pengurutan data adalah proses
perbandingan data dan pertukaran data.

1.2 Tujuan
1. Mengetahui pengertian sorting.
2. Mengetahui macam-macam sorting.
3. Mengimplementasikan sorting pada program.
BAB II
DASAR TEORI

2.1 Definisi Sorting


Sorting atau pengurutan adalah proses mengatur sekumpulan objek
menurut urutan atau susunan tertentu. Dalam arti bahasa sorting adalah
penyortiran atau memilih-milih. Pada struktur data sorting adalah sebuah metode
untuk pengurutan data, misalnya dari data yang terbesar ke data yang terkecil.
Dengan cara program yang dibuat harus dapat membandingkan antar data yang di
inputkan.
Dalam arti bahasa sorting juga merupakan penyortiran atau memilih-milih.
Pada struktur data sorting adalah sebuah metode untuk pengurutan data, misalnya
dari data yang terbesar ke data yang terkecil, dengan cara program yang dibuat
harus dapat membandingkan antar data yang di inputkan, artinya jika ada deretan
data, maka data yang pertama akan membandingkan dengan data yang kedua. Jika
data yang pertama lebih besar dari pada data yang kedua maka data yang pertama
akan bertukar posisi dengan data yang kedua, begitu seterusnya sampai benar-
benar data terurut dari yang terbesar hingga yang terkecil.

2.2 Macam-macam Metode Sorting


Lima algoritma sorting yang populer dipakai dalam dunia informatika,
yaitu:
a. Bubble Sort
Bubble Sort merupakan cara pengurutan yang sederhana. Konsep dari ide
dasarnya adalah seperti gelembung air untuk elemen struktur data yang
semestinya berada pada posisi awal. Cara kerjanya adalah dengan berulang-ulang
melakukan traversal atau proses looping terhadap elemen-elemen struktur data
yang belum diurutkan. Didalam traversal tersebut, nilai dari dua elemen struktur
data dibandingkan. Jika ternyata urutannya tidak sesuai dengan pesanan, maka
dilakukan pertukaran atau swap. Algoritma sorting ini disebut juga dengan
comparison sort dikarenakan hanya mengandalkan perbandingan nilai elemen
untuk mengoperasikan elemennya.
Algoritma bubble sort dapat diringkas sebagai berikut, jika N adalah
panjang elemen struktur data, dengan elemen-elemennya adalah T1, T2, T3, TN-
1, TN, maka:
1. Lakukan traversal untuk membandingkan dua elemen berdekatan. Traversal
ini dilakukan dari belakang.
2. Jika elemen pada TN-1 > TN , maka lakukan pertukaran atau swap, jika
tidak, lanjutkan ke proses traversal berikutnya sampai bertemu dengan bagian
struktur data yang telah diurutkan.
3. Ulangi langkah di atas untuk struktur data yang tersisa.
b. Selection Sort
Selection Sort adalah sort yang melakukan beberapa kali pass untuk
melakukan penyeleksian elemen struktur data. Untuk sorting ascending yang
menaik, elemen yang paling kecil diantara elemen-elemen yang belum urut,
disimpan indeksnya, kemudian dilakukan pertukaran nilai elemen dengan indeks
yang disimpan tersebut dengan elemen yang paling depan yang belum urut.
Sebaliknya, untuk sorting descending yang menurun, elemen yang paling besar
yang disimpan indeksnya kemudian ditukar. Algoritma selection sort sering juga
disebut dengan metode maksimum atau minimum. Metode maksimum karena
didasarkan pada pemilihan data atau elemen maksimum sebagai dasar pengurutan.
Konsepnya dengan memilih elemen maksimum kemudian mempertukarkan
elemen maksimum tersebut dengan elemen paling akhir untuk urutan ascending
dan elemen pertama untuk descending. Algoritma selection sort disebut juga
dengan metode minimum karena didasarkan pada pemilihan dari elemen
minimum sebagai dasar pengurutan. Konsepnya adalah dengan kita memilih
elemen minimum kemudian mempertukarkan elemen minimum dengan elemen
paling akhir untuk urutan ascending dan elemen pertama untuk urutan descending.
Proses yang dilakukan oleh algoritma selection sort adalah mengambil nilai
terbesar dari susunan data dan
menggantikannya dengan data yang paling kanan.
Algoritma selection sort dapat dirangkum sebagai berikut:
1. Temukan nilai yang paling minimum atau sesuai keinginan didalam struktur
data, tapi jika ascending, maka yang harus ditemukan adalah nilai yang paling
minimum. Tapi jika descending, maka temukan nilai yang paling maksimum.
2. Tukar nilai tersebut dengan nilai pada posisi pertama di bagian struktur data
yang belum diurutkan.
3. Ulangi langkah di atas untuk bagian struktur data yang tersisa.
c. Insertion Sort
Metode pengurutan pada insertion sort adalah metode dengan cara
menyisipkan elemen larik pada posisi yang tepat. Cara kerja insertion sort.
Pertama-tama, yang harus dilakukan adalah iterasi, dimana disetiap iterasi
insertion sort memindahkan nilai elemen, kemudian menyisipkannya berulang-
ulang sampai ketempat yang tepat, begitupun seterusnya yang harus dilakukan.
Dari proses iterasi, seperti biasa terbentuklah bagian yang telah disorting dan
bagian yang belum disorting. Algoritma insertion sort merupakan suatu metode
pengurutan data dengan melakukan penempatan setiap elemen dari data pada
posisinya dengan membandingkan dengan data-data yang telah ada.
Algoritma insertion sort dapat dirangkum sebagai berikut:
1. Simpan nilai Ti kedalam variabel sementara, dengan i=1.
2. Bandingkan nilainya dengan elemen sebelumnya.
3. Jika elemen sebelumnya yaitu 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 diincrement ditambah satu.
Adapun Langkah-langkan Algoritma insertion sort:
a. Membandingkan dua elemen data pertama, mengurutkannya.
b. Kemudian mengecek elemen data berikutnya satu persatu.
d. Dan membandingkannya dengan elemen data yang telah diurutkan.
d. Merge Sort
Algoritma merge sort ditemukan oleh John Von Neumann di tahun 1945.
Merge Sort termasuk paradigma algoritma divide and conquer. Hal ini
dikarenakan algoritma ini melakukan pembagian struktur data sebelum kemudian
dioperasi satu per satu. Intinya, algoritma ini menggunakan dua ide utama sebagai
berikut:
1. Sebuah list yang kecil membutuhkan langkah yang lebih sedikit untuk
pengurutan daripada sebuah list yang besar.
2. Untuk membentuk sebuah list terurut dari duabuah list terurut membutuhkan
langkah yang lebih sedikit daripada membentuk sebuah list terurut dari dua buah
list tak terurut. Seperti hanya diperlukan satu kali traversal untuk masing-masing
list jika keduanya sudah terurut.
Algoritma merge sort sederhananya, dapat ditulis berikut:
a. Bagi list yang tak terurut menjadi dua sama panjang atau salah satunya lebih
panjang satu elemen.
b. Bagi masing-masing dari dua sublist secara rekursif sampai didapatkan list
dengan ukuran satu.
c. Gabung dua sublist kembali menjadi satu list terurut.
Berikut ini adalah tiga proses di dalam menggunakan algoritma merge sort :
1. Divide, bagi array A[l..r] dengan jumlah elemen n menjadi dua subarray
dengan jumlah elemen masingmasing subarray sebanyak n/2.
2. Conqueror, urutkan masing-masing subarray secara rekursif menggunakan
prosedur merge sort.
3. Combine, satukan subarray untuk menghasilkan elemen array A[l..r] yang
terurut.
e. Quick Sort
Quick Sort adalah algoritma sorting yang terkenal yang dirancang oleh
C.A.R. Hoare pada tahun 1960 ketika bekerja untuk perusahaan manufaktur
komputer saintifik kecil, Elliott Brothers. Algoritma ini rekursif, dan termasuk
paradigma algoritma divide and conquer.
Algoritma ini terdiri dari 4 langkah utama:
1. Jika struktur data terdiri dari 1 atau 0 elemen yang harus diurutkan,
kembalikan struktur data itu apa adanya.
2. Ambil sebuah elemen yang akan digunakan sebagai pivot point atau poin
poros, yang biasanya elemen yang paling kiri.
3. Bagi struktur data menjadi dua bagian satu dengan elemen-elemen yang
lebih besar daripada pivot point, dan yang lainnya dengan elemen-elemen yang
lebih kecil dari pada pivot point.
4. Ulangi algoritma secara rekursif terhadap kedua paruh struktur data.
Berikut adalah tiga proses di dalam metode divide dan conqueror untuk
algoritma quick sort:
a. Divide, bagi array A[l..r] menjadi dua subarray A[l..pivot-1] dan
A[pivot+1..r] sehingga setiap elemen di dalam subarray A[l..pivot1] bernilai lebih
kecil atau sama dengan A[pivot]. Untuk menghitung nilai pivot merupakan bagian
dari prosedur partition.
b. Conqueror, urutkan subarray A[l..pivot1] dan A[pivot+1..r] secara rekursif
ke prosedur quicksort.
c. Combine, karena subarray sudah terurut, maka array A[l..r] sudah terurut.

2.3 Manfaat Metode Sorting


Adapun manfaat dari metode sorting ini yaitu:
a. Data yang terurut mudah untuk dicari, mudah untuk diperiksa, dan mudah
untuk dibetulkan jika terdapat kesalahan.
b. Data yang terurut dengan baik juga mudah untuk dihapus jika sewaktu-
waktu data tersebut tidak diperlukan lagi.
c. Selain itu, dengan mengurutkan data maka kita semakin mudah untuk
menyisipkan data atapun melakukan penggabungan data.

2.4 Tujuan Metode Sorting


Tujuan utama dari proses sorting ini adalah untuk mengurutkan data, baik
itu dari terendah ataupun tertinggi. Yang secara tidak langsung akan menjadikan
data lebih terstruktur, rapi dan teratur. Tujuan spesifik pengurutan data dengan
metode sorting yaitu:
1. Pengurutan data dalam struktur data sangat penting terutama untuk data yang
bertipe data numerik ataupun karakter.
2. Pengurutan dapat dilakukan secara ascending atau urut naik dan descending
atau urut turun.
3. Pengurutan atau sorting adalah proses pengurutan data yang sebelumnya
disusun secara acak sehingga tersusun secara teratur menurut aturan tertentu.
BAB III
PERMASALAHAN

3.1 Permasalahan
Pada permasalahan praktikum data structure pada pembahasan sorting
adalah sebagai berikut:
A. Buatlah sebuah program dengan menggunakan Bahasa pemrograman C
yang mengimplementasikan salah satu dari algoritma sorting diatas.
BAB IV
IMPLEMENTASI

4.1 Implementasi
A. Berikut merupakan pengimplementasi dari praktikum data structure pada
modul shorting:

Gambar 2.1 Program dari mengurutkan nilai mahasiswa


Pada gambar diatas ini menjelaskan tentang program yang bagaimana kita
untuk mengurutkan nilai mahasiswa.
Gambar 2.2 Hasil dari program pengurutan nilai mahasiswa
Pada gambar diatas ini menjelaskan bagaimana hasil dari program untuk
mengurutkan nilai mahasiswa.
BAB V
PENUTUP

5.1 Kesimpulan
Algoritma yang mudah dalam hal implementasi adalah Bubble Sort,
Selection Sort, dan Insertion Sort. Ketiganya memiliki kompleksitas O(n2). Di
antara algoritma ini, yang paling effisien adalah Insertion Sort. Algoritma yang
lebih mangkus adalah Merge Sort dan Quick Sort dengan kompleksitasnya adalah
O(n log n). Adapun yang paling mangkus dari lima algoritma ini adalah Quick
Sort.

Penggunaan algoritma
pengurutan dalam ilmu
komputer memang
sangat diperlukan
sebab kita tidak bisa
membuat algoritma dengan
prinsip “yang penting
jalan”. Bila ingin
mengurutkan data yang
sedikit jumlahnya maka
sebaiknya menggunakan
insertion sort.
Namun bila ingin
mengurutkan data yang
sangat banyak, merge sort
dan quick sort akan
menjadi pilihan yang
baik. Bubble sort sendiri
hanya sebuah algoritma
sederhana yang
sebaiknya tidak
diimplementasikan lag
Penggunaan algoritma pengurutan dalam ilmu komputer memang
sangat diperlukan sebab kita tidak bisa membuat algoritma dengan prinsip yang
penting jalan. Bila ingin mengurutkan data yang sedikit jumlahnya maka
sebaiknya menggunakan insertion sort. Namun bila ingin mengurutkan data
yang sangat banyak, merge sort dan quick sort akan menjadi pilihan yang baik.
Bubble sort sendiri hanya sebuah algoritma sederhana yang sebaiknya tidak
diimplementasikan lagi. Karena itu pemilihan kompleksitas waktu dan ruang
sangat penting di sini.
5.2 Saran
Pada praktikum kali ini kami sedikit membuat para praktikkan kewalahan,
disamping para praktikkan membuat laporan, para praktikkan juga harus membuat
program yang tidak boleh sama antara praktikkan yang satu dengan praktikkan
yang lain.

Anda mungkin juga menyukai