Sorting (Bubble Sort)

dokumen-dokumen yang mirip
Algoritma Bubble Sort dan Quick Sort

PENGURUTAN BILANGAN METODE BUBBLE SORT

SORTING ALGORITMA. Bubble Sort JANUARY 14, 2016

PRATIKUM METODE KOMPUTASI MATEMATIKA TERAPAN

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

BAB VI SORTIR ATAU PENGURUTAN

SORTING. Hartanto Tantriawan, S.Kom., M.Kom

Alpro & Strukdat 1 C++ (Sorting) Dwiny Meidelfi, M.Cs

Modul 8 SORTING (PENGURUTAN)

METODE DEVIDE AND CONQUER

PENGURUTAN BILANGAN METODE STRAIGHT SELECTION

PERTEMUAN 10 METODE DEVIDE AND CONQUER

Analisis Kecepatan Sorting Dengan Notasi Big O

Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi :

Array ARRAY BERDIMENSI SATU. Representasi (Pemetaan) di memori. Lihat gambar dibawah ini, nilai data A (18) dismpan mulai dari alamat 1136 di memori.

BAB 2 SORTING (PENGURUTAN)

Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending = dari data kecil

PENGURUTAN (SORTING) 1. Introduction 2. Bubble Sort 3. Selection Sort 4. Insertion Sort

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-8 Pengurutan (Sorting) 1

PERTEMUAN 10 METODE DEVIDE AND CONQUER

Modul Praktikum Algoritma dan Struktur Data

Materi 4: SORTING (PENGURUTAN) Dosen:

Politeknik Elektronika Negeri Surabaya

STRUKTUR DATA SORTING ARRAY

MAKALAH STRUKTUR DATA HEAP SORT. Disusun Oleh :

Pengurutan (Sorting) Algoritma Pemrograman

Kompleksitas Algoritma Sorting yang Populer Dipakai

Gambar 13.1 Ilustrasi proses algoritma sorting

A. TUJUAN PEMBELAJARAN

Algoritma Sorting. Ahmad Kamsyakawuni, S.Si, M.Kom. Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Jember

SEQUENTIAL SEARCH 11/11/2010. Sequential Search (Tanpa Variabel Logika) untuk kondisi data tidak terurut

Algoritma dan Struktur Data

Powered by icomit.wordpress.com

JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN ISSN : VOL. 6 NO. 1 Maret 2013

# TEN Sorting PENDAHULUAN

ARRAY STATIS. Type namatype_array = array [1..maks_array] of tipedata. nama_var_array : namatype_array {indeks array dari 1 sampai maksimum array}

DATA SORTING. Altien Jonathan Rindengan, S.Si, M.Kom

SORTING (Pengurutan)

PENGURUTAN (SORTING) 1. Overview

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

BAB I PENDAHULUAN.

BAHASA PEMROGRAMAN 1 (PERTEMUAN 3)

Praktikum 8. Pengurutan (Sorting) Bubble Sort, Shell Sort

Kuliah ke : 4 Algoritma & Stuktur Data. Pengurutan (Sorting)

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

nama array untuk menyimpan data jumlah data

Algoritma Heap Sort. Sekolah Teknik Elektro & Informatika Departemen Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung

KOMPLEKSITAS ALGORITMA PENGURUTAN (SORTING ALGORITHM)

Sorting. Pertemuan ke 14.

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 12 & 13

Algoritma dan Pemrograman Sorting (Pengurutan) IS1313. Oleh: Eddy Prasetyo N

STRUKTUR DATA (3) sorting array. M.Cs

Pengurutan (Sorting)

Pengurutan (Sorting) Keuntungan Data Terurut. Pengurutan Terbagi Dua Kelompok:

Praktikum 7. Pengurutan (Sorting) Insertion Sort, Selection Sort POKOK BAHASAN: TUJUAN BELAJAR: DASAR TEORI:

Algoritme dan Pemrograman

SORTING (PENGURUTAN DATA)

ALGORITMA PENGURUTAN & PENCARIAN

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

Algoritma Sorting (Selection Insertion)

Prpsedur progaram selectioa sort (Dengan program C++)

Jurnal Mahajana Informasi, Vol.1 No 2, 2016 e-issn: SIMULASI PENGURUTAN DATA DENGAN ALGORITMA HEAP SORT

BAB V SORT. Proses penukaran tidak dapat langsung dilakukan dengan cara : nilai[1] = nilai[2]; nilai[2] = nilai[1];

