0% menganggap dokumen ini bermanfaat (0 suara)
611 tayangan7 halaman

Laporan Sorting (Bubble Sort & Insertion Sort)

Laporan ini membahas tiga algoritma pengurutan data yaitu bubble sort, insertion sort, dan selection sort. Setiap algoritma dijelaskan teorinya dan diberikan contoh program C untuk mengimplementasikannya. Kesimpulannya adalah bubble sort kurang efisien untuk data besar sedangkan counting sort lebih cepat karena kompleksitas waktunya linier.

Diunggah oleh

Jan Laen Player
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
611 tayangan7 halaman

Laporan Sorting (Bubble Sort & Insertion Sort)

Laporan ini membahas tiga algoritma pengurutan data yaitu bubble sort, insertion sort, dan selection sort. Setiap algoritma dijelaskan teorinya dan diberikan contoh program C untuk mengimplementasikannya. Kesimpulannya adalah bubble sort kurang efisien untuk data besar sedangkan counting sort lebih cepat karena kompleksitas waktunya linier.

Diunggah oleh

Jan Laen Player
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 7

LAPORAN TUGAS PRAKTIKUM

STRUKTUR DATA
D3 TEKNIK INFORMATIKA

BUBBLE SORT, INSERTION SORT

Pertemuan ke : Ketiga

NAMA JAN LAEN PLAYER


NIM 16.01.3689

KELAS 16 D3TI 01

NAMA DOSEN PENGAMPU AHLIHI MASRURO, M.KOM


NAMA KOORDINATOR ASISTEN RIKE TANRIYA

Pengesahan

Tanggal : 13 Maret 2017

ASISTEN
BAB I

PENDAHULUAN

I Tujuan Percobaan

1. Memahami algoritma pengurutan: bubble sort, insertion sort dan selection sort
2. Mengetahui kelebihan dan kelemahan masing masing algoritma pengurutan
3. Dapat mengimplementasikan algoritma pengurutan dalam program

II Teori Singkat

Bab ini membahas tentang algoritma pengurutan yang paling sederhana, yaitu bubble sort
(pengurutan gelembung), insertian sort (pengurutan sisip), dan selection sort (pengurutan
terpilih). Tiap tiap algoritma memiliki kelebihan dan kekurangan masing masing.
Kemudian akan diberikan beberapa contoh penggunaannya dalam fungsi dan program secara
keseluruhan.

Algoritma Bubble Sort ini merupakan proses pengurutan yang secara berangsur-angsur
berpindah ke posisi yang tepat karena itulah dinamakan Bubble yang artinya gelembung.
Algoritma ini akan mengurutkan data dari yang terbesar ke yang terkecil (ascending) atau
sebaliknya (descending).

Insertion sort adalah sebuah algoritma pengurutan yang membandingkan dua elemen data
pertama, mengurutkannya, kemudian mengecek elemen data berikutnya satu persatu dan
membandingkannya dengan elemen data yang telah diurutkan. Karena algoritma ini bekerja
dengan membandingkan elemen-elemen data yang akan diurutkan, algoritma ini termasuk
pula dalam comparison-based sort. Ide dasar dari algoritma Insertion Sort ini adalah mencari
tempat yang "tepat" untuk setiap elemen array, dengan cara sequential search. Proses ini
kemudian menyisipkan sebuah elemen array yang diproses ke tempatnya ang seharusnya.

selection sort adalah mencari elemen yang tepat untuk diletakkan di posisi yang telah
diketahui, dan meletakkannya di posisi tersebut setelah data tersebut ditemukan,
Selection Sort Membandingkan elemen yang sekarang dengan elemen yang berikutnya
sampai dengan elemen yang terakhir.
BAB II

/*
* program: bubsort.c
* demo bubble sort
*
* Jan Laen Player
*
*/
#include <stdio.h>
#define SIZE 8
void bubsort(void);
int n[SIZE];
int main(void) {
int i;
printf("data acak:\n");
for(i = 0; i < SIZE; i++) {
printf("data ke-%d: ", i);
scanf("%d", &n[i]);
}
bubsort();
printf("\ndata urut: ");
for(i = 0; i < SIZE; i++)
printf("%d ", n[i]);

return 0;
}
void bubsort(void) {
int i, j, tmp;
for(i = 0; i < SIZE - 1; i++) {
for(j = 0; j < SIZE - i - 1; j++) {
if(n[j] > n[j + 1]) {
tmp = n[j];
n[j] = n[j + 1];
n[j + 1] = tmp;
}
}
}
}

Pembahasan

Inti dari fungsi bubsort() di atas adalah pada proses perbandingan tiap elemen dengan
sebelahnya. Proses perbandingan ini akan menghasilkan pertukaran posisi sesuai arah
pengurutan. Proses pertukaran ini seakan akan menggelembungkan elemen yang sedang
dibandingkan dan ditukar.
Secara sederhana, bisa didefenisikan algoritma Bubble Sort adalah pengurutan dengan cara
pertukaran data dengan data disebelahnya secara terus menerus sampai dalam satu iterasi
tertentu tidak ada lagi perubahan.

