Pertemuan 10 – Unit Testing dan Debuging

1. Pendahuluan

Project Unit Testing dan Debugging ini bertujuan untuk menerapkan proses pengujian dan penelusuran kesalahan (debugging) pada sebuah aplikasi Java sederhana menggunakan BlueJ. Studi kasus yang digunakan adalah bagian dari aplikasi online shop, khususnya modul yang menangani SalesItem dan customer comments.

Unit testing dilakukan untuk memastikan bahwa setiap bagian kecil dari program, seperti method dan class, telah berfungsi sesuai dengan perilaku yang diharapkan sebelum aplikasi dikembangkan secara penuh. Debugging dilakukan untuk mengidentifikasi dan memperbaiki kesalahan yang muncul selama proses pengujian.


2. Konsep Dasar

Unit Testing adalah proses pengujian terhadap bagian terkecil dari sebuah aplikasi, seperti method atau class, untuk memastikan bahwa kode menghasilkan perilaku yang sesuai dengan tujuan awal. Pengujian ini dapat dilakukan sejak awal pengembangan, bahkan ketika aplikasi belum sepenuhnya selesai.

Debugging merupakan proses untuk menemukan sumber kesalahan (bug) dalam kode program dan memperbaikinya agar aplikasi dapat berjalan dengan benar.

BlueJ menyediakan fasilitas object bench yang memungkinkan pengembang untuk membuat objek dan memanggil method secara langsung, sehingga unit testing dapat dilakukan dengan lebih mudah dan interaktif.


3. Deskripsi Sistem

Code Program : https://github.com/rafly-alpha/PBO-B/tree/main/Online-Shop

Project ini menggunakan dua class utama, yaitu:

  • SalesItem → merepresentasikan sebuah item penjualan pada aplikasi e-commerce
  • Comment → merepresentasikan komentar pelanggan terhadap item penjualan

Fungsi utama dari sistem ini adalah mengelola komentar pelanggan, termasuk menambahkan komentar, menghapus komentar, melakukan voting komentar, serta menampilkan komentar paling membantu.


4. Fungsionalitas yang Diuji (Unit Testing)

Beberapa fungsi utama yang diuji dalam project ini meliputi:

  1. Penambahan komentar ke dalam SalesItem
  2. Penghapusan komentar berdasarkan indeks
  3. Validasi rating komentar (harus berada pada rentang 1–5)
  4. Pembatasan satu komentar untuk setiap author
  5. Proses upvote dan downvote komentar
  6. Penentuan komentar paling membantu berdasarkan jumlah vote
  7. Penampilan informasi SalesItem melalui method showInfo()

5. Implementasi Unit Testing Menggunakan BlueJ

Pengujian dilakukan langsung melalui object bench BlueJ dengan langkah-langkah berikut:

  1. Membuat objek SalesItem SalesItem item = new SalesItem("Laptop Gaming", 15000000);
  2. Menambahkan komentar valid item.addComment("Andi", "Produk sangat bagus", 5); item.addComment("Budi", "Harga sesuai kualitas", 4);
  3. Menguji validasi rating item.addComment("Citra", "Rating tidak valid", 7); // harus ditolak
  4. Menguji pembatasan satu komentar per author item.addComment("Andi", "Komentar kedua", 3); // harus ditolak
  5. Menguji voting komentar item.upvoteComment(0); item.upvoteComment(0); item.downvoteComment(1);
  6. Menguji pencarian komentar paling membantu Comment best = item.findMostHelpfulComment();

Melalui langkah-langkah tersebut, setiap method dapat diuji secara terpisah tanpa perlu menjalankan keseluruhan aplikasi.


6. Debugging

Selama proses pengujian, debugging dilakukan untuk menemukan dan memperbaiki kesalahan pada kode. Contoh kesalahan yang dapat ditemukan adalah:

  • Validasi rating yang tidak sesuai dengan spesifikasi
  • Kesalahan logika pada pemilihan komentar paling membantu
  • Kesalahan perhitungan harga pada method priceString()

BlueJ memungkinkan penggunaan inspection dan interaction langsung pada objek, sehingga kesalahan dapat dideteksi lebih awal dan diperbaiki sebelum sistem berkembang menjadi lebih kompleks.


7. Manfaat Unit Testing dan Debugging

Penerapan unit testing dan debugging dalam project ini memberikan beberapa manfaat, antara lain:

  • Kesalahan dapat ditemukan lebih awal
  • Biaya perbaikan lebih rendah dibandingkan jika bug ditemukan di tahap akhir
  • Kualitas kode menjadi lebih terjaga
  • Perubahan pada sistem dapat diuji ulang tanpa merusak bagian lain

8. Kesimpulan

Project Unit Testing dan Debugging menggunakan BlueJ pada modul SalesItem dan Comment berhasil menunjukkan pentingnya pengujian unit dan proses debugging dalam pengembangan perangkat lunak. Dengan menguji setiap method secara terpisah, pengembang dapat memastikan bahwa sistem bekerja sesuai dengan kebutuhan dan siap dikembangkan lebih lanjut ke tahap aplikasi yang lebih besar.