Tech Support System

Nama: Valensio Arvin Putra Setiawan
Kelas: PBO G
NRP: 5025231273
















1. Kelas SupportSystem

Fungsi Utama: Mengatur alur utama program.

  • Konstruktor (SupportSystem):

    • Membuat objek InputReader untuk membaca input pengguna.
    • Membuat objek Responder untuk menghasilkan respons.
  • Metode start():

    • Tujuan: Memulai sistem dan mengelola interaksi hingga pengguna keluar.
    • Algoritma:
      1. Cetak pesan selamat datang dengan printWelcomeMessage().
      2. Masuk ke loop utama:
        • Baca input pengguna menggunakan InputReader.getInput().
        • Validasi input:
          • Jika input adalah "exit", keluar dari loop.
          • Jika input kosong, beri pesan peringatan dan minta input ulang.
        • Jika input valid, panggil Responder.generateResponse() untuk menghasilkan respons.
        • Tampilkan respons kepada pengguna.
      3. Setelah loop selesai, cetak pesan selamat tinggal dengan printGoodbyeMessage().
  • Penting:

    • Logika kontrol memastikan pengguna bisa berinteraksi secara berulang sampai mereka keluar.

Ringkasan Alur:

  1. Sambut pengguna.
  2. Baca input.
  3. Validasi input.
  4. Hasilkan respons melalui Responder.
  5. Ulangi hingga pengguna mengetik "exit".

2. Kelas Responder

Fungsi Utama: Menghasilkan respons berbasis input.

  • Konstruktor (Responder):

    • Inisialisasi kata kunci (keywordResponses):
      • Kata kunci dipetakan ke respons tertentu menggunakan HashMap.
      • Misalnya:
        • Input "internet" menghasilkan respons tentang masalah koneksi.
    • Inisialisasi fallback responses:
      • Respons generik untuk input tanpa kata kunci.
  • Metode generateResponse(String input):

    • Algoritma:
      1. Ambil input pengguna.
      2. Loop melalui setiap kata kunci dalam keywordResponses.
        • Jika input pengguna mengandung kata kunci, ambil respons yang sesuai.
      3. Jika tidak ada kata kunci yang cocok, gunakan respons fallback.
    • Kelebihan:
      • Respons spesifik untuk masalah umum.
      • Respons fallback memberikan kesan ramah dan profesional.
  • Metode getFallbackResponse():

    • Mengembalikan respons acak dari daftar fallback.

Ringkasan Alur:

  1. Periksa apakah input mengandung kata kunci yang telah ditentukan.
  2. Jika kata kunci cocok, kembalikan respons terkait.
  3. Jika tidak ada kata kunci yang cocok, kembalikan respons fallback.

3. Kelas InputReader

Fungsi Utama: Membaca input pengguna dari terminal.

  • Konstruktor (InputReader):

    • Membuat objek Scanner untuk membaca input teks.
  • Metode getInput():

    • Algoritma:
      1. Cetak prompt (> ) untuk meminta input dari pengguna.
      2. Gunakan Scanner.nextLine() untuk membaca input pengguna.
      3. Hapus spasi tambahan menggunakan trim().
      4. Kembalikan string input.

Ringkasan Alur:

  1. Tunggu pengguna mengetik sesuatu.
  2. Baca input sebagai string.
  3. Kembalikan string input ke SupportSystem.

Alur Kerja Program Secara Keseluruhan

  1. Program dimulai dengan SupportSystem.start().
  2. Selamat Datang:
    • Tampilkan pesan pengantar.
  3. Loop Interaksi:
    • Baca input pengguna dengan InputReader.getInput().
    • Validasi input:
      • Jika "exit", keluar dari loop.
      • Jika kosong, minta input ulang.
    • Kirim input ke Responder.generateResponse():
      • Cari respons berdasarkan kata kunci.
      • Jika tidak ada kata kunci yang cocok, gunakan fallback.
    • Tampilkan respons kepada pengguna.
  4. Selesai:
    • Tampilkan pesan perpisahan.

Comments

Popular posts from this blog

Implementasi Rental Kendaraan

Latihan Ticket Machine