Bubble Sort dan Selection Sort di Java Console

dokumen-dokumen yang mirip
Metode Binnary Searching di Java Console

Insertion Sort Dengan Algoritma Divide And Conquer

Metode Insertion Sort di Java Console

ShortHand If Else di Java

Belajar ArrayList di Java

Metode Sequential Searching di Java Console

Teknik Menukarkan 2 Variable tanpa pihak Ketiga

Gambar 1. Langkah-langkah pengurutan metode Insertion Sort (1)

Politeknik Elektronika Negeri Surabaya

Enkripsi Karakter - Soal Lomba Pemrograman

Percabangan dan Perulangan

ARRAY, SORTING & SEARCHING

Politeknik Elektronika Negeri Surabaya

Politeknik Elektronika Negeri Surabaya

DASAR PEMROGRAMAN JAVA. Astrid Lestari Tungadi, S.Kom., M.TI.

TIPE DATA Pertemuan (K-03/L-03)

Powered by icomit.wordpress.com

Modul Praktikum Algoritma dan Struktur Data

Belajar Rekursif di Java

Input Nilai tanpa Case String di Java

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA FAKULTAS ILMU KOMPUTER UNIVERSITAS BRAWIJAYA

Array. Adharul Muttaqin Universitas Brawijaya Malang. Array

Pemrograman Berorientasi Objek (PBO) PERTEMUAN X (LOOPING)

TIPE DATA PADA JAVA. Pertemuan (K-04/L-04)

Politeknik Elektronika Negeri Surabaya

Latihan Ujian Pemrograman Berorientasi Objek. Semester Genap 2016/2017

Tiga Metode Sangat Penting dalam Pemrograman Java Bagi Pemula

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

Modul 8 SORTING (PENGURUTAN)

1. Mana diantara pilihan-pilihan berikut ini yang merupakan penulisan loop yang benar?

PRAKTIKUM PEMROGRAMAN LANJUT MODUL 1

Politeknik Elektronika Negeri Surabaya

Perulangan / Looping

Modul Praktikum 6 Pemograman Berorientasi Objek

Parent dan Child di Java

LAPORAN PRAKTIKUM PEMROGRAMAN DASAR TIPE-TIPE FUNGSI ATAU METHOD

MODUL III ARRAYLIST TUGAS PENDAHULUAN

Cara Mencari Selisih Waktu di Java

Politeknik Elektronika Negeri Surabaya

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

BAB 2 SORTING (PENGURUTAN)

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

Array Multidimensi. Pemrograman Dasar. Java

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

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

MODUL 5 PERULANGAN A. WHILE

# TEN Sorting PENDAHULUAN

A. TEORI ARRAY 1 DIMENSI

Penyeleksi Kondisi / Percabangan

Gambar 13.1 Ilustrasi proses algoritma sorting

Politeknik Elektronika Negeri Surabaya

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA BUBBLE SORT, SELECTION SORT, INSERTION SORT

Tes Asisten Praktikum Alpro Lanjut

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

Pengurutan (Sorting) Algoritma Pemrograman

SORTING (Pengurutan)

Membuat Menu Login Sederhana [Full Coding]

Method. Pemrograman Dasar Sistem Informasi PTIIK Herman Tolle

Modul Praktikum 4 Pemograman Berorientasi Objek

