Disusun untuk memenuhi salah satu tugas mata kuliah Struktur Data
SORTING
Dosen Pengampu :
Disusun Oleh :
2020
1
KATA PENGANTAR
Puji syukur dengan menyebut nama Allah SWT. Yang Maha Pengasih lagi Maha
Penyayatelah memberikan berkah ilmu dan karunia kesehatan sehingga dapat menyelesaikan
tugas Critical Jurnal Review dalam mata kuliah Struktur Data tanpa ada hambatan besar
dalam proses pengerjaannya.
Pembuatan Critical Jurnal Review ini dikerjakan dengan bantuan berbagai pihak
sehingga dapat menyelesaikan laporan ini dengan tepat sesuai dengan sistematika yang telah
ditentukan. Maka dari itu ucapan terima kasih tercurahkan kepada semua pihak yang telah
membantu dalam proses pembuatan laporan tugas Critical Jurnal Review ini.
Adapun laporan yang telah selesai dikerjakan ini masih memiliki kekurangan dari
berbagai sisi sehingga dengan tangan terbuka penulis menerima saran dan kritik dari pembaca
terhadap Critical Jurnal Review ini, sehingga penulis dapat memperbaiki penulisan laporan
dalam Critical Jurnal Review kedepannya.
Akhir kata penulis berharap laporan ini akan memberikan manfaat dan inspirasi bagi
berbagai pihak yang telah membaca laporan ini.
Penyusun
2
DAFTAR ISI
KATA PENGANTAR...........................................................................................................2
DAFTAR ISI..........................................................................................................................3
BAB I PENDAHULUAN......................................................................................................4
1.1.Latar Belakang..............................................................................................................4
1.2.Tujuan...........................................................................................................................4
1.3.Manfaat.........................................................................................................................4
BAB II ISI JURNAL .............................................................................................................5
2.1.Identitas Jurnal..............................................................................................................5
2.2.Ringkasan Jurnal..........................................................................................................5
2.2.1.Ringkasan Jurnal 1....................................................................................................6
2.2.2.Ringkasan Jurnal 2....................................................................................................6
2.2.2.Ringkasan Jurnal 3....................................................................................................6
2.2.2.Ringkasan Jurnal 4....................................................................................................6
2.2.2.Ringkasan Jurnal 5....................................................................................................6
2.2.2.Ringkasan Jurnal 6....................................................................................................6
BAB III PEMBAHASAN......................................................................................................8
3.1.Kelebihan dan Kekurangan..........................................................................................8
BAB IV PENUTUP...............................................................................................................9
4.1.Kesimpulan...................................................................................................................9
4.2.Saran.............................................................................................................................9
DAFTAR PUSTAKA..........................................................................................................10
3
BAB I
PENDAHULUAN
Jurnal ilmiah adalah majalah publikasi yang memuat karya tulis ilmiah yang secara nyata
mengandung data dan informasi yang mengajukan iptek dan ditulis sesuai dengan kaidah-
kaidah penulisan ilmiah yabg diterbitkan secara berkala.
Sumber data dan informasi ilmiah yang dijadikan dasar penyusun seperti jurnal yang
merupakan tulisan yang mengandung data dan infornasi dengan kaidah-kaidah yang tepat.
Pengajuan tugas untuk mereview jurnal, memiliki tujuan untuk mempermudah dalam
memahami inti dari hasil penelitian yang telah dilakukan, agar tujuan tersebut tercapai maka
diperlukan suatu panduan yang sistematis untuk mereview jurnal, sehingga dalam mereview
jurnal tersebut semakin mudah untuk dipahami.
1.2 Tujuan
a) Menyelesaikan tugas yang diberikan oleh dosen pengampu pada mata kuliah Struktur
Data.
b) Menambah pengetahuan tentang sorting.
c) Meningkatkan cara berpikir dalam menggali informasi yang terdapat dalam jurnal
yang dibandingkan.
d) Menguatkan keterampilan berpikir kritis dalam memahami penelitian yang
dilaksanakan dalam jurnal.
1.3 Manfaat
a) Menambah penetahuan tentang hasil penelitian yang terdapat dalam jurnal.
b) Melatih kemampuan penulis dalam mengkritisi suatu jurnal.
c) Menumbuh pola pikir kreatif dalam membandingkan isi jurnal pada keadaan
lingkungan sekitar.
d) Dapat mengusai materi setelah membandingkan enam jurnal.
4
BAB II
ISI JURNAL
a. Identitas Jurnal 1
Jurnal : Komputasi
Tahun : 2017
Kota Terbit :
b. Identitas Jurnal 2
Jurnal : Evolusi
Tahun : 2016
c. Identitas Jurnal 3
Judul : Analisis Perbandingan Algoritma Bubble Sort, Merge Sort, dan Quick Sort
dalam Proses Pengurutan Kombinasi Angka dan Huruf
Jurnal : Pseudocode
Tahun : 2015
5
d. Identitas Jurnal 4
Judul : Analisis Algoritma Insertion Sort, Merge Sort Dan Implementasinya Dalam
Bahasa Pemrograman C++
Jurnal : Pseudocode
Tahun : 2013
e. Identitas Jurnal 5
Tahun : 2016
f. Identitas Jurnal 6
Tahun : 2018
6
2.2 Ringkasan Jurnal
2.2.1 Ringkasan Jurnal 1
Pengurutan (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 (proses pengurutan data
dari data yang paling kecil sampai data yang paling besar) dan descending (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.
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 kerja 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.
BubbleSort(data,n):
FOR i 0 TO data.size()-1
FOR j 0 TO data.size()-(i+1)
FOR k 0 TO data.get(j)size()-1
hasil=data.get(j).get(k)- data.get(j+1).get(k)
IF hasil !=0
IF hasil<0
// Lakukan Penukaran
Swap(data,j,j+1)
END IF
BREAK
END-IF
END FOR
END-FOR
END-FOR
B. Selection Sort
Selection Sort adalah suatu metode pengurutan yang membandingkan elemen yang
sekarang dengan elemen berikutnya sampai ke elemen yang terakhir. Jika ditemukan elemen
lain yang lebih kecil dari elemen sekarang maka dicatat posisisnya dan langsung ditukar.
Konsep proses Selection Sort adalah mencari (memilih) nilai terkecil dan menukarnya
dengan elemen paling awal (paling kiri) pada setiap tahap. Proses Sort dilakukan tahap per
tahap.
Konsep Selection Sort secara descending adalah melakukan pemilihan dari suatu nilai
yang terbesar dan kemudian menukarnya dengan elemen paling awal, lalu membandingkan
dengan elemen yang sekarang dengan elemen berikutnya sampai dengan elemen terakhir,
perbandingan dilakukan terus sampai tidak ada lagi pertukaran data.
SelectionSort(data,data.size())
: FOR i 0 TO
data.size()-1
awal=i
FOR j i+1 TO data.size()-1
FOR k 1 TO data.get(j).size -1
hasil=data.get(awal).get(k)- data.get(j).get(k)
IF hasil !=0
IF hasil<0
// Lakukan Penukaran
awal=j
END IF
BREAK
END-IF
END FOR
END-FOR
Swap(data,i,awal);
A
END-FOR
Algoritma Selection Sort Menggunakan ArrayList Multidimensi
8
2.2.2 Ringkasan Jurnal 2
Pengurutan data (sorting) adalah suatu proses pengurutan data yang tersusun secara
acak pada suatu pola tertentu, sehingga tersusun secara teratur menurut aturan tertentu.
pengurutan ini dapat dilakukan dengan cara ascending dan descending serta digunakan juga
untuk mengurutkan data yang bertipe angka atau karakter.
A. Insertion Sort
Insertion Sort adalah sebuah algortima sederhana yang cukup efisien untuk mengurutkan
sebuah list yang hampir terurut. Algoritma ini juga bisa digunakan sebagai bagian algoritma
yang lebih canggih. Cara kerja algoritma ini adalah dengan mengambil elemen list satu-per-
satu dan memasukkannya di posisi yang benar seperti namanya. Pada array, list yang baru
dan elemen sisanya dapat berbagi tempat di array, meskipun cukup rumit. Untuk menghemat
memori, implementasinya menggunakan pengurutan di tempat yang membandingkan elemen
saat itu dengan elemen sebelumnya yang sudah diurut, lalu menukarnya terus sampai
posisinya tepat. Hal ini terus dilakukan sampai tidak ada elemen tersisa di input.
B. Selection Sort
Selection sort adalah suatu metode pengurutan yang membandingkan elemen yang
sekarang dengan elemen berikutnya sampai ke elemen yang terakhir. Jika ditemukan elemen
lain yang lebih kecil dari elemen sekarang maka dicatat posisinya dan langsung ditukar.
Metode selection sort adalah melakukan pemilihan dari suatu nilai yang terkecil dan
kemudian menukarnya dengan elemen paling awal, lalu membandingkan dengan elemen
yang sekarang dengan elemen berikutnya sampai dengan elemen terakhir, perbandingan
dilakukan terus sampai tidak ada lagi pertukaran data.
C. Bubble Sort
Bubble sort adalah suatu metode pengurutan yang membandingkan elemen yang
sekarang dengan elemen berikunya, jika elemen sekarang > elemen berikutnya maka
posisinya ditukar, kalau tidak, tidak perlu ditukar, misalnya untuk n = 7 maka akan dilakukan
( n – 1 ) = 6 tahap (mulai dari 0 sampai dengan n - 2).
Algoritma bubble sort ini melakukan perbandingan antara setiap elemen, kemudian
melakukan penukaran jika terdapat elemen yang tidak sesuai urutannya atau salah.
Perbandingan akan terus dilakukan sehingga tidak ada lagi pertukaran data.
9
D. Quick Sort
Quick Sort adalah sebuah algoritma sorting dari model Divide and Conquer yaitu
dengan cara mereduksi tahap demi tahap sehingga menjadi 2 bagian yang lebih kecil.
Quick Sort merupakan algoritma yang sangat cepat dibandingkan dengan algirtma
sorting lainnya, karena algoritma quick sort ini melakukan sorting dengan membagi masalah
menjadi sub masalah dan sub masalah dibagi lagi menjadi sub-sub masalah sehingga sorting
tersebut menjadi lebih cepat walaupun memakan ruang memori yang besar.
B. Kompleksitas Algoritma
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.
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),
10
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).
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.
Sorting atau pengurutan adalah proses menyusun elemen – elemen dari masukan awal
acak menjadi keluaran akhir tertata dengan urutan tertentu[3]. Proses tersebut
diimplementasikan dalam bermacam aplikasi. Contoh penerapannya antara lain berupa
rincian transaksi sesuai urutan tanggal dan jam pada perbankan, daftar hadir yang diurutkan
berdasarkan nomor induk dan daftar pustaka yang diurutkan sesuai abjad pengarang ataupun
katalog buku di perpustakaan. Fungsi-fungsi statistik seperti median dan pembuatan kuartil
data (quarter), desil dan percentil (percentile) mensyaratkan data untuk diurutkan terlebih
dahulu.
Beberapa macam algoritma sorting telah dibuat karena proses tersebut sangat
mendasar dan sering digunakan. Oleh karena itu, pemahaman atas algoritma – algoritma
yang ada sangatlah berguna. Selain menjadi suatu aplikasi yang berdiri sendiri,
pengurutan juga biasanya menjadi suatu bagian dari algoritma yang lebih besar.
Output: Suatu permutasi atau penyusunan kembali dari input sedemikian rupa sehingga
pada tata urutan ascending (dari nilai kecil ke besar) atau pada tata urutan
descending (dari nilai besar ke kecil).
Sebagai contoh jika diberikan masukan lima bilangan acak maka keluarannya adalah
sebagaimana berikut ini:
Input: 2 5 4 1
3 (n = 6)
Output: 1 2 3 4
6 (ascending)
6 5 4 3
1 (descending
)
11
Data yang diurutkan tidak harus berupa angka, namun bisa saja string, misalnya: Input:
Saptadi Windisari Desi
Hendra Arief (n = 5) Output: Arief Desi Hendra
Pengurutan juga bisa diterapkan secara tidak langsung pada sekelompok data. Misalkan
untuk kelima data nama di atas, hendak diurutkan dari nama dengan jumlah karakter terkecil
hingga nama dengan jumlah karakter terbanyak. Sehingga keluarannya diperoleh:
Saptadi Windisari
• data yang akan diurutkan dalam tipe yang sama atau setidaknya memperoleh
perlakuan data yang sama
Pembahasan untuk tiap metode akan difokuskan pada cara kerja pengurutan
beserta contohnya, analisa algoritma untuk kondisi terburuk (worst case), rata-
rata (average case), terbaik (best case), implementasinya dalam bahasa C++
serta pengujian waktu eksekusi untuk kedua metode tersebut.
2.2.5 Ringkasan Jurnal 5
Pengurutan adalah satu hal yang sangat penting dalam dunia keinformatikaan. Terutama dalam
pengelolaan data. Sering kali, dengan pengurutan, proses pengelolaan data dapat dilakukan dengan
lebih mudah dan efisien. Binary Search contohnya, pasti lebih efisien daripada algoritma pencarian
biasa yang lebih konvensional. Namun kita dapat melakukan Binary Search jika data yang
bersangkutan belum diurut terlebih dahulu.
Ada berbagai macam algoritma pengurutan. Namun hanya beberapa yang dipakai sebagai
“pengenalan” terhadap siswa-siswa di suatu institusi. Di antaranya adalah Selection Sort dan
12
Insertion Sort. Kedua algoritma Pengurutan ini lah yang menjadi fokus pembahasan pada makalah
ini.
Untuk dapat mengetahui seberapa efisien suatu algoritma, dipakailah teori kompleksitas algoritma
sebagai dasar kajian. Kompleksitas terbagi atas dua, yaitu kompleksitas waktu dan kompleksitas
ruang.
Kompleksitas cenderung tidak dibahas, karena hal tersebut berkenaan dengan struktur data yang
digunakan untuk mengimplementasikan algoritma. Sementara topik tersebut di
luar kajian Matematika Diskrit[1].
Kompleksitas Waktu, T(n), adalah jumlah operasi yang dilakukan untuk melaksanakan algoritma
sebagai fungsidari ukuran masukan n. Maka, dalam mengukur kompleksitas waktu dihitunglah
banyaknya operasi yang dilakukan oleh algoritma. Idealnya, kita memang harus menghitung semua
operasi yang ada dalam suatu algoritma. Namun, untuk lasan praktis, cukup menghitung jumlah
operasi abstrak yang mendasari suatu algoritma.
Pada algoritma pengurutan, terutama pada pengurutan dengan perbandingan, operasi dasar adalah
operasioperasi perbandingan elemen-elemen suatu larik dan operasi pertukaran elemen. Kedua hal
itu dihitung secara terpisah, karena jumlah keduanya tidaklah sama.
Biasanya kompleksitas algoritma dinyatakan secara asimptotik dengan notasi big-O. Jika
kompleksitas waktu untuk menjalankan suatu algoritma dinyatakan dengan
T(n) ≤ C(f(n)) untuk n ≥ n0, maka kompleksitas dapat dinyatakan dengan T(n) = O(f(n)).
1. Infinite asymptotics
2. Infinitesimal asymptotics
2.2.6 Ringkasan Jurnal 6
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 dua yaitu :
• ascending (pengurutan dari karakter/angka kecil ke karakter/angka besar).
• descending (pengurutan dari karakter/angka besar ke karakter/angka kecil).
Ada banyak alasan dan keuntungan dengan mengurutkan data. Data yang terurut mudah
untuk dicari, mudah untuk diperiksa, dan mudah untuk dibetulkan jika terdapat kesalahan.
Data yang terurut dengan baik juga mudah untuk dihapus jika sewaktu-waktu data tersebut
13
tidak diperlukan lagi. Selain itu, dengan mengurutkan data maka kita semakin mudah untuk
menyisipkan data atapun melakukan penggabungan data.
BAB III
PEMBAHASAN
14
3.1.Kelebihan dan Kekurangan
Kelebihan Jurnal :
1. Dari aspek pemaparan materi, keenam jurnal dilihat dari aspek ruang lingkup isi
memiliki cakupan isi yang begitu luas, dan kedua jurnal dilengkapi dengan berbagai
pendapat orang lain sehingga wawasan pembaca tidak hanya sekilas mengenai
sorting, tetapi dari adanya pendapat orang lain pembaca memiliki arti yang begitu
luas mengenai sorting, sehingga penalaran pembaca tentang sorting ataupun isi dari
jurnal menjadi lebih baik.
2. Dari aspek tata bahasa, keenam jurnal menggunakan bahasa yang sangat mudah untuk
dipahami, menggunakan bahasa yang sederhana sehingga yang disampaikan penulis
dapat dengan mudah dipahami oleh pembaca dan pembaca tidak salah konsep dalam
mengaplikasikannya dalam kehidupan berorganisasi.
Kekurangan Jurnal :
1. Dari aspek tata bahasa, pada jurnal kedua terdapat beberapa penggunaan bahasa asing
dalam mengemukakan isi jurnal, sehingga pembaca tidak beberapa pembaca kurang
mengerti akan isi jurnal tersebut.
2. Dari beberapa jurnal kami review terdapat pemaparan tentang poin poin sorting yang
kurang lengkap seperti tidak menyertakan contoh berupa gambaran tentang sorting.
3. Dari jurnal yang kami review juga terdapat peletakan titik,koma yang salah.
BAB IV
PENUTUP
15
4.1 Kesimpulan
Pengurutan (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 (proses pengurutan data
dari data yang paling kecil sampai data yang paling besar) dan descending (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.
4.2 Saran
16
DAFTAR PUSTAKA
Anisya Sonita, Febrian Nurtaneo ;2015; Analisis Perbandingan Algoritma Bubble Sort,
Merge Sort, dan Quick Sort dalam Proses Pengurutan Kombinasi Angka dan Huruf; :
Universitas Muhammadiyah Bengkulu:Bengkulu. Vol. 3 No.1
Arief Hendra Saptadi ; 2013. Analisis Algoritma Insertion Sort, Merge Sort Dan
Implementasinya Dalam Bahasa Pemrograman C++ ; Universitas Sriwijaya Palembang:
Pelembang. Vol. 8 No.2
Roma Rio Sitepu, Machudor Yusman, Febi Eka Febriansyah; 2017; Implementasi Bubble
Sort dan Selection Sort Menggunakan Arraylist Multidimensi pada Pengurutan Data Multi
Prioritas; Jurnal Komputasi; Vol. 5 No. 1.
Setia Negara B. Tjaru ,2016.Selection Sort Dan Insertion Sort Kompleksitas Algoritma
Pengurutan.ITB: Banndung. Vol. 12 No.7
17