Dek Depe memiliki ide untuk membuat sebuah aplikasi e-commerce terinspirasi dari namanya. Dekdepedia adalah sebuah e-commerce yang menghubungkan penjual dan pembeli. Kali ini, Dek Depe meminta bantuan kalian untuk membuat sebuah platform e-commerce. Hanya saja, karena budget Dek Depe sangat terbatas, kamu hanya perlu membuat aplikasinya dalam bentuk CLI (Command Line Interface). Dek Depe ingin kamu membuat fitur-fitur fundamental yang ada dalam aplikasi e-commerce, yaitu:
-
Sebagai pembeli:
- Melihat semua produk
- Membeli produk
- Melihat riwayat pembelian
-
Sebagai penjual:
- Menambahkan produk
- Melihat daftar produk yang ia jual
Selain fitur-fitur di atas, akan ada fitur-fitur kecil lainnya, seperti melihat saldo, Sign Up, Login, dan Logout.
Jika masih belum memahami OOP, silakan gunakan template yang kami sediakan di sini untuk membantu kalian dalam memahami. Template ini tidak wajib digunakan.
-
Saat pertama dibuka, program menampilkan tiga pilihan menu:
-
Sign Up
User diminta memasukkan berapa banyak akun yang ingin didaftarkan. Masukan selanjutnya adalah data user, setiap baris mewakili data satu user dengan format<TIPE> <USERNAME>
untuk seller dan<TIPE> <USERNAME> <SALDO>
untuk buyer. Data akun yang valid kemudian akan didaftarkan ke dalam sistem. Jika data tidak valid, tampilkan pesan yang sesuai dan akun tidak akan didaftarkan ke sistem.Contoh:
Jumlah akun yang ingin didaftarkan : 3 1. BUYER LITHA 10000 2. SELLER ABI_DEWA69 3. BUYER BINTANG 20000
💡 Note
Username terbatas pada karakter A-Z, a-z, 0-9, underscore (_) dan dash (-). Tidak akan dipisah dengan spasi.Input jumlah akun yang ingin didaftarkan dijamin bilangan bulat positif.
user_name
bersifat case sensitive.Data tidak valid meliputi :
- Tipe bukan “BUYER” atau “SELLER” (case sensitive)
- Saldo bukan bilangan bulat positif
- Format tidak sesuai
- Terdapat karakter di luar yang ditentukan
Contoh:
Jumlah akun yang ingin didaftarkan : 12 1. BUYYYER LITHA Akun tidak valid. 2. SELLER ABI_DEWA69 3. BUYER BINTANG 20000 4. SELLER AL AL AL Akun tidak valid. 5. BUYER MARKUS! Akun tidak valid. 6. BUYER ABI_DEWA69 10000 Username sudah terdaftar. 7. BUYER ABI_DEWA69 Akun tidak valid. 8. BUYER LITHA -10 Akun tidak valid. 9. OAWHEFOWEHFWOEUFHE Akun tidak valid. 10. seller SAYA Akun tidak valid. 11. BUYER Abi_Dewa69 10000 12. BUYER MLW SALDO Akun tidak valid.
Prioritas Validasi:
- Valid atau tidak
- Sudah terdaftar atau belum
-
Log In
User diminta memasukkan username akun untuk login. Bila username sudah terdaftar, maka tampilkan pesanAnda telah masuk dalam akun [USERNAME] sebagai [TIPE_USER]
. Selanjutnya tampilkan menu sesuai tipe user yang telah login.
Bila username belum terdaftar, tampilkan pesanAkun dengan username [USERNAME] tidak ditemukan
-
Exit
MencetakTerima kasih telah menggunakan Dekdepedia!
dan keluar dari program.
Input pemilihan menu dijamin valid (hanya 1, 2, atau 3)
-
-
User yang telah berhasil login akan melihat menu sesuai dengan tipe akunnya.
-
Menu Tipe SELLER
-
TAMBAHKAN_PRODUK
User diminta memasukkan data produk dengan format<NAMA_PRODUK> <HARGA> <STOCK_TERSEDIA>
. Data yang valid akan ditambahkan sebagai produk yang dijual oleh seller tersebut. Bila ada produk yang namanya sudah terdaftar, tampilkan pesan “Produk sudah pernah terdaftar.”Format input data produk dijamin valid.
-
LIHAT_DAFTAR_PRODUK_SAYA Tampilkan produk jualan seller dalam bentuk tabel sebagai berikut. Urutkan berdasarkan nama produk secara ascending (A-Z).
Berikut merupakan barang jualan saya ------------------------------------- Nama Produk | Harga | Stock ------------------------------------- PRODUK1 |10000 |5 PRODUK2 |20000 |4 -------------------------------------
-
LOG_OUT Mencetak
Anda telah keluar dari akun [USERNAME]
dan kembali ke menu utama.
Input pemilihan menu dijamin valid (hanya 1, 2, atau 3)
-
-
Menu Tipe BUYER
-
LIHAT_SEMUA_PRODUK
Tampilkan semua produk yang terdaftar dalam sistem dalam bentuk tabel sebagai berikut. Urutkan berdasarkan nama produk secara ascending (A-Z).Berikut merupakan daftar produk di Dekdepedia ----------------------------------------------- Nama Produk | Harga | Stock | Penjual ----------------------------------------------- PRODUK1 |10000 |19 |ABI_DEWA69 PRODUK2 |10000 |0 |ABI_DEWA69 PRODUK3 |20000 |6 |LITHA -----------------------------------------------
-
BELI_PRODUK
Buyer diminta memasukkan nama produk yang ingin dibeli. Bila barang tersebut tidak ditemukan, cetakBarang dengan nama [NAMA_BARANG] tidak ditemukan dalam Dekdepedia.
Buyer dapat membeli barang hanya jika stoknya tersedia dan saldonya mencukupi. Jika buyer berhasil membeli barang, cetak
Berhasil membeli [NAMA_BARANG] dari [PENJUAL].
Saldo buyer akan berkurang dan saldo penjual akan bertambah sesuai harga barang yang dibeli. Selain itu, stok barang tersebut akan berkurang satu.
Cetak juga pesan yang sesuai bila pembeli gagal membeli barang, seperti,
Maaf, saldo Anda tidak cukup untuk membeli [NAMA_BARANG].
atauMaaf, stok produk telah habis.
Pengecekan yang dilakukan adalah stok barang tersedia, kemudian pengecekan saldo mencukupi.
- RIWAYAT_PEMBELIAN_SAYA Tampilkan semua produk yang pernah dibeli buyer dalam bentuk tabel sebagai berikut. Urutkan berdasarkan nama produk secara ascending (A-Z).
Berikut merupakan barang yang saya beli ---------------------------------------- Nama Produk | Harga | Penjual ---------------------------------------- PRODUK1 |10000 |ABI_DEWA69 PRODUK2 |20000 |LITHA ----------------------------------------
- LOG_OUT
MencetakAnda telah keluar dari akun [USERNAME]
dan kembali ke menu utama.
Input pemilihan menu dijamin valid (hanya 1, 2, 3, atau 4)
-
-
-
-
dekdepedia.py memiliki variabel berikut:
- list_user: berisi daftar user yang terdaftar dalam sistem Dekdepedia, user bisa berupa seller maupun buyer
- list_product: berisi daftar produk yang terdaftar dalam sistem Dekdepedia
-
Dekdepedia CLI memiliki 4 class, yaitu :
-
Class User
Atribut yang dimiliki oleh class User adalah:user_name
: merupakan nama dari tiap usertipe
: merupakan tipe dari tiap user. Terdapat dua tipe user di Dekdepedia CLI, yaitu “BUYER” dan “SELLER”
-
Class Buyer yang merupakan turunan dari class User
Atribut khusus yang dimiliki oleh class Buyer adalah:saldo
: merupakan saldo dari tiap userlist_barang_beli
: berisi daftar produk yang dibeli oleh seorang buyer
-
Class Seller yang merupakan turunan dari class User
Atribut khusus yang dimiliki oleh class Seller adalah:pemasukan
: merupakan pemasukan yang didapat seller dari produk yang terjuallist_barang_jual
: berisi daftar produk yang dijual oleh seorang seller
-
Class Product
Atribut yang dimiliki oleh class Product adalah:nama
: merupakan nama dari produkharga
: merupakan harga jual produk.stock
: merupakan stok dari produk.seller
: merupakan penjual dari produk tersebut
-
Contoh 1:
Selamat datang di Dekdepedia!
Silakan memilih salah satu menu di bawah:
1. Sign Up
2. Log In
3. Exit
Pilihan Anda: 1
Jumlah akun yang ingin didaftarkan : 4
Data akun:
1. SELLER S1
2. SELLER S2
3. BUYER B1 100000
4. BUYER B2 200000
Selamat datang di Dekdepedia!
Silakan memilih salah satu menu di bawah:
1. Sign Up
2. Log In
3. Exit
Pilihan Anda: 2
user_name : S1
Anda telah masuk dalam akun S1 sebagai SELLER
Selamat datang S1,
berikut menu yang bisa Anda lakukan:
1. TAMBAHKAN_PRODUK
2. LIHAT_DAFTAR_PRODUK_SAYA
3. LOG_OUT
Pemasukan anda 0,
Apa yang ingin Anda lakukan? 1
Masukkan data produk : azuz 10000 1
Pemasukan anda 0,
Apa yang ingin Anda lakukan? 1
Masukkan data produk : somay 5000 2
Pemasukan anda 0,
Apa yang ingin Anda lakukan? 3
Anda telah keluar dari akun S1
Selamat datang di Dekdepedia!
Silakan memilih salah satu menu di bawah:
1. Sign Up
2. Log In
3. Exit
Pilihan Anda: 2
user_name : B1
Anda telah masuk dalam akun B1 sebagai BUYER
Selamat datang B1,
berikut menu yang bisa Anda lakukan:
1. LIHAT_SEMUA_PRODUK
2. BELI_PRODUK
3. RIWAYAT_PEMBELIAN_SAYA
4. LOG_OUT
Saldo anda 100000,
Apa yang ingin Anda lakukan? 1
Berikut merupakan daftar produk di Dekdepedia
------------------------------------------------
Nama Produk | Harga | Stock | Penjual
------------------------------------------------
azuz |10000 |1 |S1
somay |5000 |2 |S1
------------------------------------------------
Saldo anda 100000,
Apa yang ingin Anda lakukan? 2
Masukkan barang yang ingin dibeli : azuz
Berhasil membeli azuz dari S1
Saldo anda 90000,
Apa yang ingin Anda lakukan? 2
Masukkan barang yang ingin dibeli : azuz
Maaf, stok produk telah habis.
Saldo anda 90000,
Apa yang ingin Anda lakukan? 1
Berikut merupakan daftar produk di Dekdepedia
------------------------------------------------
Nama Produk | Harga | Stock | Penjual
------------------------------------------------
azuz |10000 |0 |S1
somay |5000 |2 |S1
------------------------------------------------
Saldo anda 90000,
Apa yang ingin Anda lakukan? 3
Berikut merupakan barang yang saya beli
-------------------------------------
Nama Produk | Harga | Penjual
-------------------------------------
azuz |10000 |S1
-------------------------------------
Saldo anda 90000,
Apa yang ingin Anda lakukan? 4
Anda telah keluar dari akun B1
Selamat datang di Dekdepedia!
Silakan memilih salah satu menu di bawah:
1. Sign Up
2. Log In
3. Exit
Pilihan Anda: 3
Terima kasih telah menggunakan Dekdepedia!
Contoh 2:
Selamat datang di Dekdepedia!
Silakan memilih salah satu menu di bawah:
1. Sign Up
2. Log In
3. Exit
Pilihan Anda: 1
Jumlah akun yang ingin didaftarkan : 4
Data akun:
1. SELLER A
2. SELLER B
3. BUYER C
Akun tidak valid.
4. BUYER C 10000
Selamat datang di Dekdepedia!
Silakan memilih salah satu menu di bawah:
1. Sign Up
2. Log In
3. Exit
Pilihan Anda: 2
user_name : A
Anda telah masuk dalam akun A sebagai SELLER
Selamat datang A,
berikut menu yang bisa Anda lakukan:
1. TAMBAHKAN_PRODUK
2. LIHAT_DAFTAR_PRODUK_SAYA
3. LOG_OUT
Pemasukan anda 0,
Apa yang ingin Anda lakukan? 1
Masukkan data produk : oreo 3000 5
Pemasukan anda 0,
Apa yang ingin Anda lakukan? 3
Anda telah keluar dari akun A
Selamat datang di Dekdepedia!
Silakan memilih salah satu menu di bawah:
1. Sign Up
2. Log In
3. Exit
Pilihan Anda: 2
user_name : B
Anda telah masuk dalam akun B sebagai SELLER
Selamat datang B,
berikut menu yang bisa Anda lakukan:
1. TAMBAHKAN_PRODUK
2. LIHAT_DAFTAR_PRODUK_SAYA
3. LOG_OUT
Pemasukan anda 0,
Apa yang ingin Anda lakukan? 1
Masukkan data produk : nabati 5000 3
Pemasukan anda 0,
Apa yang ingin Anda lakukan? 2
Berikut merupakan barang jualan saya
-------------------------------------
Nama Produk | Harga | Stock
-------------------------------------
nabati |5000 |3
-------------------------------------
Pemasukan anda 0,
Apa yang ingin Anda lakukan? 3
Anda telah keluar dari akun B
Selamat datang di Dekdepedia!
Silakan memilih salah satu menu di bawah:
1. Sign Up
2. Log In
3. Exit
Pilihan Anda: 2
user_name : D
Akun dengan user_name D tidak ditemukan
Selamat datang di Dekdepedia!
Silakan memilih salah satu menu di bawah:
1. Sign Up
2. Log In
3. Exit
Pilihan Anda: 2
user_name : C
Anda telah masuk dalam akun C sebagai BUYER
Selamat datang C,
berikut menu yang bisa Anda lakukan:
1. LIHAT_SEMUA_PRODUK
2. BELI_PRODUK
3. RIWAYAT_PEMBELIAN_SAYA
4. LOG_OUT
Saldo anda 10000,
Apa yang ingin Anda lakukan? 1
Berikut merupakan daftar produk di Dekdepedia
------------------------------------------------
Nama Produk | Harga | Stock | Penjual
------------------------------------------------
nabati |5000 |3 |B
oreo |3000 |5 |A
------------------------------------------------
Saldo anda 10000,
Apa yang ingin Anda lakukan? 2
Masukkan barang yang ingin dibeli : nabati
Berhasil membeli nabati dari B
Saldo anda 5000,
Apa yang ingin Anda lakukan? 2
Masukkan barang yang ingin dibeli : nabati
Berhasil membeli nabati dari B
Saldo anda 0,
Apa yang ingin Anda lakukan? 2
Masukkan barang yang ingin dibeli : oreo
Maaf, saldo Anda tidak cukup untuk membeli oreo
Saldo anda 0,
Apa yang ingin Anda lakukan? 3
Berikut merupakan barang yang saya beli
-------------------------------------
Nama Produk | Harga | Penjual |
-------------------------------------
nabati |5000 |B
nabati |5000 |B
-------------------------------------
Saldo anda 0,
Apa yang ingin Anda lakukan? 1
Berikut merupakan daftar produk di Dekdepedia
------------------------------------------------
Nama Produk | Harga | Stock | Penjual
------------------------------------------------
nabati |5000 |1 |B
oreo |3000 |5 |A
------------------------------------------------
Saldo anda 0,
Apa yang ingin Anda lakukan? 4
Anda telah keluar dari akun C
Selamat datang di Dekdepedia!
Silakan memilih salah satu menu di bawah:
1. Sign Up
2. Log In
3. Exit
Pilihan Anda: 2
user_name : B
Anda telah masuk dalam akun B sebagai SELLER
Selamat datang B,
berikut menu yang bisa Anda lakukan:
1. TAMBAHKAN_PRODUK
2. LIHAT_DAFTAR_PRODUK_SAYA
3. LOG_OUT
Pemasukan anda 10000,
Apa yang ingin Anda lakukan? 2
Berikut merupakan barang jualan saya
-------------------------------------
Nama Produk | Harga | Stock
-------------------------------------
nabati |5000 |1
-------------------------------------
Pemasukan anda 10000,
Apa yang ingin Anda lakukan? 3
Anda telah keluar dari akun B
Selamat datang di Dekdepedia!
Silakan memilih salah satu menu di bawah:
1. Sign Up
2. Log In
3. Exit
Pilihan Anda: 3
Terima kasih telah menggunakan Dekdepedia!
Adapted from Lab09.pdf
. Problem made by ABI, AL, BIG, MLW, LIT🔥.