Anda di halaman 1dari 17

LAPORAN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN II

“SORTING”

Laporan project ini dibuat sebagai syarat untuk lulus mata kuliah Algoritma dan Pemrograman II

Berbasis objek

Disusun oleh :

Nadia Pramesti (2105903040103)

PROGRAM STUDI TEKNOLOGI INFORMASI

FAKULTAS TEKNIK

UNIVERSITAS TEUKU UMAR

TAHUN AJARAN 2021/2022


KATA PENGANTAR

Alhamdulillah puji syukur saya panjatkan atas Rahmat dan Karunia Allah, sehingga laporan
yang berjudul “Sorting” dapat diselesaikan dalam rangka syarat untuk kelulusan mata kuliah Algoritma
dan Pemrograman II berbasis objek. Shalawat serta salam penulis haturkan kepada Sang Revolusioner
sejati, Nabi Muhammad SAW, keluarga serta para sahabat yang telah membawa perubahan dengan
menghadirkan peradaban Islam rahmatalilalamin.

Harapan saya semoga laporan yang telah tersusun ini dapat bermanfaat sebagai salah satu
rujukan maupun pedoman bagi para pembaca, menambah wawasan serta pengalaman, sehingga
nantinya saya dapat memperbaiki bentuk ataupun isi laporan ini menjadi lebih baik lagi.

Sebagai penulis, saya mengakui bahwasanya masih banyak kekurangan yang terkandung di
dalamnya. Oleh sebab itu, dengan penuh kerendahan hati saya berharap kepada para pembaca untuk
memberikan kritik dan saran demi lebih memperbaiki laporan ini.

Meulaboh, 29 Mei 2022

Penulis

i
DAFTAR ISI

KATA PENGANTAR............................................................................................................................i

DAFTAR ISI..........................................................................................................................................ii

DAFTAR GAMBAR............................................................................................................................iii

BAB 1 PENDAHULUAN 1
A. Latar Belakang..........................................................................................................................1

B. Rumusan Masalah.....................................................................................................................1

C. Tujuan.......................................................................................................................................1

BAB II LANDASAN TEORI................................................................................................................2

2.1 Apa itu sorting?.........................................................................................................................2

2.2 Jenis-jenis sorting......................................................................................................................2

BAB III METODOLOGI......................................................................................................................9

3.1 Metodologi................................................................................................................................9

3.2 Algoritma..................................................................................................................................9

BAB IV PEMBAHASAN....................................................................................................................10

4.1 Source code.............................................................................................................................10

4.2 Output program.......................................................................................................................11

4.3 Penjelasan program.................................................................................................................11

BAB V KESIMPULAN.......................................................................................................................12

4.1 Kesimpulan.............................................................................................................................12

4.2 Saran.......................................................................................................................................12

DAFTAR PUSTAKA..........................................................................................................................13

ii
DAFTAR GAMBAR

Halaman

Gambar 1.1 Penganalogian insertion sort 6

Gambar 1.2 Pengurutan selection sort 7

Gambar 2.1 Tangkapan layar project 10

Gambar 2.2 Output program 11

iii
BAB I

PENDAHULUAN

1.1 Latar Belakang

Dengan berkembangnya Teknologi Informasi, yang membutuhkan kecepatan dan ketepatan pada
aneka macam aspek kehidupan. Kita dituntut untuk beranjak cepat pada segala hal, termasuk pula pada
bidang komunikasi informasi. Teknologi sangat berperan krusial pada kehidupan sehari – hari.

Bahasa pemograman sangat diperlukan pada keperluan tertentu, lantaran pekerjaan kita dalam saat
ini selalu mengikuti kemajuan teknologi. Demi menambah kepuasan warga sebagai sisi yg paling
ditonjolkan. Hal ini tentu saja semakin memantapkan posisinya menjadi bahasa penghantar antara
manusia yg bisa dipahami, dan bisa dijalankan oleh seseorang programmer. Ia sudah menjadi bagian
hidup masyarakat masa kini, bukan hanya menjadi asal informasi, namun pula gaya hidup dan
kebudayaan.

