🗻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!

Last updated