Seri 1

Dunia Web Hosting
& cPanel

Dari Nol Hingga Online — Panduan Lengkap Memahami Domain, Hosting, cPanel, Database, dan Cara Kerja Web di Balik Layar

Ditulis dalam semangat Charles Petzold & Dan Gookin

Kata Pengantar

Jika Anda pernah bertanya-tanya apa yang sebenarnya terjadi saat Anda mengetikkan alamat website di browser dan menekan Enter — buku ini untuk Anda.

Dalam tradisi Charles Petzold yang mengajarkan fondasi komputasi dari bit paling dasar, dan Dan Gookin yang membuat pemrograman C terasa seperti ngobrol santai, ebook ini akan membawa Anda memahami ekosistem web hosting dari lapisan paling fundamental.

Kita tidak akan sekadar menunjukkan tombol mana yang harus diklik. Kita akan memahami mengapa tombol itu ada, apa yang terjadi saat Anda menekannya, dan bagaimana semua potongan puzzle ini membentuk sebuah website yang bisa diakses jutaan orang.

📘 Untuk Siapa Buku Ini?

Pemula yang baru mengenal dunia web, developer yang ingin memahami infrastruktur, freelancer yang mengelola website klien, atau siapa saja yang ingin berhenti merasa "takut" saat membuka cPanel.


1

Fondasi Web: Domain, DNS, dan Hosting

Sebelum membangun rumah, Anda butuh tanah dan alamat. Begitu pula website.

1.1 Apa Itu Domain?

Domain adalah nama yang bisa dibaca manusia untuk mengidentifikasi sebuah komputer (server) di internet. Tanpa domain, Anda harus mengingat alamat IP seperti 192.168.1.1 atau 2001:0db8:85a3:0000:0000:8a2e:0370:7334. Domain mengubah angka-angka itu menjadi sesuatu yang bermakna: google.com, wikipedia.org, tokopedia.com.

Anatomi Sebuah Domain

Struktur
  // Contoh: www.toko-saya.co.id

  www            →  Subdomain
  toko-saya      →  Second-Level Domain (SLD) — nama unik Anda
  .co.id         →  Top-Level Domain (TLD) — ekstensi

  // TLD umum:
  .com  → Commercial (global)
  .org  → Organization
  .net  → Network
  .id   → Indonesia (ccTLD)
  .co.id→ Perusahaan Indonesia
  .io   → Populer di tech/startup
  .dev  → Developer
Analogi Petzold: Domain = Nama Jalan

Bayangkan internet sebagai sebuah kota raksasa. Setiap bangunan (server) punya koordinat GPS (IP Address). Domain adalah nama jalan yang Anda tempel di papan alamat. Orang tidak perlu tahu koordinat GPS rumah Anda — cukup tahu "Jl. Merdeka No. 17". DNS adalah sistem peta yang menerjemahkan nama jalan menjadi koordinat.

Di Mana Membeli Domain?

Domain dibeli dari Registrar — perusahaan yang terakreditasi oleh ICANN (Internet Corporation for Assigned Names and Numbers). Beberapa registrar populer:

⚠️ Penting: Domain Disewa, Bukan Dimiliki

Anda tidak pernah benar-benar "memiliki" domain. Anda menyewanya per tahun (atau multi-tahun). Jika Anda lupa memperpanjang, domain bisa kedaluwarsa dan dibeli orang lain. Selalu aktifkan auto-renew.


1.2 Bagaimana DNS Bekerja

DNS (Domain Name System) adalah "buku telepon" internet. Saat Anda mengetik example.com, browser Anda tidak langsung tahu server mana yang harus dihubungi. Berikut urutan yang terjadi:

  1. Browser Cache Browser cek apakah sudah pernah mengunjungi domain ini dan menyimpan IP-nya di cache lokal.
  2. OS Cache / Resolver Jika tidak ada di browser, OS (Windows/Linux/macOS) cek cache-nya sendiri, lalu bertanya ke DNS Resolver (biasanya dari ISP Anda atau yang Anda set seperti 8.8.8.8).
  3. Root Server Resolver bertanya ke Root Server: "Siapa yang menangani .com?" Root Server menjawab: "Tanyakan ke TLD Server untuk .com."
  4. TLD Server TLD Server menjawab: "Untuk example.com, tanyakan ke Name Server ns1.hosting.com."
  5. Authoritative Name Server Name Server milik hosting Anda menjawab: "example.com ada di IP 203.0.113.42."
  6. Browser Terhubung Browser sekarang tahu IP-nya dan membuat koneksi HTTP/HTTPS ke server tersebut.

