• Home
  • Berita
  • Cara Membuat Website dengan PHP (Native) untuk Pemula + Template & Menu

Cara Membuat Website dengan PHP (Native) untuk Pemula + Template & Menu

Oleh Mila Rosyida
Cara Membuat Website dengan PHP

Laravel bagus. Tapi kalau fondasi PHP nativenya belum ada, waktu error kamu cuma bisa bengong.

Di sini kamu akan belajar cara membuat website dengan PHP native dari nol. Struktur foldernya rapi, header-footer nya bisa dipakai ulang, menu navigasinya tahu halaman mana yang aktif. Semuanya jalan di localhost pakai XAMPP.

Kalau mau lihat gambaran besarnya dulu sebelum mulai coding, bisa baca di sini

PHP Native vs Framework (Laravel/CodeIgniter): Pilih yang Mana?

Kenapa tidak langsung pakai Laravel aja?

Laravel dan CodeIgniter memang menyediakan banyak hal siap pakai, routing, struktur MVC, koneksi database, fitur keamanan dasar. Untuk tim atau aplikasi besar, masuk akal.

Tapi framework menyembunyikan cara kerja sebenarnya. Routing error? Tidak tahu harus cek dari mana. Include file gagal? Bingung kenapa. Belajar framework tanpa fondasi PHP native itu seperti nyetir mobil matik tanpa tahu cara kerja kopling, jalan sih, tapi pas mogok, angkat tangan.

PHP native pas untuk pemula yang ingin tahu cara kerja website PHP dari dalam, atau untuk latihan dan mini project. Setelah ini solid, naik ke framework akan jauh lebih masuk akal, karena kamu tahu apa yang sebetulnya dikerjakan framework di balik layar.

Selain lewat coding PHP, kamu juga bisa cek panduan cara buat website versi umum sebagai perbandingan.

Yang Perlu Dipahami Sebelum Coding (Fondasi Web)

Dua hal yang perlu kamu pegang sebelum mulai menulis kode.

Struktur Halaman Web

Header di atas, menu navigasi, area konten, footer di bawah. Sesederhana itu. Yang akan kamu lakukan nanti adalah memisahkan tiap bagian ke file PHP sendiri-sendiri, jadi kalau mau ganti header, cukup edit satu file, bukan tiap halaman satu-satu.

Belum terlalu pede dengan HTML dan CSSnya? Pelajari dulu cara membuat website dengan HTML dan CSS di sini.

Sintaks PHP

File PHP ditulis di antara <?php dan ?>. Kodenya dieksekusi di server, bukan di browser, makanya tidak bisa dibuka dengan double click. Harus lewat XAMPP.

Contohnya:

Simpan dengan ekstensi .php. Bukan .html, bukan .txt.

Persiapan Membuat Website dengan PHP di Localhost (XAMPP)

Tiga tools yang kamu butuhkan sebelum mulai.

PHP Editor

Cara Membuat Website PHP

Pakai Visual Studio Code. Gratis, ringan, dan syntax highlightingnya langsung warna-warni sesuai fungsi PHP yang kamu tulis, jauh lebih mudah dibaca dibanding Notepad biasa. Download di code.visualstudio.com.

Web Browser

Pakai browser apapun yang sudah ada di komputermu. Chrome, Edge, Firefox, semuanya bisa. Yang penting kamu nyaman, karena browser ini yang akan kamu pakai terus buat ngecek tampilan website setiap kali ada perubahan kode. Satu tips kecil: buka Developer Tools (F12) dari awal, tab Consolenya berguna banget waktu ada error yang tidak muncul di halaman.

Web Server (XAMPP)

XAMPP menyediakan Apache dan PHP sekaligus dalam satu instalasi. Setelah install, buka XAMPP Control Panel dan klik Start pada Apache.

Buat folder project di:

C:\xampp\htdocs\myphpwebsite

Folder ini yang nanti kamu buka lewat browser dengan alamat http://localhost/myphpwebsite/. Nama foldernya harus sama persis dengan yang ada di htdocs.

Kalau nanti website PHPmu sudah siap dipublish online, kamu butuh hosting yang support PHP dan bisa menjalankan file .php dengan stabil.

Cek Paket Hosting yang Support PHP

Struktur Folder Project

Versi paling sederhana dari cara membuat website dengan PHP cuma butuh satu folder dan beberapa file .php di dalamnya. Tapi kalau filenya mulai banyak, semua ditaruh di satu tempat jadi berantakan cepat.