Di dalam komputer terdapat banyak sekali data yang jenisnya sangat beragam dan banyak. Agar data
tersebut dapat dengan mudah terbaca, saat penyisipan dan dalam pencarian maka data perlu diurutkan.
Namun kenyataanya dalam proses pengurutan tidak semudah yang dibayangkan karena dibalik proses
pengurutan ada algoritma yang harus dibuat sehingga proses pengurutan data dapat dilakukan dengan
secara efektif dan efisien.

Pengurutan data atau sorting merupakan salah satu jenis operasi penting dalam pengolahan data.
Hampir setiap saat dalam kehidupan sehari- hari sering dijumpai permasalahan-permasalahan yang harus
diselesaikan dengan melibatkan operasi pengurutan data. Begitu pentingnya operasi tersebut, sehingga
sampai saat ini telah banyak dikembangkan metode-metode pengurutan data dan mungkin akan tetap
bermunculan metode-metode baru.

1.2 Rumusan Masalah


1. Apa itu sorting?
2. Apa saja jenis-jenis sorting
3. Bagaimana penggunaan sorting?

1.3 Tujuan
1. Untuk memenuhi mata kuliah Algoritma dan Pemrograman II
2. Untuk mengetahui apa itu sorting.
3. Untuk mengetahui jenis-jenis sorting.

1
4. Untuk mengenal bagaimana penggunaan sorting.

BAB II

LANDASAN TEORI

2.1 Apa itu sorting?

Algoritma sorting adalah kumpulan langkah-langkah penyelesaian dalam suatu masalah dengan
metode tertentu, sedangkan sorting didefinisikan sebagai pengurutan sejumlah data berdasarkan nilai
kunci tertentu untuk mengurutkan nilai dari yang terkecil (ascending) atau sebaliknya (descending).

2.2 Jenis-jenis sorting

A. Bubble sort

Bubble sort merupakan salah satu jenis sorting. Ide dari algoritma ini adalah mengulang proses
pembandingan antara tiap-tiap elemen array dan menukarnya apabila urutannya salah. Pembandingan
elemen-elemen ini akan terus diulang hingga tidak perlu dilakukan penukaran lagi. Algoritma ini
termasuk dalam golongan algoritma comparison sort, karena menggunakan perbandingan dalam operasi
antar elemennya.

Langkah-langkah dalam pengurutan dalam bubble sort, sebagai berikut: misalkan kita
mempunyai sebuah array dengan elemen-elemen “ 4 2 5 3 9”. Proses yang akan terjadi apabila
menggunakan algoritma bubble sort adalah sebagai berikut:

Pass pertama

(4 2 5 3 9) menjadi (2 4 5 3 9)

(2 4 5 3 9) menjadi (2 4 5 3 9)

(2 4 5 3 9) menjadi (2 4 3 5 9)

(2 4 3 5 9) menjadi (2 4 3 5 9)

Pass kedua

(2 4 3 5 9) menjadi (2 4 3 5 9)

2
(2 4 3 5 9) menjadi (2 3 4 5 9)

(2 3 4 5 9) menjadi (2 3 4 5 9)

(2 3 4 5 9) menjadi (2 3 4 5 9)

Pass ketiga

(2 3 4 5 9) menjadi (2 3 4 5 9)

(2 3 4 5 9) menjadi (2 3 4 5 9)

(2 3 4 5 9) menjadi (2 3 4 5 9)

(2 3 4 5 9) menjadi (2 3 4 5 9)

Dilihat dari proses di atas, sebenarnya pada pass kedua, langkah kedua, array telah terurut.
Namun algoritma tetap dilanjutkan hingga pass kedua berakhir. Pass ketiga dilakukan karena definisi
terurut dalam algoritma bubble sort adalah tidak ada satupun penukaran pada suatu pass, sehingga pass
ketiga dibutuhkan untuk memverikasi keurutan array tersebut.

B. Quick sort