/*
* program: selsort.c
* demo selection sort
*
* Jan Laen Player
*
*/
#include <stdio.h>
#define SIZE 8
void selsort(void);
int n[SIZE];
int main(void) {
int i;
printf("data acak:\n");
for(i = 0; i < SIZE; i++) {
printf("data ke-%d:", i);
scanf("%d", &n[i]);
}
selsort();
printf("\ndata urut: ");
for(i = 0; i < SIZE; i++)
printf("%d ", n[i]);

return 0;
}
void selsort(void) {
int i, j, min, tmp;
for(i = 0; i < SIZE; i++) {
min = i;
for(j = i; j < SIZE; j++)
if(n[j] < n[min])
min = j;
tmp = n[i];
n[i] = n[min];
n[min] = tmp;
}
}

Sama seperti pada fungsi bubsort() sebelumnya, fungsi selsort() di atas juga mengandung
proses pertukaran elemen. Fungsi akan selalu mencari elemen paling besar (atau paling kecil,
sesuai arah pengurutan) kemudian menukarkan dengan elemen paling depan (atau paling
belakang) yang belum terurut.

Algoritma pengurutan data dalam pemrograman dengan cara menukarkan data yang berada
tepat di sebelah data tersebut secara terus menerus,sampai proses pertukaran tidak lagi bisa
dilakukan.Algoritma bubble sort biasa digunakan untuk mengurutkan nilia dari terkecil ke
nilai terbesar (ascending),maupun sebaliknya(descending).
Metode pengurutan gelembung (Bubble Sort) diinspirasikan oleh gelembung sabun yang
berada dipermukaan air. Karena berat jenis gelembung sabun lebih ringan daripada berat jenis
air, maka gelembung sabun selalu terapung ke atas permukaan. Prinsip di atas dipakai pada
pengurutan gelembung.

Contoh program c++ menggunakan bubble sort:


#include <iostream.h>

int main()

{
int data[10];
int i, j, k, tmp, jumlah=0;
cout<<"PROGRAM PENGURUTAN BILANGAN BUBBLE SORT\n\n";
cout<<"Masukkan jumlah bilangan : "; cin>>k;
for(i=0; i<k; i++)
{
cout<<"Masukkan Angka ke "<<(i+1)<<" : ";
cin>>data[i];
if(data[i]%2==0)
{jumlah+=data[i];}
}
cout<<"\nData sebelum diurutkan : "<<endl;
for(i=0; i<k; i++)
{
cout<<data[i]<<" ";
}
cout<<endl;

for( i=0;i<k;i++)
{
for(j=i+1;j<k;j++)
{
if(data[i]>data[j])
{
tmp=data[i];
data[i]=data[j];
data[j]=tmp;
}
}
}
cout<<"\nData setelah diurutkan : "<<endl;
for(i=0; i<k; i++)
{
{

cout<<data[i]<<" ";
}
}
cout<<"\nData setelah diurutkan (Genap): "<<endl;
for(i=0; i<k; i++)
{
if (data[i]%2==0)
{

cout<<data[i]<<" ";
}
}
cout<<"\nData setelah diurutkan (Ganjil): "<<endl;
for(i=0; i<k; i++)
{
if (data[i]%2!=0)
{

cout<<data[i]<<" ";
}
}
cout<<"\n\nJumlah dari bilangan genap = "<<jumlah;
return 0;

}
PENUTUP

Kesimpulan

Gagasan dasar dari algoritma Bubble Sort adalah membandingkan sepasang elemen
yang berurutan di dalam larik dan mempertukarkan keduanya jika perlu. Nama bubble sort ini
berasal dari sifat elemen terbesar yang selalu naik ke atas seperti bubble. Beberapa
kekurangan dari algoritma Bubble Sort adalah tidak efektif dalam pengurutan data berskala
besar.serta langkah pengurutan yang terlalu panjang.

Counting Sort adalah algoritma pengurutan efektif dan efisien yang melakukan
pengurutan dengan ide dasar meletakkan elemen pada posisi yang benar, di mana
penghitungan posisi yang benar dilakukan dengan cara menghitung (counting) elemen-
elemen dengan nilai lebih kecil atau sama dengan elemen tersebut. Dan memiliki
kompleksitas waktu linier. Walaupun tidak dapat digunakan secara luas karena banyaknya
batasan.

Saran

Hendaknya dalam pemilihan algoritma pengurutan yang tepat perlu memperhatikan


kebutuhan memori, waktu eksekusi,implementasi algoritma/penanganan kasus-kasus tertentu.
Disamping itu, perlu diadakannya penelitian yang lebih mendalam agar mendapatkan data
yang valid sebagai referensi.

REFERENSI :

http://blantikainformatika.blogspot.co.id/2014/11/makalah-bubble-sort-dan-counting-
sort.html

http://www.academia.edu/10069482/LAPORAN_ALGORITMA_DAN_STRUKTUR_DATA
_Gabungan_Bubble_Sort_Insertion_Sort_dan_Selection_Sort

Anda mungkin juga menyukai