🖥️
JTI - Modul Praktikum: Algoritma dan Struktur Data
  • 👋Selamat Datang!
  • 🔰Refreshment
    • 🔰Job Sheet 1: Objek
    • 🔰Job Sheet 2 - Array of Objects
  • 📚Dasar Struktur Data
    • 📚Job Sheet 3: Brute Force & Divide Conquer
      • 🐣Praktikum 1
      • 🐥Praktikum 2
      • 🐔Tugas Praktikum
  • 🔍Job Sheet 4: Sorting dan Searching
    • 🧮Praktikum 1: Sorting
    • 🔭Praktikum 2: Searching
    • 📚Tugas Praktikum
  • 📈Struktur Data Linier
    • 🧮Job Sheet 5: Stack
      • 👔Praktikum 1
      • ♾️Praktikum 2
      • 📲Tugas Praktikum
    • ⛓️Job Sheet 6: Queue
      • 🧬Praktikum 1
      • 💸Praktikum 2
      • 💷Tugas
    • 🔗Job Sheet 7: Single Linked List
      • 📂Praktikum 1
      • 🗂️Praktikum 2
      • 🗃️Tugas
    • ➿Job Sheet 8: Doubly Linked List
      • 📕Praktikum 1
      • 📗Praktikum 2
      • 📘Praktikum 3
      • ✍️Tugas Praktikum
  • 🎆STRUKTUR DATA NON LINEAR
    • 🌳Job Sheet 9: Tree
      • 🌴Praktikum 1
      • 🎋Praktikum 2
      • 🎄Tugas
    • 🗺️Job Sheet 10: Graf
      • 🛣️Praktikum 1
      • 🛤️Praktikum 2
      • 🏔️Tugas
    • 🌏Job Sheet 11: Hash Table
      • 🌎Praktikum 1
      • 🌍Tugas
    • 🎄Job Sheet 12: Heap
      • 🌿Praktikum 1
      • 🎋Tugas
    • ⛰️Job Sheet 13: Java Collection
      • 🌄Praktikum 1
      • 🏔️Praktikum 2
      • 🗻Praktikum 3
      • 🌏Praktikum 4
      • 🌎Praktikum 5
      • 🌋Tugas Praktikum
  • 🧑‍🏫Kontributor
Powered by GitBook
On this page
  • Pengantar
  • Sorting dengan Selection Sort
  • Langkah-langkah Percobaan
  • Sorting dengan Insertion Sort
  • Langkah-langkah Percobaan
  1. Job Sheet 4: Sorting dan Searching

Praktikum 1: Sorting

PreviousJob Sheet 4: Sorting dan SearchingNextPraktikum 2: Searching

Last updated 1 year ago

Pengantar

Perhatikan class diagram dari Mahasiswa dan DaftarMahasiswaBerprestasi berikut ini,

Berdasarkan kedua class diagram tersebut, pada percobaan ini kita akan membuat array of objects berisi mahasiswa berprestasi. Jumlah mahasiswa beprestasi yang disimpan didalam objek adalah 5. Terdapat beberapa fungsi didalam class Mahasiswa dan DaftarMahasiswaBerprestasi yang akan digunakan pada proses sorting.

Sorting dengan Selection Sort

Langkah-langkah Percobaan

  • Buatlah sebuah proyek baru dengan nama "Sorting".

  • Buatlah sebuah class baru dengan nama "Mahasiswa". Gunakan kode dibawah ini untuk membuat class Mahasiswa.

public class Mahasiswa {
    public String nama;
    public int thnMasuk, umur;
    public double ipk;
    
    Mahasiswa(String n, int t, int u, double i {
        this.nama = n;
        this.thnMasuk = t;
        this.umur = u;
        this.ipk = i;
    }
    
    public void tampil() {
        System.out.println("Nama = "+nama);
        System.out.println("Tahun Masuk = "+thnMasuk);
        System.out.println("Umur = "+umur);
        System.out.println("IPK = "+ipk);
    }
}
  • Buatlah class "DaftarMahasiswaBerprestasi" sesuai dengan class diagram yang telah disediakan.

public class DaftarMahasiswaBerprestasi {
    Mahasiswa listMhs[] = new Mahasiswa[5];
    int idx;
    