Quicksort merupakan Algoritma Sorting yang dikembangkan oleh C.A.R Hoare pada tahun1960
yang secara kasus rata-rata, membuat pengurutan O(n log n) untuk mengurutkan n item. Algoritma ini
juga dikenal sebagai Partition-Exchange Sort atau disebut sebagai Sorting pergantian pembagi. Pada
kasus terburuknya, algoritma ini membuat perbandingan O(n2 ), walaupun kejadian seperti ini sangat
langka. Quick sort sering lebih cepat dalam praktiknya dari pada algoritma O(n log n) yang lainnya. Dan
juga, urutan dan referensi lokalisasi memori quicksort bekerja lebih baik dengan menggunakan cache
CPU, jadi keseluruhan sorting dapat dilakukan hanya dengan ruang tambahan O(log n).

Pada masalah pengurutan data bilangan bulat (integer) secara terindeks pada suatu list atau array
dari bilangan yang paling besar sampai ke bilangan yang paling kecil atau sebaliknya. Tidak hanya dapat
diterapkan pada pengindeksan bilangan saja, namun juga untuk pengindeksan huruf (abjad) dari A ke Z
atau sebaliknya. Algoritma ini sangat baik diterapkan pada kasus pengindeksan kumpulan kata (library
sort utility) atau kumpulan bilangan atau kombinasinya.

Algoritma ini mengikuti langkah– langkah sebagai berikut :

1. Divide
3
Memilah rangkaian data menjadi dua subrangkaian A[p…q-1] dan A[q+1…r] dimana setiap unsur
A[p…q-1] adalah kurang dari atau sama dengan A[q] dan setiap unsur pada A[q+1…r] adalah lebih
besar atau sama dengan unsur pada A[q]. A[q] disebut sebagai unsur pivot. Perhitungan pada unsur q
merupakan salah satu bagian dari prosedur pemisahan.

2. Conquer

Mengurutkan unsur pada subrangkaian secara rekursif pada algoritma quicksort, langkah ”kombinasi”
tidak dilakukan karena telah terjadi pengurutan unsur – unsur pada sub-array. Quicksort termasuk pada
pendekatan sulit membagi, mudah menggabung (hard split/easy join).

Cara pemilihan pivot:

1) Pivot = unsur pertama/unsur terakhir/unsur tengah tabel

2) Pivot dipilih secara acak dari salah satu unsur tabel.

Pivot = unsur median tabel

Algoritma ini terdiri dari 4 langkah utama:

1. Jika struktur data terdiri dari 1 atau 0 elemen yang harus diurutkan, kembalikan struktur data tersebut
itu apa adanya.

2. Ambil sebuah elemen yang akan digunakan sebagai pivot point (point poros). (biasanya elemen yang
paling kiri)

3. Bagi struktur data menjadi dua bagian, satu dengan elemen-elemen yang lebih besar dari pada 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.

C. Merge sort

Merge sort adalah metode pengurutan yang menggunakan pola divide and conquer. Strateginya
adalah dengan membagi sekelompok data yang akan diurutkan menjadi beberapa kelompok kecil terdiri
dari maksimal dua nilai untuk dibandingkan dan digabungkan lagi secara keseluruhan. Langkah-langkah
Kerja dalam Merge sort:

4
1. Divide

Memilah elemen – elemen dari rangkaian data menjadi dua bagian dan mengulangi pemilahan hingga
satu elemen terdiri maksimal dua nilai.

2. Conquer

Mengurutkan masing-masing elemen.

3. Kombinasi

Mengkombinasikan dua bagian tersebut secara rekursif untuk mendapatkan rangkaian data berurutan.

Proses rekursi berhenti jika mencapai elemen dasar. Hal ini terjadi bilamana bagian yang akan
diurutkan menyisakan tepat satu elemen. Sisa pengurutan satu elemen tersebut menandakan bahwa
bagian tersebut telah terurut sesuai rangkaian.

D. Insertion short

Insertion sort adalah sebuah metode pengurutan data dengan menempatkan setiap elemen data
pada posisinya dengan cara melakukan perbandingan dengan data – data yang ada. Ide algoritma dari
metode insertion sort ini dapat dianalogikan sama seperti mengurutkan kartu, dimana jika suatu kartu
dipindah tempatkan menurut posisinya, maka kartu yang lain akan bergeser mundur atau maju sesuai
kondisi pemindahanan kartu tersebut. Dalam pengurutan data, metode ini dipakai bertujuan untuk
menjadikan bagian sisi kiri array terurutkan sampai dengan seluruh array diurutkan.