Struktur di bawah ini yang akan dipakai, semua file punya tempat yang jelas dari awal.

pages/ untuk isi konten tiap halaman. includes/ untuk header dan footer yang dipakai ulang. assets/css/ untuk styling. index.php tetap di root, dia yang mengatur semua routing.

Mini Project: Website Multi-Page dengan PHP Native

Lima file yang akan kamu buat: index.php sebagai router, tiga halaman konten di folder pages/, dan header-footer di includes/, yang terakhir dibahas di section berikutnya.

Baca Juga:  15 Contoh Landing Page Keren Bikin Website Lebih Menarik

Buat index.php (Routing Sederhana)

Semua request masuk lewat index.php. Parameter page di URL yang menentukan halaman mana yang ditampilkan.

Perhatikan dua hal di kode ini. meta name="description" content="...",  bukan contents. Typo satu huruf itu bikin meta descriptionnya tidak terbaca search engine sama sekali. Dan routingnya pakai whitelist $allowed_pages, kalau parameter page diisi nilai yang tidak ada di daftar, sistem fallback ke home. Tanpa whitelist, pola include $_GET['page'] bisa jadi celah file inclusion.

Buat pages/home.php

Buat pages/about.php

Untuk contact.php, strukturnya sama, tinggal ganti heading dan isi kontaknya.

Kalau kamu ingin contoh ide pengembangan website sederhana selain Home/About/Contact, bisa lanjut baca di sini.

Cara Membuat Template Website dengan PHP (Header–Footer)

Tanpa template, setiap halaman baru berarti menulis ulang header dan footer dari awal. Kalau nanti mau ganti warna navbar, kamu harus buka dan edit tiap file satu-satu. Tidak efisien.

Solusinya sederhana: pisahkan header dan footer ke file sendiri di folder includes/, lalu panggil dengan include dari mana saja.

Buat includes/header.php

Buat includes/footer.php

Satu detail kecil: <?php echo date('Y'); ?> otomatis menampilkan tahun sekarang. Tidak perlu ganti manual tiap ganti tahun.

Panggil dari index.php

Keduanya sudah dipanggil di index.php yang tadi kamu buat.

Mau tambah item menu? Edit header.php sekali, semua halaman ikut.

Membuat Menu Navigasi + Halaman Aktif

Menu yang cuma jalan belum cukup. Pengunjung perlu tahu sedang ada di halaman mana dan kamu perlu pastikan routingnya tidak bisa dieksploitasi. Tiga hal di bawah ini yang menyelesaikan keduanya.

Menu Dasar

Menu sudah ada di includes/header.php yang tadi dibuat, tiga link ke Home, About, dan Contact. Coba buka halaman About, lalu perhatikan menunya. Semua item tampilannya identik. Tidak ada penanda visual halaman mana yang sedang aktif.

Active State Berdasarkan Page

Tambahkan logika di header.php untuk membandingkan nilai $current dengan nama tiap menu. Kalau cocok, class active ditempel ke elemen <a> nya.

Baca Juga:  Apa Itu Lorem Ipsum? Fungsi, Cara Pakai, dan Alternatifnya

Tambahkan rule ini di style.css supaya menu aktif kelihatan berbeda secara visual:

Routing Aman (Whitelist)

Banyak tutorial mengajarkan pola ini:

Satu baris, ringkas. Masalahnya, parameter page bisa diisi nilai apa saja dari URL, termasuk path ke file konfigurasi atau file lain yang tidak seharusnya dibuka. PHP akan coba include file itu juga.

Whitelist menutup celah itu sepenuhnya:

Hanya nilai yang ada di $allowed_pages yang diproses. Input lain fallback ke home. Tambah halaman baru? Cukup tambahkan namanya ke array.

Styling dengan CSS (style.css)

Websitenya sudah jalan, tapi tampilannya masih polos. CSS yang rapi bukan cuma soal estetika, struktur visual yang jelas membantu pengunjung navigasi lebih cepat. Ini file style.css yang dipakai di project ini.

Hubungkan CSS dari Template

Tag <link> di index.php sudah mengarah ke assets/css/style.css:

Kalau tampilannya masih polos setelah CSS ditulis, buka Developer Tools (F12) tab Network, cari file style.css, dan lihat statusnya. 404 berarti pathnya keliru.

CSS untuk Layout

Beberapa hal yang perlu dipahami sebelum lihat kodenya.

