BAB V
TEKNIK SORTING
A. TEORI
Teknik sorting merupakan Teknik yang digunakan untuk mengurutkan suatu data
berdasarkan aturan tertentu. Algoritma penyortiran digunakan untuk mengatur ulang array atau list
elemen yang diberikanberdasarkan aturan tertentu. Biasanya kita menggunakan operator
perbandingan untuk melakukan proses sorting tersebut. Operator perbandingan digunakan untuk
menentukan urutan dari elemen baru pada suatu struktur data.
Sorting mengacu pada teknik pengaturan dan mengatur ulang kumpulan data dalam urutan
tertentu. Kumpulan “records” yang disebut daftar dimana setiap record dapat memiliki satu field atau
lebih. Field yang berisi nilai unik disebut sebagai “key field”. Misalnya, direktori nomor telepon
dapat dianggap sebagai record dimana setiap record memiliki 3 field.yaitu nama, alamat, dan nomor
telepon. No telepon yang unik dapat menjadi key field untuk menemukan record apapun dalam list
data.
Penyortiran merupakan operasi yang dilakukan untuk mengatur record suatu tabel atau
daftar dalam suatu urutan sesuai dengan kriteria tertentu. Sorting dilakukan berdasarkan nilai kunci
(key value) dari setiap record.
Setiap record dapat diurutkan baik secara numerik ataupun alfanumerik. Record kemudian
diatur dalam urutan menaik atau menurun tergantung pada nilai kunci numerik.
Terdapat banyak jenis teknik sorting, 4 diantaranya sebagai berikut:
• Insertion sort
• Bubble Sort
• Merge Sort
• Selection sort
1. Insertion sort
Insertion sort adalah mekanisme penyortiran. Elemen array dibandingkan satu sama lain
secara berurutan dan kemudian diatur secara bersamaan dalam beberapa urutan tertentu. Analoginya
seperti gaya kita mengatur setumpuk kartu. Sortir ini bekerja berdasarkan prinsip memasukkan
elemen pada posisi tertentu, oleh karena itu namanya Insertion Sort.
Pengurutan insertion sort, salah satu metode sorting yang umum digunakan dalam
melakukan sorting. Algoritma ini melakukan pengurutan data dengan cara membandingkan data satu
persatu. Insertion sort membandingkan data ke-i dan i+1, dimana dengan metode ini akan melakukan
proses traversal, algoritma ini menentukan posisi array setelah dibandingkan, jika data ke-i dan i+1
79
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
sudah betul posisinya (ascending/descending), maka tidak perlu lagi memeriksa posisi data
sebelumnya, karena sudah bisa dipastikan data tersebut sudah benar, namun jika tidak,
pembandingan data akan dilakukan terhadap elemen i-1, dan seterusnya hingga posisi data sudah
benar.
Agar dapat lebih mudah dipahami berikut contoh sorting menggunakan insertion sort.
Dimisalkan terdapat 5 elemen data dalam array sebagai berikut :
0 1 2 3 4
25 17 31 13 2
1) Iterasi pertama
a. Bandingkan elemen pertama dan ke-2 yaitu, 25 dengan 17.
0 1 2 3 4
25 17 31 13 2
b. Hasil perbandingan menunjukkan 17 < 25, maka kita tukar posisi keduanya sehingga
posisi data saat ini adalah sebagai berikut:
0 1 2 3 4
17 25 31 13 2
c. Karena tidak ada lagi data di sebelah kiri 17 saat ini, atau karena 17 berada pada index
paling pertama maka 17 tidak dibandingkan lagi dengan nilai di sebelah kirinya.
2) Iterasi kedua
a. Pembandingan dimulai dari elemen ke-2 atau index 1 yaitu 25 terhadap 31.
0 1 2 3 4
17 25 31 13 2
b. Namun, karena posisi 25 terhadap 31 sudah benar , dimana 25<31. Maka posisi tetap,
tidak terjadi pertukaran.
0 1 2 3 4
17 25 31 13 2
3) Iterasi ketiga
a. Pembandingan dilanjutkan ke elemen ke-3 atau index 2 yaitu 31 terhadap elemen
disebelah kanannya yaitu 13.
80
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
0 1 2 3 4
17 25 31 13 2
b. Hasil perbandingan menunjukkan 13 < 31, maka kita tukar posisi keduanya sehingga
posisi data saat ini adalah sebagai berikut:
0 1 2 3 4
17 25 13 31 2
c. Namun belum berhenti di sini, masih ada elemen yang belum dibandingkan dengan 13
yaitu elemen pertama dan kedua. Sekarang bandingkan 13 dengan 25.
0 1 2 3 4
17 25 13 31 2
d. Hasil perbandingan menunjukkan 13 < 25, maka kita tukar posisi keduanya sehingga
posisi data saat ini adalah sebagai berikut:
0 1 2 3 4
17 13 25 31 2
0 1 2 3 4
17 13 25 31 2
f. Hasil perbandingan menunjukkan 13 < 17, maka kita tukar posisi keduanya sehingga
posisi data saat ini adalah sebagai berikut:
0 1 2 3 4
13 17 25 31 2
g. Karena tidak ada lagi data di sebelah kiri 13 saat ini, atau karena 13 berada pada index
paling pertama maka 13 tidak dibandingkan lagi dengan nilai di sebelah kirinya.
81
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
4) Iterasi keempat
a. Pada iterasi kedua posisi terakhir adalah pada elemen ke-3 atau indeks ke-2. Maka dari
itu sekarang kita bandingkan nila elem ke-4 dengan elemen ke-5 yaitu 31 dan 2.
0 1 2 3 4
13 17 25 31 2
b. Hasil perbandingan menunjukkan 2 < 31, maka kita tukar posisi keduanya sehingga
posisi data saat ini adalah sebagai berikut:
0 1 2 3 4
13 17 25 2 31
0 1 2 3 4
13 17 25 2 31
d. Hasil perbandingan menunjukkan 2 < 25, maka kita tukar posisi keduanya sehingga
posisi data saat ini adalah sebagai berikut:
0 1 2 3 4
13 17 2 25 31
0 1 2 3 4
13 17 2 25 31
f. Hasil perbandingan menunjukkan 2 < 17, maka kita tukar posisi keduanya sehingga
posisi data saat ini adalah sebagai berikut:
0 1 2 3 4
13 2 17 25 31
82
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
0 1 2 3 4
13 2 17 25 31
h. Hasil perbandingan menunjukkan 2 < 13, maka kita tukar posisi keduanya sehingga
posisi data saat ini adalah sebagai berikut:
0 1 2 3 4
2 13 17 25 31
i. Karena sudah tidak ada lagi nilai yang perlu dibandingkan maka proses sorting berhenti
dan menghasilkan urutan data yang telah terurut sebagai berikut:
0 1 2 3 4
2 13 17 25 31
83
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
2. Bubble Sort
Bubble Sort adalah algoritma pengurutan paling sederhana yang bekerja dengan berulang
kali menukar elemen yang berdekatan jika urutannya salah. Pada teknik ini kita membandingkan
elemen yang berdekatan, dan cek apakah posisinya salah. Jika posisinya salah maka lakukan
pertukaran posisi data.
Katakanlah kita memiliki array dengan panjang ’n’. Untuk mengurutkan data dalam array,
kita lakukan proses pertukaran untuk n-1 indeks. Sederhananya, data ke indeks ke-i yang lebih besar
akan bergeser ke indeks sebelah kanan (lebih besar), dan data pada indeks yang posisinya diambil
berpindah ke sebalah kiri. Kemudian data yang lebih besar tadi dibandingkan lagi dengan data
sebelah kanannya jika posisinya salah maka ditukar lagi. Begitu seterusnya hingga semua data
terurut dengan benar.
Agar dapat lebih mudah dipahami berikut contoh sorting menggunakan insertion sort.
Dimisalkan terdapat data dalam array sebagai berikut :
0 1 2 3 4
25 17 31 13 2
1) Iterasi 1
a. Pertama kita bandingkan elemen pertama dan ke-2 yakni 25 dan 17.
0 1 2 3 4
25 17 31 13 2
0 1 2 3 4
17 25 31 13 2
c. Kemudian kita proses elemen ke-2 dan ke-3 yakni 25 dengan 31.
0 1 2 3 4
17 25 31 13 2
d. Karena 25<31 artinya posisi sudah benar maka tidak terjadi pertukaran. Data berada
padaposisi tetap
0 1 2 3 4
17 25 31 13 2
84
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
0 1 2 3 4
17 25 31 13 2
0 1 2 3 4
17 25 13 31 2
0 1 2 3 4
17 25 13 31 2
0 1 2 3 4
17 25 13 2 31
0 1 2 3 4
17 25 13 2 31
2) Iterasi kedua
a. Bandingkan kembali elemen pertama dan kedua yakni 25 dan 17.
0 1 2 3 4
17 25 13 2 31
0 1 2 3 4
17 25 13 2 31
85
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
0 1 2 3 4
17 13 25 2 31
0 1 2 3 4
17 13 25 2 31
0 1 2 3 4
17 13 2 25 31
0 1 2 3 4
17 13 2 25 31
3) Iterasi ketiga
a. Bandingkan kembali elemen pertama dan kedua yakni 17 dan 13.
0 1 2 3 4
17 13 2 25 31
0 1 2 3 4
13 17 2 25 31
0 1 2 3 4
13 17 2 25 31
86
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
0 1 2 3 4
13 2 17 25 31
0 1 2 3 4
13 2 17 25 31
4) Iterasi keempat
a. Bandingkan kembali elemen pertama dan kedua yakni 17 dan 13.
0 1 2 3 4
13 2 17 25 31
0 1 2 3 4
2 13 17 25 31
0 1 2 3 4
2 13 17 25 31
87
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
3. Merge Sort
Merge sort merupakan teknik penyortiran yang didasarkan pada pemisahan list/array
menjadi 2 buah list dengan ukuran yang sebanding. Hasil pembagian kedua list kemudian dibagi
kembali menjadi 2 bagian hingga elemen terkecilnya. Setleah elemn terkecilnya ditemukan maka
elemen tersebut dibandingkan dengan elemen pasangannya sebelumnya, jika posisinya salah maka
dilakukan pertukaran. Setlah dimerge kemudian elemen tersebut dibandingkan kembali dengan
setiap elemen pasangan hasil pecahan diatasnya kembali dan dilakukan penyortiran kembali. Begitu
seterusnya hingga list kembali dimerge menjadi 1 list.
Agar dapat lebih mudah dipahami berikut contoh sorting menggunakan merge sort.
Dimisalkan terdapat data dalam array sebagai berikut :
0 1 2 3 4 5 6
35 24 40 0 6 50 7
1) Divide-iterasi 1
a. Pertama kita membagi array menjadi 2 bagian yang seimbang, sehingga array saat ini
Nampak sebagai berikut:
0 1 2 3 4 5 6
35 24 40 0 6 50 7
2) Divide-iterasi 2
a. Kemudian dengan cara yang sama, setiap list dibagi menjadi dua bagian lagi
0 1 2 3 4 5 6
35 24 40 0 6 50 7
88
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
3) Divide-iterasi 3
a. Kemudian dengan cara yang sama, setiap list dibagi menjadi dua bagian lagi
0 1 2 3 4 5 6
35 24 40 0 6 50 7
4) Merging-iterasi 1
a. Untuk pasangan pertama, bandingkan kedua nilainya. Karena 24<35, maka posisinya
ditukar.
0 1 2 3 4 5 6
24 35 40 0 6 50 7
b. Untuk pasangan kedua, bandingkan kedua nilainya. Karena 0<40, maka posisinya
ditukar.
0 1 2 3 4 5 6
24 35 0 40 6 50 7
c. Untuk pasangan ketiga, bandingkan kedua nilainya. Karena 6<50, maka posisinya tetap.
0 1 2 3 4 5 6
24 35 0 40 6 50 7
d. Untuk pasangan keempat, karena indeks ke-6 tidak memiliki pasangan maka posisinya
tetap.
0 1 2 3 4 5 6
24 35 0 40 6 50 7
0 1 2 3 4 5 6
24 35 0 40 6 50 7
89
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
5) Merging-iterasi 2
a. Setelah dimerging, sekarang saatnya membandingkan kembali setiap elemen
berdasarkan pasangan list sebelumnya. Untuk yang pertama adalah pasangan list 0-1
dan 2-3.
b. Bandingkan indeks-0 dengan indeks-2. 0<24 maka masukkan 0 ke indeks 0 temporary
0 1 2 3 4 5 6
24 35 0 40 6 50 7
0 1 2 3 4 5 6
0
0 1 2 3 4 5 6
24 35 0 40 6 50 7
0 1 2 3 4 5 6
0 24
0 1 2 3 4 5 6
24 35 0 40 6 50 7
0 1 2 3 4 5 6
0 24 35
90
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
e. Terakhir untuk pasangan list ini, karena 40 adalah nilai terakhir, masukkan 40 ke indeks-
3 temporary.
0 1 2 3 4 5 6
24 35 0 40 6 50 7
0 1 2 3 4 5 6
0 24 35 40
0 1 2 3 4 5 6
24 35 0 40 6 50 7
0 1 2 3 4 5 6
0 24 35 40 6
0 1 2 3 4 5 6
24 35 0 40 6 50 7
0 1 2 3 4 5 6
0 24 35 40 6 7
h. Terakhir untuk pasangan list ini, karena 50 adalah nilai terakhir, masukkan 50 ke indeks-
6 temporary.
0 1 2 3 4 5 6
24 35 0 40 6 50 7
0 1 2 3 4 5 6
0 24 35 40 6 7 50
91
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
i. Sehingga saat ini diperoleh pasangan list dengan urutan sebagai berikut
0 1 2 3 4 5 6
0 24 35 40 6 7 50
6) Merging-iterasi 3
a. Selanjutnya membandingkan setiap nilai dari kedua pasng list tersebut.
b. Dimulai dari indeks-0 dengan indeks-4. Karena 0<6 maka 0 dimasukkan ke indeks-0
temporary.
0 1 2 3 4 5 6
0 24 35 40 6 7 50
0 1 2 3 4 5 6
0
0 1 2 3 4 5 6
0 24 35 40 6 7 50
0 1 2 3 4 5 6
0 6
0 1 2 3 4 5 6
0 24 35 40 6 7 50
0 1 2 3 4 5 6
0 6 7
92
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
0 1 2 3 4 5 6
0 24 35 40 6 7 50
0 1 2 3 4 5 6
0 6 7 24
0 1 2 3 4 5 6
0 24 35 40 6 7 50
0 1 2 3 4 5 6
0 6 7 24 35
0 1 2 3 4 5 6
0 24 35 40 6 7 50
0 1 2 3 4 5 6
0 6 7 24 35 40
h. Terakhir untuk pasangan list ini, karena 50 adalah nilai terakhir, masukkan 50 ke indeks-
6 temporary
0 1 2 3 4 5 6
0 24 35 40 6 7 50
0 1 2 3 4 5 6
0 6 7 24 35 40 50
93
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
0 1 2 3 4 5 6
0 6 7 24 35 40 50
4. Selection Sort
Selection sort merupakan pengembangan dari metode bubble sort dengan mengurangi
jumlah perbandingan dalam prosesnya. Selection sort merupakan metode pengurutan dengan
mencari nilai data terkecil dimulai dari data diposisi 0 hingga diposisi N-1. Algoritma selection sort
akan memindai nilai terkecil dari suatu kumpulan data dan jika ada, data tersebut akan diletakkan
pada urutan pertama. Begitu selanjutnya untuk urutan kedua dan seterusnya.
Dikatakan selection sort karena algoritma ini mencoba memilih satu per satu elemen data
dari posisi awal, untuk mencari data paling kecil dengan mencatat posisi indexnya saja, lalu
dilakukan pertukaran hanya sekali pada akhir setiap tahapan.
Algoritma Selection Sort dilakukan untuk menyempurnakan kekurangan dari bubble sort
yang melakukan pertukaran setiap kali perbandingan memenuhi kriterianya.Agar dapat lebih mudah
dipahami berikut contoh sorting menggunakan merge sort. Dimisalkan terdapat data dalam array
sebagai berikut :
0 1 2 3 4
60 20 15 16 10
94
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
1) Iterasi 1
a. Jadikan indeks-0 sebagai nilai pivot
0 1 2 3 4
60 20 15 16 10
60
b. Kemudian kita bandingkan nilai pivot dengan indeks-1 yakni 60 dan 20.
0 1 2 3 4
60 20 15 16 10
60
0 1 2 3 4
60 20 15 16 10
20
0 1 2 3 4
60 20 15 16 10
20
0 1 2 3 4
60 20 15 16 10
15
95
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
0 1 2 3 4
60 20 15 16 10
15
0 1 2 3 4
60 20 15 16 10
15
0 1 2 3 4
60 20 15 16 10
15
60 20 15 16 10
10
j. Karena indeks-4 adalah indeks terakhir, sehingga nilai ini dianggap sebagai nilai
terkecil. Tukar elemen indeks-4 dengan elemen indeks-0. Sampai pada tahap ini, elemen
indeks-0 sudah tetap.
0 1 2 3 4
10 20 15 16 60
96
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
2) Iterasi 2
a. Selanjutnya kita mulai kembali pada indeks-1. Jadikan elemen indeks-1 sebagai pivot
0 1 2 3 4
10 20 15 16 60
20
b. Kemudian kita bandingkan nilai pivot dengan indeks-2 yakni 20 dan 15.
0 1 2 3 4
10 20 15 16 60
20
0 1 2 3 4
10 20 15 16 60
15
d. Kemudian kita bandingkan nilai pivot dengan indeks-3 yakni 15 dan 16.
0 1 2 3 4
10 20 15 16 60
15
0 1 2 3 4
10 20 15 16 60
15
97
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
f. Kemudian kita bandingkan nilai pivot dengan indeks-4 yakni 15 dan 60.
0 1 2 3 4
10 20 15 16 60
15
0 1 2 3 4
10 20 15 16 60
15
h. Karena indeks-4 adalah indeks terakhir. Tukar elemen indeks pivot dengan elemen
indeks-1. Sampai pada tahap ini, elemen indeks-1 sudah tetap
0 1 2 3 4
10 15 20 16 60
3) Iterasi 3
a. Sekarang kita mulai kembali dari indeks-2, jadikan elemennya sebagai pivot.
0 1 2 3 4
10 15 20 16 60
20
b. Kemudian kita bandingkan nilai pivot dengan indeks-3 yakni 20 dan 16.
0 1 2 3 4
10 15 20 16 60
20
98
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
0 1 2 3 4
10 15 20 16 60
16
d. Kemudian kita bandingkan nilai pivot dengan indeks-4 yakni 16 dan 60.
0 1 2 3 4
10 15 20 16 60
16
0 1 2 3 4
10 15 20 16 60
16
f. Karena indeks-4 adalah indeks terakhir. Tukar elemen indeks pivot dengan elemen
indeks-2. Sampai pada tahap ini, elemen indeks-2 sudah tetap
0 1 2 3 4
10 15 16 20 60
4) Iterasi 4
a. Sekarang kita mulai kembali dari indeks-3, jadikan elemennya sebagai pivot.
0 1 2 3 4
10 15 16 20 60
20
99
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
b. Kemudian kita bandingkan nilai pivot dengan indeks-4 yakni 20 dan 60.
0 1 2 3 4
10 15 16 20 60
20
0 1 2 3 4
10 15 16 20 60
20
d. Karena indeks-4 adalah indeks terakhir. Tukar elemen indeks pivot dengan elemen
indeks-3. Kebetulan pivot adalah nilai pada indeks-3 sehingga tidak perlu ditukar.
0 1 2 3 4
10 15 16 20 60
5) Iterasi 5
a. Karena indeks-4 adalah indeks terakhir maka sampai pada tahap ini, elemen indeks-4
sudah tetap
0 1 2 3 4
10 15 16 20 60
b. Sehingga saat ini kita telah memperoleh list dengan elemen terurut
0 1 2 3 4
10 15 16 20 60
100
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
B. PRAKTIKUM
Praktikum 5.1. Insertion Sort ASC
1. Buatlah project baru dengan ketentuan berikut
Nama file :“namapanggilanmu”_Praktikum_5_1
Tipe template :Console Application
Ekstensi :.cpp
#include <stdlib.h>
#include <iostream>
101
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
// fungsi utama
int main()
{
int array[6] = {5, 1, 6, 2, 4, 3};
// Mmanggil fungsi insertionSort() untuk mengurutkan array
insertionSort(array, 6);
return 0;
}
}
cout << "Array yang telah diurutkan: ";
// memanggil fungsi untuk menampilkan array yang telah
diurutkan
printArray(arr, length);
}
102
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
int j;
for (j = 0; j < size; j++)
{
cout <<" "<< array[j];
}
cout << endl;
}
Output:
Tempel screenshot
output di sini
103
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
2. Algoritma
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
104
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
int n, i, arr[50], j, temp;
cout<<"Masukkan jumlah elemen :";
cin>>n;
cout<<"Masukkan ke-"<<n<<" angka tersebut:";
for(i=0; i<n; i++)
{
cin>>arr[i];
}
cout<<"Penyortiran array menggunakan bubble sort...\n";
for(i=0; i<(n-1); i++)
{
for(j=0; j<(n-i-1); j++)
{
if(arr[j]>arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
105
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
}
cout<<"Elemen berhasil diurutkan..!!\n";
cout<<"elemen diurutkan secara ascending :\n";
for(i=0; i<n; i++)
{
cout<<arr[i]<<" ";
}
getch();
}
Output:
Tempel screenshot
output di sini
106
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
Jawab:
1.
2. Algoritma
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
107
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
#include <iostream>
108
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
{
temp[k] = a[j];
k++;
j++;
}
}
109
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
{
int mid;
if (low < high)
{
mid=(low+high)/2;
// membagi data menjadi dua bagian
MergeSort(a, low, mid);
MergeSort(a, mid+1, high);
int main()
{
int n, i;
cout<<"\nMasukkan jumlah elemen data yang akan diurutkan:
";
cin>>n;
int arr[n];
for(i = 0; i < n; i++)
{
cout<<"Masukkan elemen: "<<i+1<<": ";
cin>>arr[i];
}
MergeSort(arr, 0, n-1);
110
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
return 0;
}
Output:
Tempel screenshot
output di sini
#include <stdio.h>
int main()
{
int array[100], n, c, d, position, t;
111
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
scanf("%d", &array[c]);
return 0;
}
Output:
Tempel screenshot
output di sini
112
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
C. LATIHAN
1. Buatlah program dengan teknik Shell Sort
2. Tuliskan algoritma Shell Sort
Jawaban Latihan
1. Shell Sort
2. Algoritma
…………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………
113
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
…………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………
114
MODUL STRUKTUR DATA – TEKNIK KOMPUTER – FT UNM-ANDI BASO KASWAR
CATATAN
115