Implementasi Support System

Nama: Azka Rizqullah Ramadhani

NRP: 5025231148

Kelas: Pemrograman Berbasis Objek (A)


Deskripsi

Pada kali ini, saya mengimplementasikan support system behaviour yang menggunakan tiga class utama sebagai komponen pembangun program ini. Setiap class memiliki peran dan fungsi tersendiri untuk menjalankan program yang akan menerima input, memproses, dan mengembalikan respons sesuai dengan aturan yang telah dibuat.

Class InputReader

Class ini bertanggung jawab untuk menangani input dari pengguna. Program akan meminta pengguna untuk memberikan masukan yang nantinya akan diproses oleh sistem. Class ini menggunakan Scanner untuk membaca input yang diberikan pengguna dari konsol.

import java.util.Scanner;

public class InputReader {
private Scanner scan;

public InputReader(){
scan = new Scanner(System.in);
}

public String GetScan(){
System.out.print("> ");
return scan.nextLine();
}
}
  • Scanner scan: Objek Scanner digunakan untuk membaca input dari pengguna melalui konsol.
  • GetScan(): Metode ini akan menampilkan prompt (> ) untuk menandai bahwa program sedang menunggu input dari pengguna, kemudian membaca input dan mengembalikannya sebagai String.
Class GenerateAnswer

Class ini bertanggung jawab untuk menentukan jawaban yang sesuai berdasarkan input pengguna. Jawaban yang diberikan disimpan dalam HashMap, yang memungkinkan pencocokan antara input pengguna dan jawaban yang telah ditetapkan.

import java.util.HashMap;
import java.util.Random;

public class GenerateAnswer {
private HashMap<String,String> response;
private Random random;

public GenerateAnswer(){
response = new HashMap<>();
random = new Random();
setDefault();
}

private void setDefault(){
response.put("halo","halo juga");
response.put("siapa","aku temanmu namaku support system");
response.put("main","ayo main aja yuk gimana?");
response.put("ayo","gamau ah aku mager");
response.put("bolos","aku gamau bolos nanti ndak bisa jadi dokter");
response.put("sekarang","nanti aja deh sekarang aku malas");
response.put("makan", "Sudah makan belum? Yuk makan bareng!");
response.put("belajar", "Ayo kita belajar supaya bisa jadi pintar!");
response.put("tidur", "Udah malam, ayo tidur dulu biar besok semangat.");
response.put("kerja", "Jangan lupa kerja keras, tapi juga istirahat ya.");
response.put("jalan", "Mau jalan-jalan ke mana nih?");
}

public String getResponse(String input){
for (String key : response.keySet()) {
if (input.toLowerCase().contains(key.toLowerCase())) {
return response.get(key);
}
}
return defultResponse();
}

private String defultResponse() {
String[] defaultResponses = {
"Gak jelas lu, Apaan sih.",
"Apa tadi aku ndak kedengaran?",
"Coba ulangin lagi dong aku kurang paham hehehe."
};
return defaultResponses[random.nextInt(defaultResponses.length)];
}

}
  • Metode setDefault(): Memasukkan beberapa pasangan kunci-nilai ke dalam response.
  • Metode getResponse(String input): Mengambil input dari pengguna dan memeriksa apakah ada kata kunci yang cocok di dalam response. Mengembalikan jawaban yang sesuai jika ditemukan; jika tidak, memanggil defaultResponse().
  • Metode defaultResponse(): Mengembalikan salah satu dari beberapa respons acak jika tidak ada kecocokan.
Class Support System

Class ini berguna untuk sebagai penengah antara reader dan generate answer.

public class SupportSystem {
private InputReader Input;
private GenerateAnswer Response;

public SupportSystem(){
Input = new InputReader();
Response = new GenerateAnswer();
}

public void start(){
Boolean isFinished = false;
Opening();
while(!isFinished){
String CurrentInput = Input.GetScan();
if(CurrentInput.contains("bye")){
isFinished = true;
}else{
System.out.println(Response.getResponse(CurrentInput));
}
}
SayBye();
}

private void Opening(){
System.out.println("Haloooo nanti kalau udahan bilang 'bye' yah!");
}

private void SayBye(){
System.out.println("Okeeee byeeee....");
}
}
  • Menginisialisasi kelas InputReader dan GenerateAnswer.
  • Menjalankan metode start untuk memulai interaksi dengan pengguna.
  • Menangani input pengguna dan memberikan respons hingga pengguna memasukkan "bye".

Hasil

Gunakan class main sebagai commandnya
public class Main {
public static void main(String[] args) {
SupportSystem system = new SupportSystem();
system.start();
}
}

Komentar

Postingan populer dari blog ini

Implementasi Unit Test

Tugas Ticket Machine