body diset width: 70% dan margin: 0 auto supaya konten tidak mepet ke tepi layar dan posisinya center. font-family: sans-serif di body berlaku ke seluruh halaman, lebih efisien daripada set font satu-satu di tiap elemen.

Navbar pakai float: left di li supaya item menu berjejer horizontal. Tanpa ini, tiap <li> akan tampil vertikal ke bawah karena defaultnya block element. Dan satu hal yang perlu diperhatikan: float: center bukan CSS valid. float hanya menerima left, right, atau none, untuk centering konten, pakai margin: 20px 0 di #contents.

Warna navbar, ukuran font, dan padding bebas diubah sesuai selera. Class active dari section navigasi sudah masuk di sini, kalau belum ada di header.php, styling active state nya tidak akan muncul.

Supaya tampilan website kamu nyaman dibuka di HP, lanjutkan dengan panduan cara membuat website responsive.

Menjalankan Website di Browser + Troubleshooting

Semua file sudah dibuat. Sekarang waktunya cek apakah semuanya berjalan.

Cara Akses localhost/myphpwebsite

Buka XAMPP Control Panel, klik Start pada Apache. Tunggu sampai indikatornya hijau. Buka browser, ketik:

Cara Membuat Website PHP

Kalau index.php ada di folder yang benar, halaman Home langsung muncul. Coba klik menu About dan Contact, pastikan kontennya berganti dan menu aktifnya ikut berubah.

Masalah Umum dan Solusinya

Empat masalah yang paling sering bikin pemula mentok:

  • Apache tidak bisa Start, biasanya karena port 80 atau 443 sudah dipakai aplikasi lain, Skype, IIS, atau aplikasi lain yang jalan di background. Cek di XAMPP Control Panel, klik tombol “Logs” di baris Apache untuk lihat error spesifiknya. Solusi tercepat: matikan aplikasi yang bentrok, atau ubah port Apache ke 8080 lewat menu Config → httpd.conf, cari Listen 80 dan ganti jadi Listen 8080. Akses lewat http://localhost:8080/myphpwebsite/.
  • Folder project tidak ditemukan, muncul error “Object not found” di browser. Cek dua hal: nama folder di htdocs harus sama persis dengan yang diketik di URL, case-sensitive di beberapa sistem. Dan pastikan foldernya ada di C:\xampp\htdocs\, bukan di Desktop atau Downloads.
  • Blank page, halaman putih kosong tanpa pesan error biasanya berarti ada error PHP yang disembunyikan. Buka file php.ini di C:\xampp\php\php.ini, cari display_errors, pastikan nilainya On. Restart Apache, reload halaman, errornya akan muncul.
  • Halaman tidak berganti saat klik menu, cek URL di browser setelah klik menu. Kalau parameter ?page=about tidak muncul, ada masalah di href linknya di header.php. Kalau parameter muncul tapi konten tidak berubah, cek path include di index.php, pastikan mengarah ke pages/about.php, bukan about.php langsung.
Baca Juga:  Platform No-Code Terbaik untuk Membuat Website

Kalau websitenya sudah berjalan di localhost, langkah berikutnya adalah mempublish supaya bisa diakses lewat domain dan online 24/7. 

Publish Website PHPmu ke Hosting

Lanjutan Belajar (Next Step)

Project ini sudah cukup untuk paham cara kerja website PHP dari dalam. Tiga arah yang bisa kamu ambil setelah ini.

Form + POST + Validasi

Halaman Contact yang tadi dibuat masih statis, pengunjung belum bisa kirim apapun. Tambahkan form HTML, proses inputnya dengan $_POST, validasi datanya sebelum dipakai.

Minimal cek dulu apakah field kosong atau tidak. Dari sini bisa lanjut ke pengiriman email dengan mail() atau simpan pesannya ke database.

Simpan ke MySQL — CRUD

MySQL sudah ada di XAMPP sejak awal, cuma belum disentuh. CRUD atau Create, Read, Update, Delete adalah operasi yang hampir semua aplikasi web butuhkan. Simpan data form kontak, tampilkan daftar artikel, kelola produk, semuanya butuh koneksi database.

Kalau tujuanmu membangun profil bisnis, lihat dulu struktur kontennya.  Atau kalau mau naik ke project jualan setelah ini? Mulai dari cara membuat toko online. Untuk gambaran lengkap fitur e-commerce, katalog, checkout, pembayaran.

Upload/Deploy ke Hosting