Record DNS Penting

Record Fungsi Contoh
A Memetakan domain ke IPv4 example.com → 203.0.113.42
AAAA Memetakan domain ke IPv6 example.com → 2001:db8::1
CNAME Alias — mengarahkan satu nama ke nama lain www → example.com
MX Menentukan server email example.com → mail.example.com
TXT Informasi teks (verifikasi, SPF, DKIM) v=spf1 include:_spf.google.com ~all
NS Menentukan Name Server yang berwenang ns1.hosting.com, ns2.hosting.com

1.3 Apa Itu Hosting?

Hosting adalah layanan penyewaan ruang di server yang terhubung ke internet 24/7, tempat Anda menyimpan file-file website (HTML, CSS, JavaScript, gambar, database) sehingga bisa diakses siapa saja di dunia.

Server hosting adalah komputer biasa — secara harfiah. Bedanya:

Analogi Gookin: Hosting = Menyewa Ruko

Anda punya barang dagangan (file website). Anda butuh ruko (server) di lokasi strategis (data center) yang buka 24 jam. Anda bayar sewa bulanan/tahunan. Ukuran ruko menentukan berapa banyak barang yang bisa Anda simpan dan berapa banyak pelanggan yang bisa masuk bersamaan.


1.4 Analogi Lengkap: Rumah di Internet

Konsep Web Analogi Dunia Nyata
Domain Alamat rumah (Jl. Sudirman No. 10)
DNS Peta / GPS yang menerjemahkan alamat menjadi koordinat
IP Address Koordinat GPS sebenarnya
Hosting Tanah dan bangunan rumah
File Website Perabotan dan isi rumah
Database Lemari arsip / brankas di dalam rumah
SSL Certificate Sistem keamanan / pagar / CCTV
Bandwidth Lebar jalan menuju rumah
cPanel Ruang kontrol / panel listrik rumah
2

Kategori Hosting & VPS

Tidak semua website butuh "rumah" yang sama. Pilih sesuai kebutuhan.

2.1 Shared Hosting

Shared Hosting adalah tipe hosting paling populer dan paling terjangkau. Dalam model ini, ratusan hingga ribuan website berbagi satu server fisik yang sama — termasuk CPU, RAM, dan penyimpanan.

Karakteristik:

📘 cPanel & Shared Hosting

Hampir semua provider shared hosting menyediakan cPanel. Ini adalah alasan utama bab 3 buku ini berfokus pada cPanel — karena inilah yang akan Anda gunakan 90% waktu sebagai pemula.


2.2 VPS (Virtual Private Server)

VPS menggunakan teknologi virtualisasi (KVM, OpenVZ, VMware) untuk membagi satu server fisik menjadi beberapa "server virtual" yang terisolasi. Setiap VPS punya alokasi CPU, RAM, dan storage sendiri yang dijamin tidak dibagi dengan pengguna lain.

Karakteristik:

Managed vs Unmanaged VPS

Aspek Managed VPS Unmanaged VPS
Setup awal Provider yang setup Anda setup dari nol
cPanel/Plesk Biasanya termasuk Install sendiri (lisensi ~$15-30/bln)
Update & Patch Provider menangani Anda menangani
Support Full support Hanya support infrastruktur
Harga Lebih mahal Lebih murah

2.3 Dedicated Server

Seluruh server fisik milik Anda sendiri. Tidak ada yang berbagi. Anda punya kontrol penuh atas hardware, OS, dan konfigurasi.


2.4 Cloud Hosting

Website Anda tidak berjalan di satu server, tapi di cluster server yang bekerja bersama. Jika satu server down, yang lain mengambil alih. Sumber daya bisa di-scale secara dinamis.


2.5 Perbandingan & Kapan Memilih

🏠 Shared Hosting

  • Baru mulai / budget terbatas
  • Website statis atau WordPress sederhana
  • Traffic < 25K/bulan
  • Ingin cPanel out-of-the-box

🖥️ VPS

  • Website berkembang, traffic naik
  • Butuh custom software/config
  • Traffic 25K – 500K/bulan
  • Developer yang butuh root access

