Aplikasi ini dibuat untuk memenuhi Tugas 1 Pemrograman Berorientasi Objek (PBO) dengan konsep investasi sederhana.
Dalam program ini dirancang untuk dua jenis user dengan akses yang berbeda, yaitu:
- Admin dapat mengelola daftar Saham dan Surat Berharga Negara (SBN), termasuk menambahkan data baru dan mengubah harga saham.
 - Customer digambarkan sebagai investor, dengan fitur untuk membeli saham, menjual saham, membeli SBN, melakukan simulasi kupon, dan melihat portofolio investasi yang dimiliki.
 
Seluruh interaksi pengguna dilakukan melalui tampilan terminal/console, dengan desain antarmuka sederhana namun terstruktur (menggunakan header dan clear screen setiap navigasi).
Program dilengkapi dengan sistem validasi input pada setiap form isian untuk mencegah kesalahan input dan menjaga konsistensi data.
Struktur program memanfaatkan prinsip OOP (Object-Oriented Programming) sepenuhnya, seperti enkapsulasi data dalam model, pemisahan antara layanan service untuk admin dan customer, serta penggunaan class khusus untuk keperluan menu navigasi.
Untuk deskripsi kode lebih rinci, sudah disediakan komentar pada setiap bagian penting kode.
- ├── investasi/
- ├── main/
 - │ ├── Main.java
 - │ ├── AdminMenu.java
 - │ └── CustomerMenu.java
 - ├── service/
 - │ ├── AdminService.java
 - │ └── CustomerService.java
 - ├── model/
 - │ ├── User.java
 - │ ├── Saham.java
 - │ └── SuratBerhargaNegara.java
 
 
- Trio Suro Wibowo (2405551168)
 - I Made Agus Hendra Diwangga (2405551155)
 
- 
Admin :
- Tambah Saham baru
 - Ubah Harga Saham
 - Tambah Surat Berharga Negara (SBN)
 
 - 
Customer :
- Beli Saham
 - Jual Saham
 - Beli SBN
 - Simulasi Kupon SBN
 - Melihat Portofolio Saham dan SBN
 
 
Pengembangan program ini menggunakan konsep-konsep dasar dari Object Oriented Programming yaitu:
- Penerapan Object dan Class pada semua komponen seperti Saham, SBN, User, AdminService, dan CustomerService.
 - Penggunaan Alur Kontrol (Flow Control) seperti while loop untuk navigasi menu, for-each loop untuk menampilkan daftar, if-else untuk validasi, dan switch-case untuk pilihan menu.
 - Penggunaan ArrayList untuk menyimpan data dinamis Saham dan Surat Berharga Negara.
 - Implementasi relasi antar class (association, dependency, aggregation) antara AdminService, CustomerService, Saham, SBN, dan User.
 - Penerapan Encapsulation dengan penggunaan modifier akses private pada atribut dan public pada method accessor.
 - Penggunaan Override pada method-method penting seperti menu navigasi.
 - Desain program modular dengan pemisahan menu, service, dan model.
 