Algoritma dan Struktur Data. Searching dan Sorting

Array (Tabel) bagian 2

Penerapan Algoritma Bucket Sort Untuk melakukan Pengurutan n buah Bilangan Mata Kuliah Pemrosesan Paralel

Pengertian Algoritma Pengurutan

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Setelah mempelajari topik Analisis Algoritma di kuliah SDA, ada beberapa kompetensi yang perlu Anda kuasai:

Politeknik Elektronika Negeri Surabaya

Pengurutan pada Array. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

Struktur Data Linier. Input. Program untuk menyelesaikan masalah. Algoritma Penyelesaian. Proses. Masalah. Struktur Data. Output

Algoritma dan Pemrograman 2 PENGURUTAN

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

CCH1A4 / Dasar Algoritma & Pemrogramanan

PRAKTIKUM 9 ARRAY. ARRAY BERDIMENSI SATU Suatu array berdimensi satu dideklarasikan dalam bentuk umum berupa :

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

ANALISIS PERBANDINGAN ALGORITMA BUBBLE SORT, MERGE SORT, DAN QUICK SORT DALAM PROSES PENGURUTAN KOMBINASI ANGKA DAN HURUF

1. Algoritma Searching

Algoritma dan Pemrograman Array/Tabel[3] Oleh: Eddy Prasetyo N

Analisis Kompleksitas Waktu Untuk Beberapa Algoritma Pengurutan

Kompleksitas Algoritma Dalam Algoritma Pengurutan

Heap Tree dan Kegunaannya dalam Heap Sort

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

Algoritma Transposisi (Bubble Sort/pengurutan gelembung)

SORTING ARRAY FAKULTAS TEKNOLOGI INFORMASI UNISBANK SEMARANG : ANDY KRISTIANTO : Disusun Oleh :

STRUKTUR DATA MENGGUNAKAN C++ Windha Mega PD, S.Kom

Kontrak Perkuliahan & Introduction

Perbandingan Kecepatan/Waktu Komputasi Beberapa Algoritma Pengurutan (Sorting)

Array (Larik) Modul 7

ANALISA PERBANDINGAN KOMPLEKSITAS ALGORITMA SELECTIONSORT DAN INSERTIONSORT

Outline STRUKTUR DATA. VII. Sorting

Bubble Sort dan Selection Sort di Java Console

Sorting Algorithms. Buble Sort

MODUL IV PENCARIAN DAN PENGURUTAN

Analisis Algoritma Bubble Sort

Algoritme dan Pemrograman

BAB 8 SORTIR. Pengurutan data (sorting) adalah suatu proses untuk menyusun kembali himpunan obyek menggunakan aturan tertentu.

Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C

Transkripsi:

TUGAS MAKALAH INDIVIDU SEBELUM UAS Sorting (Bubble Sort) Laporan ini Disusun Untuk Memenuhi Tugas Mata Kuliah Algoritma dan Struktur Data 2 Nama : Andrian Ramadhan F Nim : 10512318 Kelas : Sistem Informasi 8 JURUSAN SISTEM INFORMASI FAKULTAS TEKNIK DAN ILMU KOMPUTER UNIVERSITAS KOMPUTER INDONESIA 2013 0

KATA PENGANTAR Segala puji bagi Allah SWT yang telah melimpahkan rahmat dan hidayahnya, sehingga kami dapat menyelesaikan makalah ini. Terimakasih kami ucapkan kepada orang tua atas doa yang selalu mengiringi kami, kepada dosen Struktur Data yang telah memberikan judul makalah sebagai landasan kami dalam melakukan observasi, dan tidak lupa terimakasih untuk teman-teman yang telah bekerja sama dengan baik dalam menyelesaikan tugas makalah ini, sehingga kami bisa menyelesaikan makalah kami yang berjudul BUBBLE SORT. Kami menyadari bahwa dalam menulis makalah ini masih banyak kekurangannya, oleh sebab itu kami sangat mengharapkan kritik dan saran yang membangun. Dan semoga dengan selesainya makalah ini dapat bermanfaat bagi pembaca dan teman-teman. Amin Bandung 6 Januari 2014 Penulis Andrian Ramadhan F Nim. 10512318 1

