📋 Daftar Isi
🖥️ Apa Itu Server-Side Programming (Backend)?
Server-side programming atau yang sering disebut sebagai backend development adalah kebalikan dari client-side programming (frontend). Jika frontend berfokus pada tampilan yang dilihat pengguna, backend bertanggung jawab atas semua proses di balik layar.
Karakteristik Server-Side Programming:
- Kebalikan dari Client-Side Programming: Backend bekerja di server, bukan di browser pengguna
- Menangani Logika Bisnis: Semua kalkulasi, pemrosesan data, dan logika aplikasi dijalankan di server
- Tidak Terlihat User: Pengguna tidak melihat kode atau proses backend, hanya menerima hasilnya
- Keamanan Data: Data sensitif diproses di server, lebih aman dari manipulasi client-side
Fungsi Utama Server-Side Programming:
- Data Validation (Validasi Data): Memastikan data yang dikirim dari client valid dan aman sebelum diproses atau disimpan ke database
- Processing Efficiency (Efisiensi Pemrosesan): Melakukan komputasi berat di server yang memiliki resource lebih kuat
- Business Process Handling: Mengelola logika bisnis seperti perhitungan harga, manajemen inventori, atau proses checkout
Frontend berfokus pada tampilan visual, sedangkan backend menangani logika dan pemrosesan data
🌐 HTTP Request dan Method
Ketika kita mengakses sebuah website, browser mengirimkan HTTP Request (HyperText Transfer Protocol Request) ke server. HTTP adalah protokol komunikasi standar yang digunakan di web untuk pertukaran data antara client dan server.
Komponen HTTP Request:
- URL (Uniform Resource Locator): Alamat spesifik dari resource yang diminta
- HTTP Method: Jenis aktivitas yang ingin dilakukan (GET, POST, dll)
- Headers: Informasi tambahan seperti tipe browser, cookies, authentication token
- Body (opsional): Data yang dikirim bersama request (khususnya untuk POST/PUT)
HTTP Methods yang Paling Umum:
| Method | Fungsi | Contoh Penggunaan |
|---|---|---|
| GET | Mengambil data dari server | Membuka halaman web, mengambil daftar produk |
| POST | Mengirim data untuk membuat resource baru | Submit form registrasi, upload file |
| PUT | Update resource yang sudah ada | Edit profil pengguna, update data produk |
| DELETE | Menghapus resource tertentu | Hapus akun, hapus posting |
| HEAD | Mengambil metadata tanpa body | Cek apakah resource masih ada |
| PATCH | Update sebagian dari resource | Update satu field saja dari profil |
📄 Static Sites vs Dynamic Sites
Static Sites (Hanya Frontend/Client-Side)
Website statis adalah website yang file-filenya sudah dibuat sebelumnya (pre-created) dan tidak berubah berdasarkan input pengguna atau data dari database. Semua user melihat konten yang sama.
Karakteristik Static Sites:
- File HTML, CSS, dan JavaScript sudah dibuat sebelumnya
- Web server hanya mengirimkan file yang diminta tanpa pemrosesan
- Konten sama untuk semua pengunjung
- Lebih cepat karena tidak ada pemrosesan server
- Cocok untuk website company profile, landing page, portfolio
Alur kerja Static Sites:
- Browser mengirim HTTP Request ke Web Server
- Web Server mengambil file dari storage (HTML, CSS, JS)
- Web Server mengirimkan file tersebut sebagai HTTP Response
- Browser menampilkan halaman kepada user
Dynamic Sites (Didukung Backend)
Website dinamis adalah website yang kontennya di-generate secara real-time berdasarkan request user, data dari database, atau kondisi tertentu. Setiap user bisa melihat konten yang berbeda.
Karakteristik Dynamic Sites:
- Menggunakan bahasa pemrograman server-side (PHP, Python, Node.js, dll)
- Terhubung dengan database untuk menyimpan dan mengambil data
- Konten di-generate sesuai dengan user, waktu, atau kondisi tertentu
- Dapat menangani interaksi kompleks seperti login, transaksi, personalisasi
- Cocok untuk e-commerce, social media, sistem manajemen, blog dengan CMS
Alur kerja Dynamic Sites:
- Browser mengirim HTTP GET Request ke Web Server dengan data tertentu (cookies, parameters)
- Web Server meneruskan request ke Web Application (PHP, Python, dll)
- Web Application memproses request, mungkin mengambil data dari Database
- Web Application menghasilkan HTML berdasarkan template dan data
- HTML yang sudah di-generate dikirim kembali ke Web Server
- Web Server mengirimkan HTTP Response (HTML + CSS + JavaScript) ke Browser
- Browser menampilkan halaman yang sudah dipersonalisasi untuk user tersebut
⚠️ Contoh Kasus: Identifikasi Website
Mana yang Static, mana yang Dynamic?
- tokopedia.com → Dynamic (E-commerce dengan database produk, user accounts, transaksi)
- berkshirehathaway.com → Static (Website sederhana dengan informasi company yang jarang berubah)
🐘 Pengenalan PHP: Hypertext Preprocessor
PHP adalah salah satu bahasa pemrograman server-side yang paling populer di dunia. Dikembangkan oleh Rasmus Lerdorf pada tahun 1995, PHP telah menjadi tulang punggung jutaan website di internet.
Sejarah dan Evolusi PHP
- 1995: PHP pertama kali dibuat oleh Rasmus Lerdorf
- Nama awal: "Personal Home Page" - kumpulan script untuk mengelola website pribadi
- Nama sekarang: "PHP: Hypertext Preprocessor" - recursive acronym
- Versi major: PHP 5, PHP 7, dan PHP 8 (terbaru)
- File extension: .php
Mengapa PHP Masih Relevan?
Meskipun ada banyak bahasa pemrograman backend modern seperti Node.js, Python (Django/Flask), Ruby (Rails), dan Go, PHP masih sangat relevan dan banyak digunakan karena:
- Dominasi Market Share: Menurut W3Techs (Oktober 2022), PHP digunakan oleh 74.4% dari semua website yang server-side programming language-nya diketahui
- Ekosistem Mature: Memiliki framework powerful seperti Laravel, Symfony, CodeIgniter
- Content Management System (CMS): WordPress (PHP) mendominasi 43% dari seluruh website di internet
- Easy to Learn: Sintaks yang relatif mudah dipelajari untuk pemula
- Shared Hosting Support: Hampir semua web hosting mendukung PHP
- Large Community: Komunitas besar, banyak resource, tutorial, dan library
- Performance Improvement: PHP 7 dan PHP 8 memiliki performa yang jauh lebih baik
🌟 Website Besar yang Menggunakan PHP:
- Facebook - Dibuat dengan PHP (sekarang menggunakan Hack, dialek PHP)
- Wikipedia - Menggunakan PHP dan MediaWiki
- WordPress.com - Platform blogging terbesar
- Slack - Menggunakan PHP untuk backend tertentu
- Etsy - Marketplace handmade dan vintage
Kegunaan PHP dalam Web Development
- Form Processing: Menangani data dari form HTML
- Database Operations: CRUD (Create, Read, Update, Delete) data
- Session Management: Mengelola login dan state user
- File Upload: Handle upload gambar, dokumen, dll
- Dynamic Content: Generate HTML berdasarkan kondisi
- API Development: Membuat RESTful API atau GraphQL
- Email Sending: Kirim email otomatis (verification, notification)
- Image Processing: Resize, crop, watermark gambar
⚙️ Instalasi Tools dan Environment
Untuk mulai mengembangkan aplikasi PHP, kita memerlukan beberapa software utama yang harus diinstal di komputer. Ada dua pendekatan: instalasi individual atau menggunakan bundle package.
Software yang Dibutuhkan:
- PHP - Interpreter untuk menjalankan kode PHP
- MySQL / MariaDB - Database management system untuk menyimpan data
- Apache / Nginx - Web server untuk melayani HTTP request
- Composer - Dependency manager untuk PHP (seperti npm untuk Node.js)
Opsi 1: Bundle Package (Recommended untuk Pemula)
Windows: Laragon
Laragon adalah development environment modern yang ringan, cepat, dan powerful untuk Windows. Dibandingkan XAMPP, Laragon lebih modern dan mudah digunakan.
✅ Keunggulan Laragon:
- Fast & Lightweight: Startup cepat, resource efficient
- Pretty URLs: Otomatis membuat virtual host dengan domain .test
- Easy SSL: Satu klik untuk enable HTTPS
- Modern Stack: PHP 7.x/8.x, Node.js, Git sudah included
- Multiple PHP Versions: Bisa switch antara versi PHP dengan mudah
- Quick Create: Buat Laravel, WordPress, dll dengan satu klik
Cara Install Laragon:
- Download Laragon dari https://laragon.org/
- Pilih versi "Laragon Full" (sudah include PHP, MySQL, Apache)
- Jalankan installer dan ikuti wizard instalasi
- Install di directory default (C:\laragon) atau lokasi pilihan Anda
- Setelah instalasi selesai, jalankan Laragon
- Klik tombol "Start All" untuk menjalankan Apache dan MySQL
Windows Alternative: XAMPP
XAMPP adalah bundle klasik yang sudah lama digunakan. Cocok jika Anda sudah familiar atau butuh kompatibilitas lebih luas.
- Download dari: https://www.apachefriends.org/
- Include: Apache, MySQL, PHP, phpMyAdmin, Perl
- Lebih berat dari Laragon tapi lebih established
Opsi 2: Instalasi Individual (untuk Linux/Mac)
Di Linux atau Mac, Anda bisa menggunakan package manager untuk install individual:
Install Composer (Wajib untuk Development Modern)
Composer adalah dependency manager untuk PHP yang sangat penting dalam development modern, terutama saat menggunakan framework seperti Laravel.
Download Composer:
- Website: https://getcomposer.org/
- Windows: Download Composer-Setup.exe dan jalankan installer
- Linux/Mac: Ikuti instruksi command-line installation di website
Verifikasi Instalasi Composer:
Menjalankan PHP File
Dengan Laragon atau XAMPP, semua file PHP harus ditempatkan di folder khusus agar bisa diakses melalui browser:
📁 Lokasi Directory PHP:
- Laragon: C:\laragon\www\
- XAMPP: C:\xampp\htdocs\
- Linux: /var/www/html/
Cara Menjalankan PHP:
- Buat folder project di directory www (misalnya: C:\laragon\www\belajar-php)
- Buat file PHP di dalam folder tersebut (misalnya: index.php)
- Pastikan Laragon sudah running (Start All)
- Buka browser dan akses: http://localhost/belajar-php/
- Dengan Laragon, Anda juga bisa akses: http://belajar-php.test/
👋 Hello World di PHP
Mari kita mulai dengan program PHP pertama kita: Hello World!
Sintaks Dasar PHP
🔍 Penjelasan Kode:
- <?php - Tag pembuka PHP (wajib)
- ?> - Tag penutup PHP (opsional jika hanya ada kode PHP)
- echo() - Function untuk menampilkan output
- print() - Alternatif echo, fungsinya sama
- <br/> - HTML line break (bisa menggunakan HTML dalam PHP)
- ; - Setiap statement PHP diakhiri dengan semicolon
Cara Membuat File PHP:
- Buka text editor (VS Code, Sublime Text, Notepad++, atau IDE seperti PhpStorm)
- Buat file baru dengan nama hello.php
- Ketik kode di atas
- Save file di folder C:\laragon\www\belajar-php\
- Buka browser dan akses: http://localhost/belajar-php/hello.php
PHP Embedded dalam HTML
Salah satu kekuatan PHP adalah bisa di-embed langsung di dalam HTML:
📊 Tipe Data dan Variabel di PHP
PHP adalah bahasa yang loosely typed atau dynamically typed, artinya kita tidak perlu mendeklarasikan tipe data variabel secara eksplisit. PHP akan otomatis menentukan tipe data berdasarkan nilai yang diberikan.
Tipe Data di PHP:
| Tipe Data | Deskripsi | Contoh |
|---|---|---|
| Integer | Bilangan bulat (positif atau negatif) | 42, -10, 0, 1000 |
| Float (Double) | Bilangan desimal | 3.14, -0.5, 2.71828 |
| String | Teks atau karakter | "Hello", 'PHP', "123" |
| Boolean | Nilai true atau false | true, false |
| Array | Kumpulan nilai dalam satu variabel | [1, 2, 3], ['a', 'b', 'c'] |
| Object | Instance dari class | new DateTime() |
| NULL | Variabel tanpa nilai | null |
Aturan Penamaan Variabel di PHP
⚠️ Rules Penting:
- WAJIB dimulai dengan tanda dollar ($) - Ini yang membedakan variabel dari kata biasa
- Setelah $, harus huruf atau underscore - Tidak boleh angka di awal
- Hanya boleh alphanumeric dan underscore - Karakter lain tidak diperbolehkan
- Case sensitive - $age dan $Age adalah variabel berbeda
Contoh Penamaan Variabel:
Deklarasi dan Inisialisasi Variabel
💡 Perbedaan Single Quote vs Double Quote:
- Double Quote (" "): Variabel akan di-parse/diinterpretasi
- Single Quote (' '): Variabel dianggap literal string
Cek Tipe Data Variabel
🔢 Operator di PHP
Operator adalah simbol yang digunakan untuk melakukan operasi pada variabel dan nilai. PHP mendukung berbagai jenis operator.
1. Operator Aritmatika
| Operator | Nama | Contoh | Hasil |
|---|---|---|---|
| + | Penjumlahan | $x + $y | Jumlah dari $x dan $y |
| - | Pengurangan | $x - $y | Selisih dari $x dan $y |
| * | Perkalian | $x * $y | Hasil kali $x dan $y |
| / | Pembagian | $x / $y | Hasil bagi $x dan $y |
| % | Modulus (Sisa Bagi) | $x % $y | Sisa pembagian $x oleh $y |
| ** | Eksponensial (Pangkat) | $x ** $y | $x dipangkatkan $y |
2. Operator Assignment (Penugasan)
| Operator | Sama Dengan | Deskripsi |
|---|---|---|
| x = y | x = y | Assign nilai y ke x |
| x += y | x = x + y | Tambahkan y ke x |
| x -= y | x = x - y | Kurangi x dengan y |
| x *= y | x = x * y | Kalikan x dengan y |
| x /= y | x = x / y | Bagi x dengan y |
| x %= y | x = x % y | Sisa bagi x dengan y |
3. Operator Perbandingan
| Operator | Nama | Contoh | Hasil |
|---|---|---|---|
| == | Equal (Sama Dengan) | $x == $y | True jika nilai sama |
| === | Identical (Identik) | $x === $y | True jika nilai dan tipe data sama |
| != | Not Equal | $x != $y | True jika nilai berbeda |
| <> | Not Equal | $x <> $y | True jika nilai berbeda |
| !== | Not Identical | $x !== $y | True jika nilai atau tipe berbeda |
| > | Greater Than | $x > $y | True jika $x lebih besar |
| < | Less Than | $x < $y | True jika $x lebih kecil |
| >= | Greater Than or Equal | $x >= $y | True jika $x lebih besar atau sama |
| <= | Less Than or Equal | $x <= $y | True jika $x lebih kecil atau sama |
| <=> | Spaceship (PHP 7+) | $x <=> $y | -1, 0, atau 1 tergantung perbandingan |
🚀 Operator Spaceship (<=>) - PHP 7+
Operator spaceship mengembalikan:
- -1 jika $x < $y (lebih kecil)
- 0 jika $x == $y (sama)
- 1 jika $x > $y (lebih besar)
⚠️ Perbedaan == vs ===
4. Operator Increment dan Decrement
| Operator | Nama | Deskripsi |
|---|---|---|
| ++$x | Pre-increment | Increment $x dulu, lalu return nilai |
| $x++ | Post-increment | Return nilai dulu, baru increment $x |
| --$x | Pre-decrement | Decrement $x dulu, lalu return nilai |
| $x-- | Post-decrement | Return nilai dulu, baru decrement $x |
5. Operator Logika
| Operator | Nama | Contoh | Hasil |
|---|---|---|---|
| and | And (Dan) | $x and $y | True jika keduanya true |
| or | Or (Atau) | $x or $y | True jika salah satu true |
| xor | Xor (Exclusive Or) | $x xor $y | True jika salah satu true, tapi tidak keduanya |
| && | And | $x && $y | True jika keduanya true |
| || | Or | $x || $y | True jika salah satu true |
| ! | Not (Negasi) | !$x | True jika $x false |
6. Operator String
| Operator | Nama | Contoh | Hasil |
|---|---|---|---|
| . | Concatenation (Penggabungan) | $txt1 . $txt2 | Gabungan $txt1 dan $txt2 |
| .= | Concatenation Assignment | $txt1 .= $txt2 | Tambahkan $txt2 ke akhir $txt1 |
7. Operator Ternary dan Null Coalescing
Ternary Operator (?:)
Shorthand untuk if-else sederhana
Sintaks: $x = (kondisi) ? nilai_jika_true : nilai_jika_false;
Null Coalescing Operator (??) - PHP 7+
Mengembalikan nilai pertama jika exist dan not null, jika tidak gunakan nilai kedua
📝 Bekerja dengan String di PHP
String adalah salah satu tipe data yang paling sering digunakan dalam pemrograman PHP. PHP menyediakan banyak function dan fitur untuk manipulasi string.
Single Quote vs Double Quote
Perbedaan Penting:
- Single Quote (' '):
- Tidak meng-interpret variabel
- Tidak meng-interpret escape character (kecuali \' dan \\)
- Lebih cepat karena tidak perlu parsing
- Double Quote (" "):
- Meng-interpret variabel
- Meng-interpret semua escape character
- Sedikit lebih lambat karena perlu parsing
Escape Characters
| Code | Hasil | Deskripsi |
|---|---|---|
| \' | ' | Single Quote |
| \" | " | Double Quote |
| \$ | $ | Dollar Sign (untuk PHP variables) |
| \n | (new line) | Baris Baru / Line Feed |
| \r | (carriage return) | Carriage Return |
| \t | (tab) | Tab Horizontal |
| \\ | \ | Backslash |
| \f | (form feed) | Form Feed |
String Concatenation (Penggabungan String)
String sebagai Array
String di PHP dapat diakses seperti array, dimana setiap karakter memiliki index:
📋 Pengenalan Form Handling di PHP
Salah satu fungsi utama PHP adalah memproses data yang dikirim dari form HTML. Ada dua method HTTP yang paling sering digunakan: GET dan POST.
Perbedaan GET dan POST
| Aspek | GET | POST |
|---|---|---|
| Visibility | Data terlihat di URL | Data tersembunyi di request body |
| Security | Kurang aman (data exposed) | Lebih aman (data tidak terlihat) |
| Data Size | Terbatas (~2048 karakter) | Unlimited (tergantung server config) |
| Caching | Bisa di-cache | Tidak di-cache |
| Bookmark | Bisa di-bookmark | Tidak bisa di-bookmark |
| History | Tersimpan di browser history | Tidak tersimpan di history |
| Use Case | Search, filter, pagination | Login, registration, file upload |
Kapan Menggunakan GET?
Gunakan GET jika:
- Data bersifat public dan tidak sensitif
- Ingin user bisa bookmark URL dengan parameter
- Untuk search queries, filter, atau pagination
- Data yang dikirim sedikit (maksimal 2000 karakter)
- Request bersifat idempotent (tidak mengubah state server)
Contoh: Google Search, Filter produk, Pagination
Kapan Menggunakan POST?
Gunakan POST jika:
- Data bersifat sensitif (password, data pribadi)
- Mengirim data dalam jumlah besar
- Mengirim data kompleks (file, image, JSON)
- Request akan mengubah state server (create, update, delete)
- Tidak ingin data tersimpan di history browser
Contoh: Login form, Registration, Upload file, Payment
Contoh Form dengan Method GET
File: form-get.html
File: welcome-get.php
⚠️ Perhatikan URL setelah Submit!
Setelah klik submit, URL akan menjadi:
http://localhost/belajar-php/welcome-get.php?username=john&email=john@example.com
Data terlihat jelas di URL - ini TIDAK AMAN untuk data sensitif!
Contoh Form dengan Method POST
File: form-post.html
File: welcome-post.php
✅ Keuntungan POST
Setelah submit, URL tetap bersih:
http://localhost/belajar-php/welcome-post.php
Data username dan password TIDAK terlihat di URL. Lebih aman untuk data sensitif!
Validasi Input Form
Penting untuk selalu memvalidasi dan sanitize input dari user untuk mencegah security issues:
🔒 Security Tips untuk Form Handling:
- Gunakan POST untuk data sensitif - password, data pribadi, payment
- Selalu validasi input - cek tipe data, format, dan range
- Sanitize input - hapus karakter berbahaya dengan htmlspecialchars()
- Gunakan HTTPS - enkripsi data in transit
- Implementasi CSRF protection - gunakan token untuk validasi request
- Limit file upload size - cegah DoS attack
- Never trust user input - treat all input sebagai potentially malicious
📚 Referensi dan Sumber Belajar
🔗 Link Berguna untuk Belajar PHP:
- PHP Official Documentation: https://www.php.net/
- W3Schools PHP Tutorial: https://www.w3schools.com/php/
- PHP The Right Way: https://phptherightway.com/
- Laravel (PHP Framework): https://laravel.com/
- Composer (Package Manager): https://getcomposer.org/
🎯 Kesimpulan
Selamat! Anda telah mempelajari dasar-dasar PHP yang penting, mulai dari konsep server-side programming, instalasi environment, sintaks dasar, hingga form handling. Berikut adalah ringkasan poin-poin penting:
📝 Key Takeaways:
- Server-Side Programming berjalan di server untuk menangani logika bisnis dan pemrosesan data
- HTTP Request/Response adalah komunikasi dasar antara browser dan server
- PHP adalah bahasa server-side yang powerful, mudah dipelajari, dan masih sangat relevan
- Laragon/XAMPP menyediakan environment lengkap untuk development PHP
- Variabel di PHP dimulai dengan $ dan bersifat loosely typed
- Operator digunakan untuk manipulasi data (aritmatika, perbandingan, logika, dll)
- GET untuk data public, POST untuk data sensitif
- Validasi input adalah kunci untuk keamanan aplikasi

Komentar
Posting Komentar