Disusun oleh :
Nama : Nadia
Nim : 2023903430070
Kelas : TRKJ-1B
Dosen Pengampun : Indrawati, S.ST., M.T
2023
KATA PENGANTAR
Dengan menyebut nama Allah SWT yang Maha Pengasih lagi Maha
Panyayang, Saya panjatkan puja dan puji syukur atas kehadirat-Nya, yang
telah melimpahkan rahmat, hidayah, kepada Saya, sehingga Saya bisa selesaikan
tugas ini.
Tugas ini sudah selesai Saya susun dengan maksimal dengan membaca
beberapa sumbernya, saya menyadari seutuhnya bahwa masih jauh dari kata
sempurna baik dari segi susunan kalimat maupun tata bahasanya.
Akhir kata Saya meminta semoga memberi manfaat ,inspirasi dan bisa menjadi
pedoman .
Nadia
NIM 2023903430070
1
DAFTAR ISI
A.Pengurutan ....................................................................................................... 3
B.Pencarian........................................................................................................ 14
2
BAB I
PENDAHULUAN
A.PENGURUTAN
Konsep:
Bubble Sort adalah algoritma sederhana yang bekerja dengan cara
membandingkan dan menukar elemen secara berurutan jika mereka berada
dalam urutan yang salah.
Iterasi dari awal hingga akhir array dilakukan, dan setiap iterasi
memastikan bahwa elemen terbesar bergerak ke posisi yang benar.
Proses ini terus berlanjut hingga tidak ada lagi pertukaran yang perlu
dilakukan, menandakan bahwa array sudah terurut.
3
Algoritma:
1 i←0
2 selama (i < N-1) kerjakan baris 3 sampai dengan 7
3 j←N-1
4 Selama (j >= i) kerjakan baris 5 sampai dengan 7
5 Jika (Data[j-1] > Data[j]) maka tukar Data[j-1] dengan Data[j]
6 j←j–1
7 i←i+1
4
Contoh kasus pengurutan Bubble short
Data Data Data Data Data Data Data Data Data Data
(0) (1) (2) (3) (4) (5) (6) (7) (8) (9)
literasi
awal 12 4 7 9 3 8 6 10 33 5
i:1j=9 12 4 7 9 3 8 6 10 33 5
j=8 12 4 7 9 3 8 6 10 5 33
j=7 12 4 7 9 3 8 6 5 10 33
j=6 12 4 7 9 3 8 5 6 10 33
j=5 12 4 7 9 3 5 8 6 10 33
j=4 12 4 7 9 3 5 8 6 10 33
j=3 12 4 7 3 9 5 8 6 10 33
j=2 12 4 3 7 9 5 8 6 10 33
j=1 12 3 4 7 9 5 8 6 10 33
i:2j=9 3 12 4 7 9 5 8 6 10 33
j=8 3 12 4 7 9 5 8 6 10 33
j=7 3 12 4 7 9 5 8 6 10 33
j=6 3 12 4 7 9 5 6 8 10 33
j=5 3 12 4 7 9 5 6 8 10 33
j=4 3 12 4 7 5 9 6 8 10 33
j=3 3 12 4 5 7 9 6 8 10 33
j=2 3 12 4 5 7 9 6 8 10 33
i:3j=9 3 4 12 5 7 9 6 8 10 33
j=8 3 4 12 5 7 9 6 8 10 33
j=7 3 4 12 5 7 9 6 8 10 33
j=6 3 4 12 5 7 9 6 8 10 33
5
j=5 3 4 12 5 7 6 9 8 10 33
j=4 3 4 12 5 6 7 9 8 10 33
j=3 3 4 12 5 6 7 9 8 10 33
i:4 3 4 5 12 6 7 9 8 10 33
j=9
j=8 3 4 5 12 6 7 9 8 10 33
j=7 3 4 5 12 6 7 9 8 10 33
j=6 3 4 5 12 6 7 8 9 10 33
j=5 3 4 5 12 6 7 8 9 10 33
j=4 3 4 5 12 6 7 8 9 10 33
i:5j=9 3 4 5 6 12 7 8 9 10 33
j=8 3 4 5 6 12 7 8 9 10 33
j=7 3 4 5 6 12 7 8 9 10 33
j=6 3 4 5 6 12 7 8 9 10 33
j=5 3 4 5 6 12 7 8 9 10 33
i:6 j=9 3 4 5 6 7 12 8 9 10 33
j=8 3 4 5 6 7 12 8 9 10 33
j=7 3 4 5 6 7 12 8 9 10 33
j=6 3 4 5 6 7 12 8 9 10 33
i=7 j=9 3 4 5 6 7 8 12 9 10 33
j=8 3 4 5 6 7 8 12 9 10 33
j=7 3 4 5 6 7 8 12 9 10 33
i:8j=9 3 4 5 6 7 8 9 12 10 33
j=8 3 4 5 6 7 8 9 12 10 33
i:9J=9 3 4 5 6 7 8 9 10 12 33
akhir 3 4 5 6 7 8 9 10 12 33
Tabel 1.2 proses Bubble sort
6
2.Metode selection sort (seleksi)
Metode seleksi melakukan pengurutan dengan cara mencari data yang terkecil
kemudian menukarkannya dengan data yang digunakan sebagai acuan atau sering
dinamakan pivot.
i←0
selama (i < N-1) kerjakan baris 3 sampai dengan 9
k←i
j←i+1
Selama (j < N) kerjakan baris 6 dan 7
Jika (Data[k] > Data[j]) maka k ← j
j←j+1
Tukar Data[i] dengan Data[k]
i←i+1
• Pada saat i=0, data terkecil antara data ke-1 s/d ke-9 adalah data ke-4, yaitu 3,
maka data ke-0 yaitu 13 ditukar dengan data ke-4 yaitu 3.
• Pada saat i=1, data terkecil antara data ke-2 s/d ke-9 adalah data ke-2, yaitu 8,
maka data ke-1 yaitu 33 ditukar dengan data ke-2 yaitu 8.
• Pada saat i=2, data terkecil antara data ke-3 s/d ke-9 adalah data ke-3, yaitu 9,
maka data ke-2 yaitu 33 ditukar dengan data ke-3 yaitu 9.
• Pada saat i=3, data terkecil antara data ke-4 s/d ke-9 adalah data ke-4, yaitu 13,
maka data ke-3 yaitu 33 ditukar dengan data ke-4 yaitu 13.
• Dan seterusnya.
7
Contoh kasus selection sort
iterasi Data Data Data Data Data Data Data Data Data Data
(0) (1) (2) (3) (4) (5) (6) (7) (8) (9)
Awal 13 33 8 9 3 17 21 23 16 26
i=0 13 33 8 9 3 17 21 23 16 26
i=1 3 33 8 9 13 17 21 23 16 26
i=2 3 8 33 9 13 17 21 23 16 26
i=3 3 8 9 33 13 17 21 23 16 26
i=4 3 8 9 13 33 17 21 23 16 26
i=5 3 8 9 13 17 33 21 23 16 26
i=6 3 8 9 13 17 16 21 23 33 26
i=7 3 8 9 13 16 17 21 23 33 26
i=8 3 8 9 13 16 17 21 23 26 33
akhir 3 8 9 13 16 17 21 23 26 33
Tabel 1.2 pengurutan selection sort
Algoritma
1. Inisialisasi array: [13, 33, 8, 9, 3, 17, 21, 23, 16, 26].
- Sisipkan elemen ke-i pada posisi yang tepat dalam array yang sudah diurutkan.
- Geser elemen-elemen di array yang sudah diurutkan yang lebih besar dari
elemen ke-i untuk membuat tempat bagi elemen ke-i.
8
Langkah-langkah
1. Inisialisasi Array:
- Inisialisasi array yang akan diurutkan. Contoh: [13, 33, 8, 9, 3, 17, 21, 23, 16,
26].
2. iterasi dari Indeks 1 hingga n-1:
- Mulai dari indeks 1 hingga n-1, ambil setiap elemen yang belum diurutkan.
3. Pemisahan dan Penyisipan:
- Ambil elemen ke-i dari array yang belum diurutkan.
- Pisahkan elemen ke-i dari array yang belum diurutkan.
4. Sisipkan pada Tempat yang Tepat:
- Sisipkan elemen ke-i pada posisi yang tepat dalam array yang sudah diurutkan.
- Geser elemen-elemen yang lebih besar dari elemen ke-i untuk membuat tempat
bagi elemen ke-i.
5. Ulangi Hingga Seluruh Array Terurut:
- Ulangi langkah-langkah 2-4 hingga seluruh array terurut.
- Proses ini membangun array yang sudah diurutkan satu elemen pada satu
waktu.
1111113 33 8 9 3 17 21 23 16 26
111 13 33 8 9 3 17 21 23 16 26
z111 8 13 33 9 3 17 21 23 16 26
111 8 9 13 33 3 17 21 23 16 26
111 3 8 9 13 33 17 21 23 16 26
111 3 8 9 13 17 33 21 23 16 26
111 3 8 9 13 17 21 33 23 16 26
111 3 8 9 13 17 21 23 33 16 26
111 3 8 9 13 16 17 21 23 33 26
111 3 8 9 13 16 17 21 23 26 33
Tabel 1.3 proses insertion sort
9
4.Metode shell 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.
1 Jarak ← N
8 Jika (Data[j] > Data[j + Jarak] maka tukar Data[j], Data[j + Jarak]. Sudah ←
true 9 j←j+1
Langkah proses
10
dari data ke N / 4 tersebut maka kedua data tersebut ditukar. Kemudian data kedua
dibandingkan dengan jarak yang sama yaitu N / 4. Demikian seterusnya sampai
seluruh data dibandingkan sehingga semua data ke-j lebih kecil daripada data ke-(j
+ N / 4).
iterasi Data Data Data Data Data Data Data Data Data Data
(0) (1) (2) (3) (4) (5) (6) (7) (8) (9)
Awal 13 33 8 9 3 17 21 23 16 26
Jarak 13 33 8 9 3 17 21 23 16 26
=5
i=6 13 33 8 9 3 17 21 23 16 26
Jarak 13 21 8 9 3 17 33 23 16 26
=2
i=3 8 21 13 9 3 17 33 23 16 26
i=4 8 9 13 21 3 17 33 23 16 26
i=5 8 9 3 21 13 17 33 23 16 26
i=5 8 9 3 17 13 21 33 23 16 26
i=8 8 9 3 17 13 21 33 23 16 26
i=2 8 9 3 17 13 21 16 23 33 26
Jarak 3 9 8 17 13 21 16 23 33 26
=1
i=2 3 9 8 17 13 21 16 23 33 26
i=4 3 8 9 17 13 21 16 23 33 26
i=6 3 8 9 13 17 21 16 23 33 26
i=9 3 8 9 13 17 16 21 23 33 26
i=5 3 8 9 13 17 16 21 23 26 33
Akhir 3 8 9 13 16 17 21 23 26 33
11
5.Quick sort
Quick Sort adalah algoritma pengurutan yang menggunakan pendekatan
divide and conquer untuk mengurutkan array atau list data. Algoritma ini memilih
elemen tertentu sebagai pivot, membagi array menjadi dua bagian berdasarkan
pivot tersebut, mengurutkan kedua bagian secara rekursif, dan
menggabungkannya kembali.
Algoritma
Pilih elemen tertentu sebagai pivot.
pilih elemen pertama dari array.Pembagian (Partitioning):
Tentukan dua indeks, i dan j, di mana i di setel ke elemen pertama dan j di
setel ke elemen terakhir.Geser i ke kanan dan j ke kiri
hingga elemen yang lebih kecil dari pivot ditemukan di sebelah kanan (i <=
j).
Tukar elemen pada posisi i dan j jika i <= j.Ulangi langkah ini hingga i > j.
Langkah-langkah
1.Pivot dipilih,
2.Pembagian (Partitioning):
12
3. Tempatkan Pivot pada Posisi yang Tepat:
4.Rekursif (Recursion):
Terapkan algoritma Quick Sort secara rekursif pada kedua bagian yang
dihasilkan.
Bagian kiri: [8, 9, 3, 13, 16].Pilih pivot (misalnya, elemen pertama 8) dan
lakukan pembagian.Iterasi hingga seluruh bagian terurut.
Bagian kanan: [17, 21, 23, 33, 26].Pilih pivot (misalnya, elemen pertama
17) dan lakukan pembagian.
Iterasi hingga seluruh bagian terurut.
Ulangi Hingga Seluruh Array Terurut:
Ulangi langkah-langkah 1-4 untuk setiap subdivisi hingga seluruh array
terurut.
13 33 8 9 3 17 21 23 16 26
8 9 3 13 33 17 21 23 16 26
3 8 9 13 16 17 21 23 26 35
3 8 9 13 1 16 1117 321 1 23 3 26 35
Tabel 1.5 proses pengurutan quick sort
13
B.Pencarian
1.Pencarian Biner
Tentukan batas awal dan batas akhir dari himpunan data. Pada awalnya, batas
awal adalah elemen pertama dan batas akhir adalah elemen terakhir.
Hitung indeks elemen tengah, yaitu (batas_awal + batas_akhir) / 2.
Bandingkan nilai yang dicari dengan elemen tengah.Jika nilai yang dicari
sama dengan elemen tengah, pencarian selesai.
Jika nilai yang dicari lebih kecil, lakukan pencarian pada setengah kiri
himpunan data.
Jika nilai yang dicari lebih besar, lakukan pencarian pada setengah kanan
himpunan data.
Ulangi langkah-langkah 2-3 hingga nilai yang dicari ditemukan atau batas
awal melewati batas akhir.
Pencarian selesai ketika nilai yang dicari ditemukan atau batas awal melewati
batas akhir.
14
Contoh kasus proses pencarian binary
13 33 8 9 3 17 21 23 16 26
Kumpulan data
3 13 33 8 9 3 17 21 23 16 26
3 13 33 8 9 3 17 21 23 16 26
3 13 33 8 9 3 17 21 23 16 26
3 13 33 8 9 3 17 21 23 16 26
3 13 33 8 9 3 17 21 23 16 26
Tabel 1.6 proses pencarian binary
15