- Part 1: Setup & Menampilkan Data (sedang dibaca)
- Part 2: CRUD (Tambah, Edit, Hapus)
- Part 3: Pencarian & Pagination
- Part 4: Login & Session
Meski framework seperti Laravel dan CodeIgniter sangat populer, memahami PHP native (tanpa framework) tetap penting — ia mengajarkan Anda cara kerja dasar sebuah aplikasi web. Pada seri ini kita akan membangun aplikasi data alumni dari nol dengan PHP murni, lengkap dengan CRUD, pencarian, pagination, hingga login.
Di Part 1 ini kita menyiapkan struktur proyek, membuat koneksi database yang aman dengan PDO, membuat tabel alumni, lalu menampilkan datanya.

Struktur dan Alur Aplikasi
Berbeda dengan framework yang punya pola MVC ketat, aplikasi PHP native lebih sederhana: setiap file .php adalah sebuah halaman yang bisa diakses langsung. Meski begitu, kita tetap akan menata kode secara rapi — memisahkan koneksi, template, dan logika — agar mudah dirawat.
Menyiapkan Kebutuhan
- XAMPP (Apache + PHP + MySQL).
- Editor kode seperti VS Code.
Membuat Struktur Folder
Buat folder alumni di dalam htdocs, dengan susunan berikut:
alumni/ ├── config/ │ └── koneksi.php ├── templates/ │ ├── header.php │ └── footer.php ├── assets/ │ └── gaya.css └── index.php
Struktur ini memisahkan konfigurasi, potongan tampilan, dan aset — kebiasaan baik yang membuat proyek tetap teratur meski bertambah besar.
Membuat Database dan Tabel Alumni
Buka phpMyAdmin, buat database db_alumni, lalu jalankan SQL berikut:
CREATE TABLE alumni (
id INT PRIMARY KEY AUTO_INCREMENT,
nim VARCHAR(20),
nama VARCHAR(100),
jurusan VARCHAR(60),
angkatan YEAR,
pekerjaan VARCHAR(100)
);
INSERT INTO alumni (nim, nama, jurusan, angkatan, pekerjaan) VALUES
('2018001', 'Rani Kusuma', 'Informatika', 2018, 'Software Engineer'),
('2018002', 'Dimas Prayoga', 'Sistem Informasi', 2018, 'Data Analyst'),
('2019010', 'Sari Melati', 'Informatika', 2019, 'UI/UX Designer'),
('2019011', 'Bagas Saputra', 'Manajemen', 2019, 'Digital Marketer');
Membuat Koneksi Database dengan PDO
Kita pakai PDO karena lebih aman dan modern dibanding cara lama. Buat file config/koneksi.php:
<?php
$host = 'localhost';
$db = 'db_alumni';
$user = 'root';
$pass = '';
try {
$pdo = new PDO("mysql:host=$host;dbname=$db;charset=utf8mb4", $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch (PDOException $e) {
die('Koneksi gagal: ' . $e->getMessage());
}
Pengaturan ERRMODE_EXCEPTION membuat PDO melempar exception saat ada error — memudahkan debugging. FETCH_ASSOC membuat hasil query berupa array asosiatif.
Membuat Template Header dan Footer
Agar tampilan konsisten di semua halaman, buat potongan header dan footer yang bisa di-include. File templates/header.php:
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<title>Data Alumni</title>
<link rel="stylesheet" href="/alumni/assets/gaya.css">
</head>
<body>
<header>
<div class="logo">Data Alumni</div>
<nav>
<a href="/alumni/index.php">Daftar Alumni</a>
</nav>
</header>
<main>
Dan templates/footer.php:
</main> <footer>© 2026 Aplikasi Data Alumni</footer> </body> </html>
Menampilkan Data Alumni
Sekarang buat index.php yang mengambil dan menampilkan data:
<?php
require 'config/koneksi.php';
$alumni = $pdo->query("SELECT * FROM alumni ORDER BY id DESC")->fetchAll();
require 'templates/header.php';
?>
<h2>Daftar Alumni</h2>
<table border="1" cellpadding="8" cellspacing="0">
<thead>
<tr><th>NIM</th><th>Nama</th><th>Jurusan</th><th>Angkatan</th><th>Pekerjaan</th></tr>
</thead>
<tbody>
<?php foreach ($alumni as $a): ?>
<tr>
<td><?= htmlspecialchars($a['nim']) ?></td>
<td><?= htmlspecialchars($a['nama']) ?></td>
<td><?= htmlspecialchars($a['jurusan']) ?></td>
<td><?= htmlspecialchars($a['angkatan']) ?></td>
<td><?= htmlspecialchars($a['pekerjaan']) ?></td>
</tr>
<?php endforeach ?>
</tbody>
</table>
<?php require 'templates/footer.php'; ?>
Fungsi htmlspecialchars() wajib dipakai saat menampilkan data ke HTML — ia mencegah serangan XSS dengan meng-escape karakter berbahaya. Buka http://localhost/alumni/ dan data alumni akan tampil rapi.

Penutup
Fondasi aplikasi data alumni Anda sudah berdiri — struktur folder yang rapi, koneksi PDO yang aman, database, dan menampilkan data. Anda kini paham cara kerja dasar aplikasi PHP tanpa bergantung pada framework.
Di Part 2, kita akan menambahkan operasi CRUD: form tambah alumni, edit, dan hapus, dengan prepared statement yang aman. Sampai jumpa!
Referensi: untuk pendalaman lebih lanjut, kunjungi manual resmi PHP.

