Membangun Sistem Penjualan Online Sederhana dengan PHP dan MySQL: Panduan Lengkap dari Nol
Table of Content
Membangun Sistem Penjualan Online Sederhana dengan PHP dan MySQL: Panduan Lengkap dari Nol

Perkembangan teknologi digital telah mendorong pesatnya pertumbuhan bisnis online. Membangun toko online sendiri, meskipun terlihat rumit, kini bisa diakses oleh siapa pun dengan pengetahuan pemrograman dasar. Artikel ini akan memandu Anda langkah demi langkah dalam membangun sistem penjualan online sederhana menggunakan PHP dan MySQL sebagai basis datanya. Kita akan fokus pada fungsionalitas inti, seperti menampilkan produk, menambahkan ke keranjang belanja, dan melakukan proses checkout (tanpa integrasi pembayaran gateway). Tujuannya adalah memberikan pemahaman yang kuat tentang arsitektur dan logika di balik sistem e-commerce sederhana.
I. Perencanaan dan Desain Database
Sebelum memulai pengkodean, kita perlu merencanakan struktur database yang akan menyimpan informasi produk, pengguna, dan transaksi. Kita akan menggunakan MySQL sebagai sistem manajemen basis data relasional (RDBMS). Berikut skema database yang akan kita gunakan:
Tabel: produk
| Kolom | Tipe Data | Keterangan |
|---|---|---|
| id_produk | INT(11) | ID produk (primary key, auto-increment) |
| nama_produk | VARCHAR(255) | Nama produk |
| deskripsi | TEXT | Deskripsi produk |
| harga | DECIMAL(10,2) | Harga produk |
| stok | INT(11) | Stok produk |
| gambar | VARCHAR(255) | Nama file gambar produk |
Tabel: users
| Kolom | Tipe Data | Keterangan |
|---|---|---|
| id_user | INT(11) | ID pengguna (primary key, auto-increment) |
| username | VARCHAR(50) | Username pengguna |
| password | VARCHAR(255) | Password pengguna (gunakan hashing!) |
| nama | VARCHAR(255) | Nama lengkap pengguna |
| VARCHAR(255) | Email pengguna |
Tabel: keranjang
| Kolom | Tipe Data | Keterangan |
|---|---|---|
| id_keranjang | INT(11) | ID keranjang (primary key, auto-increment) |
| id_user | INT(11) | ID pengguna |
| id_produk | INT(11) | ID produk |
| jumlah | INT(11) | Jumlah produk dalam keranjang |
Tabel: transaksi
| Kolom | Tipe Data | Keterangan |
|---|---|---|
| id_transaksi | INT(11) | ID transaksi (primary key, auto-increment) |
| id_user | INT(11) | ID pengguna |
| tanggal | DATETIME | Tanggal transaksi |
| total_harga | DECIMAL(10,2) | Total harga transaksi |
II. Pengkodean PHP
Berikut contoh kode PHP sederhana untuk menampilkan produk dari database:
<?php
// Koneksi ke database
$servername = "localhost";
$username = "username_anda";
$password = "password_anda";
$dbname = "nama_database_anda";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error)
die("Connection failed: " . $conn->connect_error);
// Query untuk mengambil data produk
$sql = "SELECT * FROM produk";
$result = $conn->query($sql);
if ($result->num_rows > 0)
while($row = $result->fetch_assoc())
echo "<div>";
echo "<h3>" . $row["nama_produk"] . "</h3>";
echo "<p>" . $row["deskripsi"] . "</p>";
echo "<p>Harga: Rp " . $row["harga"] . "</p>";
echo "<img src='gambar/" . $row["gambar"] . "' alt='" . $row["nama_produk"] . "' width='200'>"; // Pastikan folder gambar ada
echo "<form method='post' action='add_to_cart.php'>";
echo "<input type='hidden' name='id_produk' value='" . $row["id_produk"] . "'>";
echo "<input type='number' name='jumlah' value='1' min='1'>";
echo "<input type='submit' value='Tambahkan ke Keranjang'>";
echo "</form>";
echo "</div>";
else
echo "0 results";
$conn->close();
?>
Kode di atas menampilkan daftar produk dengan gambar, deskripsi, dan harga. Terdapat form sederhana untuk menambahkan produk ke keranjang belanja. add_to_cart.php adalah file terpisah yang akan memproses penambahan produk ke keranjang.
III. Menangani Keranjang Belanja (add_to_cart.php)
File add_to_cart.php akan menangani penambahan produk ke keranjang belanja. Kode berikut menunjukkan contoh sederhana:
<?php
// Koneksi ke database (sama seperti sebelumnya)
if(isset($_POST['id_produk']) && isset($_POST['jumlah']))
$id_produk = $_POST['id_produk'];
$jumlah = $_POST['jumlah'];
$id_user = 1; // Ganti dengan sistem login yang sebenarnya
// Periksa apakah produk sudah ada di keranjang
$sql = "SELECT * FROM keranjang WHERE id_user = $id_user AND id_produk = $id_produk";
$result = $conn->query($sql);
if ($result->num_rows > 0)
// Update jumlah
$row = $result->fetch_assoc();
$new_jumlah = $row['jumlah'] + $jumlah;
$sql = "UPDATE keranjang SET jumlah = $new_jumlah WHERE id_user = $id_user AND id_produk = $id_produk";
else
// Tambahkan ke keranjang
$sql = "INSERT INTO keranjang (id_user, id_produk, jumlah) VALUES ($id_user, $id_produk, $jumlah)";
if ($conn->query($sql) === TRUE)
echo "Produk berhasil ditambahkan ke keranjang!";
else
echo "Error: " . $sql . "<br>" . $conn->error;
$conn->close();
?>
Kode ini memeriksa apakah produk sudah ada di keranjang. Jika iya, maka jumlahnya diupdate. Jika tidak, maka produk ditambahkan ke tabel keranjang. Ingat untuk mengganti $id_user = 1 dengan sistem login yang terintegrasi.
IV. Menampilkan Keranjang Belanja (cart.php)
Berikut contoh kode untuk menampilkan isi keranjang belanja:
<?php
// Koneksi ke database (sama seperti sebelumnya)
$id_user = 1; // Ganti dengan sistem login yang sebenarnya
$sql = "SELECT k.id_keranjang, p.nama_produk, p.harga, k.jumlah, (p.harga * k.jumlah) AS total_harga_item FROM keranjang k JOIN produk p ON k.id_produk = p.id_produk WHERE k.id_user = $id_user";
$result = $conn->query($sql);
if ($result->num_rows > 0)
echo "<table><tr><th>Nama Produk</th><th>Harga</th><th>Jumlah</th><th>Total Harga</th></tr>";
$total_harga = 0;
while($row = $result->fetch_assoc())
echo "<tr><td>" . $row["nama_produk"] . "</td><td>" . $row["harga"] . "</td><td>" . $row["jumlah"] . "</td><td>" . $row["total_harga_item"] . "</td></tr>";
$total_harga += $row["total_harga_item"];
echo "</table>";
echo "<p>Total Harga: " . $total_harga . "</p>";
else
echo "Keranjang belanja kosong.";
$conn->close();
?>
Kode ini menampilkan daftar produk di keranjang beserta total harganya.
V. Proses Checkout (Sederhana)
Proses checkout yang sederhana hanya akan menyimpan data transaksi ke tabel transaksi. Integrasi dengan gateway pembayaran membutuhkan pengetahuan tambahan dan berada di luar cakupan artikel ini.
<?php
// ... (koneksi ke database) ...
// Ambil data dari keranjang
// ... (query untuk mengambil data dari keranjang berdasarkan id_user) ...
// Simpan data transaksi ke tabel transaksi
$total_harga = 0; // Hitung total harga dari keranjang
$id_user = 1; // Ganti dengan sistem login yang sebenarnya
$sql = "INSERT INTO transaksi (id_user, tanggal, total_harga) VALUES ($id_user, NOW(), $total_harga)";
if ($conn->query($sql) === TRUE)
// Kosongkan keranjang setelah transaksi berhasil
$sql = "DELETE FROM keranjang WHERE id_user = $id_user";
$conn->query($sql);
echo "Transaksi berhasil!";
else
echo "Error: " . $sql . "<br>" . $conn->error;
$conn->close();
?>
VI. Kesimpulan
Artikel ini memberikan gambaran dasar tentang membangun sistem penjualan online sederhana menggunakan PHP dan MySQL. Sistem ini masih sangat sederhana dan membutuhkan pengembangan lebih lanjut untuk menjadi sistem e-commerce yang fungsional dan handal. Fitur-fitur seperti sistem login yang aman, integrasi gateway pembayaran, manajemen pengguna yang lebih kompleks, dan fitur-fitur tambahan lainnya perlu ditambahkan untuk meningkatkan fungsionalitas dan keamanan sistem. Namun, pemahaman dasar yang diberikan dalam artikel ini akan menjadi pondasi yang kuat untuk membangun sistem e-commerce yang lebih kompleks di masa mendatang. Ingat selalu untuk memprioritaskan keamanan data dan menerapkan praktik pengkodean yang baik.





