Anda di halaman 1dari 10

MAKALAH

“INSERTION SORT”

D
I
S
U
S
U
N

OLEH :

SULAINAR WIRA KUSUMA


NPM : 2314370101

UNIVERSITAS PEMBANGUNAN PANCA BUDI


FAKULTAS SISTEM KOMPUTER
2024
KATA PENGANTAR

Puji syukur saya ucapkan kepada Allah SWT berkar rahmat-Nya saya
dapat menyelesaikan makalah ini walaupun berbagai hambatan dan permasalah,
rencana untuk menyusun makalah ini dapat terwujud.
Makalah ini disusun untuk salah satu tugas mata kuliah Struktur Data dan
Algoritma pada Program Studi Sistem Komputer. Diharapkan setelah membaca
makalah ini mahasiswa dapat menambah wawasan dan dapat menganalisa
persoalan-persolahan yang dihadapkan.
Saya sadar makalah ini masih jauh dari sempurna. Tidak sedikit ide, saran,
dan kritik yang telah diberikan menjadi masukan bagi saya dalam menyelesaikan
makalah ini. Oleh karena itu, kami mengharapkan ide, kritik, dan saran yang
membangun atas isi makalah. Masukan tersebut akan dengan senang hati kami
terima guna perbaikan di kemudian hari.
Akhirnya, semoga makalah ini dapat memberikan pengetahuan kepada
pembaca sekalian dan Allah SWT selalu memberikan petunjuk dan bimbingan-
Nya pada kita semua.

Sei Lepan, 3 Februari 2024

Penyusun
I. Pendahuluan

Sorting atau pengurutan adalah proses menyusun elemen-elemen dengan


tata urut tertentu dan proses tersebut terimplementasi pada beberapa 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. 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.
Pengurutan data adalah proses yang umum dalam pengolahan informasi.
Algoritma pengurutan digunakan untuk mengatur data dalam susunan yang teratur
sehingga memudahkan pencarian dan pemrrosesan data. Algoritma insertion sort
adalah salah satu algoritma pengurutan sederhana yang efisien untuk jumlah data
yang tidak terlalu besar.

II. Pengertian Insertion Sort


Insertion sort adalah sebuah algoritma pengurutan yang membandingkan
dua elemen data pertama, kemudian mengecek elemen data berikutnya satu
persatu dan membandingkannya dengan elemen data yang telah diurutkan.
Insertion Sort adalah salah satu dari sekian banyaknya algoritma sorting yang
sering digunakan selain bubble sort.
Insertion Sort mempunyai algoritma yang berbeda dengan bubble sort.
Jenis sorting ini akan membandingkan dua elemen data pertama, mengurutkannya,
kemudian mengecek elemen data berikutnyasatu persatu dan membandingkannya
dengan elemen data yang telah diurutkan. Contoh implementasinya adalah saat
kita mengusun kartu sesuai nomornya, kita akan membandingkan kartu satu per
satu lalu menginsertnya ke tempat yang seharusnya.

III. Algoritma Insertion Sort


Algoritma insertion sort bekerja dengan membandingkan setiap elemen
data dengan elemen-elemen sebelumnya dan memasukkan setiap elemen ke dalam
posisi yang tepat dalam susunan yang sudah diurutkan sebelumnya. Langkah-
langkah algoritma insertion sort adalah sebagai berikut :
1. Langkah Awal : Pertama, anggaplah bahwa elemen pertama dalam
susunan sudah diurutkan. Oleh karena itu, kita mulai dari elemen kedua
(indeks 1) sebagai elemen yang akan disisipkan ke dalam susunan yang
sudah diurutkan.
2. Perbandingan dan Penyisipan : Setiap elemen yang belum diurutkan
dibandingkan dengan elemen-elemen sebelumnya dalam susunan yang
sudah diurutkan. Jika elemen yang dibandingkan lebih kecil dari elemen
sebelumnya, maka elemen tersebut disisipkan ke dalam posisi yang tepat
dallam susunan yang sudah diurutkan.
3. Iterasi : Langkah perbandingan dan penyisipan dilakukan untuk setiap
elemen dalam susunan yang belum diurutkan, sehingga setiap elemen akan
ditempatkan pada posisi yang tepat dalam susunan yang sudah diurutkan.
4. Selesai : Proses diulangi hingga seluruh elemen telah diurutkan, dan
susunan secara keseluruhan telah menjadi terurut.

