Anda di halaman 1dari 7

LAPORAN

PRAKTIKUM STRUKTUR DATA

Modul 6
SORTING

Dosen Pengampu Mata Kuliah:


Nanda Kurnia Wardati, S.Kom., M.Kom

Asisten Praktikum:
Risqi Pradana

Disusun Oleh:

NAMA : ABDI DZIKRILLAH


NIM : 2210671003
KELAS : SISTEM INFORMASI (A)

PROGRAM STUDI SISTEM INFORMASI


FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH JEMBER
2023
Sistem Informasi
Universitas Muhammadiyah Jember
Jl. Karimata 49 Jember 68121
Telp .0331-226728
Fax. 0331-337957

A. POKOK BAHASAN
Sorting

B. TUJUAN
 Mampu memahami Sorting;
 Mampu mendeklarasikan dan membuat sorting;
 Mampu mengakses element-element didalam sorting;
 Mampu mengaplikasikan sorting ke dalam bahasa pemrograman java.

C. ALAT DAN BAHAN


 Perangkat Komputer/PC atau Laptop
 Sistem Operasi Windows/Linux/MacOS
 Aplikasi Netbeans
 Modul Praktikum Struktur data

D. TUJUAN PROGRAM
Tujuan dari program ini adalah untuk mengurutkan variable angka dalam urutan
tertentu, kecil ke besar (ascending) maupun besar kekecil (descending) menggunakan
metode Bubbleshort,Selectionsort,Insertionsort.
E. INPUT PROGRAM
Dalam Program ini tidak ada inputan karena inputan angka sudah ada dalam
program.
F. OUTPUT PROGRAM
 Hasil pengurutan descending dari bubble short
 Hasil pengurtan descending dari Selectionshort
 Hasil pengurutan descending dari Insertionshort
G. ALUR KERJA PROGRAM
1. Kita memasukkan angka kedalam program untuk dieksekusi oleh program.
2. Pada saat kita menjalankan program, program akan mengeksekusi angka yang
telah kita input menggunakan Bubbleshort.
3. Bubble short akan mengeksekusi program dengan cara membadingkan data
sebelahnya kemudian dilakukan pertukaran.
4. Kemudian program akan mengeksekusi menggunakan metode Selectionsort
5. Selection Sort mengeksekusi dengan cara mencari data dari yang terbesar
kemudian akan ditukar dengan data sebagai pivot.
6. Kemudian program akan mengeksekusi menggunakan Metode Insertionsort
7. InsertionSort dilakukan dengan cara menyisipkan elemen array pada posisi yang
tepat.

H. SOURCE CODE PROGRAM


Sistem Informasi
Universitas Muhammadiyah Jember
Jl. Karimata 49 Jember 68121
Telp .0331-226728
Fax. 0331-337957

 Class1

public class SortingArray {


private static void bubbleSort(int[] bilangan) {
int n = bilangan.length;
int temp = 0;
for(int i=0; i < n; i++){
for(int j=1; j < (n-i); j++){
if(bilangan[j-1] > bilangan[j]){
temp = bilangan[j-1];
bilangan[j-1] = bilangan[j];
bilangan[j] = temp;
}
}
}
}

private static void selectionSort(int[] bilangan){

for (int i = 0; i < bilangan.length - 1; i++){


int index = i;
for (int j = i + 1; j < bilangan.length; j++){
if (bilangan[j] > bilangan[index]){
index = j;
}
}

int largerNumber = bilangan[index];

bilangan[index] = bilangan[i];
bilangan[i] = largerNumber;
}

private static void insertionSort(int bilangan[]) {

int n = bilangan.length;
for (int j = 1; j < n; j++) {
int key = bilangan[j];

int i = j-1;
Sistem Informasi
Universitas Muhammadiyah Jember
Jl. Karimata 49 Jember 68121
Telp .0331-226728
Fax. 0331-337957

while ( (i > -1) && ( bilangan [i] < key ) ) {


bilangan [i+1] = bilangan [i];
i--;
}
bilangan[i+1] = key;
}
}

public static void main(String[] args){


int bilangan[] = {15, 29, 10, 38, 71, 45, 30};
System.out.println("== Program Sorting dengan Array ==");
System.out.println("Data Sebelum Dilakukan Sorting");
System.out.print("15 29 10 38 71 45 30");
System.out.println();

bubbleSort(bilangan);
System.out.println("Algoritma Bubble Sort");
for(int i=0; i < bilangan.length; i++){
System.out.print(bilangan[i] + " ");
}
System.out.println();
selectionSort(bilangan);
System.out.println("Algoritma Selection Sort");
for(int i=0; i < bilangan.length; i++){
System.out.print(bilangan[i] + " ");
}
System.out.println();

insertionSort(bilangan);
System.out.println("Algoritma Insertion Sort");
for(int i=0; i < bilangan.length; i++){
System.out.print(bilangan[i] + " ");
}
System.out.println();

 Class2

public class SortingList {


Sistem Informasi
Universitas Muhammadiyah Jember
Jl. Karimata 49 Jember 68121
Telp .0331-226728
Fax. 0331-337957

class Node {
int data;
Node next;
public Node(int data){
this.data = data;
this.next = null;
}
}

public Node head = null;


public Node tail = null;
public void addNode(int data){
Node newNode = new Node(data);
if (head == null){
head = newNode;
tail = newNode;
}else{
tail.next = newNode;

tail = newNode;
}

public void sortList(){

Node current = head, index = null;


int temp;
if (head == null){
return;
}else{
while (current != null){
index = current.next;
while (index != null){
if (current.data < index.data) {
temp = current.data;
current.data = index.data;
index.data = temp;
}
index = index.next;
}
current = current.next;
Sistem Informasi
Universitas Muhammadiyah Jember
Jl. Karimata 49 Jember 68121
Telp .0331-226728
Fax. 0331-337957

}
}
}

public void display(){


Node current = head;
if (head == null){
System.out.println("List is empty");
return;
}

while (current != null){

System.out.print(current.data + " ");

current = current.next;
}
System.out.println();

}
public static void main(String[] args){
SortingList sList = new SortingList();
sList.addNode(15);
sList.addNode(29);
sList.addNode(10);
sList.addNode(38);
sList.addNode(71);
sList.addNode(45);
sList.addNode(30);
System.out.println("== Program Sorting dengan Linked List ==");
System.out.println("Data Sebelum Dilakukan Sorting");
sList.display();
sList.sortList();
System.out.println("Data Setelah Dilakukan Sorting");
sList.display();
}
}

I. HASIL PROGRAM
 Class1
Sistem Informasi
Universitas Muhammadiyah Jember
Jl. Karimata 49 Jember 68121
Telp .0331-226728
Fax. 0331-337957

 Class2

J. KESIMPULAN
Berdasarkan praktikum yang telah dilakukan, dapat disimpulkan bahwa bubble
sort kurang efisien karena banyak penukaran dalam setiap langkah dan memakan
banyak waktu. Meskipun mudah dipahami, tidak direkomendasikan untuk digunakan.
Sementara itu, metode selection sort dan insertion sort lebih baik dalam kinerja
dibandingkan bubble sort. Operasi pertukaran dilakukan hanya sekali dalam setiap
langkah, sehingga waktu pengurutan dapat lebih efisien. Kedua metode ini
direkomendasikan untuk digunakan ketika penghapusan elemen sering terjadi atau
dalam algoritma yang memerlukan operasi tersebut.

Anda mungkin juga menyukai