Minggu, 05 Oktober 2025

PBO A - Pertemuan 6 - Latihan Grouping Object

 Nama    : Erlangga Rizqi Dwi Raswanto

NRP      : 5025241179

Kelas     : PBO A


Pada pertemuan ini, materi berfokus pada Grouping Objek dan sifat/perilaku objek. Grouping Objek berarti mengelompokkan banyak objek berdasarkan struktur data agar mudah dikelola. Program yang dibuat adalah aplikasi Personal Notebook berbasis terminal yang memungkinkan pengguna:

  • menambah catatan,

  • melihat daftar catatan,

  • mencari catatan,

  • menghapus catatan.

Pengelompokan objek dilakukan dengan ArrayList<Note> di dalam NotebookApp. Setiap catatan direpresentasikan sebagai objek Note (berisi judul dan isi).


Konsep OOP pada aplikasi ini 

  • Kelas sebagai blueprint objek: Note mewakili satu catatan.

  • Sifat (atribut): title, content (bersifat privateenkapsulasi).

  • Perilaku (method): konstruktor, getter, dan toString() pada Note.

  • Grouping objek: ArrayList<Note> pada NotebookApp menyimpan banyak Note.

  • Enkapsulasi: akses atribut Note dibatasi, diakses lewat getter.


Desain Class 

Note.java

 public class Note {  
   private String title;  
   private String content;  
   
   public Note(String title, String content) {  
     this.title = title;  
     this.content = content;  
   }  
   
   public String getTitle() {  
     return title;  
   }  
   public String getContent() {  
     return content;  
   }  
   
   @Override  
   public String toString() {  
     return "Judul: " + title + "\nIsi: " + content;  
   }  
 }  
   
  • Atribut:
private String title;
private String content;
  • Konstruktor: Note(String title, String content) untuk membentuk objek yang valid.
  • Getter: getTitle(), getContent() enkapsulasi.
  • Representasi: toString() menampilkan catatan.

NotebookApp.java

 public class Note {  
   private String title;  
   private String content;  
   
   public Note(String title, String content) {  
     this.title = title;  
     this.content = content;  
   }  
   
   public String getTitle() {  
     return title;  
   }  
   public String getContent() {  
     return content;  
   }  
   
   @Override  
   public String toString() {  
     return "Judul: " + title + "\nIsi: " + content;  
   }  
 }

  • Struktur data: ArrayList<Note> notes = new ArrayList<>();
  • I/O: memakai Scanner dengan validasi input angka menu.
  • Menu & Fitur:
  1. Tambah Catatan
    Meminta judul dan isi, lalu notes.add(new Note(title, content)).

  2. Lihat Semua Catatan
    Menampilkan daftar judul (nomor urut + judul). Bila kosong, diberi pesan.

  3. Cari Catatan
    Pencarian case-insensitive berdasarkan substring judul (contains). Semua kecocokan ditampilkan lengkap via toString().

  4. Hapus Catatan
    Menghapus berdasarkan judul yang sama persis (case-insensitive) memakai removeIf(...)

  5. Keluar
    Mengakhiri program dan menutup Scanner.


Contoh Penggunaan :

Menambah Catatan


Melihat Catatan



Mencari dan menampilkan catatan




Menghapus dan melihat catatan





Tidak ada komentar:

Posting Komentar

PBO A - Pertemuan 15 - Pong!

Nama : Erlangga Rizqi Dwi Raswanto NRP : 5025241179 Kelas : PBO A 1. Pendahuluan Pada pertemuan 15, kita mempraktikkan pembuatan game...