Persiapan Lingkungan Server, Ekstraksi Direktori htdocs & Pembuatan Database Manual
Tahapan teknis awal menyiapkan web server lokal, mengekstrak master CodeIgniter 3 ke htdocs, membuka workspace di Sublime Text 3, serta membuat skema database secara manual di phpMyAdmin.
Mengaktifkan Layanan XAMPP Control Panel
Menjalankan layanan Apache HTTP Server dan basis data MySQL Server.
- Buka aplikasi XAMPP Control Panel di laptop/PC Anda.
- Pada baris modul Apache, klik tombol Start hingga status berwarna hijau.
- Pada baris modul MySQL, klik tombol Start hingga port 3306 aktif.
Mengekstrak Berkas Master CodeIgniter 3 ke Folder htdocs
Menempatkan berkas proyek pada web root dan memberi nama folder kerja yang tepat.
- Cari berkas master CodeIgniter 3 (format
.zip) yang diberikan guru. - Ekstrak arsip ZIP tersebut ke direktori web root XAMPP: C:\xampp\htdocs\
- Ganti nama folder hasil ekstraksi menjadi: perpustakaan (huruf kecil semua tanpa spasi).
- Buka folder C:\xampp\htdocs\perpustakaan\ dan pastikan langsung terlihat folder
application,system, dan berkasindex.php.
Membuka Direktori Project pada Sublime Text 3
Membuka workspace agar seluruh file proyek tampil di panel navigasi sidebar.
- Buka aplikasi Sublime Text 3.
- Pilih menu File → Open Folder... pada bilah menu atas.
- Pilih folder: C:\xampp\htdocs\perpustakaan, kemudian klik tombol Select Folder.
Pembuatan Database & Tabel Manual di phpMyAdmin
Membuat basis data db_perpustakaan dan mendefinisikan skema 3 tabel utama.
Karena penilaian UKK bersifat perorangan (mandiri), nama database dapat Anda sesuaikan dengan menambahkan nama/inisial Anda sendiri agar terisolasi dan tidak tertukar saat pengujian:
- Buka browser, akses: http://localhost/phpmyadmin/
- Klik menu New (Baru) di bilah navigasi sebelah kiri atau tab Databases.
-
Ketikkan nama database:
Standar modul: db_perpustakaan
Atau variasi mandiri: db_perpustakaan_andi / db_perpustakaan_budi. - Pilih Collation:
utf8mb4_general_ciatauutf8mb4_unicode_ci(atau default), lalu klik tombol Create.
💡 Catatan Sinkronisasi: Jika Anda menamai database db_perpustakaan_andi, ingatlah bahwa nanti pada Modul 02 (application/config/database.php) baris 'database' => '...' harus diisi dengan nama yang sama persis!
| Nama Kolom | Tipe Data | Panjang | Keterangan |
|---|---|---|---|
id | INT | 11 | PRIMARY KEY, Auto Increment (A_I) |
username | VARCHAR | 50 | UNIQUE |
password | VARCHAR | 255 | Hash Bcrypt |
nama | VARCHAR | 100 | Nama Lengkap Siswa / Admin |
nis | VARCHAR | 20 | Null: Yes |
kelas | VARCHAR | 20 | Null: Yes |
role | ENUM | 'admin','user' | Default: 'user' |
status | ENUM | 'aktif','nonaktif' | Default: 'aktif' |
created_at | DATETIME | - | Default: CURRENT_TIMESTAMP |
updated_at | DATETIME | - | Null: Yes |
Klik tombol Save di pojok kanan bawah.
| Nama Kolom | Tipe Data | Panjang | Keterangan |
|---|---|---|---|
id | INT | 11 | PRIMARY KEY, Auto Increment (A_I) |
kode_buku | VARCHAR | 20 | UNIQUE (Contoh: BK001) |
judul | VARCHAR | 200 | Judul Buku |
penulis | VARCHAR | 100 | Nama Penulis |
penerbit | VARCHAR | 100 | Nama Penerbit |
tahun_terbit | YEAR | 4 | Tahun Terbit |
kategori | VARCHAR | 50 | Kategori Buku |
stok | INT | 11 | Default: 0 |
rak | VARCHAR | 20 | Lokasi Rak (Contoh: Rak A1) |
deskripsi | TEXT | - | Null: Yes |
created_at | DATETIME | - | Default: CURRENT_TIMESTAMP |
Klik tombol Save.
| Nama Kolom | Tipe Data | Panjang | Keterangan |
|---|---|---|---|
id | INT | 11 | PRIMARY KEY, Auto Increment (A_I) |
kode_transaksi | VARCHAR | 30 | UNIQUE |
user_id | INT | 11 | INDEX (FK ke users.id) |
buku_id | INT | 11 | INDEX (FK ke buku.id) |
tanggal_pinjam | DATE | - | Tanggal Peminjaman |
batas_kembali | DATE | - | Tenggat Waktu (+7 hari) |
tanggal_kembali | DATE | - | Null: Yes |
status | ENUM | 'dipinjam','dikembalikan' | Default: 'dipinjam' |
Klik tombol Save.
Klik tab SQL di phpMyAdmin saat memilih database db_perpustakaan, salin dan jalankan kueri berikut:
-- Password di bawah adalah hash Bcrypt valid dari 'admin123'
INSERT INTO `users` (`username`, `password`, `nama`, `role`, `status`)
VALUES ('admin', '$2y$10$4in5gapcqD7Z/qQ/D3q4.u6eH0b8P/u6kG3.6G8j2W1gB.l1C1tGy', 'Administrator Sekolah', 'admin', 'aktif');