Anda di halaman 1dari 9

TUGAS PRA UAS STRUKTUR DATA

KELOMPOK 11
MUTIARA PADILLA TA’GAN 2204411438
AKBAR P 2204411441
DEVI 2204411436

PROGRAM STUDI INFORMATIKA


FAKULTAS TEKNIK KOMPUTER
UNIVERSITAS COKROAMINOTO PALOPO
2023
BAB 11
Sorting

1. INSERTION SORT
a. Devinisi insertion sort
Insertion Sort merupakan sebuah teknik pengurutan dengan cara
membandingkan dan mengurutkan dua data pertama pada array, kemudian
membandingkan data para array berikutnya apakah sudah berada di tempat
semestinya. Algorithma insertion sort seperti proses pengurutan kartu yang
berada di tangan kita. Algorithma ini dapat mengurutkan data dari besar ke
kecil (Ascending) dan kecil ke besar (Descending). Algoritma ini tidak cocok
untuk set data dengan jumlah besar karena kompleksitas dari algorithma ini
adalah Ο() di mana n adalah jumlah item
Insertion Sort bekerja seperti banyak orang yang sedang mengurutkan kartu
di tangan. Dimulai dengan tangan kiri yang kosong dan kartunya tertumpuk di
meja. Selanjutnya kita ambil satu persatu kartu di meja dan diletakkan di
tangan kiri dengan posisi yang benar (terurut). Untuk menemukan posisi yang
banar, maka kita harus membandingkan satu persatu kartu yang ada (di tangan
kiri) secara berurutan
b. Cara Kerja algoritma insertion sort
Algoritma insertion sort pada dasarnya memilah data yang akan
urutkan menjadi 2 bagian, yang belum diurutkan dan yang sudah
diurutkan. Elemen pertama diambil dari bagian array yang belum
diurutkan dan kemudian diletakkan sesuai posisinya pada bagian lain
dari array yang telah diurutkan.
Insertion sort ini memiliki beberapa keuntungan : Implementasi yang
sederhana Paling efisien untuk data berukuran kecil Merupakan online
algorithmic, yang berarti bisa langsung melakukan sort setiap ada data
baru Proses di tempat (memerlukan O(1) memori tambahan) Stabil.
algoritma insertion sort adalah untuk mengurutkan sebuah array data
yang tidak terurut agar menjadi sebuah array yang terurut. Algoritma
insertion sort adalah algoritma pengurutan yang menggunakan dua
buah list untuk proses pengurutannya. dua list tersebut yaitu yaitu
sorted list dan unsorted list.
Pada kondisi awal, semua bilangan yang hendak diurutkan berada
dalam kondisi “unsorted list”. Lalu, index “0” dari unsorted list
dipindahkan ke sorted list. Kemudian berlanjut ke index “1” dan
seterusnya. Lalu, index “0” dan “1” yang sudah dipindahkan akan
dibandingkan berdasarkan nilai terkecil. Index yang memiliki terkecil
itu selanjutnya akan menjadi index 0 atau index paling awal. Begitu
juga yang terjadi pada index seterusnya, dimana tiap index yang baru
saja dimasukan dari unsorted list ke sorted list akan dibandingkan
dengan semua index yang sudah duluan masuk ke sorted list. Proses
ini akan berulang sampai semua index yang ada di unsorted list
berpindah ke sorted list dan dibandingkan. Barulah kita dapat melihat
hasil pengurutan tersebut
c. kelebihan insertion sort
 Sederhana dalam penerapan nya
 Mangkus dalam data yang kecil
 Jika list sudah terurut atau sebagian maka insertion sort akan lebih cepat
dibandingkan dengan Quicksort
 Masngkus dalam data yang sebagian terurut
 Lebih mangkus di banding buble Buble Sort dan Selection Sort
 Lop dalam pada inserion Sort sangat cepat sehingga membuatnya salah
satu algoritma pengurutan tercepat pada jumlah elemen yang sedikit
 Stabil
d. Kekurangan
 Banyaknya operasi yang diperlukan dalam mencari posisi yang tepat untuk
