Mohon tunggu...
David Alfaroz
David Alfaroz Mohon Tunggu... Mahasiswa Mercu Buana

Nama: David Alfaroz NIM: 43223010173 Fakultas Ekonomi & Bisnis/Prodi S1 Akuntansi Mata Kuliah: Sistem Informasi Akuntansi Dosen: Prof.Dr. Apollo, Ak, M.Si

Selanjutnya

Tutup

Pendidikan

TB2 : Penggunaan Database MySQL Dalam Sistem Kasir Sederhana

23 Juni 2025   02:40 Diperbarui: 23 Juni 2025   02:40 1094
+
Laporkan Konten
Laporkan Akun
Kompasiana adalah platform blog. Konten ini menjadi tanggung jawab bloger dan tidak mewakili pandangan redaksi Kompas.

Pendahuluan

Di era digital saat ini, pengelolaan data menjadi salah satu aspek paling krusial dalam berbagai bidang, mulai dari bisnis, pendidikan, hingga teknologi informasi. Dalam konteks tersebut, sistem manajemen basis data (DBMS) memegang peranan penting dalam menyimpan, mengolah, dan mengakses data secara efisien. Salah satu DBMS yang paling populer dan banyak digunakan di seluruh dunia adalah MySQL. Sebagai perangkat lunak open-source yang handal dan fleksibel, MySQL telah menjadi pilihan utama bagi pengembang dan perusahaan dalam membangun aplikasi berbasis data, terutama di lingkungan web. Sebelum memahami lebih jauh tentang fungsi dan keunggulan MySQL, penting untuk mengetahui terlebih dahulu apa itu MySQL secara mendasar. 

Pengertian MySQL 

MySQL adalah sistem manajemen basis data relasional (RDBMS) open-source yang sangat populer. Artinya, MySQL menyimpan data dalam bentuk tabel yang saling terkait satu sama lain melalui kolom yang disebut kunci (key). Kemampuannya untuk menangani volume data yang besar dan kecepatannya dalam memproses query menjadikannya pilihan ideal untuk berbagai aplikasi, mulai dari situs web dinamis hingga sistem bisnis yang kompleks. 

Salah satu alasan utama kepopuleran MySQL adalah kemudahan penggunaannya dan fleksibilitasnya. Ia mendukung berbagai bahasa pemrograman dan dapat berjalan di berbagai sistem operasi, seperti Windows, Linux, dan macOS.

 

MySQL: Lebih dari Sekadar Penyimpanan Data

MySQL adalah sebuah Sistem Manajemen Basis Data Relasional (RDBMS) open-source yang sangat populer di dunia. Kata kunci di sini adalah "relasional". Ini berarti MySQL tidak menyimpan data secara acak, melainkan dalam tabel-tabel yang terstruktur rapi. Bayangkan setiap tabel seperti lembaran spreadsheet yang besar, dengan kolom-kolom (field) untuk jenis informasi tertentu dan baris-baris (record) untuk setiap entri data.


Mengapa disebut relasional? Karena tabel-tabel ini bisa saling berhubungan atau berelasi satu sama lain. Misalnya, Anda punya tabel produk dan tabel transaksi. Daripada mengulang semua detail produk di setiap baris transaksi, Anda cukup menyimpan ID produk di tabel transaksi, dan ID itu akan "menunjuk" kembali ke detail lengkap produk di tabel produk. Ini sangat efisien dan membantu menjaga konsistensi data.  

Keunggulan MySQL:

 

  • Open Source: Gratis untuk digunakan, dimodifikasi, dan didistribusikan. Ini sangat menguntungkan, terutama untuk proyek-proyek kecil atau menengah.
  • Performa Tinggi: Dirancang untuk kecepatan dan efisiensi dalam menangani volume data yang besar dan banyak permintaan (query) secara bersamaan.
  • Skalabilitas: Dapat diperbesar (scale up) atau diperkecil (scale down) sesuai kebutuhan, mulai dari aplikasi kecil hingga aplikasi tingkat perusahaan.
  • Fleksibel: Mendukung banyak bahasa pemrograman (PHP, Python, Java, Node.js, dll.) dan dapat berjalan di berbagai sistem operasi (Windows, Linux, macOS).
  • Keamanan: Dilengkapi dengan fitur-fitur keamanan yang kuat untuk melindungi data.
  • Komunitas Besar: Memiliki komunitas pengguna dan pengembang yang sangat aktif, sehingga mudah mencari bantuan dan sumber daya.

Konsep Penting dalam Basis Data Relasional 

Sebelum terjun ke praktik, pahami beberapa konsep dasar ini: 

1. Database: Kumpulan tabel yang saling terkait, folder utama tempat semua data Anda disimpan.

2. Tabel (Table): Struktur tempat data disimpan dalam baris dan kolom. Contoh: produk, transaksi, dll.

3. Kolom (Column / Field): Atribut data dalam tabel. Contoh: nama_produk, harga, tanggal_transaksi. Setiap kolom memiliki tipe data tertentu (teks, angka, tanggal, dll.).

4.Baris (Row / Record): Satu set data lengkap dalam tabel. Contoh: Satu baris untuk satu produk, satu baris untuk satu transaksi.

5. Kunci Utama (Primary Key - PK): Sebuah kolom atau kombinasi kolom yang secara unik mengidentifikasi setiap baris dalam sebuah tabel. Ini tidak boleh ada duplikat dan tidak boleh kosong (NULL). Contoh: id_produk di tabel produk.

6. Kunci Asing (Foreign Key - FK): Sebuah kolom dalam satu tabel yang merujuk ke Primary Key di tabel lain. Ini adalah cara kita menciptakan relasi antar tabel. Contoh: id_produk di tabel detail_transaksi yang merujuk ke id_produk di tabel produk. Foreign Key bisa memiliki duplikat.

7. SQL (Structured Query Language): Bahasa standar yang digunakan untuk berkomunikasi dengan database relasional. Kita akan menggunakannya untuk membuat tabel, memasukkan data, mengambil data, dan memodifikasi data.

Instalasi MySQL

