Artikel ini cocok untuk pemula yang baru belajar PHP dan ingin memahami cara menghubungkan file antar-folder tanpa error.
1. Kenapa Perlu Pisahkan File di PHP?
Saat kamu membuat website dengan PHP, biasanya kamu ingin agar struktur kode lebih rapi dan mudah dikelola.
Misalnya, kamu tidak ingin menulis ulang bagian yang sama (seperti header, sidebar, atau footer) di setiap halaman.
• Cara Membuat Backend Node.js + Express dengan Struktur Manual
• Belajar Coding Bagian 6: Membuat Link dan Navigasi dalam HTML
Contohnya:
- header.php → berisi bagian atas website (<head>, judul, CSS)
- sidebar.php → berisi menu navigasi
- footer.php → berisi bagian bawah (tulisan hak cipta, script JS)
- koneksi.php → berisi koneksi ke database MySQL
Dengan cara ini, setiap halaman hanya perlu mengambil file yang diperlukan menggunakan include atau require.
2. Struktur Folder Contoh
Kita buat contoh struktur sederhana seperti ini:
public_html/ │ ├─ config/ │ └─ koneksi.php │ ├─ includes/ │ ├─ header.php │ ├─ sidebar.php │ └─ footer.php │ ├─ audit/ │ └─ kebersihantangan.php │ └─ login.php
Artinya:
- File utama website kamu ada di public_html
- File koneksi.php disimpan di folder config
- Bagian layout (header, sidebar, footer) disimpan di folder includes
- Halaman seperti audit atau laporan disimpan di folder masing-masing
3. Cara Menghubungkan File di PHP
Untuk menghubungkan file, PHP menyediakan empat fungsi utama:
include 'file.php'; require 'file.php'; include_once 'file.php'; require_once 'file.php';
Perbedaannya:
- include → kalau file tidak ada, PHP hanya memberi peringatan (warning).
- require → kalau file tidak ada, PHP akan berhenti total (fatal error).
- include_once / require_once → memastikan file hanya dimuat sekali, walaupun dipanggil berulang.
👉 Jadi paling aman pakai require_once untuk file penting seperti koneksi atau header.
4. Mengenal Path (Jalur Folder)
Masalah paling sering saat pakai include adalah:
“File tidak ditemukan.”
Itu biasanya karena path (jalur folder) yang salah.
Ada dua cara menulis path di PHP:
| Jenis Path | Contoh | Penjelasan |
|---|---|---|
| Path Relatif | ../koneksi.php | Menghitung lokasi berdasarkan posisi file saat ini |
| Path Absolut | $_SERVER['DOCUMENT_ROOT'] . '/config/koneksi.php' | Mengarah langsung ke root folder utama website |
5. Path Relatif (Menghitung Folder Secara Manual)
Contoh:
public_html/ ├─ config/koneksi.php └─ audit/kebersihantangan.php
Karena kebersihantangan.php berada di folder audit/,
kamu perlu naik satu tingkat (../) untuk mencapai config/.
<?php include_once __DIR__ . '/../config/koneksi.php';
Penjelasan:
- __DIR__ = menunjukkan folder tempat file ini berada (audit/)
- ../ = naik satu folder ke atas (public_html)
- /config/koneksi.php = masuk ke folder config
👉 Jadi PHP akan membuka:
/home/namauser/public_html/config/koneksi.php
6. Path Absolut (Cara Profesional & Aman)
Kalau website kamu sudah punya banyak folder,
lebih baik gunakan path absolut dengan variabel bawaan PHP:
$_SERVER['DOCUMENT_ROOT'].
Contohnya:
<?php include_once $_SERVER['DOCUMENT_ROOT'] . '/config/koneksi.php';
Penjelasan:
- $_SERVER['DOCUMENT_ROOT'] otomatis menunjukkan lokasi utama website kamu (public_html di hosting).
- Sehingga PHP tahu lokasi pasti tanpa bingung hitung ../.
Contoh lain:
include_once $_SERVER['DOCUMENT_ROOT'] . '/includes/header.php'; include_once $_SERVER['DOCUMENT_ROOT'] . '/includes/sidebar.php'; include_once $_SERVER['DOCUMENT_ROOT'] . '/includes/footer.php';
✅ Ini cara yang paling direkomendasikan untuk proyek besar.
7. Contoh Lengkap File-File Website
🔹 config/koneksi.php
<?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "ppi_database"; $conn = mysqli_connect($servername, $username, $password, $dbname); if (!$conn) { die("Koneksi gagal: " . mysqli_connect_error()); } ?>
🔹 includes/header.php
<?php if (session_status() === PHP_SESSION_NONE) session_start(); include_once $_SERVER['DOCUMENT_ROOT'] . '/config/koneksi.php'; ?> <!DOCTYPE html> <html lang="id"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Dashboard PPI PHBW</title> <link rel="stylesheet" href="/style.css"> </head> <body> <div class="layout">
🔹 includes/footer.php
</div> <!-- /layout --> <footer style="text-align:center; padding:20px; background:#f1f5fb;"> <p>© 2025 PPI PHBW. All Rights Reserved.</p> </footer> </body> </html>
🔹 audit/kebersihantangan.php
<?php includeonce $_SERVER['DOCUMENT_ROOT'] . '/includes/header.php'; include_once $_SERVER['DOCUMENT_ROOT'] . '/includes/sidebar.php'; ?> <main> <div class="container"> <h2>Audit Kepatuhan Kebersihan Tangan</h2> <p>Selamat datang, <b>Administrator</b>! Ini halaman audit kebersihan tangan.</p> </div> </main> <?php include_once $_SERVER['DOCUMENT_ROOT'] . '/includes/footer.php'; ?>
8. Tips Praktis Anti-Error
- Gunakan require_once untuk file penting (seperti koneksi atau header).
- Gunakan __DIR__ kalau file masih satu level atau dekat.
- Gunakan $_SERVER['DOCUMENT_ROOT'] kalau folder kamu berbeda-beda.
Jika muncul halaman putih (blank), aktifkan debug:
- ini_set('display_errors', 1); error_reporting(E_ALL);
- Pastikan semua file punya izin akses (permission 0644) di hosting kamu.
9. Ringkasan Cepat
| Kondisi File | Contoh Path yang Benar |
|---|---|
| File di folder yang sama | include_once __DIR__ . '/koneksi.php'; |
| File di folder atas | include_once __DIR__ . '/../koneksi.php'; |
| File di folder berbeda | include_once $_SERVER['DOCUMENT_ROOT'] . '/config/koneksi.php'; |
| File di root public_html | include_once $_SERVER['DOCUMENT_ROOT'] . '/koneksi.php'; |
10. Kesimpulan
Menulis path PHP memang terlihat sederhana,
tapi kalau salah sedikit saja, bisa bikin website tidak jalan.
Dengan memahami cara kerja path relatif dan absolut:
- Kamu bisa membuat proyek yang modular, rapi, dan efisien
- Setiap halaman bisa saling terhubung tanpa error
Dan kamu tidak perlu lagi bingung dengan pesan:
Failed to open stream: No such file or directory
🌟 Penutup
Sekarang kamu sudah tahu cara menulis path PHP yang benar,
baik untuk file header, footer, sidebar, maupun koneksi.php.
Gunakan prinsip sederhana ini:
🔹 “Kalau foldernya dekat, pakai __DIR__. Kalau foldernya jauh, pakai $_SERVER['DOCUMENT_ROOT'].”
Dengan begitu, website kamu akan tetap rapi, profesional, dan bebas error!
🖊️ Ditulis oleh:
Admin
Portal blog