LAPORAN PRAKTIKUM
Sorting (Selection Sort & Insertion Sort Lanjutan)
DISUSUN OLEH :
Mitha Zalina Ramadhany NIM : 6304221424
DOSEN PENGAMPU : Lidya Wati M.Kom NIP : 198908222014042001
Matkul :
Struktur Data dan Algoritma Lanjut
POLITEKNIK NEGERI BENGKALIS JURUSAN TEKNIK INFORMATIKA
REKAYASA PERANGKAT LUNAK
2023/2024
1. Percobaan 2 : Selection Sort DESCENDING Codingan nya:
//MITHA ZALINA RAMADHANY //6304221424
package Sorting;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class SelectionSortMitha2 { static int[] array;
public static void main(String[] args) {
System.out.print("Masukkan Ukuran Array yang diinginkan : ");
int ukuran=inputdata();
inputarray(ukuran);
System.out.println("Isi Array Sebelum Terurut = ");
bacaarray();
selec(array);
System.out.println("Isi Array Setelah Terurut = ");
bacaarray();
}
static void inputarray(int ukuran) {
System.out.println("Masukkan Nilai yang diinginkan = ");
array=new int[ukuran];
for (int i=0; i<ukuran; i++) {
System.out.print("Array "+i+" =");
array[i]=inputdata();
} }
static void bacaarray() {
int ukuran= array.length;
for (int i=0; i<ukuran; i++) {
System.out.println("Nilai Array ke ["+i+"] ="+array[i]);
} }
public static int[] selec(int[] array) {
int ukuran= array.length;
while(ukuran>0) {
int max=0;
int i;
for (i=1; i<ukuran; i++) {
if (array[max]>array[i]) max=i;
}
int temp=array[max];
array[max]=array[ukuran-1];
array[ukuran-1]=temp;
ukuran--;
}
return array;
}
static int inputdata() {
BufferedReader a=new BufferedReader(new InputStreamReader(System.in));
String kata=null;
try{
kata=a.readLine();
}catch (Exception e) {
e.toString();
}
int nilai=Integer.valueOf(kata).intValue();
return nilai;
} }
Hasil Run:
2. Percobaan 3 : Insertion Sort DESCENDING Codingannya:
//MITHA ZALINA RAMADHANY //6304221424
package Sorting;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class InsertionSortMitha2 { static int[] array;
public static void main(String[] args) {
System.out.print("Masukkan Ukuran Array yang diinginkan : ");
int ukuran=inputdata();
inputarray(ukuran);
System.out.println("Isi Array Sebelum Terurut = ");
bacaarray();
insertion(array);
System.out.println("Isi Array Setelah Terurut = ");
bacaarray();
}
static void inputarray(int ukuran) {
System.out.println("Masukkan Nilai yang diinginkan = ");
array=new int[ukuran];
for (int i=0; i<ukuran; i++) {
System.out.print("Array "+i+" =");
array[i]=inputdata();
} }
static void bacaarray() {
int ukuran= array.length;
for (int i=0; i<ukuran; i++) {
System.out.println("Nilai Array ke ["+i+"] ="+array[i]);
} }
static int[] insertion(int[] array) {
int ukuran= array.length;
int max, j;
int i=1;
while(i<ukuran) {
max=array[i];
for (j=i; j>0; j--) {
if (max>array[j-1]) array[j]=array[j-1];
else
break;
}
array[j]=max;
i++;
}
return array;
}
static int inputdata() {
BufferedReader a=new BufferedReader(new InputStreamReader(System.in));
String kata=null;
try{
kata=a.readLine();
}catch (Exception e) {
e.toString();
}
int nilai=Integer.valueOf(kata).intValue();
return nilai;
} }
Hasil Run:
3. Percobaan untuk inputan String Selection Sort “SAYA SUKA SITU SEBAB SITU SUKA SAYA” Berdasarkan DESCENDING
Codingannya:
//MITHA ZALINA RAMADHANY //6304221424
package Sorting;
import java.util.Scanner;
public class StringSelectionSortMitha2 { static String[] array;
public static void main(String[] args) {
System.out.print("Masukkan Ukuran Array yang diinginkan = ");
int ukuran = Integer.parseInt(inputdata());
inputarray(ukuran);
System.out.println("Isi Array sebelum terurut : ");
bacaarray();
selec(array);
System.out.println("Isi Array Setelah Terurut secara ascending:");
bacaarray();
}
static void inputarray(int ukuran) { array = new String[ukuran];
for (int i = 0; i < ukuran; i++) {
System.out.print("array " + i + " : ");
array[i] = inputdata();
} }
static void bacaarray() { int ukuran = array.length;
for (int i = 0; i < ukuran; i++) {
System.out.println("nilai array ke [" + i + "] :" + array[i]);
} }
public static void selec(String[] array) { int ukuran = array.length;
for (int i = 0; i < ukuran - 1; i++) { int maxIndex = i;
for (int j = i + 1; j < ukuran; j++) {
if (array[j].compareTo(array[maxIndex]) > 0) { maxIndex = j;
} }
String temp = array[maxIndex];
array[maxIndex] = array[i];
array[i] = temp;
} }
static String inputdata() {
Scanner input = new Scanner(System.in);
return input.nextLine();
} }
Hasil Run:
4. Percobaan untuk inputan String Insertion Sort “SAYA SUKA SITU SEBAB SITU SUKA SAYA” Berdasarkan DESCENDING
Codingannya:
//MITHA ZALINA RAMADHANY //6304221424
package Sorting;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class StringInsertionSortMitha2 { static String[] array;
public static void main(String[] args) {
System.out.print("Masukkan Ukuran Array yang diinginkan = ");
int ukuran = Integer.parseInt(inputdata());
inputarray(ukuran);
System.out.println("Isi Array Aebelum terurut :");
bacaarray();
insertion(array);
System.out.println("Isi Array Aetelah terurut :");
bacaarray();
}
static void inputarray(int ukuran) {
System.out.println("Masukkan Nilai yang diinginkan :");
array = new String[ukuran];
for (int i = 0; i < ukuran; i++) {
System.out.print("array " + i + " : ");
array[i] = inputdata();
} }
static void bacaarray() { int ukuran = array.length;
for (int i = 0; i < ukuran; i++) {
System.out.println("Nilai Array ke [" + i + "] :" + array[i]);
} }
static void insertion(String[] array) { int ukuran = array.length;
for (int i = 1; i < ukuran; i++) { String key = array[i];
int j = i - 1;
while (j >= 0 && key.compareTo(array[j]) > 0) { array[j + 1] = array[j];
j--;
}
array[j + 1] = key;
} }
static String inputdata() {
BufferedReader a = new BufferedReader(new InputStreamReader(System.in));
String kata = null;
try {
kata = a.readLine();
} catch (Exception e) { e.printStackTrace();
}
return kata;
} }
Hasil Run:
5. PERCOBAAN : Selection Sort Secara ASCENDING Codingannya:
//MITHA ZALINA RAMADHANY //6304221424
package Sorting;
public class SelectionSortMithaASC {
public static <T extends Comparable<? super T>> void selectionSort(T[] arr) {
T temp;
for(int i=arr.length-1 ; i>=0 ; i--){
int max = i;
for(int j=i-1 ; j>=0 ; j--){
if(arr[j].compareTo(arr[max]) > 0) max = j;
}
temp = arr[i];
arr[i] = arr[max];
arr[max] = temp;
} }
public static <T> void tampil(T data[]) { for (T objek : data) {
System.out.print(objek + " ");
}
System.out.println("");
}
public static void main(String[] args) { Integer data[] = new Integer[10];
for(int a=0 ; a>data.length ; a++){
data[a]= (int)(Math.random()*13+1);
}
long awal = System.currentTimeMillis();
selectionSort(data);
long sisaWaktu = System.currentTimeMillis() - awal;
tampil(data);
System.out.println("Waktu " + sisaWaktu);
} }
Hasil Run:
6. PERCOBAAN : Insertion Sort Secara ASCENDING Codingannya:
//MITHA ZALINA RAMADHANY //6304221424
package Sorting;
public class InsertionSortMithaASC {
public static <T extends Comparable<? super T>> void insertionSort(T[] arr){
for (int i=arr.length-1 ; i>=0 ; i--) {
for (int j = i+1, k = i; j <arr.length ; j++){
if (arr[j].compareTo(arr[k]) > 0) { break;
} else {
T temp = arr[k];
arr[k] = arr[j];
arr[j] = temp;
k = j;
} } }
} public static <T> void tampil(T data[]) { for (T objek : data) {
System.out.print(objek + " ");
}
System.out.println("");
}
public static void main(String[] args) { Integer data[] = new Integer[10];
for(int a=0 ; a<data.length ; a++) {
data[a]= (int)(Math.random()*20+1);
}
long awal = System.currentTimeMillis();
insertionSort(data);
long sisaWaktu = System.currentTimeMillis() - awal;
tampil(data);
System.out.println("Waktu " + sisaWaktu);
} }
Hasil Run:
7. PERCOBAAN : Selection Sort Secara DESCENDING Codingannya:
//MITHA ZALINA RAMADHANY //6304221424
package Sorting;
public class SelectionSortMithaDESC {
public static <T extends Comparable<? super T>> void selectionSort(T[] arr) {
T temp;
for(int i=arr.length-1 ; i>=0 ; i--){
int max = i;
for(int j=i-1 ; j>=0 ; j--){
if(arr[j].compareTo(arr[max]) < 0) max = j;
}
temp = arr[i];
arr[i] = arr[max];
arr[max] = temp;
} }
public static <T> void tampil(T data[]) { for (T objek : data) {
System.out.print(objek + " ");
}
System.out.println("");
}
public static void main(String[] args) { Integer data[] = new Integer[10];
for(int a=0 ; a<data.length ; a++){
data[a]= (int)(Math.random()*13+1);
}
long awal = System.currentTimeMillis();
selectionSort(data);
long sisaWaktu = System.currentTimeMillis() - awal;
tampil(data);
System.out.println("Waktu " + sisaWaktu);
} }
Hasil Run:
8. PERCOBAAN : Insertion Sort Secara DESCENDING Codingannya:
package Sorting;
public class InsertionSortMithaDESC {
public static <T extends Comparable<? super T>> void insertionSort(T[] arr){
for (int i=arr.length-1 ; i>=0 ; i--) {
for (int j = i+1, k = i; j <arr.length ; j++){
if (arr[j].compareTo(arr[k]) < 0) { break;
} else {
T temp = arr[k];
arr[k] = arr[j];
arr[j] = temp;
k = j;
} } } }
public static <T> void tampil(T data[]) { for (T objek : data) {
System.out.print(objek + " ");
}
System.out.println("");
}
public static void main(String[] args) { Integer data[] = new Integer[10];
for(int a=0 ; a<data.length ; a++) {
data[a]= (int)(Math.random()*20+1);
}
long awal = System.currentTimeMillis();
insertionSort(data);
long sisaWaktu = System.currentTimeMillis() - awal;
tampil(data);
System.out.println("Waktu " + sisaWaktu);
} }