DAFTAR ISI KATA PENGANTAR. i DAFTAR ISI ii BAB I PENDAHULUAN 1.1 Latar Belakang 3 1.2 Tujuan. 3 BAB II PEMBAHASAN 2.1 Definisi Bubble Sort... 4 2.2 Pengertian / Konsep Bubble Sort 4 2.3 Kelebihan Dan Kelemahan Metode Bubble Sort 4 2.4 Algoritma Dari Bubble Sort... 5 2.5 Analisis Algoritma Bubble Sort.. 5 2.6 Implementasi Dalam Bentuk Flowchart. 8 2.7 Bubble Sort Dalam Bahasa C ++ 10 BAB III PENUTUP 3.1 Kesimpulan.. 12 2

BAB I PENDAHULAN 1.1 Latar Belakang Pada tugas kali ini yang membahas bubble Sort, antara lain: a. Bubble dalam bentuk algoritma adalah Proses mengurutkan, menyusun/ memindahkan posisi elemen-elemen/ data dengan tata urut tertentu pada array. b. Jenis tampilan berupa Ascending/ proses menaik dan Discending/ proses menurun. - Ascending Ex: A-Z, 0-9. - Discending Ex: Z-A, 9-0. c. Bubble sort dalam bentuk flowchart d. Bubble sort ke dalam bahasa program C++ 1.2 Tujuan a. Mahasiswa dapat memahami berbagai macam algoritma pengurutan (bubble sort). b. Mahasiswa dapat menemukan / menentukan algoritma pengurutan dan pencarian paling cepat dan tepat untuk suatu masalah tertentu. 3

BAB II PEMBAHASAN 2.1 Definisi Bubble Sort Teknik sort yang berkerja dengan menggunakan prinsip gelembung (bubble) udara yang akan bergerak naik keatas secara satu per-satu. Prinsip kerja dari bubble sort adalah : 1. Pengecekan mulai dari data ke satu sampai data ke-n 2. Bandingkan data ke-n dengan data sebelumnya (n-1) 3. Jika lebih kecil maka pindahkan bilang tersebut dengan bilang yang ada didepannya (sebelumnya) satu persatu (n-1,n-2,n-3,.dts) 4. Jika lebih besar maka tidak terjadi permindahan 5. Ulang langkah 2 dan 3 s/d sort optimal. 2.2 Pengertian / Konsep Bubble Sort 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. Bubble Sort (metode gelembung) adalah metode/algoritma pengurutan dengan dengan cara melakukan penukaran data dengan tepat disebelahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan. Jika tidak ada perubahan berarti data sudah terurut. Disebut pengurutan gelembung karena masing-masing kunci akan dengan lambat menggelembung ke posisinya yang tepat. 2.3 Kelebihan Dan Kelemahan Metode Bubble Sort Kelebihan : a. Metode Bubble Sort merupakan yang paling simple b. Metode Bubble Sort muda di pahami algoritmanya Kelemahan : Meskipun simpel metode Bubble Sort merupakan metode pengurutan yang paling tidak efisien. Kelemahan Bubble Sort adalah pada saat mengurutkan data yang sangat besar akan mengalami kelambatan luar biasa, atau dengan kata lain kinerja memburuk cukup signifikan 4

