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));
 }
}
}
 }
}
}


  Ini hasil run nya







 


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

Yang kedua Selection sorting adalah perbaikan dari metode bubble sort yang mengurangi perbandingan dan pertukaran,metode ini dapat mencari nilai terkecil atau terbesar.

//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