Tech Support System Menggunakan Java

Nama : Rafaela Shyra Ashma' Ramadhani

NRP : 5025231217

Kelas : Pemrograman Berorientasi Objek - G

Tugas 5 - Pertemuan 6

 

Pada pertemuan yang keenam untuk tugas kelima saya belajar membuat tech support system menggunakan Java yang dijalankan pada aplikasi BlueJ.

Kode : Github

Penjelasan :

A. SupportSystem.java

1. Kelas `SupportSystem`:
   - Kelas ini berfungsi sebagai inti dari sistem dukungan.
   - Ada dua variabel instance: `responder` (untuk menghasilkan respon) dan `reader` (untuk membaca input pengguna).

2. Konstruktor `SupportSystem()`:
   - Di dalam konstruktor, objek dari kelas `Responder` dan `InputReader` dibuat dan diinisialisasi.
   - Objek ini bertanggung jawab untuk merespon input pengguna dan membaca input tersebut.

3. **Metode `start()`:
   - Metode ini mengontrol alur utama program.
   - Selama pengguna belum mengetik "bye", program akan terus meminta input dari pengguna dan memberikan respons.
   - Jika pengguna mengetik "bye", program akan berhenti.

4. Metode `printWelcome()`:
   - Menampilkan pesan sambutan kepada pengguna saat program dimulai.
   - Menginformasikan bahwa mereka bisa mendapatkan bantuan dengan mengetikkan masalah mereka, dan bisa keluar dari program dengan mengetik "bye".

5. Metode `printGoodbye()`:
   - Menampilkan pesan perpisahan setelah pengguna mengetik "bye" untuk mengakhiri program.

6. Metode `main(String[] args)`:
   - Ini adalah titik awal eksekusi program.
   - Objek dari kelas `SupportSystem` dibuat, dan metode `start()` dipanggil untuk memulai interaksi.

B.  InputReader.java 

1. Kelas `InputReader`:
   - Kelas ini berfungsi sebagai alat untuk membaca teks yang diketik oleh pengguna.
   - Input yang dimasukkan oleh pengguna diambil dari keyboard.

2. Variabel `reader`:
   - Variabel ini adalah objek dari kelas `Scanner` yang digunakan untuk membaca input dari sistem (yaitu dari keyboard).
   - `Scanner` adalah kelas bawaan Java yang bisa membaca input dari berbagai sumber, dalam kasus ini dari `System.in`, yang berarti dari input pengguna melalui keyboard.

3. Konstruktor `InputReader()`:
   - Konstruktor ini akan membuat objek `Scanner` baru yang siap digunakan untuk membaca input dari pengguna.
   - Jadi, saat sebuah objek `InputReader` dibuat, secara otomatis `Scanner` juga diinisialisasi.

4. Metode `getInput()`:
   - Metode ini membaca satu baris input dari pengguna.
   - Pertama, menampilkan tanda prompt (`"> "`) di layar untuk meminta pengguna mengetik sesuatu.
   - Kemudian, input pengguna diambil menggunakan `nextLine()` untuk membaca satu baris penuh teks.
   - Hasil input diproses dengan dua metode:
     - `trim()`: Menghapus spasi tambahan di awal dan akhir input.
     - `toLowerCase()`: Mengubah seluruh teks menjadi huruf kecil agar input lebih mudah diproses.
   - Akhirnya, metode ini mengembalikan input yang sudah diproses.
 

C. Responder.java

1. Kelas `Responder`:
   - Kelas ini menyimpan daftar respons (jawaban) dan keyword (kata kunci), serta menyediakan metode untuk menghasilkan respons berdasarkan input yang diberikan pengguna.
   - Kelas ini menggunakan `HashMap` untuk mencocokkan keyword dengan indeks jawaban yang sesuai, dan menggunakan `Random` untuk memilih jawaban acak jika input tidak mengandung keyword yang dikenali.

2. Variabel-variabel Utama:
   - `answers[]`: Array yang menyimpan semua jawaban (respon) yang mungkin diberikan oleh sistem.
   - `keywords`: HashMap yang memetakan kata kunci (keyword) ke indeks tertentu di array `answers[]`.
   - `random`: Objek dari kelas `Random` yang digunakan untuk menghasilkan angka acak, digunakan jika input pengguna tidak cocok dengan keyword yang ada.
   - `allAnswers`: Sebuah variabel yang menunjukkan total jumlah jawaban yang tersedia (dalam hal ini ada 21 jawaban).

3. Konstruktor `Responder()`:
   - Konstruktor ini bertugas menginisialisasi objek `Random`, mengisi daftar jawaban (`answers()`) dan mengisi daftar kata kunci (`keywordlist()`).

4. Metode `generateResponse(String input)`:
   - Metode ini menghasilkan respons berdasarkan input yang diberikan pengguna.
   - Prosesnya adalah:
     1. Program mengecek apakah input pengguna mengandung salah satu keyword yang ada di dalam HashMap `keywords`.
     2. Jika input cocok dengan salah satu keyword, program akan mengembalikan jawaban yang sesuai dari array `answers[]` berdasarkan indeks yang ada di HashMap.
     3. Jika tidak ada keyword yang cocok, maka sistem akan memberikan jawaban acak dari array `answers[]` menggunakan metode `random.nextInt()`.

5. Metode `answers()`:
   - Metode ini mengisi array `answers[]` dengan berbagai jawaban yang bisa diberikan oleh sistem.
   - Ada 21 jawaban yang berbeda, mulai dari respons yang lucu, sarkastik, hingga teknis seperti "Did you turn it off and on?" atau "The answer to life, the universe and everything is 42."

6. Metode `keywordlist()`:
   - Metode ini mengisi `HashMap keywords` dengan kata kunci (seperti "java", "mac", "windows", dll.) dan mengaitkannya dengan indeks jawaban tertentu di array `answers[]`.
   - Contohnya, jika pengguna mengetik kata "java", sistem akan memberikan jawaban di indeks ke-10 dari array `answers[]`, yaitu "Java, java, java."

Cara menjalankan kodenya :

1. Buka BlueJ dan buat proyek baru. Misalnya, beri nama proyek SupportSystem.

2. Buat tiga kelas baru dengan nama Responder, InputReader, dan SupportSystem.

3. Salin kode lengkap di atas ke masing-masing kelas yang sesuai (Responder.java, InputReader.java, dan SupportSystem.java).

4. Setelah menempelkan kode di masing-masing kelas, klik tombol Compile pada setiap kelas untuk memastikan kode tersebut tidak memiliki error.

5. Setelah semua kelas berhasil dikompilasi, klik kanan pada kelas SupportSystem di jendela BlueJ, dan pilih void main(String[] args) untuk menjalankan program.

6. Ketika program berjalan, kamu akan melihat pesan sambutan di terminal. Kamu bisa mengetik berbagai input seperti "java", "windows", "problem", atau lainnya. Sistem akan memberikan jawaban yang sesuai dengan keyword yang ada. Jika keyword tidak ditemukan, maka jawaban acak dari daftar jawaban akan ditampilkan. Untuk mengakhiri program, kamu cukup mengetik "bye".

Outputnya :


 Diagram Class :



Komentar

Postingan populer dari blog ini

Web Pendaftaran Siswa Baru - CRUD dengan PHP dan MySQL

Final Project PBO - G