๐ป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