☁️ Cloud Hosting

  • Traffic tidak bisa diprediksi
  • Butuh auto-scaling
  • Aplikasi modern (microservices)
  • Global audience (CDN built-in)

🏢 Dedicated

  • Traffic jutaan/bulan
  • Compliance/data sovereignty
  • Performance absolut dibutuhkan
  • Punya tim sysadmin
3

cPanel — Pusat Kendali Web Hosting Anda

Inilah jantung dari sebagian besar pengalaman hosting. Kuasai cPanel, kuasai web.

3.1 Apa Itu cPanel?

cPanel adalah web-based control panel yang memungkinkan Anda mengelola server hosting melalui antarmuka grafis di browser — tanpa perlu menyentuh command line.

Dibuat pertama kali pada 1996, cPanel kini menjadi standar de facto industri shared hosting. Hampir semua provider besar (Hostinger, Niagahoster, SiteGround, Bluehost, Domainesia) menggunakannya.

Apa yang Bisa Anda Lakukan di cPanel?

💡 Gookin's Tip: cPanel vs WHM

cPanel adalah panel untuk pengguna akhir (Anda). WHM (Web Host Manager) adalah panel untuk admin server / reseller — tempat mereka membuat akun cPanel, mengelola package, dan mengkonfigurasi server. Anda biasanya hanya perlu cPanel.


3.2 Login & Antarmuka

Cara Mengakses cPanel

URL Akses
  // Metode 1: Port 2083 (HTTPS)
  https://namadomain.com:2083

  // Metode 2: Subdomain
  https://cpanel.namadomain.com

  // Metode 3: Melalui IP server
  https://192.168.1.100:2083

  // Username & password: diberikan oleh provider hosting saat pembelian
🔴 Jangan Pernah Gunakan Port 2082

Port 2082 adalah HTTP (tanpa enkripsi). Selalu gunakan port 2083 (HTTPS) agar kredensial Anda terenkripsi selama transit.

Tour Antarmuka cPanel

Saat login, Anda akan melihat dashboard yang dibagi menjadi beberapa section:

Section Fungsi Utama
Files File Manager, FTP, Backup, Disk Usage
Databases MySQL Databases, phpMyAdmin, PostgreSQL
Email Email Accounts, Forwarders, Autoresponders, MX Entry
Domains Domains, Subdomains, Addon Domains, Redirects, DNS Zone
Security SSL/TLS, Hotlink Protection, IP Blocker, ModSecurity
Software MultiPHP Manager, Softaculous, CloudLinux App Selector
Advanced Cron Jobs, Indexes, Error Pages, Apache Handlers, MIME Types
Preferences Password & Security, Contact Info, User Manager
Metrics Visitors, Errors, Bandwidth, Awstats, Webalizer

3.3 File Manager

File Manager di cPanel adalah "Windows Explorer" versi web untuk server Anda. Dari sini Anda bisa melihat, mengedit, upload, download, rename, chmod, dan menghapus file.

Struktur Direktori Penting

Direktori
  /home/username/           →  Home directory Anda
  │
  ├── public_html/          →  ⭐ Root website utama (WAJIB TAHU)
  │   ├── index.html          →  Halaman default
  │   ├── index.php           →  Halaman default (PHP)
  │   ├── .htaccess           →  Konfigurasi Apache
  │   ├── wp-content/         →  (jika WordPress)
  │   └── ...                 →  Semua file website Anda di sini
  │
  ├── mail/                 →  Data email
  ├── etc/                  →  Konfigurasi email, domain
  ├── public_ftp/           →  FTP publik (jarang dipakai)
  ├── tmp/                  →  File temporary
  ├── logs/                 →  Log akses dan error
  │
  └── .cpanel/              →  Konfigurasi cPanel (hidden)
⚠️ Aturan Emas: public_html

File yang Anda taruh di public_html/ bisa diakses publik melalui browser. File di luar direktori ini tidak bisa diakses langsung via URL. Jangan pernah taruh file sensitif (config database, .env) di dalam public_html tanpa proteksi.

CHMOD (File Permissions)

Permissions
  // Format: Owner / Group / Public
  // Nilai: Read(4) + Write(2) + Execute(1)

  644  → File biasa (HTML, CSS, JS, gambar)
          Owner: Read+Write, Group: Read, Public: Read

  755  → Direktori & file eksekusi
          Owner: R+W+X, Group: R+X, Public: R+X

  600  → File sensitif (config, .env)
          Owner: Read+Write, Group: None, Public: None

  // ⛔ JANGAN PERNAH set 777 di production!
  777  → Semua orang bisa baca, tulis, eksekusi = BAHAYA

