support system
Nama : Hafidz Panji Ashari
NRP : 5025231278
Kelas : PBO-A
Membuat support system dengan menggunakan 3 class yaitu :
- SupportSystem menangani alur utama percakapan,
- InputReader menangani input dari pengguna,
- Responder menangani respons yang diberikan.
Kelas SupportSystem:
Ini adalah kelas utama yang memulai dan mengelola sistem percakapan.
Kelas ini menggunakan dua kelas lain, yaitu InputReader untuk membaca input dari pengguna dan Responder untuk menghasilkan respon.
Metode start() berisi logika loop yang terus meminta input dari pengguna hingga mereka mengetik "bye" untuk keluar.
Kelas InputReader (sebagai inner class):
Tugasnya sederhana: mengambil input teks dari pengguna menggunakan kelas Scanner.
Metode getInput() menampilkan prompt "> ", lalu menunggu pengguna mengetik sesuatu, dan mengembalikan input tersebut sebagai string.
Kelas Responder (sebagai inner class):
Kelas ini bertugas menyediakan respon yang sesuai berdasarkan input dari pengguna.
Respon disimpan dalam HashMap, di mana setiap kunci adalah input yang diharapkan (misalnya "halo") dan nilainya adalah respon yang diberikan (misalnya "Halo bro, apa kabar?").
Jika input tidak ada dalam daftar HashMap, kelas ini akan memberikan respon acak dari beberapa respon default.
import java.util.HashMap;
import java.util.Random;
import java.util.Scanner;
public class SupportSystem {
private InputReader reader;
private Responder responder;
public SupportSystem() {
reader = new InputReader();
responder = new Responder();
}
public void start() {
System.out.println("Selamat datang di support system.");
System.out.println("Ketik 'bye' untuk keluar dari sistem.");
boolean finished = false;
while (!finished) {
String input = reader.getInput(); // Dapatkan input dari pengguna
if (input.equalsIgnoreCase("bye")) {
finished = true;
} else {
String response = responder.generateResponse(input); // Generate response input
System.out.println(response);
}
}
System.out.println("Goodbyee .... !");
}
public static void main(String[] args) {
SupportSystem system = new SupportSystem();
system.start();
}
// Kelas InputReader sebagai inner class
private class InputReader {
private Scanner scanner;
public InputReader() {
scanner = new Scanner(System.in);
}
public String getInput() {
System.out.print("> "); // Menampilkan prompt input
return scanner.nextLine(); // Mengembalikan input dari pengguna
}
}
// Kelas Responder sebagai inner class
private class Responder {
private HashMap<String, String> responses;
private Random random;
public Responder() {
responses = new HashMap<>();
fillResponses(); // Mengisi daftar respon yang tersedia
random = new Random();
}
private void fillResponses() {
responses.put("halo", "Halo bro, apa kabar?");
responses.put("makan", "Sudah makan belum?");
responses.put("tidur", "Tidur itu penting, (optional)");
responses.put("belajar", "Semangat belajarnya! Kalau capek jangan lupa istirahat.");
responses.put("kerja", "Lagi kerja apa nih? Jangan lupa istirahat sebentar.");
}
public String generateResponse(String input) {
// Cek apakah input pengguna ada dalam daftar respon
if (responses.containsKey(input.toLowerCase())) {
return responses.get(input.toLowerCase());
} else {
return generateRandomResponse(); // Mengembalikan respon acak jika tidak ada kecocokan
}
}
private String generateRandomResponse() {
String[] defaultResponses = {
"Saya kurang paham maksudnya, bisa jelaskan lagi?",
"Maaf saya kurang paham"
};
int index = random.nextInt(defaultResponses.length);
return defaultResponses[index];
}
}
}
contoh output :
Comments
Post a Comment