Selamat datang, para calon web developer! Ingin belajar membuat website tapi bingung darimana memulainya? Jangan khawatir! Artikel ini hadir untuk membimbing kamu melalui contoh source code website sederhana dengan PHP dan MySQL untuk pemula. Kita akan bahas langkah demi langkah, mulai dari konsep dasar hingga implementasi, supaya kamu bisa langsung praktik dan melihat hasilnya. Jadi, siapkan kopi dan mari kita mulai petualangan coding ini!
1. Mengapa PHP dan MySQL? Keunggulan dan Kegunaan
Sebelum masuk ke contoh source code, penting untuk memahami mengapa kita memilih PHP dan MySQL. Keduanya adalah kombinasi yang sangat populer dan banyak digunakan dalam pengembangan website, terutama untuk website yang dinamis. Apa saja keunggulan mereka?
- PHP: Bahasa pemrograman scripting yang dijalankan di server. PHP sangat cocok untuk membuat halaman web yang bisa berinteraksi dengan database, menampilkan data secara dinamis, dan memproses input dari pengguna.
- MySQL: Sistem manajemen database (DBMS) yang open-source. MySQL digunakan untuk menyimpan data website, seperti data pengguna, artikel, produk, dan lain-lain.
Kenapa keduanya populer? Karena mudah dipelajari, komunitasnya besar (jadi mudah cari bantuan), dan banyak hosting provider yang mendukung keduanya. Kombinasi PHP dan MySQL memungkinkan kita membuat website yang interaktif, dinamis, dan kaya fitur. Bahkan, platform populer seperti WordPress juga dibangun di atas PHP dan MySQL!
2. Persiapan Awal: Tools yang Dibutuhkan untuk Development PHP dan MySQL
Sebelum mulai coding, kita perlu menyiapkan beberapa tools penting:
- Text Editor/IDE: Aplikasi untuk menulis kode. Pilih yang kamu suka, contohnya: Visual Studio Code (rekomendasi!), Sublime Text, Notepad++.
- Web Server: Software yang memungkinkan komputermu berfungsi sebagai server lokal. Contohnya: XAMPP (rekomendasi!), LAMP (untuk Linux), MAMP (untuk macOS). XAMPP adalah pilihan yang paling mudah karena sudah termasuk Apache (web server), PHP, dan MySQL dalam satu paket.
- Browser: Untuk melihat hasil website yang kita buat. Gunakan browser favoritmu, seperti Chrome, Firefox, atau Safari.
Cara Install XAMPP:
- Download XAMPP dari website Apache Friends (https://www.apachefriends.org/index.html).
- Ikuti instruksi instalasi. Biasanya cukup klik “Next” saja.
- Setelah instalasi selesai, buka XAMPP Control Panel.
- Start Apache dan MySQL. Jika keduanya berjalan tanpa error, berarti kamu siap untuk melanjutkan!
3. Struktur Database: Merancang Tabel MySQL untuk Website Sederhana
Sebelum menulis kode PHP, kita harus merancang struktur database di MySQL. Mari kita buat sebuah database sederhana untuk menyimpan data artikel. Database ini akan memiliki satu tabel: artikel.
Langkah-langkah membuat database dan tabel:
-
Buka phpMyAdmin. Caranya, buka browser dan ketik
localhost/phpmyadmindi address bar. -
Klik “Databases”.
-
Masukkan nama database, misalnya
belajar_web. Klik “Create”. -
Setelah database dibuat, pilih database
belajar_web. -
Di bagian “Create table”, masukkan nama tabel
artikel. Tentukan jumlah kolom, misalnya 5. Klik “Go”. -
Isi kolom-kolom tabel
artikeldengan informasi berikut:id: INT, AUTO_INCREMENT, PRIMARY KEY (untuk ID unik artikel)judul: VARCHAR(255) (untuk judul artikel)isi: TEXT (untuk isi artikel)penulis: VARCHAR(100) (untuk nama penulis)tanggal_publikasi: DATE (untuk tanggal publikasi)
-
Klik “Save”.
Sekarang, kita sudah memiliki database belajar_web dan tabel artikel yang siap digunakan.
4. Koneksi PHP ke MySQL: Kode PHP untuk Menghubungkan Website ke Database
Selanjutnya, kita akan membuat script PHP untuk menghubungkan website kita ke database MySQL yang sudah dibuat.
Buat file koneksi.php:
<?php
$host = "localhost"; // Host database
$username = "root"; // Username database
$password = ""; // Password database (kosong jika tidak ada)
$database = "belajar_web"; // Nama database
// Membuat koneksi
$koneksi = mysqli_connect($host, $username, $password, $database);
// Memeriksa koneksi
if (mysqli_connect_errno()) {
echo "Koneksi database gagal: " . mysqli_connect_error();
}
?>
Penjelasan Kode:
$host,$username,$password,$database: Variabel yang menyimpan informasi koneksi database. Ganti nilai-nilai ini sesuai dengan konfigurasi MySQL kamu. Biasanya, defaultnya adalah$host = "localhost",$username = "root", dan$password = "".mysqli_connect(): Fungsi untuk membuat koneksi ke database MySQL.mysqli_connect_errno(): Fungsi untuk memeriksa apakah terjadi error saat koneksi.mysqli_connect_error(): Fungsi untuk mendapatkan pesan error jika koneksi gagal.
Simpan file koneksi.php di folder yang sama dengan file PHP lainnya. File ini akan kita gunakan di file-file PHP lainnya untuk melakukan operasi database.
5. Menampilkan Data Artikel: Contoh Kode PHP untuk Query dan Output Data dari Database
Sekarang kita akan membuat script PHP untuk mengambil data artikel dari database dan menampilkannya di halaman web.
Buat file index.php:
<!DOCTYPE html>
<html>
<head>
<title>Daftar Artikel - Contoh Website Sederhana</title>
</head>
<body>
<h1>Daftar Artikel</h1>
<?php
include 'koneksi.php'; // Memasukkan file koneksi database
// Query untuk mengambil semua data artikel dari tabel artikel
$query = "SELECT * FROM artikel";
$result = mysqli_query($koneksi, $query);
// Memeriksa apakah query berhasil dijalankan
if (!$result) {
die("Query gagal: " . mysqli_error($koneksi));
}
// Menampilkan data artikel dalam bentuk tabel
echo "<table border='1'>";
echo "<tr><th>Judul</th><th>Penulis</th><th>Tanggal Publikasi</th></tr>";
while ($row = mysqli_fetch_assoc($result)) {
echo "<tr>";
echo "<td>" . $row['judul'] . "</td>";
echo "<td>" . $row['penulis'] . "</td>";
echo "<td>" . $row['tanggal_publikasi'] . "</td>";
echo "</tr>";
}
echo "</table>";
// Menutup koneksi database
mysqli_close($koneksi);
?>
</body>
</html>
Penjelasan Kode:
include 'koneksi.php';: Memasukkan filekoneksi.phpagar kita bisa menggunakan koneksi database yang sudah dibuat.$query = "SELECT * FROM artikel";: Query SQL untuk mengambil semua data dari tabelartikel.mysqli_query($koneksi, $query);: Menjalankan query SQL menggunakan koneksi database.mysqli_fetch_assoc($result);: Mengambil data hasil query dalam bentuk array asosiatif.echo "<td>" . $row['judul'] . "</td>";: Menampilkan data judul, penulis, dan tanggal publikasi dari setiap artikel.mysqli_close($koneksi);: Menutup koneksi database setelah selesai digunakan.
Simpan file index.php di folder yang sama dengan file koneksi.php. Buka browser dan ketik localhost/index.php di address bar. Jika semua berjalan lancar, kamu akan melihat daftar artikel yang diambil dari database. Tentu saja, sekarang databasenya masih kosong. Kita akan isi di bagian berikutnya.
6. Input Data Artikel: Membuat Form HTML dan Script PHP untuk Menyimpan Data ke Database
Mari kita buat form HTML untuk memasukkan data artikel baru dan script PHP untuk menyimpan data tersebut ke database.
Buat file tambah_artikel.php:
<!DOCTYPE html>
<html>
<head>
<title>Tambah Artikel - Contoh Website Sederhana</title>
</head>
<body>
<h1>Tambah Artikel Baru</h1>
<form action="proses_tambah_artikel.php" method="post">
<label for="judul">Judul:</label><br>
<input type="text" id="judul" name="judul"><br><br>
<label for="isi">Isi Artikel:</label><br>
<textarea id="isi" name="isi" rows="4" cols="50"></textarea><br><br>
<label for="penulis">Penulis:</label><br>
<input type="text" id="penulis" name="penulis"><br><br>
<label for="tanggal_publikasi">Tanggal Publikasi:</label><br>
<input type="date" id="tanggal_publikasi" name="tanggal_publikasi"><br><br>
<input type="submit" value="Simpan">
</form>
</body>
</html>
Penjelasan Kode:
- Form HTML dengan input fields untuk judul, isi, penulis, dan tanggal publikasi.
action="proses_tambah_artikel.php": Mengarahkan form ke fileproses_tambah_artikel.phpuntuk memproses data yang diinputkan.method="post": Mengirimkan data form menggunakan metode POST.
Buat file proses_tambah_artikel.php:
<?php
include 'koneksi.php'; // Memasukkan file koneksi database
// Mengambil data dari form
$judul = $_POST['judul'];
$isi = $_POST['isi'];
$penulis = $_POST['penulis'];
$tanggal_publikasi = $_POST['tanggal_publikasi'];
// Query untuk memasukkan data artikel baru ke tabel artikel
$query = "INSERT INTO artikel (judul, isi, penulis, tanggal_publikasi) VALUES ('$judul', '$isi', '$penulis', '$tanggal_publikasi')";
// Menjalankan query
if (mysqli_query($koneksi, $query)) {
echo "Artikel berhasil ditambahkan. <a href='index.php'>Kembali ke Daftar Artikel</a>";
} else {
echo "Error: " . $query . "<br>" . mysqli_error($koneksi);
}
// Menutup koneksi database
mysqli_close($koneksi);
?>
Penjelasan Kode:
$_POST['judul']: Mengambil data judul dari form.$query = "INSERT INTO artikel ...";: Query SQL untuk memasukkan data ke tabelartikel.mysqli_query($koneksi, $query);: Menjalankan query untuk menyimpan data.- Jika data berhasil disimpan, akan ditampilkan pesan sukses dan link untuk kembali ke halaman daftar artikel.
Simpan kedua file ini di folder yang sama dengan file koneksi.php dan index.php. Buka browser dan ketik localhost/tambah_artikel.php. Isi form dan klik “Simpan”. Jika semua berjalan lancar, data artikel baru akan tersimpan di database dan kamu akan melihatnya di halaman index.php.
7. Edit Data Artikel: Membuat Form Edit dan Script PHP untuk Update Data
Selanjutnya, kita akan membuat fitur untuk mengedit data artikel yang sudah ada.
Pertama, kita perlu menambahkan link “Edit” di halaman index.php:
// ... (Kode sebelumnya di index.php) ...
echo "<table border='1'>";
echo "<tr><th>Judul</th><th>Penulis</th><th>Tanggal Publikasi</th><th>Aksi</th></tr>"; // Tambahkan kolom "Aksi"
while ($row = mysqli_fetch_assoc($result)) {
echo "<tr>";
echo "<td>" . $row['judul'] . "</td>";
echo "<td>" . $row['penulis'] . "</td>";
echo "<td>" . $row['tanggal_publikasi'] . "</td>";
echo "<td><a href='edit_artikel.php?id=" . $row['id'] . "'>Edit</a></td>"; // Tambahkan link "Edit"
echo "</tr>";
}
echo "</table>";
// ... (Kode selanjutnya di index.php) ...
Kemudian, buat file edit_artikel.php:
<!DOCTYPE html>
<html>
<head>
<title>Edit Artikel - Contoh Website Sederhana</title>
</head>
<body>
<h1>Edit Artikel</h1>
<?php
include 'koneksi.php';
// Mengambil ID artikel dari parameter URL
$id = $_GET['id'];
// Query untuk mengambil data artikel berdasarkan ID
$query = "SELECT * FROM artikel WHERE id = $id";
$result = mysqli_query($koneksi, $query);
// Memeriksa apakah artikel ditemukan
if (mysqli_num_rows($result) > 0) {
$row = mysqli_fetch_assoc($result);
?>
<form action="proses_edit_artikel.php" method="post">
<input type="hidden" name="id" value="<?php echo $row['id']; ?>"> <!-- Input hidden untuk menyimpan ID artikel -->
<label for="judul">Judul:</label><br>
<input type="text" id="judul" name="judul" value="<?php echo $row['judul']; ?>"><br><br>
<label for="isi">Isi Artikel:</label><br>
<textarea id="isi" name="isi" rows="4" cols="50"><?php echo $row['isi']; ?></textarea><br><br>
<label for="penulis">Penulis:</label><br>
<input type="text" id="penulis" name="penulis" value="<?php echo $row['penulis']; ?>"><br><br>
<label for="tanggal_publikasi">Tanggal Publikasi:</label><br>
<input type="date" id="tanggal_publikasi" name="tanggal_publikasi" value="<?php echo $row['tanggal_publikasi']; ?>"><br><br>
<input type="submit" value="Simpan Perubahan">
</form>
<?php
} else {
echo "Artikel tidak ditemukan.";
}
mysqli_close($koneksi);
?>
</body>
</html>
Penjelasan Kode:
edit_artikel.php?id=" . $row['id'] . ": Link “Edit” mengirimkan ID artikel sebagai parameter URL.$_GET['id']: Mengambil ID artikel dari parameter URL.$query = "SELECT * FROM artikel WHERE id = $id";: Query SQL untuk mengambil data artikel berdasarkan ID.<input type="hidden" name="id" value="<?php echo $row['id']; ?>">: Input hidden untuk menyimpan ID artikel yang akan diupdate. Ini penting!
Terakhir, buat file proses_edit_artikel.php:
<?php
include 'koneksi.php';
// Mengambil data dari form
$id = $_POST['id'];
$judul = $_POST['judul'];
$isi = $_POST['isi'];
$penulis = $_POST['penulis'];
$tanggal_publikasi = $_POST['tanggal_publikasi'];
// Query untuk mengupdate data artikel
$query = "UPDATE artikel SET judul = '$judul', isi = '$isi', penulis = '$penulis', tanggal_publikasi = '$tanggal_publikasi' WHERE id = $id";
// Menjalankan query
if (mysqli_query($koneksi, $query)) {
echo "Artikel berhasil diperbarui. <a href='index.php'>Kembali ke Daftar Artikel</a>";
} else {
echo "Error: " . $query . "<br>" . mysqli_error($koneksi);
}
// Menutup koneksi database
mysqli_close($koneksi);
?>
Penjelasan Kode:
$id = $_POST['id'];: Mengambil ID artikel dari input hidden.$query = "UPDATE artikel SET ... WHERE id = $id";: Query SQL untuk mengupdate data artikel berdasarkan ID.
Sekarang, kamu bisa mengedit data artikel melalui link “Edit” di halaman index.php.
8. Hapus Data Artikel: Script PHP untuk Menghapus Data dari Database
Fitur terakhir yang akan kita tambahkan adalah fitur untuk menghapus data artikel.
Tambahkan link “Hapus” di halaman index.php:
// ... (Kode sebelumnya di index.php) ...
echo "<table border='1'>";
echo "<tr><th>Judul</th><th>Penulis</th><th>Tanggal Publikasi</th><th>Aksi</th></tr>"; // Kolom "Aksi" sudah ada
while ($row = mysqli_fetch_assoc($result)) {
echo "<tr>";
echo "<td>" . $row['judul'] . "</td>";
echo "<td>" . $row['penulis'] . "</td>";
echo "<td>" . $row['tanggal_publikasi'] . "</td>";
echo "<td><a href='edit_artikel.php?id=" . $row['id'] . "'>Edit</a> | <a href='hapus_artikel.php?id=" . $row['id'] . "' onclick="return confirm('Apakah Anda yakin ingin menghapus artikel ini?')">Hapus</a></td>"; // Tambahkan link "Hapus"
echo "</tr>";
}
echo "</table>";
// ... (Kode selanjutnya di index.php) ...
Perhatikan: Kita menambahkan konfirmasi penghapusan menggunakan onclick="return confirm(...) untuk mencegah penghapusan artikel secara tidak sengaja.
Buat file hapus_artikel.php:
<?php
include 'koneksi.php';
// Mengambil ID artikel dari parameter URL
$id = $_GET['id'];
// Query untuk menghapus data artikel berdasarkan ID
$query = "DELETE FROM artikel WHERE id = $id";
// Menjalankan query
if (mysqli_query($koneksi, $query)) {
echo "Artikel berhasil dihapus. <a href='index.php'>Kembali ke Daftar Artikel</a>";
} else {
echo "Error: " . $query . "<br>" . mysqli_error($koneksi);
}
// Menutup koneksi database
mysqli_close($koneksi);
?>
Penjelasan Kode:
$query = "DELETE FROM artikel WHERE id = $id";: Query SQL untuk menghapus data artikel berdasarkan ID.
Sekarang, kamu bisa menghapus data artikel melalui link “Hapus” di halaman index.php.
9. Keamanan Website: Tips Aman Menggunakan PHP dan MySQL
Keamanan website adalah hal yang sangat penting. Berikut beberapa tips penting yang perlu kamu perhatikan:
- Sanitasi Input: Selalu sanitasi data yang diinputkan oleh user untuk mencegah SQL Injection. Gunakan fungsi
mysqli_real_escape_string()untuk membersihkan data sebelum dimasukkan ke dalam query SQL.
Contoh:$judul = mysqli_real_escape_string($koneksi, $_POST['judul']); - Gunakan Prepared Statements: Prepared statements adalah cara yang lebih aman untuk menjalankan query SQL karena memisahkan query dan data.
- Hindari Menampilkan Error Database ke Publik: Matikan atau sembunyikan error database di lingkungan produksi. Error database bisa memberikan informasi sensitif kepada attacker.
- Gunakan Password yang Kuat: Pastikan user menggunakan password yang kuat dan simpan password dalam bentuk hash (misalnya menggunakan fungsi
password_hash()di PHP). - Update Software: Selalu update PHP, MySQL, dan semua library yang kamu gunakan ke versi terbaru untuk mendapatkan patch keamanan terbaru.
10. Optimasi Website: Meningkatkan Performa Website PHP dan MySQL
Performa website juga penting untuk pengalaman pengguna yang baik. Berikut beberapa tips optimasi:
- Optimasi Query SQL: Pastikan query SQL yang kamu gunakan efisien. Gunakan
EXPLAINuntuk menganalisis query dan mencari bottleneck. - Gunakan Index: Tambahkan index pada kolom yang sering digunakan dalam query
WHEREuntuk mempercepat pencarian data. - Caching: Gunakan caching untuk menyimpan data yang sering diakses, sehingga tidak perlu diakses dari database setiap saat.
- Minify CSS dan JavaScript: Perkecil ukuran file CSS dan JavaScript untuk mempercepat loading halaman.
- Gunakan CDN (Content Delivery Network): CDN bisa mempercepat loading konten website dengan mendistribusikan konten ke server-server yang tersebar di seluruh dunia.
11. Tips Pengembangan Website Lanjutan: Belajar Framework PHP
Setelah menguasai dasar-dasar PHP dan MySQL, kamu bisa meningkatkan skill kamu dengan belajar framework PHP. Framework PHP menyediakan struktur dan komponen yang siap pakai untuk mempercepat proses pengembangan website. Beberapa framework PHP populer adalah:
- Laravel: Framework PHP yang sangat populer dengan sintaks yang elegan dan fitur yang lengkap.
- CodeIgniter: Framework PHP yang ringan dan mudah dipelajari, cocok untuk pemula.
- Symfony: Framework PHP yang fleksibel dan powerfull, sering digunakan untuk pengembangan aplikasi web yang kompleks.
12. Kesimpulan: Selamat, Kamu Sudah Membuat Website Sederhana!
Selamat! Kamu sudah berhasil membuat contoh source code website sederhana dengan PHP dan MySQL untuk pemula. Kamu sudah belajar cara membuat database, menghubungkan PHP ke database, menampilkan data, memasukkan data, mengedit data, dan menghapus data. Ini adalah fondasi yang kuat untuk mengembangkan website yang lebih kompleks di masa depan. Jangan berhenti belajar dan terus eksplorasi fitur-fitur PHP dan MySQL lainnya. Ingatlah untuk selalu memperhatikan keamanan dan optimasi website. Selamat berkarya!