3.4 Manajemen Email

Salah satu keuntungan hosting: Anda bisa membuat email profesional dengan domain sendiri.

Membuat Akun Email di cPanel

  1. Buka Email → Email Accounts Klik tombol "Create" atau "+ Create"
  2. Isi Detail Username: info (akan menjadi info@domainanda.com)
    Password: gunakan password kuat
    Storage: tentukan quota (misal 1024 MB)
  3. Akses Webmail Buka https://domainanda.com:2096 atau klik "Check Email" di cPanel
  4. Setup di Outlook/Gmail Gunakan setting: IMAP (port 993 SSL) / SMTP (port 465 SSL)

Email Forwarders & Autoresponder


3.5 SSL/TLS & Keamanan

SSL (Secure Sockets Layer) / TLS (Transport Layer Security) mengenkripsi koneksi antara browser pengunjung dan server Anda. Ini yang mengubah http:// menjadi https:// dan menampilkan ikon gembok 🔒.

Mengapa SSL Penting?

Memasang SSL di cPanel

  1. AutoSSL (Gratis — Let's Encrypt / cPanel AutoSSL) Buka SSL/TLS Status → Pilih domain → Klik "Run AutoSSL". Selesai.
  2. Let's Encrypt via Softaculous/AutoSSL Kebanyakan provider modern sudah mengintegrasikan Let's Encrypt gratis.
  3. SSL Berbayar (DV, OV, EV) Untuk bisnis yang butuh validasi lebih tinggi. Buka SSL/TLS → Install an SSL Certificate.

Force HTTPS Redirect

Tambahkan ini di file .htaccess di public_html/:

.htaccess
  RewriteEngine On
  RewriteCond %{HTTPS} off
  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

3.6 FTP & Akses File

FTP (File Transfer Protocol) memungkinkan Anda mentransfer file antara komputer lokal dan server menggunakan aplikasi seperti FileZilla, WinSCP, atau Cyberduck.

FTP Settings
  // FTP (tidak terenkripsi - hindari)
  Host: namadomain.com
  Port: 21

  // FTPS (FTP + SSL/TLS - direkomendasikan)
  Host: namadomain.com
  Port: 21 (dengan TLS/SSL explicit)

  // SFTP (SSH File Transfer - paling aman)
  Host: namadomain.com
  Port: 22

  Username: username_cPanel atau user FTP khusus
  Password: password Anda
  Directory: /public_html/

Membuat Akun FTP Tambahan di cPanel

Buka FTP Accounts. Anda bisa membuat akun FTP yang hanya bisa mengakses folder tertentu (misal: hanya /public_html/blog/) — berguna jika Anda memberi akses ke freelancer tanpa memberi akses ke seluruh server.


3.7 Cron Jobs

Cron Job adalah task scheduler — memungkinkan Anda menjalankan script secara otomatis pada waktu yang ditentukan.

Contoh Penggunaan:

Syntax Cron

Cron Syntax
  // Format: menit jam hari bulan hari_dalam_minggu perintah
  // * * * * * command

  // Setiap 5 menit
  */5 * * * * /usr/bin/php /home/user/public_html/cron.php

  // Setiap hari jam 2:30 pagi
  30 2 * * * /usr/bin/php /home/user/backup.php

  // Setiap Senin jam 8 pagi
  0 8 * * 1 /usr/bin/php /home/user/weekly-report.php

  // Field reference:
  // ┌───────── menit (0-59)
  // │ ┌─────── jam (0-23)
  // │ │ ┌───── hari (1-31)
  // │ │ │ ┌─── bulan (1-12)
  // │ │ │ │ ┌─ hari (0-6, 0=Minggu)
  // │ │ │ │ │
  // * * * * *

3.8 Backup & Restore

🔴 Hukum Murphy Web Hosting

"Jika website Anda bisa crash, maka website Anda AKAN crash — tepat saat Anda tidak punya backup." Selalu punya backup. Selalu.

Jenis Backup di cPanel

Tipe Apa yang Termasuk Kapan Pakai
Full Backup Semua: file, database, email, konfigurasi Migrasi server, arsip bulanan
Partial: Home Directory Semua file di /home/username/ Backup file sebelum update besar
Partial: MySQL Database Satu database (file .sql) Sebelum edit database, development
Partial: Email Semua email dan forwarders Backup email

Best Practice: Simpan backup di lokasi terpisah dari server (komputer lokal, Google Drive, AWS S3). Jangan hanya mengandalkan backup yang disimpan di server yang sama.


3.9 Softaculous / Auto Installer

Softaculous adalah aplikasi auto-installer yang tersedia di kebanyakan cPanel. Dengan beberapa klik, Anda bisa menginstall:

Install WordPress via Softaculous

  1. Buka Softaculous Cari "Softaculous Apps Installer" di bagian bawah cPanel
  2. Pilih WordPress → Install Pilih protokol: https://
    Pilih domain
    In Directory: kosongkan (jangan isi "wp")
  3. Isi Detail Admin Admin Username (jangan "admin"!)
    Admin Password (gunakan generator password)
    Admin Email
  4. Klik "Install" Tunggu 30-60 detik. Selesai! Website WordPress Anda sudah online.

3.10 Kelola Domain di cPanel

Jenis Domain di cPanel

Tipe Penjelasan Contoh
Primary Domain Domain utama yang terhubung ke akun cPanel domainutama.com → public_html/
Addon Domain Domain tambahan, website terpisah tokokedua.com → public_html/tokokedua.com/
Subdomain Bagian dari domain utama blog.domainutama.com → public_html/blog/
Parked Domain (Alias) Domain lain yang menampilkan website yang sama domain-lama.com → menampilkan domainutama.com
Redirect Mengarahkan URL ke URL lain /promo → /diskon-besar
4

Dari Nol Hingga Online

Panduan langkah demi langkah: website pertama Anda bisa diakses dunia.

4.1 Alur Kerja Lengkap

Beli Domain
Beli Hosting
Setup DNS
cPanel Setup
Upload/Install
SSL Aktif
LIVE! 🎉

4.2 Upload & Deploy Website

Metode 1: File Manager cPanel (Sederhana)

  1. Login ke cPanel → File Manager
  2. Navigasi ke public_html/
  3. Klik Upload
  4. Pilih file HTML/CSS/JS/gambar dari komputer
  5. Pastikan ada file index.html atau index.php di root

Metode 2: FTP (Proyek Besar)

  1. Download FileZilla (gratis)
  2. Input host, username, password, port
  3. Drag-and-drop folder proyek ke /public_html/

Metode 3: Git (Developer)

Terminal
  # Jika hosting mendukung SSH & Git:
  ssh user@domain.com
  cd public_html
  git clone https://github.com/user/repo.git .

  # Untuk update:
  git pull origin main

4.3 Mengarahkan DNS

Setelah beli domain dan hosting, Anda harus "menghubungkan" keduanya dengan mengarahkan Name Server (NS) domain ke name server milik hosting.

  1. Temukan Name Server Hosting Anda Biasanya ada di email welcome dari provider, atau di cPanel sidebar kanan. Contoh: ns1.niagahoster.com dan ns2.niagahoster.com
  2. Login ke Registrar Domain Buka panel domain (Namecheap, Cloudflare, dll), cari bagian "Nameservers" atau "Custom DNS"
  3. Ganti Name Server Ubah dari default registrar ke name server hosting Anda
  4. Tunggu Propagasi DNS bisa butuh 5 menit hingga 48 jam untuk tersebar ke seluruh dunia (propagasi). Cek di whatsmydns.net

4.4 Mengaktifkan HTTPS

Sudah dibahas di bagian 3.5 (SSL/TLS). Intinya:

  1. Install SSL via AutoSSL / Let's Encrypt di cPanel
  2. Tambahkan redirect HTTP → HTTPS di .htaccess
  3. Update semua internal link di website dari http:// ke https://
  4. Test di SSL Labs untuk memastikan konfigurasi benar
5

Database: Memori Website Anda

File HTML/CSS adalah tampilan. Database adalah otak dan ingatan.

5.1 Apa Itu Database?

Website statis (HTML murni) tidak butuh database. Tapi website dinamis — WordPress, toko online, forum, aplikasi web — menyimpan konten di database.

Analogi: Database = Lemari Arsip Terorganisir

Bayangkan perpustakaan. Setiap buku punya kategori, penulis, tahun terbit, ISBN. Database adalah sistem yang memungkinkan Anda menyimpan, mencari, menambah, mengedit, dan menghapus data tersebut dengan sangat cepat. "Tampilkan 10 artikel terbaru dari kategori Teknologi yang ditulis oleh Budi" — itu adalah query database.

Tipe Database di Hosting


5.2 MySQL di cPanel — Membuat Database

Membuat database di cPanel melibatkan 3 entitas yang harus dihubungkan:

  1. Buat Database Buka cPanel → MySQL® Databases
    Di bagian "Create New Database", ketik nama (misal: toko)
    cPanel akan otomatis menambahkan prefix: username_toko
  2. Buat User Database Di bagian "MySQL Users" → "Add New User"
    Username: dbuser (akan menjadi username_dbuser)
    Password: buat password yang kuat, simpan baik-baik
  3. Hubungkan User ke Database (Grant Privileges) Di bagian "Add User To Database"
    Pilih user dan database → Klik "Add"
    Centang "ALL PRIVILEGES" → Klik "Make Changes"
⚠️ Kesalahan Paling Umum

Lupa melakukan langkah 3! Banyak pemula membuat database dan user, tapi lupa menghubungkan keduanya. Tanpa privilege, user tidak bisa mengakses database — website akan error.


5.3 phpMyAdmin

phpMyAdmin adalah antarmuka grafis berbasis web untuk mengelola MySQL/MariaDB. Tersedia di cPanel → phpMyAdmin.

Yang Bisa Dilakukan di phpMyAdmin:

Export (Backup) Database via phpMyAdmin

  1. Buka phpMyAdmin dari cPanel
  2. Pilih database dari sidebar kiri
  3. Klik tab "Export"
  4. Pilih "Quick" method, format "SQL"
  5. Klik "Go" — file .sql akan terdownload

Import Database via phpMyAdmin

  1. Pilih database kosong dari sidebar
  2. Klik tab "Import"
  3. Upload file .sql
  4. Klik "Go"

Contoh Query SQL Dasar

SQL
  -- Melihat semua tabel di database
  SHOW TABLES;

  -- Melihat isi tabel
  SELECT * FROM wp_posts LIMIT 10;

  -- Mengganti URL website (saat migrasi domain)
  UPDATE wp_options
  SET option_value = 'https://domainbaru.com'
  WHERE option_name IN ('siteurl', 'home');

  -- Menghitung jumlah baris
  SELECT COUNT(*) FROM wp_users;

  -- Membuat tabel baru
  CREATE TABLE pengunjung (
      id INT AUTO_INCREMENT PRIMARY KEY,
      nama VARCHAR(100),
      email VARCHAR(150),
      tanggal DATETIME DEFAULT CURRENT_TIMESTAMP
  );

5.4 Menghubungkan Website ke Database

Setelah membuat database, user, dan memberi privilege, website Anda perlu tahu cara menghubunginya. Ini biasanya dilakukan via file konfigurasi.

Contoh: WordPress (wp-config.php)

PHP
  // File: public_html/wp-config.php

  define('DB_NAME',     'username_toko');
  define('DB_USER',     'username_dbuser');
  define('DB_PASSWORD', 'password_kuat_anda');
  define('DB_HOST',     'localhost');
  define('DB_CHARSET',  'utf8mb4');

Contoh: Koneksi PHP Native (PDO)

PHP
  $host     = 'localhost';
  $dbname   = 'username_toko';
  $user     = 'username_dbuser';
  $password = 'password_kuat_anda';

  try {
      $pdo = new PDO(
          "mysql:host=$host;dbname=$dbname;charset=utf8mb4",
          $user,
          $password,
          [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
      );
      echo "Terhubung ke database!";
  } catch (PDOException $e) {
      die("Koneksi gagal: " . $e->getMessage());
  }
💡 DB_HOST = 'localhost'

Di hampir semua shared hosting, database server berjalan di mesin yang sama dengan web server. Jadi hostname-nya selalu localhost. Di VPS/Cloud, bisa jadi IP internal lain.

6

Sistem Menyewa Hosting

Bagaimana industri hosting bekerja dari sisi bisnis dan apa yang perlu Anda perhatikan.

6.1 Siklus Penagihan

Siklus Karakteristik Cocok Untuk
Bulanan Fleksibel, harga per bulan lebih mahal, bisa cancel kapan saja Testing, proyek sementara
Tahunan Diskon 20-40%, komitmen 1 tahun Website yang sudah yakin akan berjalan lama
2-3 Tahun Diskon maksimal (hingga 60-70%), kadang dapat domain gratis Bisnis jangka panjang, budget terbatas di awal
⚠️ Jebakan Harga "Renewal"

Banyak provider menawarkan harga promo untuk tahun pertama (misal Rp 10.000/bulan), tapi harga perpanjangan (renewal) bisa 3-5x lipat. Selalu cek harga renewal sebelum membeli.

Apa yang Termasuk dalam Paket Hosting?


6.2 Memilih Provider Hosting

Checklist Evaluasi:


6.3 Migrasi Hosting

Saat Anda ingin pindah provider, prosesnya disebut migrasi. Banyak provider menawarkan migrasi gratis.

Langkah Migrasi Manual:

  1. Backup Full di Hosting Lama Via cPanel → Backup → Full Backup, atau download public_html + export database via phpMyAdmin
  2. Setup Hosting Baru Buat database, user, dan grant privileges di cPanel baru
  3. Upload File Upload public_html ke hosting baru via File Manager/FTP
  4. Import Database Via phpMyAdmin di hosting baru
  5. Update Konfigurasi Edit wp-config.php (atau file config app Anda) dengan credential database baru
  6. Test via Hosts File Sebelum ganti DNS, test website di komputer lokal dengan edit file hosts
  7. Update DNS / Name Server Arahkan domain ke hosting baru
  8. Tunggu Propagasi, Monitor Pastikan semua berfungsi, baru cancel hosting lama (tunggu min. 7 hari)
7

Cheat Sheet: HTTP Error Codes

Panduan cepat memahami apa yang salah saat website menampilkan error.

Setiap kali browser berkomunikasi dengan server, server membalas dengan HTTP Status Code — angka 3 digit yang memberitahu apakah permintaan berhasil, dialihkan, atau gagal.

📘 Petzold's Note: Struktur Kode HTTP

Digit pertama menentukan kategori:
1xx — Informational (jarang dilihat pengguna)
2xx — Success (200 OK = berhasil)
3xx — Redirection (dialihkan)
4xx — Client Error (kesalahan dari sisi browser/pengguna)
5xx — Server Error (kesalahan dari sisi server)

🔄 Kode 3xx — Redirection
Kode Nama Penjelasan & Solusi
301 Moved Permanently URL telah dipindahkan secara permanen ke URL baru. Browser akan mengingat ini. Gunakan untuk: ganti domain, restruktur URL, pindah HTTP ke HTTPS.
302 Found (Temporary Redirect) Pemindahan sementara. Browser tidak menyimpan redirect ini. Gunakan untuk: maintenance page, A/B testing.
303 See Other Response dari POST request, mengarahkan ke halaman lain via GET.
304 Not Modified Resource belum berubah sejak terakhir diakses. Browser menggunakan versi cache. Ini BUKAN error — ini efisiensi.
307 Temporary Redirect Sama seperti 302, tapi method HTTP (POST/GET) tidak boleh berubah.
308 Permanent Redirect Sama seperti 301, tapi method HTTP tidak boleh berubah.
⚠️ Kode 4xx — Client Error (Salah Anda / Browser)
Kode Nama Penjelasan & Solusi
400 Bad Request Server tidak memahami request. Solusi: cek URL, bersihkan cache browser, cek cookie yang corrupt.
401 Unauthorized Autentikasi dibutuhkan tapi tidak diberikan/salah. Solusi: login dengan kredensial yang benar, cek .htpasswd.
403 Forbidden Server menolak akses. Anda teridentifikasi tapi tidak diizinkan. Penyebab umum di cPanel: salah CHMOD, ModSecurity block, tidak ada index file, hotlink protection, IP blocker.
404 Not Found Halaman tidak ditemukan. Penyebab: URL salah ketik, halaman dihapus, permalink rusak. Solusi: buat custom 404 page, setup redirect 301 untuk URL lama.
405 Method Not Allowed HTTP method tidak didukung untuk resource ini (misal: POST ke halaman yang hanya menerima GET).
406 Not Acceptable Server tidak bisa menghasilkan response sesuai format yang diminta client (Accept header).
408 Request Timeout Client terlalu lama mengirim request. Solusi: refresh halaman, cek koneksi internet.
409 Conflict Konflik dengan state resource saat ini (misal: upload file yang sudah ada).
410 Gone Resource sudah dihapus secara permanen dan tidak akan kembali. Berbeda dari 404 yang mungkin kembali.
413 Payload Too Large File upload terlalu besar. Solusi di cPanel: naikkan upload_max_filesize dan post_max_size di MultiPHP INI Editor.
414 URI Too Long URL terlalu panjang. Biasanya karena terlalu banyak parameter di query string.
429 Too Many Requests Terlalu banyak request dalam waktu singkat (rate limiting). Penyebab: bot, script agresif, brute force attack. Solusi: tunggu, atau hubungi admin server.
🔥 Kode 5xx — Server Error (Salah Server)
Kode Nama Penjelasan & Solusi
500 Internal Server Error Error umum server — "sesuatu salah tapi saya tidak tahu apa." Penyebab di cPanel: syntax error di .htaccess, error PHP, permission salah, habis memory limit. Cek Error Log di cPanel → Metrics → Errors.
502 Bad Gateway Server bertindak sebagai gateway/proxy dan menerima response tidak valid dari server upstream. Penyebab: PHP-FPM down, Nginx tidak bisa menghubungi Apache/backend. Hubungi hosting provider.
503 Service Unavailable Server overload atau maintenance. Penyebab: traffic spike, resource limit tercapai (CPU/RAM/EP), maintenance. Solusi: upgrade paket hosting, optimasi website, coba lagi nanti.
504 Gateway Timeout Server gateway tidak mendapat response tepat waktu dari upstream. Penyebab: script PHP terlalu lama, database query lambat, server overload. Solusi: optimasi query, naikkan max_execution_time.
507 Insufficient Storage Server kehabisan ruang penyimpanan. Solusi: hapus file tidak perlu, upgrade disk space, cek log yang membengkak.
508 Loop Detected Server mendeteksi infinite loop saat memproses request. Penyebab: redirect loop di .htaccess (A → B → A).

7.4 Panduan Debugging: Apa yang Harus Dilakukan Saat Error?

Langkah Universal

  1. Cek Error Log cPanel → Metrics → Errors (menampilkan 300 error terakhir). Ini adalah tempat pertama yang harus Anda lihat untuk error 500 dan 503.
  2. Cek .htaccess Syntax error di .htaccess adalah penyebab #1 error 500. Coba rename .htaccess menjadi .htaccess.bak — jika website kembali normal, masalahnya ada di file ini.
  3. Cek File Permission Pastikan file: 644, direktori: 755. Permission 777 bisa menyebabkan error di beberapa server.
  4. Cek PHP Error Log Aktifkan di cPanel → MultiPHP INI Editor → set display_errors = On (hanya untuk debugging, matikan di production!) atau cek file error_log di public_html.
  5. Cek Resource Usage cPanel → Resource Usage atau CPU and Concurrent Connection Usage. Jika CPU/RAM/I/O hitting limit, Anda perlu optimasi atau upgrade.
  6. Hubungi Support Hosting Jika semua di atas tidak membantu, hubungi provider. Mereka punya akses ke log server level yang tidak bisa Anda lihat.

Quick Reference: Error → Kemungkinan Penyebab di cPanel

Error Pertama Cek Di cPanel, Buka
403 Forbidden File permission, index file ada? File Manager → Permissions
404 Not Found URL benar? File ada? File Manager, Redirects
500 Internal .htaccess, PHP error, permission Errors (Error Log), File Manager
502 Bad Gateway PHP-FPM status, restart PHP MultiPHP Manager, hubungi support
503 Service Unavail Resource limit tercapai? Resource Usage, CPU Usage
504 Gateway Timeout Script lambat? DB query berat? MultiPHP INI (max_execution_time)

Penutup Seri 1

Anda sekarang memiliki peta lengkap untuk memahami dan mengelola website.

Dalam Seri 1 ini, kita telah melakukan perjalanan dari konsep paling dasar — apa itu domain dan mengapa DNS ada — hingga kemampuan praktis mengelola website melalui cPanel, membuat database, memahami sistem sewa hosting, dan mendiagnosis error HTTP.

Yang Sudah Anda Pelajari:

🚀 Langkah Selanjutnya (Preview Seri 2)

Seri 2 akan membahas: WordPress secara mendalam (theme, plugin, keamanan, optimasi kecepatan), SEO teknikal dasar, CDN (Cloudflare), monitoring uptime, dan praktik keamanan web. Stay tuned.