Langkah instalasi MySQL bisa bervariasi tergantung sistem operasi Anda. Umumnya, Anda bisa menginstal:

  • MySQL Community Server: Mesin database utamanya.
  • MySQL Workbench: Aplikasi GUI (Graphical User Interface) untuk mengelola database MySQL dengan mudah tanpa perlu mengetik banyak perintah di terminal. Ini sangat direkomendasikan untuk pemula.
  • XAMPP/MAMP/WAMP: Paket all-in-one yang sudah termasuk Apache (web server), MySQL, dan PHP. Sangat praktis untuk pengembangan lokal.

Saran Cepat untuk Instalasi:

  • Windows: Unduh dan instal XAMPP dari apachefriends.org atau MySQL Installer dari dev.mysql.com.
  • macOS: Gunakan MAMP dari mamp.info atau MySQL Installer.
  • Linux: Gunakan package manager Anda (misal: sudo apt install mysql-server untuk Ubuntu/Debian).

 

Setelah instalasi, pastikan MySQL server berjalan. Jika menggunakan XAMPP/MAMP/WAMP, Anda hanya perlu mengaktifkan modul MySQL dari control panel mereka. Jika menggunakan MySQL Workbench, Anda bisa terhubung ke server lokal.

 

Penggunaan MySQL dalam Sistem Kasir Sederhana

Dalam sebuah sistem kasir sederhana, MySQL berperan sebagai otak yang menyimpan dan mengelola semua informasi penting terkait transaksi dan produk. Bayangkan sebuah toko kelontong; semua daftar barang, harga, dan riwayat pembelian harus tercatat dengan rapi. MySQL inilah yang memungkinkan hal tersebut.

Berikut adalah beberapa penggunaan utama MySQL dalam sistem kasir sederhana:  


1. Penyimpanan Data Produk

MySQL akan menyimpan data setiap produk yang dijual. Tabel yang mungkin ada antara lain: 

  • produk: Menyimpan informasi dasar produk seperti id_produk, nama_produk, harga, stok, dan kategori.
  • kategori: Menyimpan daftar kategori produk seperti id_kategori dan nama_kategori.

2. Pencatatan Transaksi Penjualan 

Setiap kali terjadi penjualan, detail transaksi akan disimpan di MySQL. Tabel yang mungkin ada antara lain: 

  • transaksi: Menyimpan informasi umum transaksi seperti id_transaksi, tanggal_waktu_transaksi, total_harga, dan nama_kasir.
  • detail_transaksi: Menghubungkan transaksi dengan produk yang dibeli. Ini akan menyimpan id_detail_transaksi, id_transaksi, id_produk, jumlah_beli, dan harga_satuan_saat_beli.

3. Manajemen Stok

 MySQL membantu melacak ketersediaan produk. Setiap kali ada penjualan, stok produk yang bersangkutan akan dikurangi secara otomatis. Ketika barang baru masuk, stok dapat diperbarui. 

4. Pelaporan dan Analisis

Dengan data yang tersimpan rapi, sistem kasir dapat menghasilkan berbagai laporan penting, seperti: 

  • Laporan penjualan harian, mingguan, atau bulanan.
  • Produk terlaris.
  • Analisis keuntungan.
  • Manajemen inventaris.

Contoh Skenario

Misalnya, ketika seorang pelanggan membeli dua buah sabun dan satu pasta gigi: 

1. Sistem kasir akan mencari harga sabun dan pasta gigi di tabel produk.

2. Detail pembelian (jumlah, harga, ID produk) akan dicatat di tabel detail_transaksi dan transaksi.

3. Stok sabun dan pasta gigi di tabel produk akan otomatis berkurang sesuai jumlah yang dibeli.

Dengan begitu, MySQL memastikan bahwa semua data kasir tercatat dengan akurat, mempermudah operasional toko, dan memberikan informasi berharga untuk pengambilan keputusan bisnis. 

Membangun Database dan Tabel untuk Sistem Kasir Sederhana

Mari kita rancang struktur database untuk sistem kasir kita. Kita akan membutuhkan setidaknya tiga tabel: 

1. produk: Untuk menyimpan data semua barang yang dijual.

2. transaksi: Untuk menyimpan detail setiap penjualan (misalnya, total harga, tanggal, ID kasir).

3. detail_transaksi: Untuk menyimpan barang-barang apa saja yang dibeli dalam satu transaksi. Ini penting karena satu transaksi bisa berisi banyak barang.

Kita akan menggunakan MySQL Workbench untuk tutorial ini karena lebih visual dan mudah bagi pemula. Jika Anda menggunakan terminal, perintah SQL-nya akan sama. 

Langkah 1: Membuat Database Baru

1. Buka MySQL Workbench.

2. Buat koneksi baru ke server MySQL lokal Anda (biasanya localhost:3306, username root, password kosong atau sesuai yang Anda set saat instalasi).

3. Setelah terhubung, di panel kiri (SCHEMAS), klik kanan dan pilih "Create Schema..." atau dari menu File > Create Schema.

4. Beri nama schema (database) Anda, misalnya db_kasir_sederhana.

5. Klik "Apply" lalu "Apply" lagi untuk konfirmasi. Database Anda sekarang sudah terbuat.

6. Klik kanan pada db_kasir_sederhana di panel SCHEMAS dan pilih "Set as Default Schema" agar setiap perintah yang kita jalankan langsung bekerja pada database ini.

Langkah 2: Membuat Tabel produk

Tabel produk akan menyimpan informasi dasar tentang setiap produk yang dijual. 

Penjelasan Kode SQL:

  • CREATE TABLE produk: Perintah untuk membuat tabel baru bernama produk.
  • id_produk INT PRIMARY KEY AUTO_INCREMENT:
    • id_produk: Nama kolom.
    • INT: Tipe data integer (bilangan bulat).
    • PRIMARY KEY: Menjadikan kolom ini sebagai kunci utama (unik dan tidak kosong).
    • AUTO_INCREMENT: Setiap kali baris baru ditambahkan, nilai id_produk akan otomatis bertambah 1. Ini sangat berguna untuk ID yang unik.
  • nama_produk VARCHAR(255) NOT NULL:
    • VARCHAR(255): Tipe data untuk teks dengan panjang maksimal 255 karakter.
    • NOT NULL: Kolom ini wajib diisi, tidak boleh kosong.
  • harga DECIMAL(10, 2) NOT NULL:
    • DECIMAL(10, 2): Tipe data untuk angka desimal. 10 adalah total digit yang diizinkan, dan 2 adalah jumlah digit di belakang koma. Sempurna untuk harga.
  • stok INT NOT NULL: Jumlah stok produk, harus berupa bilangan bulat dan tidak boleh kosong.
  • deskripsi TEXT: Tipe data untuk teks yang panjang (misalnya deskripsi produk). Bisa kosong.
  • tanggal_ditambahkan TIMESTAMP DEFAULT CURRENT_TIMESTAMP:
    • TIMESTAMP: Tipe data untuk tanggal dan waktu.
    • DEFAULT CURRENT_TIMESTAMP: Otomatis mengisi waktu saat ini ketika baris baru ditambahkan, jika tidak ditentukan.

 

