AMIK PGRI KEBUMEN- Struktur Data-Praktikum 2
Laporan Praktikum Algoritma Sorting
Nama: Monika Dewi Permata Sari
Nim: 16/MI/0005
Jurusan: Management Informatika
Tahun Ajaran: 2017/2018
Hai mau bagi Ilmu lagi nih tentang
algoritma sorting
Sebenernya banyak metode buat
alogirtma sorting tapi aku mau nyampein yang mudah aja......
Yang pertama Bubble Sorting adalah metode sorting
yang yang cukup mudah. Bubble sorting Ascending --> pemindahan value dari
kiri -kekanan sedang kan Descending --> pemindahan value dari kanan -kekiri.
Contoh:
Bubble sorting Ascending
// @autor monika dewi permata sari
package Pertemuan3;
import java.util.Arrays;
public class BubbleSortAsc {
public static void main(String[]args){
//variable
int[]bilangan={5,12,3,19,1,47};
//tampilkan bilangan
System.out.println("Bilangan
sebelum di sorting Bubble Sort :"+Arrays.toString(bilangan));
//Proses bubble sort
System.out.println("\nProses
Bubble Sort secara Ascending:");
for(int a=0; a<bilangan.length;a++){
System.out.println("Iterasi" +(a+1));
for(int b=0; b<bilangan.length-1;b++){
{if(bilangan[b]>bilangan[b+1]){
//proses pertukaran bilangan
int temp=bilangan[b];
bilangan[b]=bilangan[b+1];
bilangan[b+1]=temp;
//tampilkan proses pertukaran
System.out.println("Hasil akhir setelah di sorting:"
+Arrays.toString(bilangan));
}
}
}
}
}
}
Bubble Sorting Descending
//@autor monika dewi permata sari
package Pertemuan3;
import java.util.Arrays;
public class BubbleSortDesc {
public static void main(String[]
args) {
//Variable
int[] bilangan = {5, 12, 3, 19, 1,
47};
//Tampilkan bilangan
System.out.println("Bilangan sebelum di sorting Bubble Sort :
"+Arrays.toString(bilangan));
//Proses Bubble Sort
System.out.println("\nProses Bubble Sort secara Descending:");
for(int a = 0; a <
bilangan.length; a++) {
//Tampilkan proses Iterasi
System.out.println("Iterasi "+(a+1));
for(int b = 0; b <
bilangan.length-1; b++) {
if(bilangan[b] < bilangan[b+1]) {
// proses
pertukaran bilangan
int temp = bilangan[b];
bilangan[b] = bilangan[b+1];
bilangan[b+1] = temp;
}
// Tampilkan
proses pertukaran tiap iterasi
System.out.println(Arrays.toString(bilangan));
}
System.out.println();
}
// Tampilkan
hasil akhir
System.out.println("Hasil akhir
setelah di sorting: "+Arrays.toString(bilangan));
}
}
Ini run nya
//monika dewi permata sari
package Pertemuan3;
import java.util.Scanner;
public class SelectionSort {
public static void main(String[] args){
//buat obyek Scanner
Scanner scan=new Scanner(System.in);
//Input jumlah tiap Data
System.out.print("Masukkan jumlah
Data:" ); int jlh_data=
scan.nextInt();
//Input nilai tiap data
int[]data = new int[jlh_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();
//tampilan data sebelum disorting
System.out.println();
System.out.print("data sebelum
disorting:");
for(int X=0; X<jlh_data;
X++)
System.out.print(data[x]+"
");
//proses selectoin 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 urutanya?");
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 (tukar==true)
//pertukaran data
pesan=
"Data"+data[x]+"ditukar dengan Data"+data[index];
int temp=data[x];
data[x]=data[index];
for (int y=0; y <
jlh_data; y++)
System.out.print(data[y] +" ");
System.out.println(pesan+"\n");
}
}
}
Ini run nya
Yang ketiga Insertion sort adalah metode pengurutan dimana langkah-langkah ia
membandingkan dari data kedua kedata pertama.
//author monika dewi
package Pertemuan3;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Random;
public class InsertionSort {
public static void main(String[]
args) throws IOException
{
// Objek BufferedReader
BufferedReader dataIn = new BufferedReader(new
InputStreamReader(System.in));
// Input jumlah Data
System.out.print("Masukkan
jumlah Data : "); int
jlh_data =
Integer.parseInt(dataIn.readLine());
// Array Data untuk menampung nilai
Data
int[] data = new int[jlh_data];
// Menu Pengisian data
System.out.println("\nMenu
Pengisian Data");
System.out.println("1. Di input
oleh user");
System.out.println("2. Di isi
oleh program");
System.out.print("Pilihan :
"); int
isi_data =
Integer.parseInt(dataIn.readLine());
switch(isi_data)
{
case 1 : // Pengisian Data oleh si
User
System.out.println();
for(int a = 0; a <
jlh_data; a++)
{
System.out.print("Data
ke-"+(a+1)+" : "); data[a] =
Integer.parseInt(dataIn.readLine());
}
break;
case 2 : // Pengisian Data oleh
program --> di isi secara acak
System.out.println();
for(int a = 0; a <
jlh_data; a++)
data[a] = new
Random().nextInt(201);
// Tampilkan Data yang di isi oleh
program
System.out.print("Data :");
for(int a = 0; a <jlh_data; a++)
System.out.print(data[a]+"
");
break;
default : System.out.println("\nPilihan
tidak tersedia");
}
// Proses InsertionSort Sort
System.out.println("\nProses
Insertion Sort");
for(int a = 0; a < jlh_data-1;
a++)
{
System.out.println("Iterasi
"+(a+1));
for(int b = 0; b < jlh_data; b++)
System.out.print(data[b]+"\t");
System.out.print(" -->
Bandingkan "+data[a+1]+"dengan "+data[a]);
for(int b = a+1; b > 0; b--)
{
String pesan = " --> Tidak
ada pertukaran";
if(data[b] < data[b-1])
{
pesan = " -->
"+data[b]+" tukar posisi dengan "+data[b-1];
// Proses Pertukaran
int temp = data[b];
data[b] = data[b-1];
data[b-1] = temp;
System.out.println();
for(int c = 0; c < jlh_data; c++)
System.out.print(data[c]+"\t");
System.out.print(pesan);
}
else
{
System.out.println();
for(int c = 0; c < jlh_data; c++)
System.out.print(data[c]+"\t");
System.out.print(pesan);
break;
}
}
System.out.println("\n");
}
// Tampilkan hasil Sorting
System.out.print("\nData setelah
di Sorting : ");
for(int a = 0; a < jlh_data; a++)
System.out.print(data[a]+"
");
}
}
Ini run nya
Tugas
package Pertemuan3;
//author monika dewi
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Random;
public class Tugas {
public static void main(String[] args) throws IOException
{
// Objek BufferedReader
BufferedReader dataIn = new
BufferedReader(new InputStreamReader(System.in));
// Input jumlah Data
System.out.print("Masukkan
jumlah Data : "); int
jlh_data =
Integer.parseInt(dataIn.readLine());
// Array Data untuk menampung nilai
Data
int[] data = new int[jlh_data];
// Menu Pengisian data
System.out.println("\nMenu
Pengisian Data");
System.out.println("1.
Ascending");
System.out.println("2.
Discending");
System.out.print("Pilihan :
"); int isi_data = Integer.parseInt(dataIn.readLine());
switch(isi_data)
{
case 1 : // Pengisian Data oleh si
User
System.out.println();
for(int a = 0; a <
jlh_data; a++)
{
System.out.print("Data
ke-"+(a+1)+" : "); data[a] =
Integer.parseInt(dataIn.readLine());
}
break;
case 2 : // Pengisian Data oleh
program --> di isi secara acak
System.out.println();
for(int a = 0; a <
jlh_data; a++)
data[a] = new Random().nextInt(201);
// Tampilkan Data yang di isi oleh
program
System.out.print("Data :");
for(int a = 0; a <jlh_data; a++)
System.out.print(data[a]+"
");
break;
default :
System.out.println("\nPilihan tidak tersedia");
}
// Proses InsertionSort Sort
System.out.println("\nProses
Insertion Sort");
for(int a = 0; a < jlh_data-1;
a++)
{
System.out.println("Iterasi
"+(a+1));
for(int b = 0; b < jlh_data; b++)
System.out.print(data[b]+"\t");
System.out.print(" -->
Bandingkan "+data[a+1]+"dengan "+data[a]);
for(int b = a+1; b > 0; b--)
{
String pesan = " --> Tidak
ada pertukaran";
if(data[b] < data[b-1])
{
pesan = " -->
"+data[b]+" tukar posisi dengan "+data[b-1];
// Proses Pertukaran
int temp = data[b];
data[b] = data[b-1];
data[b-1] = temp;
System.out.println();
for(int c = 0; c < jlh_data; c++)
System.out.print(data[c]+"\t");
System.out.print(pesan);
}
else
{
System.out.println();
for(int c = 0; c < jlh_data; c++)
System.out.print(data[c]+"\t");
System.out.print(pesan);
break;
}
}
System.out.println("\n");
}
// Tampilkan hasil Sorting
System.out.print("\nData setelah
di Sorting : ");
for(int a = 0; a < jlh_data; a++)
System.out.print(data[a]+"
");
}
}
Ini run nya
Komentar
Posting Komentar