Projek Kelompok 7. package (tiopan-programmer java) public class aritmatika1{ public static void main(string[]tiw){ int calculation = 1;

Algoritma dan Struktur Data

A. TUJUAN PEMBELAJARAN

BAB VI Pengurutan (Sorting)

LAPORAN PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK

Pengenalan Java, Tipe Data, Variabel dan Operator. Putu Putra Astawa

Kelompok 7. package (tiopan-programmer java) public class aritmatika1{ public static void main(string[]tiw){ int calculation = 1;

Chapter 12.1: package chapter.pkg12; /** * Advan */ import java.util.random; import static java.lang.system.out; public class Chapter12 {

Setelah menyelesaikan praktikum ini, mahasiswa diharapkan mampu:

IF PEMROGRAMAN LANJUT PERULANGAN. Oleh : Andri Heryandi, M.T.

Tiopan Indra Wahyudi R5L PROJECT KELOMPOK 7 R5L. package brekk; public class brekk{ public static void main(string[]args){

Array 1 Dimensi pada Java

Topik. 1. Statement if 2. Statement if..else.. 3. Statement if..else.. If (bertingkat ) 4. Penggunaan Input Keyboard

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

Bab 8 Array. x=a[9]; Untuk memasukkan data ke dalam array, sintak yang digunakan adalah : a[nomor_elemen] = data;

Method / Fungsi / Sub Program

LAB02 : KODING PROGRAM

Terdiri atas deretan karakter String diimplementasikan oleh java dalam bentuk class. Dapat langsung di konstruksi tanpa perintah new

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

Pertemuan 3 Struktur Perulangan pada Java

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PENGENALAN OBJECT ORIENTED PROGRAMMING

Permainan Remi Sederhana

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

Pemrograman. Pertemuan-3 Fery Updi,M.Kom

LAPORAN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN ( Implementasi Rekursi Pada Java)

Penggunaan Algoritma Backtrack dan Aturan Warnsdorff Untuk Menyelesaikan Knight s Tour Problem

Input - Output PEMROGRAMAN DASAR. Dr. Eng. Herman Tolle, ST., MT. Sistem Informasi PTIIK UB Semester Ganjil 2014/2015

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

LAB PEMROGRAMAN I (JAVA FUNDAMENTAL) PERTEMUAN 5 Dosen : Bella Hardiyana S. Kom

Pemrograman JAVA INPUT-OUTPUT

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

TUGAS 1: WIN OR LOSE. package kartu; import java.util.random; public class kartu { /** args the command line arguments

Pertemuan III [STRUKTUR KONTROL] CariGrade.java Program mencari grade nilai menggunakan struktur control if-else

Percabangan & Perulangan

STRUKTUR DATA SORTING ARRAY

Decision and Looping

A. TEORI ARRAY 1 DIMENSI

Modul 3 Flow Control dan Input

BAB I PENDAHULUAN.

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

Transkripsi:

Bubble Sort dan Selection Sort di Java Console Oleh: Yudi Setiawan Dalam Perusahaan, tentu Data itu sangat penting. Bisa Anda bayangkan bahwa data – data dalam perusahaan itu sangat banyak. Kesalahan sedikit saja dalam proses Pengolahan Data dapat menyebabkan tidak kesesuaian data atau lebih parahnya lagi data tersebut hilang yang bisa disebabkan oleh program itu s... Dalam Perusahaan, tentu Data itu sangat penting. Bisa Anda bayangkan bahwa data data dalam perusahaan itu sangat banyak. Kesalahan sedikit saja dalam proses Pengolahan Data dapat menyebabkan tidak kesesuaian data atau lebih parahnya lagi data tersebut hilang yang bisa disebabkan oleh program itu sendiri atau bisa juga disebabkan dari faktor Human Error. Oleh karena itu, sebuah program yang baik ialah program yang mampu melakukan algoritma yang baik terhadap pengolahan data yang ada. Pada artikel ini, akan saya jelaskan bagaimana melakukan Pengurutan (Sorting) menggunakan metode Bubble Sort dan Selection Sort. Dalam artikel ini, saya akan membuatnya dalam bentuk bahasa pemrograman Java. A) Bubble Sort Bubble Sort merupakan metode pengurutan yang paling banyak digunakan di kalangan programmer dikarenakan penggunaannya yang simple dan sederhana. Namun, dibalik kesederhanaannya itu terdapat proses algoritma yang terlalu lama sehingga bisa dikatakan bahwa Metode Bubble Sort merupakan metode yang paling lambat dibanding dengan metode pengurutan yang lainnya. Bagaimana sih Algoritma dari Bubble Sort tersebut? Berikut akan saya jelaskan secara sederhana dengan contoh kasus seperti di bawah ini. Data : 10 5 2 15 1 Proses Bubble Sort(Ascending): Iterasi 1 : 10 5 2 15 1 (10 bandingkan dengan 5) 5 10 2 15 1 (10 tukar dengan 5. Bandingkan 10 dengan 2) 5 2 10 15 1 (2 tukar dengan 10. Bandingkan 10 dengan 15) 5 2 10 15 1 (Tidak ada pertukaran. Bandingkan 15 dengan 1) 5 2 10 1 15 (15 tukar dengan 1) Iterasi 2 : 5 2 10 1 15 (5 bandingkan dengan 2) 2 5 10 1 15 (5 tukar dengan 2. Bandingkan 5 dengan 10) 2 5 10 1 15 (Tidak ada pertukaran. Bandingkan 10 dengan 1) 2 5 1 10 15 (10 tukar dengan 1) Iterasi 3 : 2 5 1 10 15 (2 bandingkan dengan 5)

2 5 1 10 15 (Tidak ada pertukaran. Bandingkan 5 dengan 1) 2 1 5 10 15 (5 tukar dengan 1) Iterasi 4 : 2 1 5 10 15 (2 bandingkan dengan 1) 1 2 5 10 15 (2 tukar dengan 1) Iterasi 5 : 1 2 5 10 15 (1 bandingkan dengan 2) Maka, Data diatas setelah di sorting ialah sebagai berikut : 1 2 5 10 15 Penjelasan Algoritma Bubble Sort: - Dalam Bubble Sort. Jumlah Iterasi sebesar banyaknya Data. Diatas jumlah datanya ialah 5 maka, jumlah iterasinya ialah 5. Selain itu, setiap iterasi terdapat proses yang jumlahnya ialah sebesar banyaknya Data. Diatas jumlah datanya ialah 5 maka, jumlah proses setiap iterasinya ialah 5. Dan untuk iterasi berikutnya harus dikurang 1. - Dalam Bubble Sort, Walaupun data sudah terurut seperti pada kasus diatas, data sudah terurut pada iterasi ke-4. Namun, proses sorting tetap jalan sampai jumlah iterasinya terpenuhi. - Proses Pertukaran Datanya dimulai dari data pertama dibandingkan dengan data kedua atau bisa digambarkan dengan Data[n] <==> Data[n+1]. Lakukan langkah ini sampai berada pada Data Terakhir. Dari proses algoritma diatas dapat saya simpulkan bahwa Metode Bubble Sort merupakan metode sorting yang paling lambat dibandingkan dengan metode sorting yang lain karena, terdapat proses pembandingan yang terlalu banyak walaupun Data sudah terurut. Dan berikut ialah coding untuk program Bubble Sort. import java.util.scanner; / @author Yudi Setiawan Bubble Sort / public class BubbleSort public static void main(string[] args) // Buat Objek Scanner Scanner scan = new Scanner(System.in); // Input jumlah Data System.out.print("Masukkan jumlah Data : "); int jlh_data =

scan.nextint(); // Input nilai tiap Data int[] data = new int[jlh_data]; // Array untuk menampung nilai tiap Data System.out.println(); for(int a = 0; a < jlh_data; a++) System.out.print("Nilai Data ke-"+(a+1)+" : "); data[a] = scan.nextint(); // Tampilkan Data Sebelum di Sorting System.out.println("\nData Sebelum di Sorting"); for(int a = 0; a < jlh_data; a++) System.out.print(data[a]+" "); // Proses Bubble Sort System.out.println("\nProses Bubble Sort"); for(int a = 0; a < jlh_data; a++) System.out.println("Iterasi ke-"+(a+1)+" :"); for(int b = 0; b < jlh_data; b++) System.out.print(data[b]+" "); System.out.println(" Bandingkan "+data[0]+" dengan "+data[1]); for(int b = 0; b < jlh_data-1; b++) String pesan = " Tidak ada pertukaran"; if(data[b] > data[b+1]) // proses pertukaran nilai Data pesan = " Data "+data[b]+" ditukar dengan "+data[b+1]; int temp = data[b]; // Variable Sebagai pihak ketiga data[b] = data[b+1]; data[b+1] = temp; if(b < jlh_data-(a+1)) for(int c = 0; c < jlh_data; c++) System.out.print(data[c]+" "); System.out.println(pesan);;

System.out.println("\n"); // Tampilkan Data Setelah di Sorting System.out.print("Data Setelah di Sorting : "); for(int a = 0; a < jlh_data; a++) System.out.print(data[a]+" "); B) Selection Sort Selection Sort merupakan salah satu metode pengurutan yang memiliki algoritma yang cukup gampang dalam penulisan coding-nya. Dibanding Bubble Sort, Selection Sort jelas lebih baik dari segi kecepatan proses pengurutannya. Karena, Inti dari algoritma Selection Sort ialah mencari nilai yang paling kecil(jika Ascending) atau nilai yang paling besar(jika Descending) di urutan Data berikutnya. Untuk lebih jelasnya saya beri contoh kasus seperti berikut ini. Data : 13 9 15 2 3 1 Proses Selection Sort (Ascending) Iterasi 1 : 13 9 15 2 3 1 (Apakah 13 nilai yang paling kecil?) 1 9 15 2 3 13 (Tidak. 13 ditukar dengan 1) Iterasi 2 : 1 9 15 2 3 13 (Apakah 9 nilai yang paling kecil?) 1 2 15 9 3 13 (Tidak. 9 ditukar dengan 2) Iterasi 3 : 1 2 15 9 3 13 (Apakah 15 nilai yang paling kecil?) 1 2 3 9 15 13 (Tidak. 15 ditukar dengan 3) Iterasi 4 : 1 2 3 9 15 13 (Apakah 9 nilai yang paling kecil?) 1 2 3 9 15 13 (Iya) Iterasi 5 : 1 2 3 9 15 13 (Apakah 15 nilai yang paling kecil?) 1 2 3 9 13 15 (Tidak. 15 ditukar dengan 13) Data Setelah di sorting ialah sebagai berikut : Data : 1 2 3 9 13 15 Penjelasan Algoritma Selection Sort: - Jumlah Iterasi untuk Selection Sort ialah berjumlah sebesar Jumlah Data 1. Untuk kasus diatas, Jumlah Datanya ialah 6. Maka, jumlah Iterasinya ialah sebesar 6 1 = 5. - Proses pertukaran Data dimulai dari Data Pertama sampai Data Terakhir dengan cara

membandingkan Data ke-n dan cari nilai yang paling kecil di sisi kanan nilai n. - Keterangan bahwa nilai Data yang sudah di tukar(nilai yang paling kecil) tidak akan dibandingkan lagi untuk proses iterasi berikutnya. Berikut ilustrasi lengkapnya untuk kasus diatas. Warna Merah : Data yang akan ditukar atau cek apakah Data tersebut sudah pas di posisinya. Warna Cyan : Cari nilai yang paling kecil atau Data belum terurut. Warna Hijau : Data yang ditukar atau Tidak ada pertukaran Data. Warna Abu-abu : Data yang sudah terurut atau sudah pas di posisinya. Dan berikut ialah source code untuk metode Selection Sort. import java.util.scanner; / @author Yudi Setiawan Selection Sort / public class SelectionSort public static void main(string[] args) // Buat Objek Scanner Scanner scan = new Scanner(System.in); // Input jumlah Data System.out.print("Masukkan jumlah Data : "); int jlh_data = scan.nextint(); // Input nilai tiap Data int[] data = new int[jlh_data]; // Array untuk nilai tiap Data System.out.println(); for(int x = 0; x < jlh_data; x++) System.out.print("Input nilai Data ke-"+(x+1)+" : "); data[x] = scan.nextint(); // Tampilkan Data Sebelum di sorting System.out.println(); System.out.print("Data Sebelum di Sorting : ");

for(int x = 0; x < jlh_data; x++) System.out.print(data[x]+" "); // Proses Selection Sort System.out.println("\n\nProses Selection Sort"); for(int x = 0; x < jlh_data-1; x++) System.out.println("Iterasi ke-"+(x+1)+" : "); for(int y = 0; y < jlh_data; y++) System.out.print(data[y]+" "); System.out.println(" Apakah Data "+data[x]+" sudah benar pada urutannya?"); boolean tukar = false; int index = 0; int min = data[x]; String pesan = " Tidak Ada Pertukaran"; for(int y = x+1; y < jlh_data; y++) if(min > data[y]) tukar = true; index = y; min = data[y]; if(tukar == true) // Pertukaran Data pesan = " Data "+data[x]+" ditukar dengan Data "+data[index]; int temp = data[x]; data[x] = data[index]; data[index] = temp; for(int y = 0; y < jlh_data; y++) System.out.print(data[y]+" "); System.out.println(pesan+"\n"); // Tampilkan Data Setelah di Sorting System.out.print("Data Setelah di sorting : "); for(int x = 0; x < jlh_data; x++) System.out.print(data[x]+" ");

Tentang Penulis Yudi Setiawan Saat ini aktif sebagai Mahasiswa di salah satu Universitas di kota Medan dengan mengambil bidang Fakultas Teknik dan Ilmu Komputer. Sangat senang dengan bahasa pemrograman Java dan Android.