Anda di halaman 1dari 9

JOBSHEET

INSERTION SORT ALGORITHM

Oleh:
HENDRAWATY, ST., MT.

PROGRAM STUDI TEKNIK INFORMATIKA


JURUSAN TEKNOLOGI INFORMASI DAN KOMPUTER
POLITEKNIK NEGERI LHOKSEUMAWE
2020

i
LABORATORIUM : TELEMATIKA
POLITEKNIK NEGERI LHOKSEUMAWE 
PENGUJIAN : INSERTION SORT ALGORITHM 

I. Capaian Praktikum/Kompetensi 

 Mahasiswa dapat menjelaskan cara kerja algoritma insertion sort.


 Mahasiswa dapat mengimplementasikan algoritma insertion sort dalam bentuk
program.
 Mahasiswa dapat menerapkan algoritma insertion sort dalam kasus sederhana.

II. Keselamatan Kerja 


 Praktikum hanya dapat dilakukan atas petunjuk dosen pengasuh atau instruktur. 
 Pastikan semua peralatan dalam keadaan baik sebelum dan sesudah melakukan
praktikum serta menjaga semua peralatan yang digunakan. 
 Perlu mematuhi semua peraturan yang berlaku dalam laboratorium yang
digunakan 
 Sebelum melakukan praktikum agar selalu mengawali dengan berdoa 

III. Teori 

Pengurutan (sorting) adalah proses mengatur sekumpulan obyek menurut


urutan atau susunan tertentu. Urutan tersebut dapat menaik (ascending) atau menurun
(descending). Jika diberikan n buah elemen disimpan di dalam larik L, maka :
 pengurutan menaik adalah L[0] < L[1] < L[2] < … < L[n-1]
 pengurutan menurun adalah L[0] > L[1] > L[2] > … > L[n-1]
Bermacam-macam metode yang dipakai untuk melakukan pengurutan, antara lain
Bubble Sort, Selection Sort, Insertion Sort, Shell Sort, Quick Sort, Merge Sort. Pada job
sheet ini khusus dibahas mengenai algoritma insertion sort.
Algoritma Insertion sort bekerja dengan cara membandingkan elemen dengan
semua elemen sebelumnya (elemen yang berada sisi sebelah kirinya), dimulai dari
elemen ke-2 yang berada pada indeks ke-1. Kemudian membandingkan elemen ke 2
tersebut dengan elemen sebelumya (berada disebelah kirinya) yaitu elemen 1 yang


 
berada pada indeks 0. kemudian meng-insert nilai yang dibandingkan ke posisi yang
seharusnya. Perhatikan langkah-langkah dibawah ini. Misalkan terdapat sebuah
larik/array yang memiliki 5 buah elemen, seperti tampak pada Gambar 1.

Indeks  0 1 2 3 4
30 10 40 20 50
Elemen  1 2 3 4 5

Gambar 1. Elemen pada Array sebelum proses insert.

Langkah-langkah pengurutan menaik, menggunakan algoritma insertion sort.

Iterasi ke-1, dimulai dari indeks = 1.

1. Simpan nilai pada indeks 1 ke variable sementara temp. L[1] = 10, temp =
L[1], maka temp = 10.
2. Bandingkan nilai temp dengan nilai pada indeks 0 ( indeks yang terletak di sisi
kiri indeks 1).
temp < L[0]
10 < 30  jawabannya benar.

Jika benar, maka nilai 30 dipindahkan atau dicopy ke indeks yang ada
disebelah kanannya, yaitu indeks 1. Sehingga hasilnya menjadi seperti pada
gambar 2.

Indeks  0 1 2 3 4
30 30 40 20 50
Elemen  1 2 3 4 5

Gambar 2. Elemen Array setelah nilai L[0] di copy ke L[1]

3. Kemudian isi variable temp, dipindahkan ke indeks 0. L[0] = temp. sehingga


hasilnya menjadi:
Indeks  0 1 2 3 4
10 30 40 20 50
Elemen  1 2 3 4 5

Gambar 3. Elemen array hasil iterasi ke-1

Di akhir iterasi ke-1, dua elemen pertama sudah terurut.


 
Iterasi ke-2, dimulai dari indeks = 2.

Input larik/array pada iterasi kedua adalah seperti pada Gambar 4.

Indeks  0 1 2 3 4
10 30 40 20 50
Elemen  1 2 3 4 5
Gambar 4. Elemen larik/array pada awal iterasi ke-2

1. Simpan isi indeks 2 ke variable temp. L[2] = 40, temp=L[2], maka temp = 40.
2. Bandingkan nilai temp dengan nilai indeks 1.
temp < L[1]
40 < 30  jawabannya salah.

Jika salah, maka tidak ada perpindahan. Sehingga elemen larik/array tetap:

Indeks  0 1 2 3 4
10 30 40 20 50
Elemen  1 2 3 4 5

Gambar 5. Elemen array saat logika temp < L[1] bernilai salah
Jika kondisi dari temp < L[1] salah, maka temp tidak perlu dibandingkan lagi
dengan L[0], karena L[0] dan L[1] sudah terurut. Sehingga hasil dari iterasi
ke-2 adalah:

