-- Tabel untuk Detail Transaksi (Item-item dalam setiap transaksi)
CREATE TABLE Transaction_Items (
  detail_id INT AUTO_INCREMENT PRIMARY KEY,
  transaction_id INT NOT NULL,
  product_id INT NOT NULL,
  jumlah_beli INT NOT NULL,
  harga_saat_beli DECIMAL(10, 2) NOT NULL, -- Penting jika harga produk berubah
  FOREIGN KEY (transaction_id) REFERENCES Transactions(transaction_id),
  FOREIGN KEY (product_id) REFERENCES Products(product_id)
);
-- Contoh Tabel Pengguna (Kasir, Admin)
CREATE TABLE Users (
  user_id INT AUTO_INCREMENT PRIMARY KEY,
  username VARCHAR(50) NOT NULL UNIQUE,
  password_hash VARCHAR(255) NOT NULL, -- Simpan hash password, BUKAN plaintext
  role VARCHAR(50) NOT NULL, -- Misal: 'kasir', 'admin'
  full_name VARCHAR(100),
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
2. Implementasi Database (Database Implementation)
- Buat Database: Gunakan phpMyAdmin atau klien MySQL lainnya untuk membuat database baru (misal: kasir_db).
- Buat Tabel: Jalankan script DDL (Data Definition Language) seperti di atas untuk membuat tabel-tabel yang telah Anda rancang.
- Buat Pengguna Database (Opsional, tapi Direkomendasikan): Buat pengguna MySQL khusus untuk aplikasi kasir Anda dengan hak akses minimal yang diperlukan (misalnya hanya bisa SELECT, INSERT, UPDATE, DELETE pada database kasir_db). Ini adalah praktik keamanan yang baik.
3. Integrasi Aplikasi (Application Integration)
Ini adalah bagian di mana aplikasi kasir (misalnya ditulis dengan PHP, Python, Java, JavaScript - Node.js, dll.) berkomunikasi dengan database MySQL.
Koneksi Database: Aplikasi Anda perlu membuat koneksi ke server MySQL. Ini melibatkan informasi seperti host (biasanya localhost), username, password, dan nama database.
- Contoh PHP (menggunakan MySQLi atau PDO):
<?php
$servername = "localhost";
$username = "root"; // Atau user khusus aplikasi Anda
$password = ""; Â Â // Password user database
$dbname = "kasir_db";
// Buat koneksi
$conn = new mysqli($servername, $username, $password, $dbname);
// Cek koneksi
if ($conn->connect_error) {
  die("Koneksi gagal: " . $conn->connect_error);
}
echo "Koneksi ke database berhasil!";
// Tutup koneksi saat tidak lagi dibutuhkan
// $conn->close();
?>
Operasi CRUD (Create, Read, Update, Delete): Aplikasi akan menjalankan perintah SQL (DML - Data Manipulation Language) melalui koneksi database untuk melakukan operasi:
- CREATE (INSERT): Menambahkan data baru (misalnya, menambahkan produk baru, menyimpan transaksi).
INSERT INTO Products (nama_produk, harga_beli, harga_jual, stok)
VALUES ('Teh Botol', 2500, 3500, 100);