/**
* Kelas ini untuk memberikan tanggapan dari input pengguna
*
* @author Timotius Wirawan
* @version 11/11/2020
*/
import java.util.*;
public class Responder
{
private Random randomGenerator;
private ArrayList<String> defaultResponses;
private HashMap<String, String> responseMap;
//Membuat Responder
public Responder()
{
defaultResponses=new ArrayList<String>();
responseMap=new HashMap<String, String>();
fillResponses();
fillDefaultResponses();
randomGenerator=new Random();
}
/**
* Menghasilkan jawaban
*
* @return Sebuah string yang harus ditampilkan sebagai respon.
*/
public String generateResponse(HashSet<String> words)
{
for(String word:words)
{
String response=responseMap.get(word);
if(response!=null)
{
return response;
}
}
return pickDefaultResponse();
}
//Memberikan jawaban
private void fillResponses()
{
responseMap.put("pagi", "Selamat pagi juga, apakah ada yang bisa saya bantu?");
responseMap.put("siang", "Selamat siang juga, apakah ada yang bisa saya bantu?");
responseMap.put("sore", "Selamat sore juga, apakah ada yang bisa saya bantu?");
responseMap.put("malam", "Selamat malam juga, apakah ada yang bisa saya bantu?");
responseMap.put("baik", "Senang bisa mengetahuinya");
responseMap.put("bahagia", "Saya juga ikut senang jika anda senang");
responseMap.put("senang", "Saya juga ikut senang jika anda senang");
responseMap.put("terima kasih", "Terima kasih juga telah berkunjung");
responseMap.put("buruk", "Apakah terjadi sesuatu?");
responseMap.put("masalah", "Saya sangat menyesal mengetahui hal itu");
responseMap.put("sedih", "Saya disini untuk membantu permasalah anda");
}
//Membuat tanggapan jika input tidak diketahui.
private void fillDefaultResponses()
{
defaultResponses.add("Maaf, saya tidak mengerti apa yang Anda coba katakan");
}
private String pickDefaultResponse()
{
int index=randomGenerator.nextInt(defaultResponses.size());
return defaultResponses.get(index);
}
}