elemen larik.
 Untuk larik yang jumlahnya besar ini tidak praktis
 Jika list terurut terbalik sehingga setiap eksekusi dari perintah harus memindai
dan mengganti seluruh bagian sebelum menyisipkan elemen berikutnya.
 Membutuhkan waktu O(n2) pada data yang tidak terurut, sehingga tidak
cocok dalam pengurutan elemen dalam jumlah besar

e. Contoh Insertion Sort :

Bagian biru/abu-abu (dua bilangan pertama) sekarang dalam keadaan terurut


secara relatif.

Berikutnya, kita perlu menyisipkan bilangan ketiga (4) ke dalam bagian


biru/abu-abu sehingga
setelah penyisipan tersebut, bagian biru/abu-abu tetap dalam keadaan terurut
secara relatif;
CARANYA :
pertama : Ambil bilangan ketiga (4).

Kedua : Geser bilangan kedua (10) shg ada ruang untuk disisipi.
Ketiga : Sisipkan bilangan 4 ke posisi yang tepat
 

Sekarang, tiga bilangan pertama sudah terurut secara relatif dan kita sisipkan
bilangan keempat kepada tiga bilangan pertama tsb.  Setelah penyisipan,
empat bilangan pertama haruslah dalam keadaan terurut secara relatif.

 Ulangi proses tsb sampai bilangan terakhir disisipkan

 Proses Sorting Selesai.


Contoh Skrip Insertion Sort :

program insertion_sort;
uses wincrt;
var
jmldata,i,j:integer;
data,x:array[1..100] of integer;
procedure asc_insert;
var temp:integer;
begin
for i:=2 to jmldata do
begin
temp:=data[i];
j:=i-1;
while (data[j]>temp)and(j>0)do
begin
data[j+1]:=data[j];
dec(j);
end;
data[j+1]:=temp;
end;
writeln('urutan datanya adalah : ');
for i:=1 to jmldata do
begin
write(data[i],' ');
end;
readln;
end;
begin
clrscr;
write('masukan berapa angka yang akan di urut : ');
readln(jmldata);
for i:=1 to jmldata do
begin                       
write('masukan angka ke-',i,':');
readln(data[i]);
end;
asc_insert;
readln;
end.

2. Bulble sort
Algoritma Bubble Sort merupakan proses pengurutan yang secara berangsur-
angsur memindahkan data ke posisi yang tepat. Karena itulah, algoritma ini
dinamakan “bubble” atau yang jika diterjemahkan ke dalam Bahasa
Indonesia, artinya yaitu gelembung. Fungsi algoritma ini adalah untuk
mengurutkan data dari yang terkecil ke yang terbesar (ascending) atau
sebaliknya (descending)
Metode pengurutan gelembung (Bubble Sort) ini terinspirasi oleh gelembung
sabun yang berada di permukaan air. Karena berat jenis gelembung sabun
yang lebih ringan ketimbang berat jenis air, maka gelembung sabun akan
selalu terapung ke atas permukaan. Prinsip inilah yang dipakai pada algoritma
pengurutan gelembung.

Secara sederhana, bisa didefinisikan bahwa algoritma Bubble Sort adalah


pengurutan dengan cara pertukaran data dengan data di sebelahnya secara
terus menerus sampai pada satu iterasi tertentu dimana tidak ada lagi
perubahan yang signifikan

1) Cara Kerja Bubble Sort

Bubble sort bekerja dengan membandingkan pasangan nilai yang saling berdekatan,
kemudian jika nilai yang lebih besar ditemukan, nilai tersebut akan dipindahkan ke
posisi sebelah kanan sehingga menempatkan nilai yang lebih kecil di posisi yang
lebih tinggi. Proses ini didulang terus menerus sampai seluruh data diurutkan
berdasarkan urutan yang ditentukan

2) Keunggulan dan Kelemahan Bubble Sort

Keunggulan dan kelemahan suatu algoritma sangat penting untuk dipahami oleh
pengembang. Dalam kasus bubble sort, keunggulannya adalah mudah dipahami dan
diimplementasikan oleh pengembang pemula, sementara kelemahannya adalah tidak
efektif dalam mengurutkan data besar dan rentan terhadap terjadinya masalah urutan
data yang kompleks. Pengembang harus mempertimbangkan keunggulan dan
kelemahan ini sebelum mengimplementasikan bubble sort pada aplikasi mereka

