Hai Sipinter! kali ini mimin bakal lanjutin lagi pembahasan postingan sebelumnya mengenai cara membuat database untuk web CMS (Content Management System).
ini merupakan bagian dari topik cara membuat web cms sendiri dengan PHP dan MySQL. Setelah belajar cara membuat rancangan database menggunakan ERD.
Sekarang kita akan belajar cara mengimplementasikan desain tersebut menjadi database MySQL atau MariaDB. Dimana keduanya sangat mirip dan sama-sama bisa dikelola dengan menggunakan PHPMyAdmin.
Jika kalian menggunakan XAMPP versi terbaru maka kalian akan menggunakan database MariaDB dan postingan ini juga diimplementasikannya di MariaDB.
Intinya saya ingin menyampaikan informasi postingan ini bisa diterapkan pada Database MySQL dan MariaDB OKE.
Desain Database Untuk Web CMS
Jika kalian tertarik cara membuat desain database ini kalian bisa kunjungi postingan mimim yang part 1 yaitu:
Membuat Database Untuk Web CMS dengan MySQL #1
Berikut merupakan rancangan database yang akan kita gunakan dalam pengembangan proyek membuat CMS dengan PHP:
Dari desain diatas untuk kalian programmer atau system analist pasti sudah tau bagaimana bentuk web ini jika jadi.
Namun untuk kalian yang masih pemula pasti agak pusing dan merasa mual sedikit wkwkwk. Tenang artikel ini saya buat untuk pemula, jadi kalau kalian mengikuti dari awal, pasti kalian akan mengerti.
Jika tidak mengerti tinggal tinggalkan pertanyaan di kolom komentar!
Tipe Data Untuk Tiap Atribut dalam Database Web CMS
Disini mimin bakal jelasin tipe data tiap field atau atribut setiap entitas dalam database agar kalian lebih mudah saat membuatnya.
Kali ini kita akan bahas pertabel dan ada 13 tabel oke semangat-semangat:
Tabel web
Kolom | Tipe | Panjang | Deskripsi |
id | int | 10 | PK |
nama | varchar | 50 | – |
url | varchar | 200 | – |
varchar | 100 | null | |
password | varchar | 200 | null |
logo_media_id | int | 10 | FK |
meta_id | int | 10 | FK |
created_at | timestamp | – | null |
updated_at | timestamp | – | null |
Penjelasan :
- FK = Primary Key;
- FK = Foreign Key;
- unigue= nilai tidak boleh sama;
- null = Boleh kosong.
Tabel post
Kolom | Tipe | Panjang | Deskripsi |
id | int | 10 | PK |
judul | varchar | 200 | unique |
url | varchar | 200 | unique |
isi | text | – | null |
status | enum(‘draf’,’publish’,’evaluasi’) | – | – |
waktu_update | timestamp | – | null |
waktu_publish | timestamp | – | null |
user_id | int | 10 | FK |
meta_id | int | 10 | FK |
media_id | int | 10 | FK |
komentar_setting | enum(aktif,nonaktif) | – | – |
created_at | timestamp | – | null |
Tabel page
Kolom | Tipe | Panjang | Deskripsi |
id | int | 10 | PK |
judul | varchar | 200 | unique |
url | varchar | 200 | unique |
isi | text | – | null |
status | enum(‘draf’,’publish’,’evaluasi’) | – | – |
meta_id | int | 10 | FK |
media_id | int | 10 | FK |
created_at | timestamp | – | null |
updated_at | timestamp | – | null |
Tabel media
Kolom | Tipe | Panjang | Deskripsi |
id | int | 10 | PK |
nama | varchar | 200 | unique |
alt_file | varchar | 200 | null |
Jenis_file | enum(doc,image,video) | – | null |
created_at | timestamp | – | null |
updated_at | timestamp | – | null |
Tabel meta
Kolom | Tipe | Panjang | Deskripsi |
id | int | 10 | PK |
kata_kunci | varchar | 250 | null |
deskripsi | varchar | 250 | null |
tambahan | text | – | null |
created_at | timestamp | – | null |
updated_at | timestamp | – | null |
Tabel tag
Kolom | Tipe | Panjang | Deskripsi |
id | int | 10 | PK |
nama | varchar | 100 | unique |
created_at | timestamp | – | null |
updated_at | timestamp | – | null |
Tabel daftar_tag
Kolom | Tipe | Panjang | Deskripsi |
id | int | 10 | PK |
post_id | int | 10 | FK |
tag_id | int | 10 | FK |
created_at | timestamp | – | null |
updated_at | timestamp | – | null |
Tabel kategori
Kolom | Tipe | Panjang | Deskripsi |
id | int | 10 | PK |
nama | varchar | 50 | unique |
deskripsi | varchar | 250 | null |
created_at | timestamp | – | null |
updated_at | timestamp | – | null |
Tabel daftar_kategori
Kolom | Tipe | Panjang | Deskripsi |
id | int | 10 | PK |
post_id | int | 10 | FK |
kategori_id | int | 10 | FK |
created_at | timestamp | – | null |
updated_at | timestamp | – | null |
Tabel komentar
Kolom | Tipe | Panjang | Deskripsi |
id | int | 10 | PK |
nama | varchar | 200 | – |
varchar | 200 | – | |
website | text | – | null |
isi | text | – | – |
balas | int | 10 | null |
status | enum(publis,wait,spam) | – | – |
post_id | int | 10 | FK |
created_at | timestamp | – | null |
updated_at | timestamp | – | null |
Tabel user
Kolom | Tipe | Panjang | Deskripsi |
id | int | 10 | PK |
username | varchar | 30 | unique |
nama_lengkap | varchar | 50 | – |
varchar | 200 | – | |
password | varchar | 200 | – |
hak_akses | enum(penulis,editor,admin,nonaktif) | – | – |
token | varchar | 200 | – |
deskripsi | varchar | 250 | null |
created_at | timestamp | – | null |
updated_at | timestamp | – | null |
Tabel menu
Kolom | Tipe | Panjang | Deskripsi |
id | int | 10 | PK |
nama | varchar | 200 | – |
link | varchar | 200 | – |
menu_induk | int | 10 | null |
kelompok_menu_id | int | 5 | FK |
created_at | timestamp | – | null |
updated_at | timestamp | – | null |
Tabel kelompok_menu
Kolom | Tipe | Panjang | Deskripsi |
id | int | 5 | PK |
nama | varchar | 200 | – |
deskripsi | varchar | 200 | null |
created_at | timestamp | – | null |
updated_at | timestamp | – | null |
Langkah-Langkah Membuat Database MySQL di PhpMyAdmin
Setelah kita membuat rancangan databasenya maka sekarang kita perlu menerapkannya ke database server kita. Kalian bisa menggunakan MySQL atau MariaDB karena kedua database itu mendukung PHPMyAdmin.
PHPMyAdmin adalah sebuah web aplikasi yang digunakan untuk mengelola database MySQL. Dengan PHPMyAdmin kita dapat mengelola apa saja dalam sebuah database tanpa menggunakan script melalui web.
Jadi menggunakan phpMyAdmin adalah pilihan yang sangat tepat untuk pemula. Namun untuk kebutuhan profesional juga bisa, karena disediakan halaman untuk menjalankan queri SQL(Structured Query Language).
Berikut merupakan langkah-langkah membuat databse melalui phpMyAdmin:
1. Membuat database MySQL dengan phpMyAdmin
Walaupun tahap ini sangat sederhana namun ini sangat penting. jadi cara membuat database adalah :
- Buka XAMPP lalu aktifkan MySQL dan Apache.
- Buka browser kalian apapun itu lalu buka localhost/phpmyadmin/ atau 127.0.0.1/phpmyadmin/, lalu login ke akun admin kalian. kalau settingan xampp masih default maka kalian akan langsung login.
- Klik menu new >> database lalu isi nama database mu disini “smart_cms” dan klik create.
Seperti gambar di bawah:
2. Membuat tabel di database MySQL dengan phpMyAdmin
Kita tidak boleh membuat tabel secara sembarangan karena setiap tabel akan memiliki relasi. Ini lah yang membuat mimin mengajarkan kalian membuat desain database sebelumnya.
Sehingga kalian tidak bingun lagi bagaimana membuat tabel dalam database dan hasilnya akan lebih maksimal.
Berikut merupakan tahapan membuat tabel yang harus kalian lakukan agar tidak terjadi error:
a. Membuat tabel Induk (Tabel yang tidak memiliki foreign key)
Tabel induk yang mimin maksud adalah tabel yang tidak memiliki atribut foreign key didalamnya. Tabel seperti ini lah yang bisa kita buat di awal.
Daftar tabel induk yang harus kita buat adalah kelompok_menu, user, kategori, tag, media dan meta.
berikut merupakan contoh cara membuat tabel user:
1) Untuk membuat tabel baru kita perlu klik database yang akan ditambah tabel, lalu masuk ke tab menu structure. Buat nama tabel baru disini “user “dan jumlah colomnya pilih go.
2) Lalu kalian akan dialihkan ke halaman pengaturan kolom atau atribut. Lalu isi nama kolom sesuai atribut yang sudah kita rancang dan usahakan nama kolom tidak menggunakan simbol dan space cukup gunakan underscore.
3) Setting Type dengan mengisi tipe data tiap kolom sesuai rancangan yang sudah kita buat pastinya. Yang akan sedikit berbeda adalah pada type data enum length nya kalian isi dengan ‘penulis’,’editor’,’admin’,’nonaktif’ atau kalian bisa klik menu Edit ENUM/SET Values.
4) kita harus setting kolom primary keynya dengan setting index nya menjadi PRIMARY. Lalu klik saja go jika keluar kotak dialog.
5) Yang terpenting karena kita menggunakan bilangan integer sebagai ID nya maka kita aktifkan AI (Auto incrementnya) dengan menceklisnya. Ini akan membuat kolom id otomatis terisi, dengan angka yang berurutan ketika kita inout user baru.
6) Setting kolom yang nilainya bisa null dengan menceklis bagian null.
7)lalu setting kolom yang nilainya tidak boleh sama seperti username dengan setting index menjadi unique.
8) Lalu kalian tinggal scrool ke bawah dan cari tombol save dan jika berhasil kalian akan melihat structure tabel yang sudah dibuat.
Buatlah tabel induk lainnya yang tidak memiliki foreign key. yaitu kelompok_menu, kategori, tag, media, meta dengan cara yang sama.
b. Membuat tabel yang hanya berelasi dengan tabel induk
- pertama perlu kita catat dalam kasus membuat cms sendiri ini ada beberapa tabel yang hanya berelasi dengan tabel induk yaitu: menu, page , post dan web.
- Langkah-langkah membuat tabel nya sama saja dengan langkah sebelumnya. bedanya setelah tabel dibuat kita harus menghubungkan kolom foreign ke ke kolom primary key tabel induk.
- Cara membuat kolom FK yang dapat menghubungkan sebuah tabel ke tabel induk pertama pastikan tipe data dan value kedua kolom tersebut sudah sama.
- Klik tabel yang memiliki foreign key contoh tabel post, lalu masuk ke tab menu structure. Lalu pilih tombol relation view.
- Lalu klik link tulisan internal relationship, artinya FK berhubungan dengan tabel yang ada dalam satu database.
- Lalu pilih kolom FK yang akan dihubungkan misal “user_id”, lalu pilih tabel induk dan kolom primary keynya.
- Jika sudah lalu pilih save.
- Hubungkan tiap foreign key satu persatu ke tabel induknya.
- Lalu gunakan cara yang sama untuk membuat tabel tabel lainnya yang hanya berhubungan hanya dengan tabel induk.
c. Membuat tabel lainnya
Terakhir kalian sudah bisa membuat tabel lainnya yang hubungannya antara tabel induk dan tabel yang berhubungan dengan tabel induk lainnya.
Intinya jika kalian membuat tabel maka tabel yang berubungan dengan FK, harus jadi terlebih dahulu agar dapat langsung dihubungkan (direlasikan).
Tabel yang harus dibuat selanjutnya adalah tabel daftar_tag dan tabel daftar_kategori dan tabel komentar.
Caranya sama saja kok seperti sebelumnya, jika ada langkah-langkah yang membuat kalian bingung tanyakan saja di kolom komentar yak.
Sekian postingan kali ini jika ada kesalahan mimin mohon maaf. Nantikan postingan mimin selanjutnya untuk
Bagi kamu yang lagi berjuang belajar pemrograman tetap semangat dan “Nikmatilah sebuah proses mulai dari belajar, mengembangkan dan sampai kita bisa berbagi untuk orang lain”.
Bantu mimin dengan share postingan ini ke teman-teman mu! Terima Kasih 😀