Indeks  0 1 2 3 4
10 30 40 20 50
Elemen  1 2 3 4 5

Gambar 6. Elemen array hasil iterasi ke-2

Iterasi ke-3, dimulai dari indeks = 3.


Input larik/array pada iterasi kedua adalah:

Indeks  0 1 2 3 4
10 30 40 20 50
Elemen  1 2 3 4 5
Gambar 7. Elemen larik/array pada awal iterasi ke-3

1. Simpan nilai pada indeks 3 ke variable sementara temp. L[3] = 20,


temp = L[3], maka temp = 20.


 
2. Bandingkan nilai temp dengan nilai pada indeks 2. temp < L[2]
20 < 40  jawabannya benar.

Jika benar, maka nilai 40 dipindahkan atau dicopy kesebelah kanannya ( ke


indeks 3). Sehingga hasilnya menjadi :
Indeks  0 1 2 3 4
10 30 40 40 50
Elemen  1 2 3 4 5

Gambar 8. Elemen Array setelah nilai L[2] di copy ke L[3]


3. Kemudian bandingkan nilai temp dengan nilai yang ada pada indek-1.
temp < L[1]
20 < 30  jawabannya benar.
Jika benar, maka nilai 30 dipindahkan atau dicopy ke indeks yang berada
disebelah kanannya, yaitu indeks 2. Sehingga hasilnya menjadi :
Indeks  0 1 2 3 4
10 30 30 40 50
Elemen  1 2 3 4 5

Gambar 9. Elemen Array setelah nilai L[1] di copy ke L[2]


4. Kemudian bandingkan lagi nilai temp dengan nilai yang ada pada indek-0.
temp < L[0]
20 < 10  jawabannya salah.
Jika salah, maka tidak ada perubahan atau perpindahan. Sehingga hasilnya
menjadi :
Indeks  0 1 2 3 4
10 30 30 40 50
Elemen  1 2 3 4 5

Gambar 10. Elemen Array saat logika temp < L[0] bernilai salah

5. selanjutnya nilai temp akan dipindahkan atau dicopikan ke indek 1.


L[1] = temp, sehingga hasilnya menjadi seperti Gambar 11.
Indeks  0 1 2 3 4
10 20 30 40 50
Elemen  1 2 3 4 5

Gambar 11 .Elemen array hasil iterasi ke-3


 
Iterasi ke-4, dimulai dari indeks = 4.

Input larik/array pada iterasi ke-4 adalah:

Indeks  0 1 2 3 4
10 20 30 40 50
Elemen  1 2 3 4 5

Gambar 12. Elemen array pada awal iterasi ke-4

1. Simpan nilai pada indeks 4 ke variable sementara temp. L[4] = 50, temp=L[4],
maka temp = 50.
2. Bandingkan nilai temp dengan nilai pada indeks 3 ( indeks yang terletak di sisi
kiri indeks 4).
temp < L[3]
50 < 40  jawabannya salah.

Jika salah, maka tidak ada perubahan atau perpindahan. Sehingga elemen pada
larik/array menjadi tetap:

Indeks  0 1 2 3 4
10 20 30 40 50
Elemen  1 2 3 4 5

Gambar 13. Elemen array saat logika temp < L[3] bernilai salah

Jika kondisi dari temp < L[3] salah, maka temp tidak perlu dibandingkan lagi
dengan L[2], L[1], dan L[0]. karena sudah terurut. Sehingga hasil dari iterasi
ke-4 adalah:

Indeks  0 1 2 3 4
10 20 30 40 50
Elemen  1 2 3 4 5

Gambar 14. Elemen array hasil iterasi ke-4

IV. Alat/Bahan 
1. Komputer Pribadi (Personal Computer) 
2. Perangkat Lunak Dev-C++, gcc, vim atau pico


 
V. Prosedur Praktikum 

1. Buatlah flowchart untuk mengilustrasikan proses pengurutan pada insertion


sort berdasarkan langkah langkah yang telah dijelaskan diatas. 
2. Buatlah program insertion sort berdasarkan langkah langkah yang telah
dijelaskan diatas, untuk pengurutan menaik (ascending).  
3. Buatlah program insertion sort berdasarkan langkah langkah yang telah
dijelaskan diatas, untuk pengurutan menurun (descending). 

VI. Data Percobaan

Buat program seperti tugas diatas dan hasil eksekusinya dalam borang berikut;

Tabel 1. Program dan Hasil Eksekusi

No
Program (Source Code) Hasil (Output)
Perc.
1.
2.
3.
4.

VII. Analisa dan Kesimpulan

1. Analisa hasil dari eksekusi program diatas, berikan maksud dari setiap baris
program yang diberikan.
2. Dari hasil percobaan yang dilakukan, buat kesimpulan dari masing-masing
percobaan diatas.

VIII. Daftar Pustaka

Jain, H. (2017). Problem Solving in Data Structures & Algorithms Using C. Bhopal,
India.

Tutorialspoint. (2016). Data Structures & Algorithms Simply Easy Learning, Tutorial
points Ltd, www.tutorialspoint.com.


 

Anda mungkin juga menyukai