Anda di halaman 1dari 16

TUGAS FINAL

STRUKTUR DAN ALGORITMA

Disusun oleh :

Nama : Nadia
Nim : 2023903430070
Kelas : TRKJ-1B
Dosen Pengampun : Indrawati, S.ST., M.T

PROGRAM STUDI TEKNOLOGI REKAYASA KOMPUTER JARINGAN

JURUSAN TEKNOLOGI INFORMASI DAN KOMPUTER

POLITEKNIK NEGERI LHOKSEUMAWE

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 .

Buket Rata, 27 Desember 2023


Penyusun,

Nadia
NIM 2023903430070

1
DAFTAR ISI

Halaman Judul ...................................................................................................... i


Kata Pengantar .................................................................................................... 1
Daftar Isi ............................................................................................................. 2

BAB PENDAHULUAN ...................................................................................... 3

A.Pengurutan ....................................................................................................... 3

1. Bubble sort ............................................................................................... 3


2. Selection sort ............................................................................................ 6
3. Insertion sort ............................................................................................ 8
4. Shell sort ................................................................................................ 10
5. Quick sort............................................................................................... 12

B.Pencarian........................................................................................................ 14

1. Pencarian biner ....................................................................................... 14

2
BAB I
PENDAHULUAN

A.PENGURUTAN

1. Metode Bubble Sort


Metode gelembung (bubble sort) sering juga disebut dengan metode
penukaran,(exchange sort) adalah metode yang mengurutkan data dengan
cara membandingkan masing-masing elemen, kemudian melakukan
penukaran bila perlu. Metode ini mudah dipahami dan diprogram, tetapi
bila dibandingkan dengan metode lain yang kita pelajari, metode ini
merupakan metode yang paling tidak efisien.
Proses pengurutan metode gelembung ini menggunakan dua kalang.
Kalang pertama melakukan pengulangan dari elemen ke 2 sampai dengan
elemen ke N-1 (misalnya variable i), sedangkan kalang kedua melakukan
pengulangan menurun dari elemen ke N sampai elemen ke i (misalnya
variable j). Pada setiap pengulangan, elemen ke j-1 dibandingkan dengan
elemen ke j. Apabila data ke j-1 lebih besar daripada data ke j, dilakukan
penukaran.

 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.

Proses pengurutan dengan metode seleksi dapat dijelaskan sebagai berikut :


langkah pertama dicari data terkecil dari data pertama sampai data terakhir.
Kemudian data terkecil ditukar dengan data pertama. Dengan demikian, data
pertama sekarang mempunyai nilai paling kecil dibanding data yang lain. Langkah
kedua, data terkecil kita cari mulai dari data kedua sampai terakhir. Data terkecil
yang kita peroleh ditukar dengan data kedua dan demikian seterusnya sampai
semua elemen dalam keadaan terurutkan.

Algoritma seleksi dapat dituliskan sebagai berikut :

 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

Untuk lebih memperjelas langkah-langkah algoritma seleksi dapat dilihat pada

• 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

Maka data sebelum diurut =13,33,8,9,3,17,21,23,16,26.


Menjadi ter urut =3,8,9,13,16,17,21,23,26,33.

3.Metode Insertion Sort

insertion sort, adalah metode pengurutan dengan cara menyisipkan elemen


data pada posisi yang tepat. Pencarian posisi yang tepat dilakukan dengan
melakukan pencarian berurutan didalam barisan elemen, selama pencarian posisi
yang tepat dilakukan pergeseran elemen

 Algoritma
1. Inisialisasi array: [13, 33, 8, 9, 3, 17, 21, 23, 16, 26].

2. Iterasi dari indeks 1 hingga n-1:

- Ambil elemen ke-i dari array yang belum diurutkan.

- Pisahkan elemen ke-i dari array yang belum diurutkan.

- 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.

 Contoh kasus pengurutan insertion sort

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.

 Algoritma metode Shell:

1 Jarak ← N

2 Selama (Jarak > 1) kerjakan baris 3 sampai dengan 9

3 Jarak ← Jarak / 2. Sudah ← false

4 Kerjakan baris 4 sampai dengan 8 selama Sudah = false

5 Sudah ← true 6 j←0

7 Selama (j < N – Jarak) kerjakan baris 8 dan 9

8 Jika (Data[j] > Data[j + Jarak] maka tukar Data[j], Data[j + Jarak]. Sudah ←
true 9 j←j+1

 Langkah proses

Proses pengurutan dengan metode Shell: Pertama-tama adalah menentukan


jarak mula-mula dari data yang akan dibandingkan, yaitu N / 2. Data pertama
dibandingkan dengan data dengan jarak N / 2. Apabila data pertama lebih besar
dari data ke N / 2 tersebut maka kedua data tersebut ditukar. Kemudian data kedua
dibandingkan dengan jarak yang sama yaitu N / 2. Demikian seterusnya sampai
seluruh data dibandingkan sehingga semua data ke-j selalu lebih kecil daripada
data ke-(j + N / 2).

Pada proses berikutnya, digunakan jarak (N / 2) / 2 atau N / 4. Data pertama


dibandingkan dengan data dengan jarak N / 4. Apabila data pertama lebih besar

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).

 Contoh kasus pengurutan shell 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
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

Tabel 1.4 proses pengurutan shell sort

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,

misalnya, elemen pertama dari array. Pilih pivot = 13.

2.Pembagian (Partitioning):

 Inisialisasi indeks i ke elemen pertama (i=0) dan indeks j ke elemen


terakhir (j=9).
 Geser i ke kanan dan j ke kiri hingga elemen yang lebih kecil dari pivot
ditemukan di sebelah kanan (i <= j).
 Iterasi pertama:i=1, j=9. Temukan elemen ke-33 (lebih besar dari pivot) di
sebelah kiri dan elemen ke-16 (lebih kecil dari pivot) di sebelah kanan.
Tukar elemen tersebut.
 Array saat ini: [13, 16, 8, 9, 3, 17, 21, 23, 33, 26].
 Iterasi berlanjut hingga i > j.

12
3. Tempatkan Pivot pada Posisi yang Tepat:

 Setelah pembagian, tempatkan pivot (13) pada posisi yang tepat.


 Array saat ini terbagi menjadi dua bagian: [8, 9, 3, 13, 16] dan [17, 21, 23,
33, 26].

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.

 Contoh kasus pengurutan quick sort

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

Binary search adalah algoritma pencarian yang digunakan pada himpunan


data terurut. Metode ini membagi himpunan data menjadi dua bagian setiap kali
mencari, dan kemudian membandingkan nilai yang dicari dengan elemen tengah
dari himpunan data tersebut.

 Langkah/algoritma Binary Search

 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

Anda mungkin juga menyukai