Proyek ini merupakan tugas akhir mata kuliah Struktur Data dan Algoritma yang bertujuan untuk membangun sistem Marketplace CLI Sederhana menggunakan bahasa pemrograman PHP Native, tanpa framework dan tanpa database eksternal. Seluruh data produk disimpan dalam file JSON (sample_products.json) dan dimuat ke dalam berbagai struktur data untuk mendemonstrasikan implementasi dan manfaat Abstract Data Types (ADT) dalam sistem pencarian dan rekomendasi produk.
- Menerapkan berbagai struktur data seperti Trie, Stack, Graph, Hash Table, AVL Tree, Priority Queue, Heap, dan Divide & Conquer secara nyata dalam sistem pencarian produk.
- Membuat sistem pencarian, rekomendasi, penyimpanan, serta analisis produk yang efisien.
- Mengintegrasikan logika algoritmik dan efisiensi pencarian ke dalam sistem berbasis teks (CLI).
Berikut adalah fitur-fitur yang telah diimplementasikan:
- Menggunakan struktur data Trie.
- Pencarian berbasis prefix nama produk.
- Menampilkan hasil pencarian dan menambahkan ke stack riwayat.
- Menambahkan produk baru ke file JSON dan seluruh struktur data (AVL Tree, HashTable, Trie, dsb).
- Menghapus produk berdasarkan ID.
- Menggunakan Priority Queue / Heap berdasarkan kombinasi jumlah pencarian (popularCount) dan rating.
- Menampilkan produk-produk yang paling sering dicari menggunakan Stack dan dicatat ke dalam struktur HashMap dengan Counter.
- Menggunakan struktur AVL Tree untuk pencarian cepat dan efisien berdasarkan ID produk.
- Menggunakan algoritma Merge Sort berbasis Divide & Conquer.
- Dapat mengurutkan produk berdasarkan rating atau harga.
- Menggunakan struktur Graph (BFS) untuk menampilkan produk lain dari kategori yang sama tapi berbeda nama.
- Seluruh data produk disimpan di
data/sample_products.jsondalam format JSON agar mudah dibaca dan diubah.
| Struktur Data | Kegunaan |
|---|---|
Trie |
Autocomplete dan pencarian cepat berdasarkan prefix nama produk |
AVL Tree |
Pencarian produk cepat berdasarkan ID |
Hash Table |
Penyimpanan produk berdasarkan ID unik |
Priority Queue |
Menentukan produk terpopuler berdasarkan pencarian dan rating |
Max Heap |
Mendukung fitur top-5 produk terpopuler |
Stack |
Menyimpan riwayat pencarian terakhir |
Graph (BFS) |
Rekomendasi produk dari kategori yang sama |
Merge Sort |
Sorting dinamis berdasarkan harga atau rating |
Sistem ini dapat digunakan sebagai:
- Simulasi sistem rekomendasi dan pencarian produk pada e-commerce sederhana.
- Latihan implementasi ADT dan algoritma sorting/searching di dunia nyata.
- Alat bantu pembelajaran untuk memahami cara kerja internal dari struktur data yang umum.
Rizwan Fairuz Mamduh
Program Studi: Teknik Informatika
📦 root
┣ 📜 index.php
┣ 📂 data
┃ ┗ 📜 sample_products.json
┣ 📂 models
┃ ┣ 📜 Product.php
┃ ┣ 📜 AVLTree.php
┃ ┣ 📜 Stack.php
┃ ┣ 📜 HashTable.php
┃ ┣ 📜 Trie.php
┃ ┣ 📜 Heap.php
┃ ┣ 📜 PriorityQueue.php
┃ ┣ 📜 Graph.php
┣ 📂 utils
┃ ┣ 📜 sorting.php
┃ ┗ 📜 divide_conquer.php
┗ 📂 docs
┗ dokumentasi.pdf
Proyek ini dijalankan melalui terminal/command line menggunakan PHP CLI. Berikut langkah-langkah menjalankannya:
- Install PHP dan Git
sudo apt update sudo add-apt-repository ppa:ondrej/php sudo apt update sudo apt install git php8.4 php8.4-common -y
- Clone repository
git clone https://github.com/ryzwan29/marketplace-cli cd marketplace-cli - Jalankan program
php index.php
-
Install Git Download dan install Git dari https://git-scm.com/download/win
-
Install PHP Download dari https://windows.php.net/download
Pilih versi non-thread-safe, extract ke folder (misalnya C:\php)
Tambahkan path C:\php ke
Environment Variables > PathBuka Command Prompt dan cek:
php -v
-
Clone repository
git clone https://github.com/ryzwan29/marketplace-cli cd marketplace-cli -
Jalankan program
php index.php