Revisi Tugas PBO 6 Membuat Implementasi Technical Support System
Nama : Afel Allaric Absor
NRP : 5025231140
Kelas : PBO (A)
Tugas 6 & Tugas 7 RevisiMembuat Implementasi Technical Support System Menggunakan Java
Class UserInputHandler :
Class UserInputHandler ini berfungsi untuk mengatur alur input user
Class ResponseGenerator :
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Random;
public class ResponseGenerator {
private HashMap<String, String> keywordResponses;
private ArrayList<String> fallbackResponses;
private Random randomizer;
public ResponseGenerator() {
keywordResponses = new HashMap<>();
fallbackResponses = new ArrayList<>();
initializeResponses();
initializeFallbacks();
randomizer = new Random();
}
private void initializeResponses() {
keywordResponses.put("bantuan", "Silakan jelaskan masalah pengiriman Anda secara rinci.");
keywordResponses.put("tracking", "Silakan masukkan nomor resi Anda untuk melacak pengiriman.");
keywordResponses.put("resi", "Silakan masukkan nomor resi Anda untuk melacak pengiriman.");
keywordResponses.put("pengiriman", "Kami akan segera memeriksa status pengiriman Anda.");
keywordResponses.put("alamat", "Silakan periksa kembali alamat pengiriman Anda untuk memastikan keakuratannya.");
keywordResponses.put("kurir", "Silakan hubungi kurir Anda langsung untuk informasi lebih lanjut.");
keywordResponses.put("delay", "Kami mohon maaf atas keterlambatan pengiriman. Kami akan segera menanganinya.");
keywordResponses.put("biaya", "Biaya pengiriman tergantung pada berat dan tujuan paket Anda.");
keywordResponses.put("pengembalian", "Untuk proses pengembalian, silakan hubungi layanan pelanggan kami.");
keywordResponses.put("keluhan", "Kami minta maaf atas ketidaknyamanan ini. Silakan berikan detail keluhan Anda.");
keywordResponses.put("refund", "Proses refund akan kami lakukan setelah verifikasi keluhan Anda.");
keywordResponses.put("asuransi", "Pengiriman Anda dilindungi oleh asuransi standar kami.");
keywordResponses.put("jam", "Jam operasional pengiriman kami adalah dari 08.00 hingga 20.00 WIB.");
keywordResponses.put("lokasi", "Silakan berikan lokasi pengiriman yang tepat agar paket Anda dapat segera diproses.");
keywordResponses.put("konfirmasi", "Pengiriman Anda telah dikonfirmasi dan sedang diproses.");
keywordResponses.put("terlambat", "Kami mohon maaf atas keterlambatan pengiriman. Sedang kami cek statusnya.");
keywordResponses.put("paket", "Paket Anda sedang dalam proses pengiriman. Silakan cek statusnya menggunakan nomor resi.");
keywordResponses.put("penjadwalan", "Silakan pilih waktu penjadwalan pengiriman yang sesuai dengan Anda.");
keywordResponses.put("ubah", "Untuk mengubah detail pengiriman, silakan hubungi layanan pelanggan kami.");
}
private void initializeFallbacks() {
fallbackResponses.add("Sepertinya ada yang kurang jelas. Bisa Anda jelaskan lebih lanjut?");
fallbackResponses.add("Kami belum menerima laporan serupa. Bisa Anda berikan detail pengiriman Anda?");
fallbackResponses.add("Menarik! Silakan bagikan informasi lebih agar kami dapat membantu.");
fallbackResponses.add("Kami memerlukan informasi tambahan terkait permintaan Anda.");
fallbackResponses.add("Sudahkah Anda memastikan nomor resi yang dimasukkan benar?");
fallbackResponses.add("Biasanya masalah ini dijelaskan di bagian FAQ kami. Sudah dicek?");
fallbackResponses.add("Penjelasan Anda kurang spesifik. Bisa memberikan detail lebih?");
fallbackResponses.add("Masalah ini terdengar bisa kami atasi. Berikan konteks lebih lanjut!");
fallbackResponses.add("Kami siap membantu! Silakan bagikan detailnya agar kami dapat memberikan solusi terbaik.");
}
private String getRandomFallback() {
int index = randomizer.nextInt(fallbackResponses.size());
return fallbackResponses.get(index);
}
public String generateResponse(HashSet<String> inputWords) {
for (String word : inputWords) {
if (keywordResponses.containsKey(word)) {
return keywordResponses.get(word);
}
}
return getRandomFallback();
}
}
Class ResponseGenerator ini berfungsi untuk menyediakan kalimat-kalimat balasan yang akan diberikan kepada user saat user sudah memberikan input
Class CustomerSupport :
import java.util.HashSet;
public class CustomerSupport {
private UserInputHandler inputHandler;
private ResponseGenerator responseGen;
public CustomerSupport() {
inputHandler = new UserInputHandler();
responseGen = new ResponseGenerator();
}
public void displayWelcome() {
System.out.println("Selamat datang di Sistem Dukungan Pengiriman Barang Valin!");
System.out.println("Silakan ceritakan masalah atau pertanyaan Anda terkait pengiriman barang.");
System.out.println("Kami akan membantu Anda dengan segala permasalahan yang Anda hadapi.");
System.out.println("Ketik 'bye' untuk keluar dari sistem kami.");
}
public void displayFarewell() {
System.out.println("Selamat tinggal! Terima kasih telah menggunakan Sistem Dukungan Pengiriman Barang Valin.");
}
public void initiateSupport() {
boolean isActive = true;
displayWelcome();
while (isActive) {
HashSet<String> userInput = inputHandler.readInput();
if (userInput.contains("bye")) {
isActive = false;
} else {
String reply = responseGen.generateResponse(userInput);
System.out.println(reply);
}
}
displayFarewell();
inputHandler.shutdown();
}
}
Class CustomerSupport berfungsi untuk menampilkan kalimat pembuka dan mengatur tampilan yang ditampilkan ke user, menggunakan fungsi fungsi milik class ResponseGenerator dan melakukan looping untuk mengecek apakah input yang diberikan adalah "bye" atau bukan, jika adalah"bye" maka akan menampilkan kalimat penutup.
Class SupportSystemTest :
public class SupportSystemTest {
public static void main(String[] args) {
CustomerSupport support = new CustomerSupport();
support.initiateSupport();
}
}
Class ini berfungsi untuk menginisialisasi program support system
Berikut adalah hasil code setelah dijalankan :
Link berikut adalah link github repository berisi code : https://github.com/afelallaric/Tugas-PBO-6-Implementasi-Technical-Support-System.git

Komentar
Posting Komentar