ketika data yang diolah jika data cukup banyak. Kelemahan lain adalah jumlah pengulangan akan tetap sama jumlahnya walaupun data sesungguhnya sudah cukup terurut. Hal ini disebabkan setiap data dibandingkan dengan setiap data yang lain untuk menentukan posisinya. 2.4 Algoritma Dari Bubble Sort a. Membandingkan data ke-i dengan data ke-(i+1) (tepat bersebelahan). Jika tidak sesuai maka tukar (data ke-i = data ke-(i+1) dan data ke-(i+1) = data ke-i). Apa maksudnya tidak sesuai? Jika kita menginginkan algoritme menghasilkan data dengan urutan ascending (A-Z) kondisi tidak sesuai adalah data ke-i > data ke-i+1, dan sebaliknya untuk urutan descending (A-Z). b. Membandingkan data ke-(i+1) dengan data ke-(i+2). Kita melakukan pembandingan ini sampai data terakhir. Contoh: 1 dgn 2; 2 dgn 3; 3 dgn 4; 4 dgn 5 ; n-1 dgn n. c. Selesai satu iterasi, adalah jika kita sudah selesai membandingkan antara (n-1) dgn n. Setelah selesai satu iterasi kita lanjutkan lagi iterasi berikutnya sesuai dengan aturan ke-1. mulai dari data ke-1 dgn data ke-2, dan seterusnya. d. Proses akan berhenti jika tidak ada pertukaran dalam satu iterasi 2.5 Analisis Algoritma Bubble Sort Tujuan dari analisis algoritma adalah untuk mengetahui efisiensi dari algoritma. Dalam hal ini dilakukan pembandingan antara dua atau lebih algoritma pengurutan.tahap analisis adalah melakukan pengecekan program untuk memastikan bahwa program telah benar secara logika maupun sintak (tahap tracing atau debugging). Tahap selanjutnya yaitu menjalankan program untuk mengetahui running time atau waktu komputasi dalam hal ini termasuk jumlah langkah. Data uji yang digunakan adalah data yang tidak terurut atau data random, terurut membesar dan terurut mengecil. Salah satu cara untuk menganalisa kecepatan algoritma sorting saat running time adalah dengan menggunakan notasi Big O. Algoritma sorting mempunyai kompleksitas waktu terbaik, terburuk, dan rata-rata. Dengan notasi Big O, kita dapat mengoptimalkan penggunaan algoritma sorting. Sebagai contoh, untuk kasus dimana jumlah masukan untuk suatu pengurutan banyak, lebih baik digunakan algoritma sorting seperti quick sort, merge sort, atau heap sortkarena kompleksitas waktu untuk kasuk terburuk adalah O(n log n). Hal ini tentu akan sangat berbeda jika kita menggunakan algoritma sorting insertion sort atau bubble sort dimana waktu yang dibutuhkan untuk melakukan pencarian akan sangat lama. Hal ini 5

disebabkan kompleksitas waktu terburuk untuk algoritma sorting tersebut dengan jumlah masukan yang banyak adalah O(n2). Dari grafik dibawah dapat diketahui buble sort adalah metode yang paling lambat dari yang lambat-lambat. Contoh Proses Pengurutan Algoritma Bubble Sort Berikut ini kita akan mencoba membuat sebuah program pengurutan data atau Sorting dengan metode Bubble Sort. kita akan memasukan 8 data yang int Data[8]={20,12,35,11,17,9,58,23}; yang tidak berurutan. pemrogramanya, serta kita akan meghitung berapa banyak proses pertukaran posisi data, dan berapa banyak proses perbandingan data. contoh codingnya adalah sebagai berikut : 20 12 35 11 17 9 58 23 Indeks yang menunjukkan posisi elemen Di metode Bubble Sort, proses pengurutan dimulai dengan membandingkan elemen pertama untuk mendapatkan angka terbesar. Lalu angka tersebut ditempatkan pada elemen terakhir.sebagai langkah awal, isi elemen pertama dibandingkan dengan elemen ke-2. Jika isi elemen ke-2 lebih kecil dari elemen pertama, maka isi kedua elemen tersebut ditukar. Sehingga isi array berubah menjadi : 12 20 35 11 17 9 58 23 1 2 3 4 5 5 7 8 Elemen array setelah di tukar 12<20 6

Lalu elemen ke-2 dibandingkan dengan elemen ke-3. jika isi elemen ke-3 lebih besar, maka isi kedua elemen tersebut tidak ditukar. 12 20 35 11 17 9 58 23 Tidak ada pertukaran karena 20 < 35 Perbandingan selanjutnya dilakukan terhadap elemen ke-3 dengan ke-4. Karena elemen ke-4 lebih kecil, maka isi kedua elemen tersebut ditukar. Sehingga isi array sebelumnya berubah menjadi : 12 20 11 35 17 9 58 23 Elemen array setelah di tukar 11<35 Proses perbandingan seperti diatas dilakukan secara berulang sampai pada elemen terakhir. Sehingga pada akhirnya akan dihasilkan bilangan terbesar yang ditempatkan pada posisi elemen terakhir. Dibawah ini kondisi array setelah perbandingan elemen terakhir. 12 20 11 17 9 35 23 58 Proses diatas hanya mencari bilangan terbesar pertama. Ulangi proses tersebut untuk mencari bilangan terbesar lainnya setelah bilangan terbesar pertama tadi. Namun proses perbandingan hanya dilakukan mulai dari elemen pertama sampai elemen ke-7. Isi elemen pertama dibandingkan dengan elemen ke-2. Karena isi elemen ke-2 lebih besar, maka isi kedua elemen tersebut tidak ditukar. Kemudian elemen ke-2, dibandingkan dengan elemen ke-3. Karena elemen ke-3 lebih kecil, maka isi kedua elemen tersebut ditukar sehingga isi array menjadi : Elemen terakhir berisikan bilangan terbesar 12 11 20 17 9 35 23 58 Elemen array setelah di tukar 11<20 7