IV. Macam-macam Metode Insertion Sort


1. Langsung (Straight Insertion Sort)
Ilustrasi dari langkah-langkah pengurutan dengan algoritma penyisipan
langsung (straight insertion sort) dapat dilihat pada tabel berikut :
Data Data Data Data Data Data Data Data Data Data
Literasi
[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
Awal 12 35 9 11 3 17 23 15 31 20

i=1 12 35 9 11 3 17 23 15 31 20
i=2 12 35 9 11 3 17 23 15 31 20

i=3 9 12 35 11 3 17 23 15 31 20
i=4 9 11 12 35 3 17 23 15 31 20

i=5 3 9 11 12 35 17 23 15 31 20
i=6 3 9 11 12 17 35 23 15 31 20

i=7 3 9 11 12 17 23 35 15 31 20

2. Metode Penyisipan Biner (Binary Insertion Sort)


Metode pengurutan dengan algoritma penyisipan biner (binary
insertion sort) memperbaiki metode pengurutan dengan algoritma
penyisipan langsung dengan melakukan proses pertimbangan yang
lebih sedikit sehingga proses pengurutan lebih cepat.
Metode penyisipan biner melakukan proses perbandingan dengan
membagi dua bagian data dari sisi 0 sampai dengan i-1 yang disebut
dengan bagian kiri dan kanan. Apabila data pada posisi i berada pada
jangkauan kiri maka proses perbandingan dilakukan hanya pada bagian
kiri dan menggeser posisi sampai i.

V. Analisis Kompleksitas
Analisis kompleksitas waktu algoritma insertion sort bergantung pada
jumlah elemen dalam susunan yang akan diurutkan. Dalam kasus rata-rata dan
kasus terburuk, kompleksitas waktu insertion sort adalah O (n2), dimana n adalah
jumlah elemen dalam susunan. Namun, dalam kasus terbaik ketika susunan sudah
terurut, kompleksitas waktu insertion sort adalah O (n).

VI. Proses Insertion Sort


Proses Insertion Sort yaitu Dimulai dari data ke-2, data ke-1 digunakan sebagai
pembanding. Jika data ke-2 lebih kecil dari data ke-1 maka data ke-2 akan
disisipkan ke data-1 dan data ke-1 akan bergeser ke belakang. selanjutnya data ke-
2 sibandingkan data ke-3, jika data ke-3 lebih kecil maka akan disispkan ke data
ke-2 dan data ke-2 akan bergeser. Proses ini akan terus berulang sampai semua
data terurut dengan benar :

step Array ← data Keterangan :


1. [1,2,4,7,9,12,13] ← [3] 3 < 13 ? benar. lanjut ke kiri.
2. [1,2,4,7,9,12,13] ← [3] 3 < 12 ? benar. lanjut ke kiri.
3. [1,2,4,7,9,12,13] ← [3] 3 < 9 ? benar. lanjut ke kiri.
4. [1,2,4,7,9,12,13] ← [3] 3 < 7 ? benar. lanjut ke kiri.
5. [1,2,4,7,9,12,13] ← [3] 3 < 4 ? benar. lanjut ke kiri.
6. [1,2,4,7,9,12,13] ← [3] 3 < 2 ? salah. berhenti.
7. [1,2,i,4,7,9,12,13]← [3] Geser data 4-13 ke kanan
8. [1,2,3,4,7,9,12,13] ← [x] Sisipkan 3 ke i. x adalah data. acak
selanjutnya jika ada

contoh program Insertion Sort :


1. #include <stdio.h>
2.
3. int main(){
4. int n, array[100], i, j, tmp;
5.
6. printf(“Masukkan jumlah banyaknya data:”);
7. scanf(“%”, &n);
8.
9. Printf(“Masukkan %d angka integer\n”, n);
10.
11. for(i = 0; i<n; i++){
12. scanf(“%”, &array[i]);
13. }
14.
15. for (i = 1; i <=n; i++){
16. j = i;
17. while(j > 0 && array[j-1] > array[j]){
18. tmp = array[j];
19. array[j] = array[j-1];
20. array[j-1] = tmp;
21.
22. j--;
23. }
24. }
25.
26. printf(“Hasil pengurutan sebagai berikut:\n”);
27.
28. for (i = 0; i <= n-1; i++){
29. print(“%d”, array[i]);
30. }
31. printf(“\n”);
32.
33. return 0;
34. }

Penjelasan :
Baris 4 : Mendeklarasikan variabel n, array [100], tmp yang berupa
integer.
Baris 6-7 : memasukkan nilai dari user untuk dimasukkan kedalam variabel
n.
Baris 9-13 : melakukan perulangan untuk memasukkan nilai-nilai kedalam
array.
Baris 15-24 : proses algoritma insertion sort untuk memabandingkan dan
pertukaran elemen-elemen array.
Baris 26-31 : melakukan perulangan untuk menampilkan hasil proses
pengurutan insertion sort.

Contoh Inputan :
Masukkan jumlah banyaknya data: 10
Masukkan 10 angka integer
6,9,21,14,3,52,107,99,5,1
Hasil pengurutan sebagai berikut:
1 3 5 6 9 14 21 52 99 10
Dari hasil program algoritma insertion sort tersebut menampilkan hasil
pengurutan yang
sesuai. berikut ada langkah-langkah proses pengurutan yang dilakukan program:

PROSES SORTING ARRAY [6, 9, 21, 14, 3, 52, 107, 99, 5, 1]


Putaran ke- 1 [6 9 21 14 3 52 107 99 5 1]
elemen pembanding: 6
Hasil Pemindahan: [6 9 21 14 3 52 107 99 5 1]
Putaran ke- 2 [6 9 21 14 3 52 107 99 5 1]
elemen pembanding: 9
Hasil Pemindahan: [6 9 21 14 3 52 107 99 5 1]
Putaran ke- 3 [6 9 21 14 3 52 107 99 5 1]
elemen pembanding: 21
Hasil Pemindahan: [6 9 21 14 3 52 107 99 5 1]
Putaran ke- 4 [6 9 21 14 3 52 107 99 5 1]
elemen pembanding: 14
Proses perbandingan: 21 dengan 14 : tukar posisi
Hasil Pemindahan: [6 9 14 21 3 52 107 99 5 1]
Putaran ke- 5 [6 9 14 21 3 52 107 99 5 1]
elemen pembanding: 3
Proses perbandingan: 21 dengan 3 : tukar posisi
Proses perbandingan: 14 dengan 3 : tukar posisi
Proses perbandingan: 9 dengan 3 : tukar posisi
Proses perbandingan: 6 dengan 3 : tukar posisi
Hasil Pemindahan: [3 6 9 14 21 52 107 99 5 1]
Putaran ke- 6 [3 6 9 14 21 52 107 99 5 1]
elemen pembanding: 52
Hasil Pemindahan: [3 6 9 14 21 52 107 99 5 1]
Putaran ke- 7 [3 6 9 14 21 52 107 99 5 1]
elemen pembanding: 107
Hasil Pemindahan: [3 6 9 14 21 52 107 99 5 1]
Putaran ke- 8 [3 6 9 14 21 52 107 99 5 1]
elemen pembanding: 99
Proses perbandingan: 107 dengan 99 : tukar posisi
Hasil Pemindahan: [3 6 9 14 21 52 99 107 5 1]
Putaran ke- 9 [3 6 9 14 21 52 99 107 5 1]
elemen pembanding: 5
Proses perbandingan: 107 dengan 5 : tukar posisi
Proses perbandingan: 99 dengan 5 : tukar posisi
Proses perbandingan: 52 dengan 5 : tukar posisi
Proses perbandingan: 21 dengan 5 : tukar posisi
Proses perbandingan: 14 dengan 5 : tukar posisi
Proses perbandingan: 9 dengan 5 : tukar posisi
Proses perbandingan: 6 dengan 5 : tukar posisi
Hasil Pemindahan: [3 5 6 9 14 21 52 99 107 1]
Putaran ke- 10 [3 5 6 9 14 21 52 99 107 1]
elemen pembanding: 1
Proses perbandingan: 107 dengan 1 : tukar posisi
Proses perbandingan: 99 dengan 1 : tukar posisi
Proses perbandingan: 52 dengan 1 : tukar posisi
Proses perbandingan: 21 dengan 1 : tukar posisi
Proses perbandingan: 14 dengan 1 : tukar posisi
Proses perbandingan: 9 dengan 1 : tukar posisi
Proses perbandingan: 6 dengan 1 : tukar posisi
Proses perbandingan: 5 dengan 1 : tukar posisi
Proses perbandingan: 3 dengan 1 : tukar posisi
Hasil Pemindahan: [1 3 5 6 9 14 21 52 99 107]
Dari analisa proses pengurutan diatas terdapat 10 kali putaran dan setiap
putaran melakukan satu per satu perbandingan dari elemen kiri index array sampai
kanan index array denganvtentangga kiri index dan berurutan tanpa mengulang
dari awal sebelah kiri indexnya.

VII. Kelebihan dan Kekurangan Insertion Sort


- Kelebihan
1. Sederhana dalam penerapannya.
2. Mangkus dalam data yang kecil.
3. Jika list sudah terurut atau sebagian terurut maka Insertion Sort
akan lebih cepat dibandingkan dengan Quicksort.
4. Mangkus dalam data yang sebagian sudah terutut.
5. Lebih mangkus dibandingkan Bubble Sort dan Selection Sort.
6. Loop pada Insertion Sort sangat cepat, sehingga membuatnya salah
satu algoritma pengurutan tercepat pada jumlah elemen yang
sedikit.
7. Stabil
- Kekurangan
1. Banyaknya operasi yang diperlukan dalam mencadri posisi yang
tepat untuk elemen larik.
2. Untuk larik yang jumlahnya besar ini tidak praktis.
3. Jika list terurut terbalih sehingga setiap eksekusi dari perintah
harus memindai dan mengganti seluruh bagian sebelum
menyisipkan elemen berikutnya.
4. Membutuhkan waktu O (n2) pada data yang tidak terurut, sehingga
tidak cocok dalam pengurutan elemen dalam jumlah besar.

VIII. Evaluasi Kinerja


Evaluasi kinerja algoritma insertion sort dapat dilakukan dengan
menggunakan berbagai data uji yang berbeda. Kami melakukan eksperimen
dengan berbagai ukuran data dan mencatat waktu eksekusi untuk membandingkan
kinerja algoritma dalam kondisi yang berbeda.
X. Kesimpulan
Insertion Sort adalah Salah satu algoritma sorting yang paling sederhana.
Insertion Sort disebut sebagai metode pertengahan. Artinya, metode ini memiliki
kecepatan ratarata antara metode (bubble dan selection) dan modern (merge dan
quick). Metode ini, didasarkan pada sebuah kunci yang diambil pada elemen ke-2
lalu menyisipkan elemen tersebut jika kondisi percabangan terpenuhi. Metode
penyisipan (insertion) bertujuan untuk menjadikan bagian sisi kiri terurutkan
sampai dengan seluruh element berhasil diurutkan.

XI. Penutup
Makalah ini memberikan gambaran menyeluruh tentang algoritma
insertion sort, dari penjelasan konseptual hingga implementasi dan evaluasi
kinerja. Diharapkan makalah ini dapat memberikan pemahaman yang lebih baik
tentang algoritma pengurutan ini dan kontribusi potensialnya dalam berbagai
konteks pengolahan data.

XII. Daftar Pustaka


Buku Logika & Algoritma II
http://informatika.stei.itb.ac.id/
http://www.firmanway.com/2013/04/contoh-makalah.html
http://fairuzelsaid.wordpress.com/2009/12/28/struktur-data-algoritma
implementasi-bublesort-dalam-bahasa-c/id.scribd.com

Anda mungkin juga menyukai