File di C:\xampp\htdocs cuma bisa diakses dari komputer sendiri. Supaya bisa dibuka siapa saja lewat internet, kamu butuh hosting dan domain. Upload file project lewat File Manager atau FTP, import database kalau sudah ada, sesuaikan konfigurasi koneksi database dengan kredensial hosting yang baru.

Untuk upload project dari localhost ke internet, kamu perlu hosting yang mendukung versi PHP dan database. 

Mulai Hosting untuk Website PHP

Sudah Sampai di Mana?

Website multi-page sudah jalan di localhost, struktur foldernya rapi, header-footer reusable, menu navigasi dengan active state, routing aman pakai whitelist. Bukan cuma copy-paste, kamu tahu kenapa tiap bagian ditulis seperti itu.

Langkah berikutnya terserah kamu. Tambah form di halaman Contact, koneksikan ke MySQL, buat CRUD sederhana. Atau langsung kenalan dengan Laravel, fondasinya sudah ada, nggak akan bingung seperti kalau loncat dari nol.

Kalau traffic mulai tumbuh dan localhost sudah nggak relevan lagi, saatnya project ini pindah ke hosting sungguhan.

Pilih Hosting untuk Website PHP Pemula

FAQ

Apa bedanya PHP native dengan framework seperti Laravel atau CodeIgniter?

PHP native artinya kamu sendiri yang atur semuanya, struktur folder, routing, template header-footer, koneksi database, keamanan dasar. Framework seperti Laravel atau CodeIgniter sudah menyediakan semua itu dari awal, lengkap dengan helper, sistem routing, dan fitur keamanan built-in.

Untuk pemula yang ingin paham cara kerja website PHP dari dalam, mulai dari native dulu. Framework akan jauh lebih masuk akal setelah kamu tahu apa yang sebetulnya mereka kerjakan di balik layar.

Kenapa file PHP tidak bisa dibuka dengan double click?

Kode PHP harus dieksekusi oleh PHP interpreter di server dulu, hasilnya baru dikirim ke browser dalam bentuk HTML. Double click langsung di file manager? Yang terbuka cuma teksnya. <?php ... ?> nggak diproses sama sekali, jadi yang muncul di browser bisa berantakan atau kosong.

XAMPP menyediakan Apache sebagai server lokal yang memproses file PHP sebelum hasilnya sampai ke browser. Tanpa itu, file .php nggak bisa jalan.

Folder project PHP harus ditaruh di mana supaya bisa diakses dari localhost?

Taruh di C:\xampp\htdocs\nama-project. Kalau foldernya bernama myphpwebsite, aksesnya:

Satu hal yang sering kelewat: nama folder di URL harus sama persis dengan nama folder di htdocs. Di beberapa sistem, MyPHPWebsite dan myphpwebsite dianggap dua folder berbeda.

Kenapa localhost/myphpwebsite tidak bisa dibuka?

Cek Apache dulu, buka XAMPP Control Panel, pastikan statusnya hijau. Kalau Apache gagal start, buka Logs nya, biasanya ada keterangan port mana yang bentrok. Port 80 sering dipakai Skype atau IIS tanpa disadari, ganti ke 8080 lewat httpd.conf kalau perlu.

Kalau Apache sudah jalan tapi halaman tetap nggak muncul, cek dua hal: lokasi folder (C:\xampp\htdocs\myphpwebsite, bukan Desktop atau Downloads) dan pastikan index.php ada di dalamnya. Browser butuh file default untuk ditampilkan.

Apakah routing index.php?page=... aman?

include $_GET['page'] . '.php' tanpa filter, ini celah nyata. Parameter page bisa diisi path ke file konfigurasi atau file lain yang tidak seharusnya dibuka, dan PHP akan coba include file itu juga.

Whitelist di atas memastikan hanya nilai yang kamu izinkan yang bisa diproses. Input di luar daftar itu nggak akan pernah sampai ke include.

Mila Rosyida

Halo ! I'm a Technical Content Specialist in DomaiNesia. I love learn anything about Technical, Data, Machine Learning, and more Technology.


Berlangganan Artikel

Dapatkan artikel, free ebook dan video
terbaru dari DomaiNesia

{{ errors.name }} {{ errors.email }}
Migrasi ke DomaiNesia

Migrasi Hosting ke DomaiNesia Gratis 1 Bulan

Ingin memiliki hosting dengan performa terbaik? Migrasikan hosting Anda ke DomaiNesia. Gratis jasa migrasi dan gratis 1 bulan masa aktif!

Ya, Migrasikan Hosting Saya

Hosting Murah

This will close in 0 seconds