Cara Menjalankan di MySQL Workbench:

  • Buka tab "SQL File" (icon lembar kerja dengan tanda +).
  • Ketikkan atau paste kode SQL di atas.
  • Klik ikon petir (Execute the selected portion of the script or everything) untuk menjalankan query.
  • Jika berhasil, akan ada notifikasi hijau di bagian "Output". Refresh panel SCHEMAS (klik ikon refresh) dan Anda akan melihat tabel produk di bawah db_kasir_sederhana.

Langkah 3: Membuat Tabel transaksi

 Tabel transaksi akan menyimpan ringkasan dari setiap penjualan. 

SQL
SQL

Penjelasan:

  • id_transaksi INT PRIMARY KEY AUTO_INCREMENT: ID unik untuk setiap transaksi.
  • tanggal_waktu_transaksi DATETIME DEFAULT CURRENT_TIMESTAMP: Menyimpan tanggal dan waktu transaksi secara otomatis. DATETIME lebih fleksibel daripada TIMESTAMP untuk rentang tanggal yang sangat luas.
  • total_harga DECIMAL(10, 2) NOT NULL: Total harga dari semua produk dalam transaksi ini.
  • cashier_name VARCHAR(100): Nama kasir yang melayani transaksi (opsional, bisa NULL).

 Jalankan perintah SQL ini di MySQL Workbench seperti sebelumnya. 

Langkah 4: Membuat Tabel detail_transaksi 

Tabel ini akan menghubungkan transaksi dengan produk dan menyimpan detail setiap item dalam suatu transaksi. Ini adalah tempat Foreign Key berperan penting.

SQL
SQL

Penjelasan:

  • id_detail_transaksi INT PRIMARY KEY AUTO_INCREMENT: ID unik untuk setiap baris detail transaksi.
  • id_transaksi INT NOT NULL: Kolom ini adalah Foreign Key yang akan menunjuk ke id_transaksi di tabel transaksi. Ini menandakan transaksi mana detail ini berada.
  • id_produk INT NOT NULL: Kolom ini adalah Foreign Key yang akan menunjuk ke id_produk di tabel produk. Ini menandakan produk apa yang dibeli.
  • jumlah_beli INT NOT NULL: Berapa banyak produk ini dibeli dalam transaksi tersebut.
  • harga_satuan_saat_beli DECIMAL(10, 2) NOT NULL: Harga produk saat transaksi terjadi. Ini penting karena harga produk bisa berubah sewaktu-waktu di tabel produk, tapi harga di riwayat transaksi harus tetap harga saat pembelian.
  • FOREIGN KEY (id_transaksi) REFERENCES transaksi(id_transaksi): Ini adalah sintaks untuk mendeklarasikan foreign key. Kolom id_transaksi di detail_transaksi merujuk ke kolom id_transaksi di tabel transaksi.
  • FOREIGN KEY (id_produk) REFERENCES produk(id_produk): Sama, untuk merujuk ke tabel produk.

Jalankan perintah SQL ini. Sekarang Anda memiliki tiga tabel dasar untuk sistem kasir Anda!

Operasi CRUD (Create, Read, Update, Delete) Data 

Setelah tabel-tabel terbentuk, kita bisa mulai berinteraksi dengan data menggunakan perintah SQL.

1. CREATE (Memasukkan Data) - Perintah INSERT INTO

Untuk mengisi data ke dalam tabel. 

Memasukkan Produk:

SQL
SQL

Cara Menjalankan: Masukkan perintah di SQL tab Workbench, lalu jalankan. 

2. READ (Membaca/Mengambil Data) - Perintah SELECT

Ini adalah perintah yang paling sering digunakan untuk melihat data. 

Melihat Semua Produk:

SQL
SQL

Melihat Produk dengan Kondisi Tertentu:

SELECT id_produk, nama_produk, harga FROM produk WHERE stok > 50 ORDER BY nama_produk ASC;

Penjelasan:

  • SELECT *: Ambil semua kolom.
  • SELECT id_produk, nama_produk, harga: Ambil kolom spesifik.
  • FROM produk: Dari tabel produk.
  • WHERE stok > 50: Hanya ambil baris di mana stok lebih dari 50. Ini adalah kondisi filter.
  • ORDER BY nama_produk ASC: Urutkan hasil berdasarkan nama_produk secara ascending (A-Z). Gunakan DESC untuk descending.

3. UPDATE (Mengubah Data) - Perintah UPDATE

Untuk mengubah data yang sudah ada. 


UPDATE produk SET harga = 6000.00 WHERE nama_produk = 'Sabun Mandi Lifebuoy';

UPDATE produk SET stok = 60, deskripsi = 'Shampo untuk rambut bersih dan bebas ketombe' WHERE id_produk = 3; 

PENTING! Selalu gunakan klausa WHERE saat UPDATE untuk memastikan Anda hanya mengubah baris yang diinginkan. Tanpa WHERE, Anda akan mengubah semua baris di tabel! 

4. DELETE (Menghapus Data) - Perintah DELETE FROM

Untuk menghapus baris data. 

DELETE FROM produk WHERE nama_produk = 'Sabun Mandi Lifebuoy';

DELETE FROM produk WHERE id_produk = 2;

SQL
SQL

PENTING! Sama seperti UPDATE, selalu gunakan klausa WHERE saat DELETE untuk memastikan Anda hanya menghapus baris yang diinginkan. Tanpa WHERE, Anda akan menghapus semua data di tabel! 

