Nama : Safa Mashita
NRP : 5025241022
SupportSystemInputReaderResponder
Masing-masing kelas memiliki peran yang berbeda, tetapi saling berhubungan membentuk satu sistem utuh.
A. Visualisasi Hubungan Antar Kelas
SupportSystemmenjadi pusat sistem.
Ia memanggilInputReaderuntuk membaca input dari pengguna,
dan menggunakanResponderuntuk menentukan jawaban berdasarkan input tersebut.InputReaderhanya bertanggung jawab membaca teks dari pengguna.Respondermemproses input (kata kunci) dan mengembalikan respon yang sesuai.
- Pengguna menjalankan program
SupportSystem. - Sistem menampilkan sambutan awal dan menunggu input.
InputReadermembaca masukan pengguna.SupportSystemmeneruskan input itu keResponder.Respondermencari kata kunci dalam input dan mengembalikan jawaban sesuai masalah (misal: kelas penuh, prasyarat belum terpenuhi, IPK rendah, dll).- Jawaban dikirim kembali ke
SupportSystemlalu ditampilkan di layar. - Jika pengguna mengetik “bye”, sistem menampilkan pesan perpisahan dan berhenti.
SupportSystem
public class SupportSystem { private InputReader reader; private Responder responder; private boolean running;
public SupportSystem() { reader = new InputReader(); responder = new Responder(); running = true; }
public void start() { printWelcome();
while (running) { String input = reader.getInput("> "); if (input == null) continue; input = input.trim().toLowerCase();
if (input.equals("bye") || input.equals("exit")) { running = false; printGoodbye(); } else { String response = responder.generateResponse(input); System.out.println(response); } } }
private void printWelcome() { System.out.println("== Selamat datang di Bantuan Sistem Akademik! =="); System.out.println("Kami akan membantu Anda menyelesaikan kendala pengisian FRS."); System.out.println("Ketik 'bye' untuk keluar dari sistem."); System.out.println("------------------------------------------------------------"); }
private void printGoodbye() { System.out.println("Terima kasih telah menggunakan Bantuan Sistem Akademik. Semoga sukses di semester ini!"); }
public static void main(String[] args) { SupportSystem system = new SupportSystem(); system.start(); }}
Kegunaan:
Kelas utama yang mengontrol seluruh jalannya program — mulai dari menampilkan sambutan, membaca input, mengolah respon, hingga menutup sistem.
Atribut:
InputReader reader – untuk membaca input pengguna.
Responder responder – untuk menghasilkan respon otomatis.
boolean running – status apakah sistem masih berjalan.
Method utama:
start() – loop utama program, membaca input dan menampilkan respon.
printWelcome() – menampilkan pesan pembuka.
printGoodbye() – menampilkan pesan penutup.
main() – titik awal eksekusi program.
Hubungan:
- Membuat objek
InputReader dan Responder.
- Menggunakan keduanya untuk interaksi dua arah antara pengguna dan sistem.
Bertanggung jawab membaca masukan teks dari pengguna melalui konsol (keyboard).
Atribut:
Scanner scanner– objek untuk membaca input dariSystem.in.
Method:
getInput(String prompt)– menampilkan prompt dan mengembalikan string input pengguna.
Hubungan:
- Dipanggil oleh
SupportSystemuntuk mendapatkan teks input dari pengguna.
Kegunaan:
Berisi daftar masalah dan solusi terkait sistem FRS.
Kelas ini mengidentifikasi kata kunci dari input pengguna dan menghasilkan respon yang sesuai.
Atribut:
Map<String, String> responseMap– menyimpan pasangan kata kunci → respon.Random random– digunakan untuk memilih jawaban acak bila tidak ada kecocokan.String[] defaultResponses– jawaban generik bila masalah tidak dikenali.
Method:
generateResponse(String input)– mencari kata kunci dalam input dan mengembalikan respon yang sesuai.
Jika tidak ada yang cocok, mengembalikan jawaban default.
Hubungan:
- Dipanggil oleh
SupportSystemuntuk memproses input pengguna dan memberikan solusi.
Dari kelas hari ini saya belajar:
- Cara mengimplementasikan konsep OOP dengan membagi tanggung jawab tiap kelas.
SupportSystemsebagai pengontrol utama,InputReadersebagai penerima input, danRespondersebagai pemberi respon.- Cara membuat pemetaan masalah akademik (FRS) ke dalam sistem otomatis berbasis teks.
- Struktur ini mudah dikembangkan menjadi chatbot sederhana untuk layanan akademik kampus.
Tidak ada komentar:
Posting Komentar