Home

TeNTANG KAMI

TENAGA PENDIDIK

KONTAK KAMI

  • Facebook
  • X
  • Instagram
  • Pinterest
  • WhatsApp
  • RSS Feed
  • TikTok

Education SMK Yadika 4

Belajar di SMK bukan sekadar teori, tapi membentuk mental juara!

Search

Transaksi penjualan menggunakan PHP, MySQL, dan AJAX

Dohar Pardamean Avatar
Dohar Pardamean
February 9, 2025
Transaksi penjualan menggunakan PHP, MySQL, dan AJAX

Jika Anda ingin membuat sistem transaksi penjualan menggunakan PHP, MySQL, dan AJAX, berikut adalah langkah-langkah utamanya:

1. Struktur Database (MySQL)

Buat database dan tabel untuk menyimpan data penjualan.

sqlSalinEditCREATE DATABASE penjualan_db;

USE penjualan_db;

CREATE TABLE produk (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nama VARCHAR(100),
    harga INT,
    stok INT
);

CREATE TABLE transaksi (
    id INT AUTO_INCREMENT PRIMARY KEY,
    tanggal TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    total INT
);

CREATE TABLE transaksi_detail (
    id INT AUTO_INCREMENT PRIMARY KEY,
    transaksi_id INT,
    produk_id INT,
    jumlah INT,
    subtotal INT,
    FOREIGN KEY (transaksi_id) REFERENCES transaksi(id),
    FOREIGN KEY (produk_id) REFERENCES produk(id)
);

2. Tampilan Frontend (HTML + jQuery AJAX)

Buat tampilan sederhana untuk memilih produk dan melakukan transaksi.

htmlSalinEdit<!DOCTYPE html>
<html lang="id">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Transaksi Penjualan</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
    <h2>Transaksi Penjualan</h2>
    
    <label>Pilih Produk:</label>
    <select id="produk">
        <!-- Data produk akan di-load dengan AJAX -->
    </select>
    <input type="number" id="jumlah" placeholder="Jumlah" min="1">
    <button onclick="tambahProduk()">Tambah</button>

    <h3>Keranjang</h3>
    <table border="1">
        <thead>
            <tr>
                <th>Nama Produk</th>
                <th>Harga</th>
                <th>Jumlah</th>
                <th>Subtotal</th>
                <th>Aksi</th>
            </tr>
        </thead>
        <tbody id="keranjang">
            <!-- Produk yang dipilih akan muncul di sini -->
        </tbody>
    </table>
    <h3>Total: Rp <span id="total">0</span></h3>
    <button onclick="simpanTransaksi()">Simpan Transaksi</button>

    <script>
        $(document).ready(function(){
            loadProduk();
        });

        function loadProduk() {
            $.ajax({
                url: "get_produk.php",
                type: "GET",
                success: function(response) {
                    $("#produk").html(response);
                }
            });
        }

        let keranjang = [];
        
        function tambahProduk() {
            let idProduk = $("#produk").val();
            let jumlah = parseInt($("#jumlah").val());
            
            if (idProduk && jumlah > 0) {
                $.ajax({
                    url: "get_produk.php",
                    type: "POST",
                    data: { id: idProduk },
                    dataType: "json",
                    success: function(data) {
                        let subtotal = data.harga * jumlah;
                        keranjang.push({ id: idProduk, nama: data.nama, harga: data.harga, jumlah, subtotal });

                        updateKeranjang();
                    }
                });
            }
        }

        function updateKeranjang() {
            let html = "";
            let total = 0;
            keranjang.forEach((item, index) => {
                html += `<tr>
                    <td>${item.nama}</td>
                    <td>${item.harga}</td>
                    <td>${item.jumlah}</td>
                    <td>${item.subtotal}</td>
                    <td><button onclick="hapusItem(${index})">Hapus</button></td>
                </tr>`;
                total += item.subtotal;
            });

            $("#keranjang").html(html);
            $("#total").text(total);
        }

        function hapusItem(index) {
            keranjang.splice(index, 1);
            updateKeranjang();
        }

        function simpanTransaksi() {
            $.ajax({
                url: "simpan_transaksi.php",
                type: "POST",
                data: { keranjang: JSON.stringify(keranjang) },
                success: function(response) {
                    alert(response);
                    keranjang = [];
                    updateKeranjang();
                }
            });
        }
    </script>
</body>
</html>

3. Backend (PHP)

Mendapatkan Data Produk (get_produk.php)

phpSalinEdit<?php
$conn = new mysqli("localhost", "root", "", "penjualan_db");

if ($_SERVER['REQUEST_METHOD'] == "GET") {
    $result = $conn->query("SELECT * FROM produk");
    $output = "";
    while ($row = $result->fetch_assoc()) {
        $output .= "<option value='".$row['id']."'>".$row['nama']." - Rp".$row['harga']."</option>";
    }
    echo $output;
}

if ($_SERVER['REQUEST_METHOD'] == "POST") {
    $id = $_POST['id'];
    $result = $conn->query("SELECT * FROM produk WHERE id = $id");
    echo json_encode($result->fetch_assoc());
}
?>

Menyimpan Transaksi (simpan_transaksi.php)

phpSalinEdit<?php
$conn = new mysqli("localhost", "root", "", "penjualan_db");

