KELOMPOK 11
MUTIARA PADILLA TA’GAN 2204411438
AKBAR P 2204411441
DEVI 2204411436
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
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.
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.
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
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
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.
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)