
Source Code Aplikasi Kasir Online dan Point of Sale berbasis CodeIgniter 3 yang dapat digunakan untuk warung Madura, minimarket, toko sembako, toko retail, koperasi, dan berbagai jenis usaha lainnya. Aplikasi mendukung transaksi barcode, Q… File source code akan tersedia pada riwayat transaksi setelah pembayaran berhasil.
## Cara Instalasi Source Code Aplikasi Kasir CodeIgniter 3
Source Code Aplikasi Kasir Online ini dapat dipasang pada localhost menggunakan XAMPP atau diunggah ke hosting dan cPanel. Framework CodeIgniter 3 sudah tersedia di dalam source code sehingga tidak memerlukan Composer.
### Persyaratan Sistem
Sebelum melakukan instalasi, pastikan server memenuhi persyaratan berikut:
* PHP versi 7.4 atau PHP 8.x
* MySQL atau MariaDB
* Ekstensi MySQLi
* Ekstensi Fileinfo
* Apache Web Server
* Dukungan `.htaccess` dan `mod_rewrite`
* XAMPP, Laragon, atau hosting cPanel
* Browser Google Chrome, Microsoft Edge, atau Mozilla Firefox
## Instalasi pada XAMPP
### 1. Ekstrak Source Code
Ekstrak file ZIP yang telah diunduh. Setelah proses ekstrak selesai, akan tersedia folder aplikasi bernama:
```text
POSKasir-CI3
```
### 2. Pindahkan Folder ke XAMPP
Pindahkan folder aplikasi ke dalam direktori:
```text
C:\xampp\htdocs\
```
Contoh lokasi lengkapnya:
```text
C:\xampp\htdocs\POSKasir-CI3
```
### 3. Aktifkan Apache dan MySQL
Buka XAMPP Control Panel, kemudian aktifkan:
```text
Apache
MySQL
```
Pastikan kedua layanan tersebut memiliki status aktif.
### 4. Buat Database Baru
Buka phpMyAdmin melalui alamat:
```text
http://localhost/phpmyadmin
```
Buat database baru, misalnya:
```text
pos_kasir
```
Gunakan format karakter:
```text
utf8mb4_general_ci
```
### 5. Import Database
Pilih database `pos_kasir`, kemudian buka menu Import.
Pilih file:
```text
database.sql
```
File tersebut tersedia di dalam folder utama source code. Klik tombol Import atau Go dan tunggu sampai seluruh tabel berhasil dibuat.
### 6. Atur Koneksi Database
Buka file:
```text
application/config/database.php
```
Sesuaikan konfigurasi database menjadi seperti berikut:
```php
$db['default'] = [
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'pos_kasir',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8mb4',
'dbcollat' => 'utf8mb4_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => [],
'save_queries' => TRUE
];
```
Konfigurasi standar XAMPP biasanya menggunakan:
```text
Hostname: localhost
Username: root
Password: kosong
Database: pos_kasir
```
### 7. Atur Base URL
Buka file:
```text
application/config/config.php
```
Untuk instalasi localhost, isi base URL:
```php
$config['base_url'] = 'http://localhost/POSKasir-CI3/';
```
Pastikan alamat diakhiri dengan tanda garis miring `/`.
### 8. Buka Aplikasi
Buka aplikasi melalui browser:
```text
http://localhost/POSKasir-CI3/
```
Sistem akan mengarahkan pengguna ke halaman login.
Gunakan akun yang tersedia di dalam database. Setelah berhasil masuk, pengguna akan diarahkan ke halaman dashboard aplikasi kasir.
## Instalasi pada Hosting atau cPanel
### 1. Upload Source Code
Masuk ke cPanel, kemudian buka File Manager.
Upload file ZIP ke:
```text
public_html
```
Jika aplikasi dipasang pada subdomain, upload ke folder document root milik subdomain tersebut.
### 2. Ekstrak File ZIP
Klik kanan file ZIP, kemudian pilih Extract.
Pastikan file `index.php`, folder `application`, folder `system`, folder `assets`, dan folder `uploads` berada di dalam document root aplikasi.
### 3. Buat Database MySQL
Buka menu MySQL Databases pada cPanel.
Buat:
* Database baru
* Username database
* Password database
Tambahkan pengguna database ke database, kemudian aktifkan seluruh hak akses atau All Privileges.
### 4. Import File SQL
Buka phpMyAdmin melalui cPanel.
Pilih database yang baru dibuat, kemudian import file:
```text
database.sql
```
Tunggu sampai proses import selesai dan seluruh tabel berhasil dibuat.
### 5. Konfigurasi Database Hosting
Buka file:
```text
application/config/database.php
```
Masukkan informasi database dari cPanel:
```php
'hostname' => 'localhost',
'username' => 'username_database',
'password' => 'password_database',
'database' => 'nama_database',
'dbdriver' => 'mysqli',
```
Nama database dan username pada cPanel biasanya memiliki awalan nama akun hosting.
Contoh:
```text
namacpanel_poskasir
namacpanel_adminpos
```
### 6. Konfigurasi Alamat Website
Buka file:
```text
application/config/config.php
```
Jika dipasang pada domain utama:
```php
$config['base_url'] = 'https://domainanda.com/';
```
Jika dipasang di dalam folder:
```php
$config['base_url'] = 'https://domainanda.com/kasir/';
```
Jika dipasang pada subdomain:
```php
$config['base_url'] = 'https://kasir.domainanda.com/';
```
Gunakan alamat domain yang sudah memiliki SSL. Hindari membuka HTTPS menggunakan alamat IP karena sertifikat SSL biasanya tidak diterbitkan untuk IP tersebut.
### 7. Atur Permission Folder Upload
Pastikan folder berikut dapat ditulis oleh PHP:
```text
uploads
uploads/logo
uploads/products
```
Gunakan permission:
```text
0755
```
Jika file belum dapat diunggah karena konfigurasi kepemilikan folder pada hosting, gunakan:
```text
0775
```
Tidak disarankan menggunakan permission `0777` kecuali hanya untuk pengujian sementara.
### 8. Konfigurasi URL Tanpa index.php
Aplikasi sudah dilengkapi file `.htaccess` untuk menghilangkan `index.php` dari URL.
Contoh URL aplikasi:
```text
https://domainanda.com/dashboard
https://domainanda.com/transaksi
https://domainanda.com/produk
https://domainanda.com/laporan
```
Jika semua halaman selain halaman utama menampilkan error 404, pastikan:
* File `.htaccess` sudah terunggah
* `mod_rewrite` aktif
* Fitur rewrite diizinkan oleh hosting
* `index_page` pada konfigurasi CodeIgniter dikosongkan
Konfigurasi yang digunakan:
```php
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';
```
Jika hosting tidak mendukung URL rewrite, gunakan:
```php
$config['index_page'] = 'index.php';
```
### 9. Pengaturan Identitas Toko
Setelah berhasil masuk, buka menu Pengaturan.
Lengkapi data berikut:
* Nama toko
* Tagline
* Alamat toko
* Nomor telepon atau WhatsApp
* Footer struk
* Mata uang
* Persentase pajak
* Logo toko
* Favicon
Logo akan digunakan pada halaman login, dashboard, dan struk. Favicon akan ditampilkan pada tab browser.
### 10. Pengaturan Midtrans
Untuk menggunakan pembayaran QRIS, transfer bank, dan e-wallet, buka menu Pengaturan dan isi:
* Mode Midtrans
* Server Key
* Client Key
* Status QRIS
* Status transfer dan e-wallet
Gunakan mode Sandbox untuk pengujian dan mode Production untuk transaksi sebenarnya.
Notification URL Midtrans:
```text
https://domainanda.com/midtrans/notification
```
Masukkan URL tersebut pada pengaturan Payment Notification URL di dashboard Midtrans.
### 11. Membersihkan Cache Browser
Jika tampilan atau JavaScript masih menggunakan versi lama, tekan:
```text
Ctrl + F5
```
Mas juga dapat menghapus cache browser sebelum membuka ulang aplikasi.
Jika aplikasi menggantikan versi sebelumnya, sebaiknya hapus folder source code lama terlebih dahulu, lalu ekstrak versi terbaru ke folder kosong. Cara ini mencegah file JavaScript dan layout lama tetap tertinggal di server.
## Penyelesaian Masalah Instalasi
### Halaman Menampilkan Error Database
Periksa kembali:
```text
application/config/database.php
```
Pastikan nama database, username, password, dan hostname sudah sesuai.
### Halaman Selain Login Menampilkan 404
Pastikan file `.htaccess` tersedia dan `mod_rewrite` aktif. Periksa juga nilai `base_url` dan `index_page`.
### Gambar Tidak Dapat Diunggah
Pastikan folder berikut memiliki permission yang benar:
```text
uploads/logo
uploads/products
```
Gunakan permission `0755` atau `0775` dan pastikan ukuran gambar tidak lebih dari 4 MB.
### CSS atau JavaScript Tidak Muncul
Periksa pengaturan:
```php
$config['base_url']
```
Pastikan alamat domain dan folder instalasi sudah sesuai.
### HTTPS Menampilkan Peringatan Tidak Aman
Gunakan domain yang sertifikat SSL-nya aktif. Jangan menggunakan HTTPS langsung melalui alamat IP jika sertifikat tidak mencantumkan IP tersebut.
Setelah seluruh langkah selesai, aplikasi kasir siap digunakan dan dapat dikonfigurasi melalui dashboard administrator.
## Fitur Source Code Aplikasi Kasir Online dan Point of Sale
* Dashboard ringkasan penjualan
* Statistik penjualan hari ini
* Statistik penjualan bulan berjalan
* Perhitungan laba harian
* Perhitungan nilai persediaan barang
* Informasi jumlah pelanggan
* Informasi kasbon berjalan
* Grafik penjualan tujuh hari terakhir
* Daftar transaksi terbaru
* Daftar produk terlaris
* Peringatan stok hampir habis
* Point of Sale berbasis website
* Daftar produk pada halaman kasir
* Gambar produk pada katalog kasir
* Pencarian produk berdasarkan nama
* Pencarian berdasarkan barcode
* Filter produk berdasarkan kategori
* Pemindaian barcode menggunakan scanner
* Pemindaian barcode menggunakan kamera
* Pemindaian QR Code produk
* Scan berulang untuk menambah jumlah barang
* Input item penjualan secara manual
* Keranjang belanja
* Tambah dan kurangi jumlah produk
* Hapus item dari keranjang
* Kosongkan keranjang belanja
* Perhitungan subtotal otomatis
* Diskon transaksi
* Perhitungan total pembayaran otomatis
* Input uang diterima
* Perhitungan kembalian otomatis
* Catatan transaksi
* Pilihan pelanggan pada transaksi
* Pembayaran tunai
* Pembayaran kasbon
* Pembayaran QRIS melalui Midtrans
* Pembayaran transfer bank melalui Midtrans
* Pembayaran e-wallet melalui Midtrans
* Integrasi Midtrans Snap
* Mode Midtrans Sandbox
* Mode Midtrans Production
* Verifikasi status pembayaran
* Penghapusan transaksi sementara jika pembayaran gagal
* Penghapusan transaksi sementara jika pembayaran dibatalkan
* Konfirmasi cetak struk setelah pembayaran
* Cetak struk penjualan
* Logo toko pada struk
* Informasi toko pada struk
* Nomor invoice otomatis
* Rincian produk pada struk
* Total jumlah produk pada struk
* Informasi metode pembayaran pada struk
* Riwayat seluruh transaksi
* Informasi jumlah item transaksi
* Status transaksi
* Cetak ulang struk
* Pembatalan transaksi oleh administrator
* Pengembalian stok ketika transaksi dibatalkan
* Manajemen produk
* Tambah produk
* Edit produk
* Hapus produk
* Upload gambar produk
* Barcode produk
* Pembuatan barcode otomatis
* QR Code produk
* Tampilan QR Code produk
* Cetak QR Code produk
* Harga modal
* Harga jual
* Harga grosir
* Stok produk
* Batas minimum stok
* Tanggal kedaluwarsa
* Status produk aktif dan nonaktif
* Pilihan satuan produk
* Satuan Pcs
* Satuan Bungkus
* Satuan Dus
* Satuan Pak
* Satuan Botol
* Satuan Kaleng
* Satuan Sachet
* Satuan Kilogram
* Satuan Gram
* Satuan Liter
* Satuan Mililiter
* Satuan Meter
* Satuan Roll
* Satuan Box
* Manajemen kategori produk
* Tambah kategori
* Edit kategori
* Hapus kategori
* Manajemen riwayat stok
* Barang masuk
* Stok penjualan
* Penyesuaian stok masuk
* Penyesuaian stok keluar
* Pencatatan barang rusak
* Pencatatan barang kedaluwarsa
* Manajemen pembelian
* Nomor faktur pembelian
* Pilihan supplier
* Tanggal pembelian
* Total pembelian
* Status pembayaran pembelian
* Manajemen supplier
* Tambah supplier
* Edit supplier
* Hapus supplier
* Data telepon supplier
* Data alamat supplier
* Catatan supplier
* Manajemen pelanggan
* Kode pelanggan
* Nama pelanggan
* Nomor WhatsApp pelanggan
* Alamat pelanggan
* Batas kasbon pelanggan
* Manajemen kasbon
* Total kasbon
* Nominal pembayaran kasbon
* Sisa kasbon
* Tanggal jatuh tempo
* Status kasbon belum lunas
* Status kasbon dibayar sebagian
* Status kasbon lunas
* Manajemen kas masuk dan keluar
* Tanggal transaksi kas
* Kategori kas
* Nominal kas
* Keterangan kas
* Manajemen shift kasir
* Waktu buka shift
* Modal awal kasir
* Waktu tutup shift
* Perhitungan kas sistem
* Input kas aktual
* Perhitungan selisih kas
* Status shift dibuka dan ditutup
* Laporan penjualan berdasarkan tanggal
* Filter rentang tanggal
* Cetak laporan
* Ekspor laporan CSV
* Manajemen pengguna
* Role Owner
* Role Admin
* Role Kasir
* Role Petugas Gudang
* Status pengguna aktif dan nonaktif
* Password pengguna terenkripsi
* Log aktivitas pengguna
* Informasi waktu aktivitas
* Informasi pengguna dan role
* Informasi tindakan pengguna
* Informasi modul
* Informasi alamat IP
* Informasi perangkat dan browser
* Pengaturan nama toko
* Pengaturan tagline
* Pengaturan alamat
* Pengaturan nomor telepon
* Pengaturan footer struk
* Pengaturan mata uang
* Pengaturan pajak
* Upload logo toko
* Upload favicon
* Dukungan gambar JPG dan JPEG
* Dukungan gambar PNG
* Dukungan gambar WebP
* Dukungan gambar GIF
* Dukungan gambar SVG
* Dukungan favicon ICO
* DataTables pada tabel data
* Pencarian data
* Pagination tabel
* Pengurutan data
* SweetAlert untuk proses tambah data
* SweetAlert untuk proses edit data
* SweetAlert untuk proses hapus data
* SweetAlert untuk notifikasi pembayaran
* Tombol minimalis dengan ikon Font Awesome
* Tampilan dashboard modern
* Tampilan responsif untuk komputer, tablet, dan HP
* URL tanpa ekstensi `.php`
* Struktur MVC CodeIgniter 3
* Database MySQL atau MariaDB
* Menggunakan driver MySQLi
* Tidak memerlukan Composer