3) Manfaat Menggunakan Bubble Sort

Nilai tambah pada bubble sort adalah kesederhanaannya. Metode ini hanya
membutuhkan beberapa baris kode, mudah dibaca, dan bisa dipasang di mana saja
pada program. Namun, ini dinilai tak efisien untuk sekumpulan angka yang lebih
besar dan harus digunakan sesuai dengan itu.
Selain bubble sort ada beberapa algoritma sortasi yang bisa digunakan, seperti
selection sort, insertion sort, merge sort, quick sort, heap sort, dan bucket sort
4) Contoh Bubble Sort

Metode bubble sort bekerja dengan membandingkan angka yang terdekat. Jika angka
X lebih tinggi dari Y, akan terjadi penukaran. Proses ini berulang hingga seluruh
rentang angka disortir dalam urutan yang diinginkan.
Jika ingin mengatur angka 1, 3, 2, 4 menjadi urutan naik, misalnya, algoritma bubble
sort akan berjalan sekali dengan menukar 3 dan 2. Sehingga angka akan berakhir
dengan urutan 1, 2, 3, 4. Namun, dalam matriks lain penukaran bisa terjadi beberapa
kali.
Contoh bubble sort yang bisa digunakan pada angka 3,1,4,2 akan berjalan tiga kali.
Pertama, tukarlah angka 3 dan 1. Kemudian untuk tahap kedua tukar angka 4 dan 2.
Selanjutnya, untuk tahap ketiga tukarlah angka 3 dan 2. Sehingga angka akan
memiliki urutan 1, 2, 3, 4.

5) Kelebihan algoritma buble sort

 Algoritma ini adalah metode paling sederhana untuk mengurutkan


data.
 Selain sederhana, algoritma ini juga mudah dipahami.

6) Kekurangan algoritma buble sort


 Tingkat efisiensinya yang kurang. Bubble Sort ini merupakan metode
pengurutan yang tidak efisien, khususnya ketika menangani data yang
berjumlah besar. Hal tersbeut karena ketika mengurutkan data yang
sangat besar akan sangat lambat prosesnya.
 Jumlah pengulangan yang dilakukan oleh algortima ini akan tetap
sama jumlahnya, meskipun data yang diurutkan sudah cukup terurut

7) langkah-langkah yang harus diperhatikan pada metode Bubble Sort:

 Jumlah iterasi sama dengan banyaknya bilangan dikurang 1.


 Di setiap iterasi, jumlah pertukaran bilangannya sama dengan jumlah
banyaknya bilangan.
 Dalam algoritma Bubble Sort, meskipun deretan bilangan tersebut
sudah terurut, proses sorting akan tetap dilakukan.
 Tidak ada perbedaan cara yang berarti untuk teknik algoritma Bubble
Sort Ascending dan Descending

algoritma ini menggunakan perbandingan dalam operasi antar elemennya. Kita simak
salah satu contoh di bawah ini, yang merupakan gambaran dari penerapan algoritma
Bubble Sort dengan array “3 1 4 2 8”.
Proses pertama:

(3 1 4 2 8) menjadi (1 3 4 2 8)

(1 3 4 2 8) menjadi (1 3 4 2 8)

(1 3 4 2 8) menjadi (1 3 2 4 8)

(1 3 2 4 8) menjadi (1 3 2 4 8)

Proses kedua:

(1 3 2 4 8) menjadi (1 3 2 4 8)

(1 3 2 4 8) menjadi (1 2 3 4 8)

(1 2 3 4 8) menjadi (1 2 3 4 8)

(1 2 3 4 8) menjadi (1 2 3 4 8)

Proses ketiga:

(1 2 3 4 8) menjadi (1 2 3 4 8)

(1 2 3 4 8) menjadi (1 2 3 4 8)

(1 2 3 4 8) menjadi (1 2 3 4 8)

(1 2 3 4 8) menjadi (1 2 3 4 8)

Anda mungkin juga menyukai