Penganalogian Insertion Sort dengan pengurutan kartu :

Berikut menjelaskan bagaimana algoritma Insertion Sort bekerja dalam pengurutan kartu, Anggaplah kita
ingi mengurutkan satu set kartu dari kartu yang bernilai paling kecil hingga yang paling besar.

1. Dimulai dengan posisi tangan kosong, dan semua kartu berada diatas meja. dan anggaplah
kita akan menyusun kartu ke tangan kiri kita.
2. Mengamil kartu pertama dari meja dan meletakannya ke tangan kiri.
3. Mengambil kartu kedua dan membandingkannya dengan kartu yang sudah ada di tangan kiri.

5
4. Jika kartu yang diambil dari meja memenuhi syarat perbandingan, maka kartu tersebut akan
diletakan didepan kartu yang dibandingkan, serta kartu yang lain yang telah dibandingkan
akan bergeser mundur (ke belakang).

Gambar 1.1 Penganalogian insertion


sort

E. Shell sort

Merupakan algoritma yang stau jenis dengan insertion sort, metode ini disebut juga dengan
metode pertambahan menurun (diminishing increment). Metode ini dikembangkan oleh Donald L. Shell
pada tahun 1959, sehingga sering disebut dengan Metode Shell Sort. Metode ini mengurutkan data
dengan cara membandingkan suatu data dengan data lain yang memiliki jarak tertentu, kemudian
dilakukan penukaran bila diperlukan.

6
F. Selection sort

Ide utama dari algoritma selection sort adalah memilih elemen dengan nilai paling rendah dan
menukar elemen yang terpilih dengan elemen ke-i. Nilai dari i dimulai dari 1 ke n, dimana n adalah
jumlah total elemen dikurangi 1.

Gambar 1.2 Pengurutan selection sort

Selection Sort diakui karena kesederhanaan algoritmanya dan performanya lebih bagus dari pada
algoritma lain yang lebih rumit dalam situasi tertentu. Algoritma ini bekerja sebagai berikut :

7
1. Mencari nilai minimum (jika ascending) atau maksimum (jika descending) dalam sebuah list
2. Menukarkan nilai ini dengan elemen pertama list
3. Mengulangi langkah di atas untuk sisa list dengan dimulai pada posisi kedua
4. Secara efisien kita membagi list menjadi dua bagian yaitu bagian yang sudah diurutkan, yang
didapat dengan membangun dari kiri ke kanan dan dilakukan pada saat awal, dan bagian list
yang elemennya akan diurutkan.

8
BAB III
METODOLOGI

3.1 Metodologi
Pada sorting ini saya menggunakan metode bubble sort, dimana metodologi ini dilakukan dengan
pola membawa nilai terbesar menjadi nilai index terakhir array. Jadi sistem ini melakukan pengecekan
nilai 1 dengan 2, lalu 2 dengan 3 sampai dengan data terakhir, bila nilai index yang lebih kecil lebih besar
maka akan dilakukan pertukaran. Proses ini dilakukan hingga jumlah data terurut.

3.2 Algoritma

1. Mulai
2. Masukkan jumlah mahasiswa
3. Masukkan nilai-nilai mahasiswa ke dalam array
4. Lakukan sorting sebanyak (jumlah data – 1) putaran
5. Jika angka yang ditunjuk pertama lebih besar daripada angka yang kedua, maka tukar
posisi angka kedua
6. Setelah proses sorting selesai, tampilkan proses sorting dari putaran pertama sampai
terakhir
7. Tampilkan isi nilai dalam array setelah sorting
8. Selesai

9
BAB IV
PEMBAHASAN

4.1 Source code

Gambar 2.1 Tangkapan layar project

10
4.2 Output program

Gambar 2.2 Output program

4.3 Penjelasan program


Program diatas dibuat untuk mengurutkan data yang sebelumnya belum urut menggunakan buble
sort dengan metode ascending. Berikut penjelasannya :
 Baris 7-12 : Ada beberapa variabel dengan tipe data integer.
 Baris 14-27 : Dibuat form input untuk user, dimana user akan memberi inputan banyaknya array
