Program sistem penjualan online berbasis console yang dibuat menggunakan bahasa Pascal/Free Pascal. Program ini menyediakan fitur lengkap untuk manajemen produk dan transaksi penjualan sederhana.
- Input Produk Baru - Menambahkan produk dengan nama, harga, dan stok
- Edit Produk - Mengubah nama, harga, atau stok produk yang sudah ada
- Hapus Produk - Menghapus produk dari daftar dengan konfirmasi
- Lihat Daftar Produk - Menampilkan semua produk dalam format tabel yang rapi
- Keranjang Belanja - Menambahkan produk ke keranjang dengan validasi stok
- Validasi Otomatis - Mencegah pembelian melebihi stok yang tersedia
- Invoice Generator - Menghitung total belanja otomatis dengan ongkos kirim
- Validasi Input - Mencegah crash akibat input non-numerik
- Format Rupiah - Menampilkan harga dengan pemisah ribuan (Rp 1.500.000)
- Interface Intuitif - Menu berbasis console yang mudah digunakan
- Free Pascal Compiler (FPC) terinstall
- Windows/Linux/MacOS
-
Clone repository
git clone https://github.com/abifadilahs/Toko-Online-Sederhana.git cd Toko-Online-Sederhana -
Kompilasi program
fpc index.pas
-
Jalankan program
# Windows index.exe # Linux/MacOS ./index
==========================================
| PROGRAM PENJUALAN ONLINE SEDERHANA |
==========================================
| MENU: |
| 1. Input Data Produk |
| 2. Edit Data Produk |
| 3. Hapus Data Produk |
| 4. Lihat Daftar Produk |
| 5. Pilih & Beli Produk |
| 6. Lihat Keranjang & Cetak Invoice |
| 7. Keluar |
==========================================
-
Input Produk (Menu 1)
- Masukkan nama produk
- Input harga produk
- Tentukan jumlah stok
-
Beli Produk (Menu 5)
- Pilih produk dari daftar
- Masukkan jumlah yang ingin dibeli
- Produk akan ditambahkan ke keranjang
-
Checkout (Menu 6)
- Lihat detail keranjang belanja
- Input ongkos kirim
- Cetak invoice final
โโโ Type Definitions
โ โโโ TProduk (nama, harga, stok)
โ
โโโ Utility Functions
โ โโโ BacaAngka() - Validasi input numerik
โ โโโ FormatRupiah() - Format harga dengan pemisah ribuan
โ โโโ TampilkanDaftarProduk() - Display produk dalam tabel
โ
โโโ Product Management
โ โโโ InputProdukBaru() - Tambah produk baru
โ โโโ EditProduk() - Edit data produk
โ โโโ HapusProduk() - Hapus produk
โ
โโโ Shopping System
โ โโโ BeliProduk() - Tambah ke keranjang
โ โโโ CetakInvoice() - Generate invoice
โ
โโโ Main Program
โโโ TampilkanMenu() - Display menu utama
โโโ LihatDaftarProduk() - View daftar produk
๐ Detail implementasi setiap fungsi dan penjelasan algoritma dapat ditemukan di TECHNICAL_DOCS.md
- Bahasa: Pascal/Free Pascal
- Compiler: Free Pascal Compiler (FPC) 3.2.2+
- Platform: Cross-platform (Windows, Linux, MacOS)
- Dependencies:
crt,sysutils - Kapasitas: Maksimal 20 produk dan 20 item keranjang
- Data Type:
string[50]untuk nama produklongintuntuk harga (mendukung nilai besar)integeruntuk stok
๐ Untuk dokumentasi teknis lengkap, lihat TECHNICAL_DOCS.md yang menjelaskan detail fungsi, library, algoritma, dan struktur data yang digunakan.
- โ Validasi input numerik untuk harga dan stok
- โ Mencegah input non-numerik yang menyebabkan crash
- โ Validasi rentang untuk nomor produk
- โ Konfirmasi sebelum penghapusan data
- โ Cek stok tersedia sebelum pembelian
- โ Validasi kapasitas maksimal produk dan keranjang
- โ Otomatis mengurangi stok setelah pembelian
- โ Reset keranjang setelah checkout
๐ก๏ธ Penjelasan detail error handling dan strategi validasi tersedia di TECHNICAL_DOCS.md - Validasi & Error Handling
No. | Nama Produk | Harga | Stok
----+----------------------------+----------------+------
1 | Laptop ASUS | Rp 8.500.000 | 10
2 | Mouse Gaming | Rp 250.000 | 25
3 | Keyboard Mechanical | Rp 450.000 | 15
----+----------------------------+----------------+------
====================================
| INVOICE FINAL |
====================================
Laptop ASUS (1 pcs)
Mouse Gaming (2 pcs)
------------------------------------
Subtotal : Rp 9.000.000
Ongkir : Rp 50.000
------------------------------------
TOTAL : Rp 9.050.000
====================================
- Maksimal 20 produk dalam sistem
- Maksimal 20 item dalam keranjang belanja
- Data tidak persistent (hilang saat program ditutup)
- Interface berbasis console (text-based)
- Implementasi penyimpanan data ke file
- Menambah kapasitas produk dan keranjang
- Fitur search dan filter produk
- Laporan penjualan harian/bulanan
- Sistem user authentication
- GUI interface
๐ก Analisis kompleksitas algoritma dan saran optimisasi performance dapat dilihat di TECHNICAL_DOCS.md - Optimisasi Potensial
Proyek ini memiliki dokumentasi lengkap yang terdiri dari:
- README.md - Panduan pengguna, instalasi, dan fitur program
- TECHNICAL_DOCS.md - Dokumentasi teknis mendalam untuk developer
- CONTRIBUTING.md - Panduan kontribusi untuk developer
- CHANGELOG.md - Riwayat perubahan dan versi
- index.pas - Source code utama dengan struktur yang rapi dan terkommentari
Jika Anda ingin menggunakan program, baca README.md untuk:
- Cara instalasi dan menjalankan program
- Panduan penggunaan fitur-fitur
- Contoh screenshot dan output
Jika Anda ingin memahami atau mengembangkan program, baca TECHNICAL_DOCS.md untuk:
- Penjelasan setiap fungsi dan algoritma
- Analisis kompleksitas dan optimisasi
- Struktur data dan design patterns
- Tips pengembangan lanjutan
Program ini dilisensikan di bawah MIT License. Anda bebas menggunakan, memodifikasi, dan mendistribusikan kode ini untuk tujuan apapun, termasuk komersial.
Kami menyambut kontribusi dari siapa saja! Lihat CONTRIBUTING.md untuk panduan cara berkontribusi.
Temukan bug? Buat issue dengan detail reproduksi.
Punya ide fitur baru? Diskusikan di issues terlebih dahulu.
- Fork repository ini
- Buat branch untuk feature/fix Anda
- Commit changes dengan message yang jelas
- Create Pull Request dengan deskripsi lengkap
- Original Author: abifadilahs
- Enhanced by: Leuthra
- Repository: Toko-Online-Sederhana
๐ Catatan: Program ini dikembangkan menggunakan Free Pascal dan telah diuji pada compiler FPC versi 3.2.2. Pastikan compiler Pascal terinstall sebelum menjalankan program.