    // method tambah()
    
    // method tampil()
    
    // method selectionSort()
}
  • Buatlah method "tambah()" didalam class DaftarMahasiswaBerprestasi

// method tambah()

public void tambah(Mahasiswa m) {
    if(idx<listMhs.length) {
        listMhs[idx] = m;
        idx++;
    } else {
        System.out.println("Data sudah penuh!");
    }
}
  • Tambahkan method "tampil()". Method ini digunakan untuk menampilkan semua daftar mahasiswa berprestasi.

// method tampil()

public void tampil() {
    // fungsi loop for berikut
    // akan melakukan looping
    // sejumlah objek didalam list
    // secara langsung
    for (Mahasiswa m : listMhs) {
        m.tampil()
        System.out.println("----------------------");
    }
}
  • Kemudian buatlah method "selectionSort()" yang digunakan untuk melakukan pengurutan data mahasiswa berprestasi dengan algoritma selectionSort.

// method selectionSort()

public void selectionSort() {
    for(int i=0; i<listMhs.length-1; i++) {
        int idxMin = i;
        for(int j=i+1; j<listMhs.length; j++) {
            if(listMhs[j].ipk < listMhs[idxMin].ipk) {
                idxMin = j
            }
        }
        // swap
        Mahasiswa tmp = listMhs[idxMin];
        listMhs[idxMin] = listMhs[i];
        listMhs[i] = tmp;
    }
}
  • Buatlah main class untuk mengeksekusi program sorting yang Anda buat.

public class Main {
    public static void main(String[] args) {
        DaftarMahasiswaBerprestasi list = new DaftarMahasiswaBerprestasi();
        Mahasiswa m1 = new Mahasiswa("Nusa", 2017, 25, 3);
        Mahasiswa m2 = new Mahasiswa("Rara", 2012, 19, 4);
        Mahasiswa m3 = new Mahasiswa("Dompu", 2018, 19, 3.5);
        Mahasiswa m4 = new Mahasiswa("Abdul", 2017, 23, 2);
        Mahasiswa m5 = new Mahasiswa("Ummi", 2019, 21, 3.75);
        
        list.tambah(m1);
        list.tambah(m2);
        list.tambah(m3);
        list.tambah(m4);
        list.tambah(m5);
        
        System.out.println("Data mahasiswa sebelum sorting = ");
        list.tampil();
        
        System.out.println("Data mahasiswa setelah sorting asc berdasarkan ipk = ");
        list.selectionSort()
        list.tampil();
    }
}
  • Verifikasi Hasil Percobaan --> Sebelum Sorting

  • Verifikasi Hasil Percobaan --> Setelah Sorting

Sorting dengan Insertion Sort

Langkah-langkah Percobaan

Pada percobaan ini, kita akan menggunakan seluruh komponen utama pada class Mahasiswa dan DaftarMahasiswaBerprestasi yang telah dibuat. Dalam praktrikum ini kita hanya menambahkan method "insertionSort()" dan sedikit modifikasi pada main class.

  • Tambahkan method "insertionSort()" pada class DaftarMahasiswaBerprestasi.

// method insertionSort()

public void insertionSort() {
    for(int i=1; i<listMhs.length; i++) {
        Mahasiswa temp = listMhs[i];
        int j = i;
        while(j > 0 && listMhs[j-1].ipk > temp.ipk) {
            listMhs[j] = listMhs[j-1];
            j--;
        }
        listMhs[j] = temp;
    }
}
  • Kemudian tambahkan kode berikut kedalam main class

System.out.println("Data mahasiswa setelah sorting asc berdasarkan ipk = ");
list.insertionSort()
list.tampil();
  • Verifikasi hasil percobaan. Apakah menghasilkan hasil yang sama dengan selection sort? Mana yang lebih cepat?

🔍
🧮
Gambar 4.1.1. Class Diagram Mahasiswa
Gambar 4.1.2. Class Diagram DaftarMahasiswaBerprestasi