if ($_SERVER['REQUEST_METHOD'] == "POST") {
    $data = json_decode($_POST['keranjang'], true);
    $total = array_sum(array_column($data, 'subtotal'));

    $conn->query("INSERT INTO transaksi (total) VALUES ($total)");
    $transaksi_id = $conn->insert_id;

    foreach ($data as $item) {
        $conn->query("INSERT INTO transaksi_detail (transaksi_id, produk_id, jumlah, subtotal) 
                      VALUES ($transaksi_id, ".$item['id'].", ".$item['jumlah'].", ".$item['subtotal'].")");
        $conn->query("UPDATE produk SET stok = stok - ".$item['jumlah']." WHERE id = ".$item['id']);
    }

    echo "Transaksi berhasil disimpan!";
}
?>

4. Penjelasan

  1. Database MySQL:
    • produk menyimpan daftar barang.
    • transaksi menyimpan total transaksi.
    • transaksi_detail mencatat produk dalam setiap transaksi.
  2. Frontend (HTML + AJAX):
    • Mengambil data produk (get_produk.php).
    • Menambahkan produk ke dalam keranjang (array JavaScript).
    • Menghapus produk dari keranjang.
    • Menyimpan transaksi (simpan_transaksi.php).
  3. Backend (PHP):
    • get_produk.php menyediakan data produk.
    • simpan_transaksi.php menyimpan transaksi ke database.

Ini adalah sistem transaksi penjualan sederhana dengan PHP, MySQL, dan AJAX. Anda bisa mengembangkannya dengan fitur tambahan seperti autentikasi user, cetak struk, laporan penjualan, dll.

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Artikel Terbaik

  • Bab 7 – Dampak Sosial Informatika

    Bab 7 – Dampak Sosial Informatika

    May 1, 2025
  • Latihan Pemrograman Dasar

    Latihan Pemrograman Dasar

    April 29, 2025
  • Layanan Usaha

    April 22, 2025
  • Layanan Usaha

    April 22, 2025
  • Makna QS. Al-Isra Ayat 32

    Makna QS. Al-Isra Ayat 32

    April 21, 2025

Cari

tentang kami

SMK YADIKA 4

Menghasilkan tenaga kerja yang berkarakter, berjiwa wirausaha dan menguasai teknik informasi

  • X
  • Instagram
  • TikTok
  • Facebook

Follow Us on

  • Facebook
  • X
  • Instagram
  • VK
  • Pinterest
  • Last.fm
  • TikTok
  • Telegram
  • WhatsApp
  • RSS Feed

Categories

  • Akuntansi Keuangan Lembaga (3)
  • Bahasa Indonesia (1)
  • Bahasa Inggris (1)
  • Bahasa Jepang (1)
  • Blog (26)
  • Informatika (4)
  • IPAS (1)
  • Kewirausahaan (1)
  • Manajemen Perkantoran dan Layanan Bisnis (5)
  • Matematika (1)
  • Pelajaran Agama Islam (1)
  • Pelajaran Agama Kristen (1)
  • Pendidikan Kewarganegaraan (1)
  • Seni Budaya (2)
  • Teknik Jaringan Komputer dan Telekomunikasi (6)

Archives

  • May 2025 (1)
  • April 2025 (32)
  • March 2025 (1)
  • February 2025 (9)

Tags

#Akuntansi Jasa #Akuntansiperusahaanjasadagangdanmanufaktur #Akuntansi #Ekonomi #SMK #KurikulumMerdeka #Bahasaindonesia #ManajemenPerkantoranDanLayananBisnis #menganalisistekskaryailmiah #MissFiki #MPLB #Perkantoran #SMKYadika4 #Pendidikanberkualitas #PendidikanBermutuUntukSemua #Pendidikan Pancasila #PengelolaanRapat #ProduktivitasTim #RapatYangEfektif #Reformasi Indonesia #TransformasiPembelajaran #Ventisriwahyuni Belajarbahasajepang #jepang #nihonggomantappu #SMKyadika4 MySQL PHP

Tentang KAMI

SMK YADIKA 4

Menghasilkan tenaga kerja yang berkarakter, berjiwa wirausaha dan menguasai teknik informasi

ARTIKEL TERKINI

  • Bab 7 – Dampak Sosial Informatika

    Bab 7 – Dampak Sosial Informatika

    May 1, 2025
  • Latihan Pemrograman Dasar

    Latihan Pemrograman Dasar

    April 29, 2025
  • Layanan Usaha

    April 22, 2025

KATEGORI

  • Akuntansi Keuangan Lembaga (3)
  • Bahasa Indonesia (1)
  • Bahasa Inggris (1)
  • Bahasa Jepang (1)
  • Blog (26)
  • Informatika (4)
  • IPAS (1)
  • Kewirausahaan (1)
  • Manajemen Perkantoran dan Layanan Bisnis (5)
  • Matematika (1)
  • Pelajaran Agama Islam (1)
  • Pelajaran Agama Kristen (1)
  • Pendidikan Kewarganegaraan (1)
  • Seni Budaya (2)
  • Teknik Jaringan Komputer dan Telekomunikasi (6)
  • Instagram
  • Facebook
  • LinkedIn
  • X
  • VK
  • TikTok

Powered by SMK YADIKA 4| JetNews Magazine by CozyThemes.

Scroll to Top