dari setiap index array dan array tersebut disimpan dalam variable.
 Baris 29-34 : Berisi perintah untuk menampilkan data yang telah di input.
 Baris 36-45 : Terjadi proses sorting, dimana program akan mengecek apakah setiap array ke index
lebih besar dibanding array ke index+1. Proses nya dilakukan dengan membandingkan data 1
dengan data lainnya, apabila data 1 lebih besar maka posisinya akan ditukar dengan data yang
lebih kecil. Begitupun seterusnya data 2 akan dibandingkan lagi dengan data-data lainnya sampai
data menjadi terurut.
 Baris 50-54 : Akan ditampilkan data yang diinput oleh user.
 Baris 55-59 : Akan menampilkan proses sorting dari data yang telah diinput,
 Baris 60-66 : Akan ditampilkan data yang sudah disorting.

11
BAB V
KESIMPULAN

5.1 Kesimpulan
1. Pada sorting pengurutan data dilakukan secara ascending (naik) dan descending (turun).
2. Sorting adalah pengurutan data yang sebelumnya disusun secara acak sehingga tersusun secara
teratur menurut aturan tertentu.
3. Sorting terdiri dari beberapa jenis yaitu : buble sort, quick sort, merge sort, insertion sort, shell
sort, dan selection sort.
4. Buble sort mengurutkan data dengan cara membandingkan elemen sekarang dengan elemen
berikutnya.
5. Quick sort mengurutkan data dengan pendekatan rekursif. Proses pengurutan dilakukan dengan
memecah kumpulan data menjadi dua bagian berdasarkan nilai pivot yang dipilih.
6. Merge sort mengurutkan data menggunakan pola divide and conquer. Strateginya adalah dengan
membagi sekelompok data yang akan diurutkan menjadi beberapa kelompok kecil terdiri dari
maksimal dua nilai untuk dibandingkan dan digabungkan lagi secara keseluruhan.
7. Insertion Sort teknik pengurutan data dilakukan dengan cara membandingkan dan mengurutkan
dua data pertama pada array, kemudian membandingkan data para array berikutnya apakah sudah
berada di tempat semestinya. Algorithma insertion sort seperti proses pengurutan kartu yang
berada di tangan kita.
8. Shell sort mengurutkan data dengan melakukan perbandingan angka pada 2 posisi dengan jarak
tertentu, jarak disini diartikan jarak posisi antara 2 bilangan yang ingin dibandingkan.
9. Selection sort merupakan kombinasi antara sorting dan searching, pada setiap proses akan dicari
elemen-elemen yang belum diurutkan yang memiliki nilai terkecil atau terbesar akan ditukarkan
ke posisi yang tepat di dalam array.

5.2 Saran
Setelah mempelajari materi tentang sorting diharapkan agar masih mencari kembali referensi
tentang jenis-jenis sorting lainnya untuk menambah pengetahuan.

12
DAFTAR PUSTAKA

Sonita, A., & Nurtaneo, F. (2015). Analisis Perbandingan Algoritma Bubble Sort, Merge Sort, Dan Quick
Sort Dalam Proses Pengurutan Kombinasi Angka Dan Huruf. Pseudocode, 2(2), 75-80.

Rachmat, N. (2018). Perbandingan Bubble Sort, Shell Sort Dan Kombinasi Bubble Sort Dengan Shell
Sort. Jusikom: Jurnal Sistem Komputer Musirawas, 3(1), 64-71.

E. Retnoningsih, “Algoritma Pengurutan Data ( Sorting ) Dengan Metode Insertion sort Dan Selection
sort,” Inf. Manag. Educ. Prof., Vol. 3, No. 1, Pp. 95–106, 2018.

Saptadi, A. H., & Sari, D. W. (2012). Analisis algoritma insertion sort, merge sort dan implementasinya
dalam bahasa pemrograman c++. Jurnal Infotel, 4(2), 10-17.

Rahadiansyah, Rizki. (2018, Maret 28). Macam-macam metode sorting. Diakses dari
https://rizkirahadiansyah.wordpress.com/2018/03/28/macam-macam-metode-sorting/

13

Anda mungkin juga menyukai