Tutorial PHP Native Lengkap untuk Pemula (Full Guide + Contoh Kode Lengkap + CRUD MySQL & Login Register)
(Cocok untuk Artikel SEO Panjang / WordPress)
PHP adalah salah satu bahasa pemrograman backend paling populer untuk kebutuhan web development. Banyak website besar seperti Facebook, Wikipedia, hingga WordPress dibangun dengan PHP. Pada artikel ini kita akan belajar dasar-dasar PHP dari nol hingga membuat aplikasi CRUD produk lengkap beserta upload gambar, keamanan dasar, serta fitur login dan register.
Konten pada artikel ini:
-
Apa itu PHP?
-
Sintaks dasar PHP
-
Tipe data dalam PHP
-
Variabel dalam PHP
-
Menampilkan single data
-
Menampilkan data range (array)
-
Manipulasi array (merge, split, splice, dan lainnya)
-
Looping (for, foreach, while)
-
Logika (if, else, switch)
-
Session pada PHP
-
Dasar-dasar MySQL
-
SQL Join dan pengertiannya
-
Membuat CRUD Produk dengan Upload Gambar
-
Menambahkan fitur Login & Register
-
Keamanan dasar (validation, hashing, prepared statement)
1. Apa Itu PHP?
PHP (Hypertext Preprocessor) adalah bahasa pemrograman yang berjalan di sisi server (server-side). Artinya, pemrosesan kode terjadi di server dan outputnya dikirim ke browser pengguna.
Kelebihan PHP:
-
Mudah dipelajari
-
Banyak dokumentasi
-
Integrasi kuat dengan MySQL
-
Cocok untuk pemula hingga profesional
-
Banyak hosting mendukung PHP
1. Pengenalan & Persiapan
Untuk mengikuti tutorial ini siapkan:
-
PHP 7.4+ (disarankan PHP 8.x)
-
Web server (Apache / Nginx) atau XAMPP/LAMP/WAMP/MAMP
-
MySQL / MariaDB
-
Editor: VSCode / Sublime / PHPStorm
File contoh nanti menggunakan PHP procedural dengan PDO (lebih aman) dan HTML form standar.
2. Sintaks dasar PHP & tipe data
Catatan: PHP adalah weakly typed — variabel tidak perlu dideklarasikan tipe secara eksplisit.
3. Variabel & Menampilkan Data
Variabel
Menampilkan single data dari array / DB
Menampilkan rentang data (misal hasil query)
Umumnya kita fetch banyak baris lalu loop.
4. Array & Manipulasi Array
Membuat array
Merge (array_merge)
Split (explode) — memecah string menjadi array
Join (implode) — array ke string
Splice (array_splice) — hapus/insert pada posisi
Lain-lain
-
array_sliceuntuk mengambil sebagian array -
array_map,array_filter,array_reduceuntuk functional-style processing
5. Looping
for
foreach
while / do-while
6. Struktur Kontrol: if, switch
If / else
Switch
7. Session & Autentikasi Dasar
Memulai session
Mengecek login & logout
Keamanan: selalu regenerasi session id saat login sukses:
8. MySQL: Dasar & JOIN (penjelasan singkat)
Contoh membuat database & tabel (SQL)
Query dasar
-
SELECT:
SELECT * FROM products WHERE price > 100; -
INSERT:
INSERT INTO products (name, price) VALUES ('A', 100.00); -
UPDATE:
UPDATE products SET price=120 WHERE id=1; -
DELETE:
DELETE FROM products WHERE id=1;
JOIN (penjelasan)
JOIN menggabungkan baris dari dua (atau lebih) tabel berdasarkan kondisi:
-
INNER JOIN — hanya baris yang cocok di kedua tabel
-
LEFT JOIN — semua baris dari tabel kiri + cocok dari kanan (jika ada)
-
RIGHT JOIN — semua baris dari tabel kanan + cocok dari kiri
-
CROSS JOIN — hasilkan kombinasi Cartesian (semua kombinasi)
-
SELF JOIN — join tabel dengan dirinya sendiri
9. Contoh Lengkap: CRUD Produk dengan Gambar + Login/Register (PHP Native + PDO)
Catatan: Contoh berikut minimal dan praktis. Untuk produksi, tambahkan validasi tambahan, logging, rate limiting, HTTPS, dsb.
Struktur file (saran)
config.php (koneksi PDO)
init.php
functions.php (beberapa helper)
register.php (form + proses)
login.php
products/index.php (list produk)
products/create.php (form + upload gambar)
products/edit.php (edit + ganti gambar sederhana)
products/delete.php
products/view.php
10. Praktik Keamanan Penting (ringkasan)
-
Gunakan prepared statements (PDO) untuk mencegah SQL Injection — sudah dipakai di contoh.
-
Hash password dengan
password_hash()dan verifikasi denganpassword_verify()— contoh register/login. -
Validasi & sanitasi input (client-side + server-side).
-
Batasi ukuran & tipe file upload, verifikasi MIME type & ekstensi. Simpan gambar di folder yang tidak dieksekusi (atau atur
.htaccessuntuk melarang eksekusi PHP). -
Regenerasi session ID setelah login (
session_regenerate_id(true)) dan gunakansession_start()di awal. -
CSRF token di form (sederhana di contoh). Untuk produksi gunakan library yang matang.
-
Gunakan HTTPS di server produksi.
-
Escape output menggunakan
htmlspecialchars(fungsiesc()pada contoh). -
Simpan konfigurasi di file terpisah dan jangan commit ke public repo (gunakan .env atau secret manager).
-
Batasi error display di production (display_errors = Off), log saja.