Contoh Skenario Transaksi: Kombinasi INSERT dan SELECT

 Mari kita simulasikan sebuah transaksi.

Skenario: Pelanggan membeli 2 Sabun Mandi Lifebuoy (ID produk 1) dan 1 Pasta Gigi Pepsodent (ID produk 2). 

 Langkah 1: Masukkan Produk (jika belum ada) 

Jika Anda mengikuti tutorial, seharusnya sudah ada. Jika belum, jalankan: 

SQL
SQL

Langkah 2: Buat Transaksi Baru

Pertama, kita harus tahu total_harga transaksi. Kita perlu mengambil harga dari tabel produk. 

SQL
SQL

Setelah menjalankan ini, kita perlu tahu id_transaksi yang baru saja dibuat. Di aplikasi nyata, biasanya ada fungsi untuk mengambil ID terakhir yang di-generate (misalnya LAST_INSERT_ID() di MySQL). Untuk tujuan tutorial, kita bisa melihatnya: 

SQL
SQL

Langkah 3: Masukkan Detail Transaksi 

Sekarang, kita masukkan detail produk yang dibeli ke tabel detail_transaksi menggunakan id_transaksi yang baru kita dapatkan (misal: 1). 

INSERT INTO detail_transaksi (id_transaksi, id_produk, jumlah_beli, harga_satuan_saat_beli) VALUES
(1, 1, 2, 5500.00), -- 2 Sabun Mandi Lifebuoy
(1, 2, 1, 8000.00); -- 1 Pasta Gigi Pepsodent

Langkah 4: Perbarui Stok Produk 

Terakhir, kita perlu mengurangi stok produk di tabel produk. 

UPDATE produk SET stok = stok - 2 WHERE id_produk = 1; -- Kurangi stok Sabun Mandi
UPDATE produk SET stok = stok - 1 WHERE id_produk = 2; -- Kurangi stok Pasta Gigi

Mengambil Laporan Transaksi (Menggabungkan Tabel dengan JOIN) 

Ini adalah keindahan database relasional. Kita bisa menggabungkan informasi dari beberapa tabel untuk mendapatkan gambaran lengkap.

Melihat Semua Transaksi dan Detail Produknya: 

SQL
SQL

Penjelasan:

  • FROM transaksi t: Pilih dari tabel transaksi, dengan alias t untuk mempersingkat penulisan.
  • JOIN detail_transaksi dt ON t.id_transaksi = dt.id_transaksi: Gabungkan dengan tabel detail_transaksi (alias dt) di mana id_transaksi di kedua tabel cocok. Ini adalah cara kita menghubungkan transaksi dengan detail_transaksi menggunakan Foreign Key.
  • JOIN produk p ON dt.id_produk = p.id_produk: Kemudian, gabungkan hasilnya dengan tabel produk (alias p) di mana id_produk di detail_transaksi cocok dengan id_produk di produk. Ini memungkinkan kita menampilkan nama_produk.

Perintah JOIN adalah tulang punggung dari database relasional, memungkinkan kita menarik informasi yang saling terkait dari tabel yang berbeda seolah-olah mereka adalah satu kesatuan. 

Ini adalah fondasi dasar dari penggunaan MySQL untuk sistem kasir sederhana. Tentu saja, sistem kasir nyata akan jauh lebih kompleks, melibatkan hal-hal seperti:

  • Manajemen pengguna/kasir dengan hak akses.
  • Diskon dan pajak.
  • Integrasi dengan printer struk.
  • Antarmuka pengguna (GUI) yang dibangun dengan bahasa pemrograman (Python, Java, PHP, Node.js, dll.) yang akan berkomunikasi dengan database MySQL di belakang layar.
  • Validasi data yang lebih ketat.

Namun, dengan pemahaman tentang bagaimana merancang tabel, membuat relasi, dan melakukan operasi CRUD dasar di MySQL, Anda sudah memiliki landasan yang sangat kuat untuk mulai membangun sistem kasir Anda sendiri!

What: Apa itu Database MySQL dalam Sistem Kasir Sederhana?

Dalam konteks sistem kasir sederhana, database MySQL adalah tempat penyimpanan terstruktur untuk semua data penting yang diperlukan oleh aplikasi kasir Anda. Ini mencakup informasi produk, transaksi penjualan, pelanggan (jika ada), dan mungkin data pengguna kasir itu sendiri.

Bayangkan database ini seperti lemari arsip digital yang sangat rapi dan efisien. Setiap laci di lemari arsip adalah "tabel", dan di dalam setiap laci, Anda menemukan "berkas" (baris data) yang berisi informasi spesifik yang terorganisir dengan baik (kolom).

Contoh Entitas/Tabel yang Umum dalam Sistem Kasir:

  • Produk (Products):

    • product_id (ID unik produk)
    • nama_produk (Nama barang yang dijual)
    • harga_beli (Harga modal produk)
    • harga_jual (Harga jual produk ke pelanggan)
    • stok (Jumlah stok yang tersedia)
    • kategori (Misal: Makanan, Minuman, Pakaian)
  • Transaksi (Transactions):

    • transaction_id (ID unik transaksi)
    • tanggal_waktu (Kapan transaksi terjadi)
    • total_harga (Total harga keseluruhan transaksi)
    • jumlah_bayar (Jumlah uang yang dibayarkan pelanggan)
    • kembalian (Jumlah kembalian untuk pelanggan)
  • Detail Transaksi (Transaction_Items / Order_Details):

    • detail_id (ID unik detail item)
    • transaction_id (Mengacu ke ID transaksi mana item ini termasuk)
    • product_id (Mengacu ke ID produk yang dibeli)
    • jumlah_beli (Berapa banyak produk ini dibeli dalam transaksi tersebut)
    • harga_saat_beli (Harga produk ini saat transaksi terjadi, penting untuk laporan historis jika harga produk berubah)
  • Pelanggan (Customers - Opsional, untuk program loyalitas/member):

    • customer_id
    • nama_pelanggan
    • alamat
    • nomor_telepon
  • Pengguna (Users - Untuk login kasir):

    • user_id
    • username
    • password (Tersimpan dalam bentuk hash)
    • role (Misal: Kasir, Admin)