Di bawah ini adalah contoh implementasi program investasi saham dan surat berharga negara (SBN) lengkap dengan hasil tangkapan layar. Penjelasan mengenai cara kerja kode dapat ditemukan di bawah ini.
Tampilan login menampilkan dua akun akses yaitu admin dengan username admin dan password admin123 serta customer dengan username customer dan password cust123 yang ditampilkan secara terpisah agar memudahkan pengguna dalam memilih peran saat masuk ke dalam aplikasi.
Tampilan menu admin terdiri dari tiga pilihan utama yaitu Kelola Saham untuk menambahkan atau mengubah data saham Kelola SBN untuk menambahkan surat berharga negara dan Logout untuk keluar dari sesi admin.
Tampilan menu admin kelola saham berisi tiga opsi yaitu Tambah Saham untuk memasukkan data saham baru Ubah Harga Saham untuk memperbarui harga saham yang sudah ada dan Kembali untuk kembali ke menu utama admin.
Tampilan tambah saham memungkinkan admin untuk memasukkan kode saham nama perusahaan dan harga saham kemudian sistem akan menampilkan notifikasi bahwa data saham berhasil ditambahkan sebelum kembali ke menu sebelumnya.
Tampilan ubah harga saham memungkinkan admin memilih salah satu saham dari daftar yang tersedia kemudian memasukkan harga baru yang diinginkan dan sistem akan menampilkan notifikasi bahwa harga saham berhasil diperbarui.
Tampilan kelola SBN memungkinkan admin untuk mengakses menu pengelolaan Surat Berharga Negara, di mana tersedia dua pilihan yaitu menambahkan data SBN baru atau kembali ke menu sebelumnya. Admin akan diminta memilih salah satu opsi, dan sistem akan mengeksekusi tindakan sesuai dengan pilihan yang dipilih.
Tampilan tambah SBN memungkinkan admin untuk menginput data SBN baru dengan mengisi beberapa informasi seperti nama SBN, tingkat bunga, jangka waktu dalam bulan, tanggal jatuh tempo, dan kuota nasional. Setelah semua data diinputkan dengan benar, sistem akan menampilkan notifikasi bahwa SBN berhasil ditambahkan ke dalam daftar, dan meminta admin menekan ENTER untuk melanjutkan ke proses berikutnya.
Tampilan menu customer menyediakan berbagai pilihan bagi pengguna untuk mengelola aktivitas investasinya. Dalam menu ini, customer dapat membeli saham, menjual saham, membeli SBN, melakukan simulasi investasi SBN, melihat portofolio, serta keluar dari sistem. Sistem akan meminta customer untuk memilih salah satu opsi dengan memasukkan nomor sesuai daftar yang ditampilkan.
Tampilan beli saham memungkinkan customer memilih salah satu saham dari daftar yang tersedia berdasarkan nomor urut, lalu memasukkan jumlah lembar saham yang ingin dibeli. Setelah proses pembelian berhasil, sistem akan menampilkan notifikasi bahwa saham telah berhasil dibeli dan meminta customer menekan ENTER untuk melanjutkan.
Tampilan jual saham memungkinkan customer memilih saham yang dimiliki dari daftar portofolio, lalu memasukkan jumlah lembar saham yang ingin dijual. Setelah transaksi dilakukan, sistem akan menampilkan notifikasi bahwa saham telah berhasil dijual dan meminta customer menekan ENTER untuk melanjutkan proses.
Tampilan beli SBN memungkinkan customer memilih salah satu jenis Surat Berharga Negara dari daftar yang tersedia, kemudian memasukkan nominal pembelian yang diinginkan. Setelah proses transaksi berhasil, sistem akan menampilkan notifikasi bahwa SBN telah berhasil dibeli dan meminta customer untuk menekan ENTER guna melanjutkan ke tahap berikutnya.
Tampilan simulasi SBN menampilkan hasil simulasi berdasarkan jenis Surat Berharga Negara yang telah dipilih dan nominal investasi yang dimasukkan oleh customer. Dalam tampilan ini, sistem menampilkan jenis SBN yaitu Obligasi Negara Ritel, beserta nilai investasi sebesar Rp10.000.000,00 dan estimasi kupon yang akan diterima setiap bulan sebesar Rp49.875,00.
Tampilan portofolio menampilkan ringkasan investasi yang dimiliki customer, terdiri dari saham dan SBN. Pada bagian saham, ditampilkan kepemilikan saham Bank Central Asia sebanyak 900 lembar dengan total nilai pasar sebesar Rp3.600.000,00. Sementara pada bagian SBN, ditampilkan investasi pada Obligasi Negara Ritel senilai Rp10.000.000,00 dengan kupon bulanan sebesar Rp49.875,00.
Tampilan diatas merupakan tampilan setelah logout, yang dimana setelah logout pengguna akan otomatis kembali ke menu awal.