Lanjutkan proses diatas sampai pada elemen ke-7. Hasilnya isi array menjadi. 12 11 20 17 9 23 35 58 Elemen yang sudah di urutkan Kini isi elemen ke-7 dan ke-8 sudah urut berdasarkan bilangan kecil ke besar. Namun elemen lainnya belum terurut. Untuk itu ulangi proses diatas, namun elemen yang dibandingkan hanya sampai pada elemen ke-6 saja. Setelah itu, proses perbadingan diulangi lagi sampai elemen terakhir yang dibandingkan yaitu elemen ke-2. Hasil akhirnya menjadi : 9 11 12 17 20 23 35 58 2.6 IMPLEMENTASI DALAM BENTUK FLOWCHART Seperti telah dijelaskan sebelumnya, proses pengurutan memakai variabel array untuk menampung semua bilangan yang akan diurutkan. Oleh karena itu sebelum proses pengurutan dilakukan, terlebih dahulu dibuat proses untuk mengisi semua bilangan ke dalam array. Setelah array tersebut terisi, barulah proses pengurutan dilakukan untuk mengurutkan isinya. Seperti diketahui, jika salah satu elemen array di isi dengan nilai baru, maka nilai lama akan terhapus. Oleh sebab itu untuk mempertukarkan isi elemen array harus mengggunakan satu variabel cadangan. Variabel ini digunakan untuk menyimpan isi array yang akan ditukar. 9 11 12 17 20 23 35 58 Misalnya isi elemen ke-2 dari variabel BILARR akan ditukar dengan elemen ke-3. Maka isi elemen ke-2 disimpan terlebih dahulu ke variabel cadangan (misalnya untuk variabel ini diberi nama TEMP). Setelah itu, isi elemen ke-3 dipindahkan ke elemen ke-2, lalu isi dari variabel TEMP dipindahkan ke elemen ke-3. Ilustrasi dibawah ini memperlihatkan pertukaran kedua elemen tersebut. 8

11 9 11 12 17 20 23 35 58 Proses tersebut dapat dituliskan sebagai berikut : TEMP = BILARR (2) BILARR(2) = BILARR (3) BILARR(3) = TEMP Dari proses yang telah dijelaskan, pengurutan bilangan dari kecil ke besar dengan metode bubble sort dapat digambarkan melalui flowchart seperti berikut : 1. I=0 J=0 N=0 J= J + 1 N=N + 1 2 Input Bil BILARR(I) BIL = 1 TEMP=BILARR(I) BILARR(I)=BILARR(I+1) BILARR(I+1)=TEMP N=N+1 I=N- 3 BILARR (N) = BIL 2 9

J = I = 0 I = 0 I = I +1 3 PRINT BILARR(I) I = END 2.7 Bubble Sort dalam Bahasa Program C++ #include <iostream.h> #include <conio.h> main() { int i,j,n,data[10],simpan,k; cout<<"\tbubble SORT MENGGUNAKAN C++"<<endl; cout<<"\t============================"<<endl; cout<<"\t10512318 Andrian Ramadhan IS8"<<endl; cout<<"\nmasukkan banyak data= ";cin>>n; for(i=1;i<=n;i++) { cout<<"data "<<i<<" = ";cin>>data[i]; } cout<<"awal = "; for(i=1;i<=n;i++) 10

cout<<data[i]<<" "; cout<<endl; for(i=1;i<n;i++) { for(j=1;j<n;j++) { if(data[j]>data[j+1]) { simpan=data[j]; data[j]=data[j+1]; data[j+1]=simpan; } } } cout<<"hasil= "; for(i=1;i<=n;i++) cout<<data[i]<<" "; getch(); } Output Hasil program C ++ 11

BAB III PENUNTUP 3.1 Kesimpulan Algoritma Bubble Sort adalah algoritma yang simpel dan mudah dipelajari, selain itu memiliki definisi terurut yang jelas dalam algoritmanya. Akan tetapi, algoritma BubbleSort memiliki kelemahan, yaitu kompleksitas algoritma pada saat mengurutkan data yang sangat besar akan mengalami kelambatan luar biasa, sehingga menjadikan algoritma ini tidak efektif dalam pengurutan. 12