Why: Mengapa Menggunakan Database MySQL dalam Sistem Kasir Sederhana?

Ada beberapa alasan kuat mengapa MySQL (atau database relasional lainnya) menjadi pilihan ideal untuk sistem kasir, bahkan yang sederhana sekalipun:

  1. Konsistensi dan Integritas Data:

    • MySQL memastikan data Anda akurat dan konsisten. Misalnya, ketika stok produk berkurang setelah penjualan, MySQL memastikan angka stok diperbarui dengan benar.
    • Integritas Referensial: Dengan hubungan antar tabel (foreign keys), Anda bisa memastikan bahwa item transaksi selalu terhubung dengan produk yang valid dan transaksi yang valid. Ini mencegah "data yatim piatu" (data yang tidak memiliki induk).
  2. Organisasi Data yang Efisien:

    • Data disimpan dalam tabel-tabel terpisah yang saling terkait, menghindari duplikasi data (redundansi). Misalnya, nama produk hanya disimpan sekali di tabel Produk, bukan di setiap baris transaksi. Ini menghemat ruang penyimpanan dan memudahkan pembaruan.
  3. Pencarian dan Retrieval Data yang Cepat:

    • MySQL dirancang untuk melakukan pencarian dan pengambilan data dengan sangat cepat, bahkan dengan jutaan baris data. Ini krusial untuk kasir yang membutuhkan respons cepat saat mencari produk atau melihat riwayat transaksi.
    • Indeks: Anda bisa membuat indeks pada kolom yang sering dicari (misalnya product_id, nama_produk), mirip dengan indeks di buku, untuk mempercepat pencarian.
  4. Keamanan Data:

    • MySQL menyediakan mekanisme keamanan seperti otentikasi pengguna (username/password), hak akses (privileges) pada tabel dan database tertentu, dan enkripsi data. Ini penting untuk melindungi informasi sensitif seperti data penjualan dan harga.
  5. Skalabilitas:

    • Meskipun untuk sistem sederhana, MySQL dapat menangani pertumbuhan data yang signifikan. Jika bisnis Anda berkembang dan jumlah produk atau transaksi meningkat drastis, MySQL umumnya dapat mengatasinya tanpa perubahan arsitektur yang besar.
  6. Pelaporan dan Analisis:

    • Data yang terstruktur memudahkan Anda membuat laporan penjualan harian, mingguan, bulanan, produk terlaris, analisis stok, dan sebagainya. Anda bisa menjalankan query SQL kompleks untuk mendapatkan insight bisnis.
  7. Dukungan dan Komunitas Luas:

    • MySQL adalah database yang sangat populer dengan komunitas pengguna yang besar dan banyak sumber daya (dokumentasi, tutorial, forum) yang tersedia. Ini memudahkan dalam mencari bantuan atau solusi jika Anda menghadapi masalah.
  8. Gratis dan Open Source:

    • MySQL Community Edition adalah gratis untuk digunakan, yang sangat ideal untuk startup atau sistem sederhana dengan anggaran terbatas.

How: Bagaimana Menggunakan Database MySQL dalam Sistem Kasir Sederhana?

Penggunaan MySQL dalam sistem kasir melibatkan beberapa tahapan utama:

1. Perancangan Database (Database Design)

  • Identifikasi Entitas: Pikirkan objek-objek penting dalam sistem Anda (Produk, Transaksi, Pelanggan, dll).
  • Tentukan Atribut: Untuk setiap entitas, tentukan informasi apa saja yang perlu disimpan (nama produk, harga, stok, tanggal transaksi, total, dll). Ini akan menjadi kolom tabel.
  • Tentukan Kunci Primer (Primary Key): Setiap tabel harus memiliki kolom unik yang mengidentifikasi setiap baris (misal: product_id, transaction_id).
  • Tentukan Hubungan (Relationships): Bagaimana tabel-tabel saling terhubung?
    • Satu-ke-Banyak (One-to-Many): Satu Transaksi bisa memiliki banyak Detail Transaksi. Satu Produk bisa muncul di banyak Detail Transaksi.
    • Gunakan Kunci Asing (Foreign Key) untuk menghubungkan tabel. Misalnya, transaction_id di tabel Detail_Transaksi akan menjadi foreign key yang merujuk ke transaction_id di tabel Transaksi.
  • Normalisasi (Opsional, tapi Direkomendasikan): Proses untuk mengurangi redundansi data dan meningkatkan integritas data dengan membagi tabel menjadi tabel-tabel yang lebih kecil dan terhubung secara logis. Untuk sistem sederhana, biasanya cukup sampai 3NF (Third Normal Form).

Contoh Struktur Tabel (MySQL DDL - Data Definition Language): 

