> For the complete documentation index, see [llms.txt](https://polinema.gitbook.io/jti-modul-praktikum-algoritma-dan-struktur-data/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://polinema.gitbook.io/jti-modul-praktikum-algoritma-dan-struktur-data/struktur-data-non-linear/job-sheet-13-java-collection/praktikum-1.md).

# Praktikum 1

Pada pratikum 1 ini akan dicontohkan penggunaan collection untuk menambahkan sebuah elemen, mengakses elemen, dan menghapus sebuah elemen.

## Langkah Pratikum

* Buatlah sebuah class ContohList yang main methode berisi kode program seperti di bawah ini.

{% code overflow="wrap" lineNumbers="true" %}

```java
List l = new ArrayList();

l.add(1);
l.add(2);
l.add(3);
l.add("Cireng");
System.out.printf(
    "Element 0: %d total element: %d elemen terakhir: %s\n",
    l.get(0), l.size(), l.get(l.size()-1)
);

l.add(4);
l.remove(0);
System.out.printf(
    "Element 0: %d total element: %d elemen terakhir: %s\n",
    l.get(0), l.size(), l.get(l.size()-1)
);
```

{% endcode %}

* Tambahkan kode program untuk menggunakan collection dengan aturan penulisan kode program seperti berikut.

{% code overflow="wrap" lineNumbers="true" %}

```java
List<String> names = new LinkedList<>();

names.add("Noureen");
names.add("Akhleema");
names.add("Shannum");
names.add("Uwais");
names.add("Al-Qarni");

System.out.printf(
    "Element 0: %s total element: %d elemen terakhir: %s\n",
    names.get(0), names.size(), names.get(names.size()-1)
);

names.set(0, "My Kid");
System.out.printf(
    "Element 0: %s total element: %d elemen terakhir: %s\n",
    names.get(0), names.size(), names.get(names.size()-1)
);

System.out.println("Names: " + names.toString());
```

{% endcode %}

* Verifikasi hasil kompilasi kode program Anda dengan gambar berikut ini.

<figure><img src="/files/lpcUoen12ZwJmjJdbPcA" alt=""><figcaption><p>Contoh Hasil</p></figcaption></figure>

## Pertanyaan

* Pada potongan kode pertama, mengapa semua jenis data bisa ditampung ke dalam sebuah Arraylist?
* Modifikasi potongan kode pertama sehingga data yang ditampung hanya satu jenis atau spesifik tipe tertentu!
* Ubah kode pada baris 1 potongan kode ke-2 menjadi `LinkedList<String> names = new LinkedList<>();`
* Tambahkan juga baris berikut ini, untuk memberikan perbedaan dari tampilan yang sebelumnya

{% code overflow="wrap" lineNumbers="true" %}

```java
names.push("Mei mei");
System.out.printf(
    "Element 0: %s total element: %d elemen terakhir: %s\n",
    names.get(0), names.size(), names.get(names.size()-1)
);
System.out.println("Names: " + names.toString());
```

{% endcode %}

* Dari penambahan kode tersebut, silakan dijalankan dan apakah yang dapat Anda jelaskan!
