Panduan lengkap instalasi dan konfigurasi MySQL database untuk praktik CRUD
XAMPP adalah paket software gratis yang berisi:
Windows
Ukuran: ~150MBmacOS
Ukuran: ~170MBLinux
Ukuran: ~155MBC:\xampp)sudo /opt/lampp/manager-linux.run| Module | Status | Action |
|---|---|---|
| Apache | Stopped | |
| MySQL | Stopped |
Jika Apache gagal start dengan error "Port 80 is busy":
Listen 80, ubah menjadi Listen 8080phpMyAdmin adalah tool berbasis web untuk mengelola database MySQL dengan mudah (tanpa perlu ketik SQL manual).
http://localhost/phpmyadmin
http://localhost:8080/phpmyadmin
root(kosongkan)db_mahasiswa
utf8mb4_unicode_ci
utf8mb4 mendukung semua karakter termasuk emoji
-- Membuat database baru
CREATE DATABASE db_mahasiswa
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
-- Gunakan database yang baru dibuat
USE db_mahasiswa;
Sekarang kita akan membuat table untuk menyimpan data mahasiswa.
| Nama Column | Tipe Data | Keterangan |
|---|---|---|
| id | INT (11) | Primary Key, Auto Increment |
| nama | VARCHAR (100) | Nama mahasiswa (wajib diisi) |
| nim | VARCHAR (20) | Nomor Induk Mahasiswa (unik) |
| jurusan | VARCHAR (50) | Nama jurusan |
| VARCHAR (100) | Email mahasiswa (opsional) | |
| alamat | TEXT | Alamat lengkap (opsional) |
| created_at | TIMESTAMP | Waktu data dibuat (otomatis) |
| updated_at | TIMESTAMP | Waktu data diupdate (otomatis) |
-- Membuat table mahasiswa
CREATE TABLE mahasiswa (
id INT(11) AUTO_INCREMENT PRIMARY KEY,
nama VARCHAR(100) NOT NULL,
nim VARCHAR(20) NOT NULL UNIQUE,
jurusan VARCHAR(50) NOT NULL,
email VARCHAR(100) NULL,
alamat TEXT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NULL ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
Mari kita masukkan beberapa data contoh untuk testing.
-- Menambahkan 5 data mahasiswa
INSERT INTO mahasiswa (nama, nim, jurusan, email, alamat) VALUES
('Ahmad Pratama', '2021001', 'Teknik Informatika', 'ahmad@email.com', 'Jl. Merdeka No. 10, Jakarta'),
('Siti Nurhaliza', '2021002', 'Sistem Informasi', 'siti@email.com', 'Jl. Sudirman No. 25, Bandung'),
('Budi Santoso', '2021003', 'Teknik Komputer', 'budi@email.com', 'Jl. Gatot Subroto No. 15, Surabaya'),
('Dewi Kartika', '2021004', 'Manajemen Informatika', 'dewi@email.com', 'Jl. Diponegoro No. 8, Yogyakarta'),
('Rizki Maulana', '2021005', 'Teknik Informatika', 'rizki@email.com', 'Jl. Ahmad Yani No. 20, Medan');
Untuk melihat data yang baru dimasukkan:
SELECT * FROM mahasiswa;
Sekarang kita test apakah PHP bisa connect ke MySQL.
C:\xampp\htdocs\/Applications/XAMPP/htdocs//opt/lampp/htdocs/test-dbtest-connection.php
<?php
// Test koneksi database
$host = 'localhost';
$dbname = 'db_mahasiswa';
$username = 'root';
$password = '';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "<h2 style='color: green;'>✅ Koneksi Berhasil!</h2>";
echo "<p>Database: <strong>$dbname</strong></p>";
// Hitung jumlah data
$stmt = $pdo->query("SELECT COUNT(*) as total FROM mahasiswa");
$result = $stmt->fetch();
echo "<p>Total Mahasiswa: <strong>" . $result['total'] . "</strong></p>";
} catch(PDOException $e) {
echo "<h2 style='color: red;'>❌ Koneksi Gagal!</h2>";
echo "<p>Error: " . $e->getMessage() . "</p>";
}
?>
http://localhost/test-db/test-connection.php
Anda akan melihat pesan:
Database: db_mahasiswa
Total Mahasiswa: 5
Periksa:
db_mahasiswaroot, Password: (kosong)htdocs/test-db/db_mahasiswa sudah dibuatmahasiswa sudah dibuatEnvironment database Anda sudah siap untuk praktik CRUD. Lanjut ke materi berikutnya untuk belajar operasi CRUD dengan PHP!