# Job Sheet 2 - Array of Objects

## Tujuan Praktikum

Setelah melakukan materi praktikum ini, mahasiswa mampu,

1\.     Mengenal objek dan class sebagai konsep mendasar pada pemrograman berorientasi objek.

2\.     Mendeklarasikan class, atribut dan method.

3\.     Membuat objek (instansiasi).

4\.     Mengakses atribut dan method dari suatu objek.

5\.     Menerapkan konstruktor.

6\.     Memahami dan menjelaskan fungsi array yang berisikan variabel objek.

7\.     Mahasiswa mampu menangkap logika tentang permasalahan *array of objects* dalam Java.

8\.     Mahasiswa mampu menerapkan pembuatan *array of objects* dalam Java.

## Kasus Nasabah Bank

Sebuah kelas "Nasabah" merupakan representasi dari objek nasabah sebuah bank. Kelas ini memiliki atribut dan method yang dapat digunakan untuk menggambarkan objek nasabah. Gambar berikut merupakan desain kelas "Nasabah".

<figure><img src="https://3303136777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYswnbGm4Ak9kOqe8uURG%2Fuploads%2FYjZHPInbhQrUP5xDehn5%2FScreen%20Shot%202023-09-07%20at%2008.17.03.png?alt=media&#x26;token=8d6bdb27-2da4-4515-9373-a64ef90297b9" alt=""><figcaption><p>Desain Kelas "Nasabah"</p></figcaption></figure>

### Tugas

1. Implementasikan kelas "Nasabah" sesuai dengan desain yang telah diberikan dan ketentuan berikut ini,
   * Method `lihatSaldo()` digunakan untuk melihat kondisi saldo tabungan.
   * Method `menabung()` digunakan untuk menambah `saldo` sesuai nominal parameter `deposit` yang dimasukkan.
   * Method `tarikTunai()` digunakan untuk mengurangi `saldo` sejumlah parameter `jmlTarik`.
   * Method `bukaRekening()` digunakan nasabah untuk pertama kali. Jika nasabah belum memiliki rekening, maka `statusAktif` `false` dan tidak boleh melakukan aktifitas `lihatSaldo()`, `menabung()`, `tarikTunai()`, `tutupRekening()`, dan `berhutang()`.
   * Method `tutupRekening()` digunakan untuk menonaktifkan rekening sehinggan nasabah tidak lagi dapat melakukan aktifitas `lihatSaldo()`, `menabung()`, `tarikTunai()`, `tutupRekening()`, dan `berhutang()`.
   * Method `berhutang()` digunakan untuk mengajukan pinjaman dengan aturan berikut,
     * Jika `jmlHutang` >= `saldo`, akan muncul peringatan ajuan peminjaman ditolak.
     * Jika `jmlHutang` < `saldo`, pinjaman disetujui dan dimunculkan simulasi skema cicilan per bulan.
     * Seluruh cicilan harus dihitung dalam waktu 6 bulan.
     * Simulasi skema cicilan per bulan dihitung dari jumlah hutang di rekening/6. Jangan lupa menggunakan konversi tipe data `int` ke `float`.
2. Berdasarkan soal nomor 1, terapkan kasus lebih dari 1 nasabah menggunakan array of objects!
3. Berdasarkan soal nomor 1 dan 2, terapkan kasus 1 nasabah dapat memiliki lebih dari 1 rekening menggunakan array biasa!

## Pengumpulan Tugas

Kumpulkan tugas praktikum melalui LMS dengan ketentuan,

1. Gunakan template yang telah ditentukan.
2. Format nama file: **\[JS02]NoAbsen\_Nama Lengkap.pdf**
3. Kompres file java menjadi satu (pisahkan packager atau folder untuk setiap tugas) dengan format nama file: **\[JS02-CODE]NoAbsen\_Nama Lengkap.zip**


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://polinema.gitbook.io/jti-modul-praktikum-algoritma-dan-struktur-data/refreshment/job-sheet-2-array-of-objects.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