-- Tabel untuk Produk
CREATE TABLE Products (
    product_id INT AUTO_INCREMENT PRIMARY KEY,
    nama_produk VARCHAR(255) NOT NULL,
    harga_beli DECIMAL(10, 2) NOT NULL,
    harga_jual DECIMAL(10, 2) NOT NULL,
    stok INT NOT NULL DEFAULT 0,
    kategori VARCHAR(100),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

-- Tabel untuk Transaksi
CREATE TABLE Transactions (
    transaction_id INT AUTO_INCREMENT PRIMARY KEY,
    tanggal_waktu DATETIME DEFAULT CURRENT_TIMESTAMP,
    total_harga DECIMAL(10, 2) NOT NULL,
    jumlah_bayar DECIMAL(10, 2) NOT NULL,
    kembalian DECIMAL(10, 2) NOT NULL,
    payment_method VARCHAR(50), -- Misal: Cash, Debit, Credit Card
    kasir_id INT, -- Jika ada tabel Users
    -- FOREIGN KEY (kasir_id) REFERENCES Users(user_id)
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 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);

INSERT INTO Transactions (total_harga, jumlah_bayar, kembalian)
VALUES (7000, 10000, 3000);

READ (SELECT): Mengambil data (misalnya, menampilkan daftar produk, melihat riwayat transaksi). 

SELECT product_id, nama_produk, harga_jual, stok FROM Products WHERE stok > 0;
SELECT * FROM Transactions ORDER BY tanggal_waktu DESC LIMIT 10;
SELECT ti.nama_produk, ti.jumlah_beli, ti.harga_saat_beli
FROM Transaction_Items t_item
JOIN Products p ON t_item.product_id = p.product_id
WHERE t_item.transaction_id = 1;

UPDATE: Mengubah data yang sudah ada (misalnya, memperbarui stok produk setelah penjualan, mengubah harga produk). 

UPDATE Products SET stok = stok - 2 WHERE product_id = 1;
UPDATE Products SET harga_jual = 4000 WHERE product_id = 1;

DELETE: Menghapus data (jarang dilakukan pada transaksi, lebih sering pada data master seperti produk yang sudah tidak dijual). 

DELETE FROM Products WHERE product_id = 5;

Pencegahan SQL Injection: Sangat penting untuk menggunakan prepared statements (parametized queries) untuk semua operasi INSERT, UPDATE, dan SELECT yang melibatkan input pengguna. Ini mencegah serangan SQL injection yang dapat merusak atau mencuri data Anda. 

4. Pengelolaan dan Pemeliharaan (Management & Maintenance)

  • Backup Database: Secara teratur lakukan backup database Anda untuk mencegah kehilangan data akibat kegagalan hardware, software, atau kesalahan manusia.
  • Optimasi Query: Seiring waktu, jika performa menurun, Anda mungkin perlu mengoptimalkan query SQL atau menambahkan indeks pada kolom yang sering digunakan.
  • Pemantauan: Pantau kinerja database untuk memastikan berjalan lancar.

Memulai phpMyAdmin untuk Mengelola Database Kasir 

Langkah pertama dalam membangun sistem kasir sederhana adalah mengakses phpMyAdmin, sebuah antarmuka web yang disediakan oleh XAMPP untuk mengelola database MySQL. Setelah berhasil menjalankan server lokal menggunakan XAMPP, pengguna dapat membuka halaman phpMyAdmin melalui browser dengan alamat http://localhost/phpmyadmin/. 

Membuka phpMyAdmin di Browser

(Gambar: Tampilan Awal phpMyAdmin)

  1. Buka browser (Chrome, Edge, dll), dan akses:

 http://localhost/phpmyadmin/

       2. Anda akan masuk ke halaman antarmuka phpMyAdmin.

       3. phpMyAdmin adalah alat berbasis web untuk mengelola database MySQL secara visual.

       4. Di sini Anda bisa membuat database baru, tabel, mengisi data, menghapus, dan menjalankan query SQL dengan mudah.

Dokumen Pribadi
Dokumen Pribadi

Pada gambar pertama, ditampilkan tampilan utama phpMyAdmin setelah server berhasil dijalankan. Di sini, pengguna dapat membuat basis data baru, mengelola tabel, menambahkan data, menjalankan perintah SQL, dan melakukan konfigurasi lain yang berhubungan dengan sistem basis data.

Antarmuka ini menjadi fondasi penting untuk membangun struktur data kasir seperti daftar menu, data pelanggan, dan transaksi penjualan, yang semuanya akan disimpan dalam bentuk tabel relasional.

Menjalankan XAMPP -- Langkah Awal Server Lokal 

Sebelum dapat mengakses phpMyAdmin, Anda perlu memastikan bahwa server lokal telah aktif. Gambar ini menunjukkan XAMPP Control Panel, tempat Anda dapat mengaktifkan layanan Apache dan MySQL, dua komponen penting yang dibutuhkan untuk menjalankan aplikasi berbasis web dan database. 

Dokumen Pribadi
Dokumen Pribadi

Setelah tombol "Start" pada kedua layanan ditekan, status akan berubah menjadi "Running", menandakan bahwa server lokal siap digunakan. Tanpa tahap ini, Anda tidak bisa mengakses phpMyAdmin maupun menghubungkan sistem ke database MySQL.

Menjalankan XAMPP

(Gambar: XAMPP Control Panel)

  1. Buka aplikasi XAMPP Control Panel.

  2. Aktifkan Apache (web server) dan MySQL (database server) dengan klik tombol Start di masing-masing modul.

    • Jika berhasil, akan muncul warna hijau dan status running.

    • Apache memungkinkan akses ke localhost, dan MySQL menjalankan sistem manajemen database.

  3. Ini adalah langkah wajib sebelum mengakses phpMyAdmin karena phpMyAdmin bekerja di atas dua layanan tersebut.

 

Membuat Database Baru - kasir

Setelah server aktif dan Anda masuk ke phpMyAdmin, langkah selanjutnya adalah membuat database baru. Gambar ini menunjukkan proses pembuatan database dengan nama kasir_db, yang akan menjadi tempat penyimpanan seluruh data kasir seperti menu, pelanggan, dan transaksi. Dalam tahap ini, Anda cukup mengetikkan nama database pada kolom yang tersedia dan memilih jenis collation, lalu klik tombol Buat. Database ini akan langsung muncul di daftar sebelah kiri.

(Gambar : Pembuatan Database kasir_db)

  1. Klik menu "Basis data" di bagian atas.

  2. Ketikkan nama database baru, misalnya: kasir_db

 

Dokumen Pribadi
Dokumen Pribadi
  • Pilih collation (karakter pengkodean) seperti utf8mb4_general_ci untuk dukungan karakter internasional.

  • Klik "Buat".

  • Sekarang database kosong sudah siap untuk diisi dengan tabel-tabel.

Membuat Tabel Pertama -- menu

Setelah database dibuat, Anda harus membuat tabel-tabel di dalamnya. Gambar ini menunjukkan proses pembuatan tabel pertama bernama menu, dengan jumlah kolom yang diisi sebanyak 4. Tabel menu akan digunakan untuk menyimpan daftar barang atau makanan yang dijual di toko. Kolom-kolom yang akan diatur pada langkah selanjutnya akan mencakup ID menu, nama menu, stok, dan harga.

Dokumen Pribadi
Dokumen Pribadi
  • Setelah database kasir_db aktif, klik database tersebut di sidebar kiri.

  • Klik tombol "Create new table".

  • Isi nama tabel: menu, jumlah kolom: 4.

  • Klik tombol "Buat".

  • Isi struktur tabel:


    • id_menu INT(12) PRIMARY AUTO_INCREMENT

    • nama_menu VARCHAR(100)

    • stock INT(10)

    • harga INT(20)

  • Pilih InnoDB sebagai Storage Engine untuk mendukung relasi antar tabel.

  • Klik Simpan (Save).

  • Hasilnya bisa Anda lihat di gambar ke-6.

Menentukan Struktur Kolom Tabel menu

Gambar ini menampilkan pengisian struktur dari tabel menu. Anda bisa melihat bahwa:

Dokumen Pribadi
Dokumen Pribadi
  • id_menu ditetapkan sebagai kolom tipe INT, sebagai Primary Key, dan diatur agar otomatis bertambah (AUTO_INCREMENT).

  • nama_menu menggunakan tipe VARCHAR agar dapat menyimpan teks nama makanan.

  • stock dan harga menggunakan tipe INT karena berupa angka.
    Struktur ini memungkinkan aplikasi untuk menyimpan dan mengelola daftar menu dengan efisien.

Tampilan Akhir Struktur Tabel menu

Setelah tabel menu selesai dibuat, phpMyAdmin akan menampilkan hasil akhir dari struktur tabel tersebut. Gambar ini menunjukkan keempat kolom telah tersusun rapi. Di bagian kanan terdapat menu tindakan (ubah, hapus, indeks, dll.) yang memungkinkan pengguna untuk memodifikasi isi atau struktur tabel sewaktu-waktu. Ini menjadi dasar dari data barang atau makanan di sistem kasir Anda.

Dokumen Pribadi
Dokumen Pribadi

Membuat Tabel Kedua -- customer

Langkah selanjutnya adalah membuat tabel baru bernama customer, yang digunakan untuk menyimpan data pelanggan. Gambar ini menampilkan pengaturan awal kolom-kolom untuk tabel tersebut, yaitu: 

  • Kembali ke database toko_beturger_bakery, klik "Create new table" lagi.

  • Isi nama tabel: customer, jumlah kolom: 5.

  • Klik Buat dan isi strukturnya:

    • id_customer INT(10) PRIMARY AUTO_INCREMENT

    • nama_customer VARCHAR(150)

    • alamat VARCHAR(100)

    • email VARCHAR(100)

    • no_hp INT(20)

  • Klik Simpan.

Dokumen Pribadi
Dokumen Pribadi
  • id_customer sebagai primary key (INT, AUTO_INCREMENT),

  • nama_customer, alamat, email bertipe VARCHAR,

  • no_hp bertipe INT.
    Tabel ini sangat penting jika sistem kasir Anda melibatkan pencatatan identitas pelanggan secara individual.

Struktur Final Tabel customer

Gambar ini memperlihatkan struktur tabel customer setelah disimpan. Tampak bahwa setiap kolom telah ditetapkan dengan baik dan siap digunakan untuk menyimpan informasi pelanggan. Sama seperti tabel menu, phpMyAdmin juga menyediakan opsi untuk mengelola data atau struktur kapan pun dibutuhkan. Keberadaan tabel ini akan memungkinkan Anda membuat laporan penjualan berdasarkan pelanggan. 

Dokumen Pribadi
Dokumen Pribadi

Membuat Tabel Ketiga -- transaksi

Kini Anda sampai pada bagian inti dari sistem kasir: tabel transaksi. Gambar ini memperlihatkan form pembuatan tabel transaksi yang berfungsi untuk menyimpan semua riwayat penjualan. Kolom-kolom yang disiapkan antara lain: 

Dokumen Pribadi
Dokumen Pribadi
  • id_transaksi sebagai primary key,

  • id_customer sebagai foreign key (relasi ke tabel customer),

  • tanggal_transaksi,

  • stock yang dibeli,

  • total_harga pembelian.
    Struktur ini mendukung pencatatan transaksi harian dan bulanan.

Struktur Final Tabel transaksi

Gambar terakhir menampilkan tabel transaksi yang telah selesai dibuat. Di sini, Anda bisa melihat semua kolom utama beserta atribut penting seperti AUTO_INCREMENT untuk id_transaksi. Anda juga dapat menambahkan indeks atau relasi antar tabel dari bagian ini. Setelah semua tabel siap, sistem kasir sederhana Anda sudah memiliki pondasi database yang lengkap.

  • Masih di database yang sama, klik buat tabel baru dengan nama transaksi, jumlah kolom: 5.

  • Struktur tabel:

    • id_transaksi INT(10) PRIMARY AUTO_INCREMENT

    • id_customer INT(100)
      (Nantinya akan dibuat relasi ke tabel customer)

    • tanggal_transaksi DATE

    • stock INT

    • total_harga INT

  • Klik Simpan.

Dokumen Pribadi
Dokumen Pribadi

Tabel ini menyimpan transaksi pembelian yang dilakukan oleh customer, termasuk tanggal transaksi dan total pembelian.

STRUKTUR AKHIR DATABASE

Setelah semua langkah, Anda memiliki database kasir toko roti seperti ini:

Dokumen Pribadi
Dokumen Pribadi

Gambar dibawah, menampilkan struktur awal dari tabel detail_transaksi di phpMyAdmin, sebuah alat yang kita gunakan untuk mengelola database MySQL. Di sini, kita bisa melihat definisi kolom-kolom seperti id_detail_transaksi, id_transaksi, id_menu, jumlah, dan subtotal, lengkap dengan jenis data dan panjangnya. Ini adalah langkah krusial dalam perancangan database, memastikan setiap kolom siap untuk menyimpan data yang spesifik."

Dokumen Pribadi
Dokumen Pribadi
Struktur Tabel detail_transaksi 
  • Gambar ini menunjukkan tampilan "Struktur" dari tabel detail_transaksi di database kasir_db.
  • Terlihat kolom-kolom yang sudah didefinisikan:
    • id_detail_transaksi: Jenis INT, Panjang/Nilai 12, Indeks PRIMARY. Ini kemungkinan adalah kunci utama untuk tabel ini.
    • id_transaksi: Jenis INT, Panjang/Nilai 12.
    • id_menu: Jenis INT, Panjang/Nilai 12.
    • jumlah: Jenis INT, Panjang/Nilai 20.
    • subtotal: Jenis INT, Panjang/Nilai 20.
  • Ini adalah langkah awal untuk merancang tabel, di mana Anda menentukan nama kolom, tipe data, panjang, dan atribut lainnya (seperti kunci utama).

Melanjutkan dari tampilan struktur, gambar selanjutnya, kembali menunjukkan detail struktur tabel detail_transaksi. Pada tampilan ini, kita dapat memastikan atribut penting seperti AUTO_INCREMENT untuk id_detail_transaksi, yang akan secara otomatis mengisi nilai ID baru setiap kali ada transaksi. Ini juga menegaskan bahwa id_detail_transaksi berfungsi sebagai kunci utama (PRIMARY KEY), elemen vital untuk identifikasi unik setiap baris data dan integritas relasional database kita.

Dokumen Pribadi
Dokumen Pribadi
  • Ini adalah tampilan yang sedikit berbeda dari struktur tabel detail_transaksi, kemungkinan setelah beberapa penyesuaian atau untuk memverifikasi ulang.
  • Terlihat id_detail_transaksi memiliki atribut AUTO_INCREMENT, yang berarti nilainya akan otomatis bertambah setiap kali ada entri baru.
  • Bagian bawah gambar menunjukkan opsi untuk membuat indeks, yang dapat meningkatkan kinerja pencarian data.

Setelah mendefinisikan struktur, langkah selanjutnya adalah mengisi data ke dalam tabel. Gambar berikut, membawa kita ke tab 'SQL' di phpMyAdmin, di mana kita akan menjalankan perintah INSERT INTO untuk tabel menu. Di sini, Anda dapat melihat sintaks SQL yang digunakan untuk menambahkan beberapa item menu ke database kita, seperti 'Croissant Butter', 'Cromboloni Classic', dan lainnya, lengkap dengan informasi stok dan harga mereka. Ini adalah cara praktis untuk memasukkan data awal atau menambahkan entri baru ke tabel Anda

Dokumen Pribadi
Dokumen Pribadi
  • Gambar ini menunjukkan Anda sedang berada di tab "SQL" untuk tabel menu dalam database kasir_db.
  • Anda menjalankan perintah SQL INSERT INTO untuk memasukkan data ke tabel menu.
  • Sintaks SQL yang digunakan adalah:

SQL
SQL

        Ini adalah cara untuk mengisi tabel dengan data awal atau menambahkan entri baru.

Setelah berhasil mengeksekusi perintah INSERT, kita perlu memverifikasi apakah data sudah masuk dengan benar. Gambar selanjutnya, menunjukkan hasil dari query SELECT * FROM menu. Anda dapat melihat daftar menu yang baru saja kita tambahkan, tersusun rapi dengan id_menu, nama_menu, stock, dan harga masing-masing. Tampilan ini mengonfirmasi bahwa operasi penyisipan data kita telah berhasil, dan tabel menu sekarang berisi informasi produk yang kita inginkan.  

 

Dokumen Pribadi
Dokumen Pribadi
  • Setelah menjalankan perintah INSERT, gambar ini menunjukkan hasil dari query SELECT * FROM menu.
  • Terlihat data yang baru saja Anda masukkan (Croissant Butter, Cromboloni Classic, dll.) sudah berhasil tersimpan di tabel menu.
  • Setiap baris mewakili satu item menu dengan id_menu, nama_menu, stock, dan harga yang sesuai.

Memasukkan Data ke Tabel customer 

Dokumen Pribadi
Dokumen Pribadi
  • Mirip dengan langkah sebelumnya, Anda berada di tab "SQL" untuk tabel customer dalam database kasir_db.
  • Anda menjalankan perintah SQL INSERT INTO untuk memasukkan data ke tabel customer.
  • Sintaks SQL yang digunakan adalah:

SQL
SQL

Ini adalah proses yang sama untuk mengisi tabel customer dengan informasi pelanggan. Setelah perintah ini dieksekusi, data pelanggan akan tersimpan di database Anda. 

Tutorial ini secara efektif menunjukkan proses dasar manajemen database di phpMyAdmin:

  • Melihat Struktur Tabel: Memahami bagaimana kolom-kolom didefinisikan dalam sebuah tabel.
  • Menjalankan Query SQL: Menggunakan tab SQL untuk secara manual memasukkan data ke dalam tabel.
  • Verifikasi Data: Memastikan bahwa data telah berhasil dimasukkan dengan melihat isi tabel.

Ini adalah langkah-langkah fundamental yang sangat berguna untuk memulai dengan database Anda.

 

RELASI ANTAR TABEL (Opsional Tambahan)

  • Anda bisa menghubungkan id_customer pada tabel transaksi ke tabel customer menggunakan fitur relasi foreign key di phpMyAdmin, agar datanya konsisten.

  • Ini akan sangat membantu jika ingin membuat sistem join query untuk laporan transaksi.

Dengan mengikuti langkah di atas, Anda sudah berhasil:

  • Menyiapkan server lokal dengan XAMPP.

  • Membuat database dan tiga tabel utama: menu, customer, dan transaksi.

  • Menyusun struktur dasar sistem kasir berbasis MySQL.

Langkah selanjutnya, Anda bisa:

  • Mengisi data menu & customer via tab Insert.

  • Membuat antarmuka aplikasi kasir menggunakan PHP + HTML/CSS.

  • Mengembangkan fungsi seperti: tambah transaksi, cetak struk, laporan harian. 

 


 

 

 

 



 

 

 

 

 


 

 

 

 


 

 

 


 

 

 

Follow Instagram @kompasianacom juga Tiktok @kompasiana biar nggak ketinggalan event seru komunitas dan tips dapat cuan dari Kompasiana. Baca juga cerita inspiratif langsung dari smartphone kamu dengan bergabung di WhatsApp Channel Kompasiana di SINI

HALAMAN :
Mohon tunggu...

Lihat Konten Pendidikan Selengkapnya
Lihat Pendidikan Selengkapnya
Beri Komentar
Berkomentarlah secara bijaksana dan bertanggung jawab. Komentar sepenuhnya menjadi tanggung jawab komentator seperti diatur dalam UU ITE

Belum ada komentar. Jadilah yang pertama untuk memberikan komentar!
LAPORKAN KONTEN
Alasan
Laporkan Konten
Laporkan Akun