🖥️
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
  • Langkah Praktikum
  • Pertanyaan
  1. STRUKTUR DATA NON LINEAR
  2. Job Sheet 13: Java Collection

Praktikum 3

Pada praktikum 3 ini dilakukan uji coba untuk mengimplementasikan sebuah collection untuk menampung objek yang dibuat sesuai kebutuhan. Objek tersebut adalah sebuah objek mahasiswa dengan fungsi-fungsi umum seperti menambahkan, menghapus, mengubah, dan mencari.

Langkah Praktikum

  • Buatlah sebuah class Mahasiswa dengan attribute, kontruktor, dan fungsi sebagai berikut.

public class Mahasiswa {
    String nim;
    String nama;
    String notelp;

    public Mahasiswa(){}

    public Mahasiswa(String nim, String nama, String notelp) {
        this.nim = nim;
        this.nama = nama;
        this.notelp = notelp;
    }

    @Override
    public String toString() {
        return "Mahasiswa{" +
                "nim='" + nim + '\'' +
                ", nama='" + nama + '\'' +
                ", notelp='" + notelp + '\'' +
                '}';
    }
}
  • Selanjutnya, buatlah sebuah class ListMahasiswa yang memiliki attribute seperti di bawah ini.

List<Mahasiswa> mahasiswas = new ArrayList<>();
  • Method tambah(), hapus(), update(), dan tampil() secara berurut dibuat agar bisa melakukan operasi-operasi seperti yang telah disebutkan.

public void tambah(Mahasiswa... mahasiswa) {
        mahasiswas.addAll(Arrays.asList(mahasiswa));
    }

public void hapus(int index) {
    mahasiswas.remove(index);
}

public void update(int index, Mahasiswa mahasiswa) {
    mahasiswas.set(index, mahasiswa);
}

public void tampil() {
    mahasiswas.stream().forEach(mhs -> {
        System.out.println("" + mhs.toString());
    });
}
  • Untuk proses hapus, update membutuhkan fungsi pencarian terlebih dahulu yang potongan kode programnya adalah sebagai berikut.

private int linearSearch(String nim) {
    for(int i = 0; i < mahasiswas.size(); i++) {
        if(nim.equals(mahasiswas.get(i).nim)) {
            return i;
        }
    }

    return -1;
}
  • Pada class yang sama, tambahkan main method seperti potongan program berikut dan amati hasilnya!

ListMahasiswa lm = new ListMahasiswa();

Mahasiswa m = new Mahasiswa("19001", "Noureen", "08123456789");
Mahasiswa m1 = new Mahasiswa("19002", "Akhleema", "08123456789");
Mahasiswa m2 = new Mahasiswa("19003", "Shannum", "08123456789");

lm.tambah(m, m1, m2);

lm.tampil();

lm.update(lm.linearSearch("19002"), new Mahasiswa("19002", "Uwais", "08123456789"));
System.out.println("");
lm.tampil();
  • Verifikasi hasil kompilasi kode program Anda dengan gambar berikut ini.

Pertanyaan

  • Pada fungsi tambah() yang menggunakan unlimited argument itu menggunakan konsep apa? Dan kelebihannya apa?

  • Pada fungsi linearSearch() di atas, silakan diganti dengan fungsi binarySearch() dari collection!

  • Tambahkan fungsi sorting baik secara ascending ataupun descending pada class tersebut!

PreviousPraktikum 2NextPraktikum 4

Last updated 1 year ago

🎆
⛰️
🗻
Contoh Hasil