nabillassyfa / TP1-PROVIS

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TUGAS PRAKTIKUM 1 PROVIS

Nabilla Assyfa Ramadhani [2205297]

Program ini dibuat untuk mengimplementasi OOP dan asynchronous dalam pencarian barang di Toko.

Implementasi OOP

OOP dalam program ini di implementasikan dalam 2 buah kelas, yakni kelas Toko dan kelas Penjual. Kelas Toko memiliki hubungan composite dengan kelas Penjual.

Kelas Toko

  1. Atribut yang digunakan :
    a. Kode : Atribut ini digunakan untuk menampung kode toko
    b. Nama : Atribut ini digunakan untuk menampung nama toko
    c. Alamat : Atribut ini digunakan untuk menampung alamat toko
    d. Data Produk : Atribut ini digunakan untuk menampung produk yang dijual di toko
  2. Kelas ini memiliki metode sebagai berikut :
    a. Konstruktor : Metode konstruktor digunakan untuk menginisialisasi objek ketika dibuat.
    b. Getter : Metode getter digunakan untuk mendapatkan nilai dari atribut tertentu.
    c. Setter : Metode setter digunakan untuk mengatur nilai atribut tertentu.
    d. CetakData : Metode ini digunakan untuk mencetak data, metode ini menggunakan async, tetapi tidak menggunakan await karena tidak ada operasi yang memerlukan waktu yang signifikan untuk menunggu.
    e. CariProduk : Metode ini digunakan untuk mencari produk, Proses pencarian dilakukan dengan simulasi waktu tunggu menggunakan await Future.delayed(). untuk mencari produk.

Kelas Penjual

  1. Atribut yang digunakan :
    a. NIK : Atribut ini digunakan untuk menampung NIK penjual
    b. Nama : Atribut ini digunakan untuk menampung nama toko
    c. Toko : Atribut ini digunakan untuk menampung data toko yang dimiliki.
  2. Kelas ini memiliki metode sebagai berikut :
    a. Konstruktor : Metode konstruktor digunakan untuk menginisialisasi objek ketika dibuat.
    b. Getter : Metode getter digunakan untuk mendapatkan nilai dari atribut tertentu.
    c. Setter : Metode setter digunakan untuk mengatur nilai atribut tertentu.
    d. CetakData : Metode ini digunakan untuk mencetak data, metode ini menggunakan async, tetapi tidak menggunakan await karena tidak ada operasi yang memerlukan waktu yang signifikan untuk menunggu.
    e. CariProduk : Metode ini digunakan untuk mencari produk, Proses pencarian dilakukan dengan simulasi waktu tunggu menggunakan await Future.delayed(). untuk mencari produk.

Implementasi Asynchronous

Pada program ini asynchronous digunakan dalam metode untuk mencari Produk, Implementasi asynchronous terjadi pada bagian penundaan menggunakan await Future.delayed(Duration(seconds: 2)). Di sini, program akan mensimulasikan proses pencarian dengan menunggu selama 2 detik. Penggunaan asynchronous memungkinkan program untuk tetap responsif saat menunggu hasil pencarian. Tanpa asynchronous, operasi pencarian akan memblokir eksekusi program dan membuatnya tidak responsif. Setelah penundaan selesai, metode melanjutkan untuk memeriksa apakah produk yang dicari ada dalam daftar produk toko. Hasil pencarian kemudian dicetak. selain metode CariBarang, asynchronous juga digunakan dalam CetakData(), untuk memudahkan dalam penambahan operasi asynchronous dimasa depan tanpa perlu mengubah metode lain.

Dokumentasi Program

Proses Asynchronous mencari barang

alt text

Ouput yang dihasilkan

alt text

About


Languages

Language:Dart 100.0%