Tech Support System
Nama: Valensio Arvin Putra Setiawan
Kelas: PBO G
NRP: 5025231273
Link Github: https://github.com/killervaps/pbo-techsupport-system
1. Kelas
SupportSystemFungsi Utama: Mengatur alur utama program.
Konstruktor (
SupportSystem):- Membuat objek
InputReaderuntuk membaca input pengguna. - Membuat objek
Responderuntuk menghasilkan respons.
- Membuat objek
Metode
start():- Tujuan: Memulai sistem dan mengelola interaksi hingga pengguna keluar.
- Algoritma:
- Cetak pesan selamat datang dengan
printWelcomeMessage(). - Masuk ke loop utama:
- Baca input pengguna menggunakan
InputReader.getInput(). - Validasi input:
- Jika input adalah "exit", keluar dari loop.
- Jika input kosong, beri pesan peringatan dan minta input ulang.
- Jika input valid, panggil
Responder.generateResponse()untuk menghasilkan respons. - Tampilkan respons kepada pengguna.
- Baca input pengguna menggunakan
- Setelah loop selesai, cetak pesan selamat tinggal dengan
printGoodbyeMessage().
- Cetak pesan selamat datang dengan
Penting:
- Logika kontrol memastikan pengguna bisa berinteraksi secara berulang sampai mereka keluar.
Ringkasan Alur:
- Sambut pengguna.
- Baca input.
- Validasi input.
- Hasilkan respons melalui
Responder. - Ulangi hingga pengguna mengetik "exit".
2. Kelas Responder
Fungsi Utama: Menghasilkan respons berbasis input.
Konstruktor (
Responder):- Inisialisasi kata kunci (
keywordResponses):- Kata kunci dipetakan ke respons tertentu menggunakan
HashMap. - Misalnya:
- Input "internet" menghasilkan respons tentang masalah koneksi.
- Kata kunci dipetakan ke respons tertentu menggunakan
- Inisialisasi fallback responses:
- Respons generik untuk input tanpa kata kunci.
- Inisialisasi kata kunci (
Metode
generateResponse(String input):- Algoritma:
- Ambil input pengguna.
- Loop melalui setiap kata kunci dalam
keywordResponses.- Jika input pengguna mengandung kata kunci, ambil respons yang sesuai.
- Jika tidak ada kata kunci yang cocok, gunakan respons fallback.
- Kelebihan:
- Respons spesifik untuk masalah umum.
- Respons fallback memberikan kesan ramah dan profesional.
- Algoritma:
Metode
getFallbackResponse():- Mengembalikan respons acak dari daftar fallback.
Ringkasan Alur:
- Periksa apakah input mengandung kata kunci yang telah ditentukan.
- Jika kata kunci cocok, kembalikan respons terkait.
- Jika tidak ada kata kunci yang cocok, kembalikan respons fallback.
3. Kelas InputReader
Fungsi Utama: Membaca input pengguna dari terminal.
Konstruktor (
InputReader):- Membuat objek
Scanneruntuk membaca input teks.
- Membuat objek
Metode
getInput():- Algoritma:
- Cetak prompt (
>) untuk meminta input dari pengguna. - Gunakan
Scanner.nextLine()untuk membaca input pengguna. - Hapus spasi tambahan menggunakan
trim(). - Kembalikan string input.
- Cetak prompt (
- Algoritma:
Ringkasan Alur:
- Tunggu pengguna mengetik sesuatu.
- Baca input sebagai string.
- Kembalikan string input ke
SupportSystem.
Alur Kerja Program Secara Keseluruhan
- Program dimulai dengan
SupportSystem.start(). - Selamat Datang:
- Tampilkan pesan pengantar.
- Loop Interaksi:
- Baca input pengguna dengan
InputReader.getInput(). - Validasi input:
- Jika "exit", keluar dari loop.
- Jika kosong, minta input ulang.
- Kirim input ke
Responder.generateResponse():- Cari respons berdasarkan kata kunci.
- Jika tidak ada kata kunci yang cocok, gunakan fallback.
- Tampilkan respons kepada pengguna.
- Baca input pengguna dengan
- Selesai:
- Tampilkan pesan perpisahan.
Comments
Post a Comment