Selamat datang di kursus Pemrograman Berorientasi Objek (OOP) dengan PHP!
Kursus ini dirancang untuk memberikan pemahaman yang kuat tentang konsep-konsep dasar dan lanjutan dari Object-Oriented Programming (OOP) menggunakan bahasa pemrograman PHP. Peserta akan belajar bagaimana merancang, membangun, dan mengelola aplikasi PHP yang scalable, modular, dan mudah dipelihara dengan menerapkan prinsip-prinsip OOP.
Kursus ini terdiri dari 16 pertemuan, termasuk Ujian Tengah Semester (UTS) pada pertemuan ke-8 dan Ujian Akhir Semester (UAS) pada pertemuan ke-16.
- Sistem Operasi: Windows 10/11, macOS 10.15+, atau Linux Ubuntu 18.04+
- RAM: Minimum 4GB (Rekomendasi 8GB)
- Storage: Minimum 5GB ruang kosong
- Koneksi Internet: Untuk download tools dan resources
Pilih salah satu dari opsi berikut:
Option A: XAMPP (Rekomendasi untuk Pemula)
- Download dari: https://www.apachefriends.org/
- Include: Apache, MySQL, PHP, phpMyAdmin
- Platform: Windows, macOS, Linux
Option B: WAMP (Windows only)
- Download dari: https://www.wampserver.com/
- Include: Apache, MySQL, PHP
Option C: MAMP (macOS/Windows)
- Download dari: https://www.mamp.info/
- Include: Apache, MySQL, PHP
Option D: Laravel Valet (macOS - Advanced)
- Untuk developer yang sudah familiar dengan command line
- Require: Homebrew, PHP, Composer
- Jika tidak menggunakan package di atas, install PHP secara terpisah
- Download dari: https://www.php.net/downloads
- Pastikan extension yang aktif:
mbstring,json,pdo,openssl
Visual Studio Code (Highly Recommended)
- Download dari: https://code.visualstudio.com/
- Extensions yang direkomendasikan:
- PHP Intelephense
- PHP Debug
- PHP DocBlocker
- Bracket Pair Colorizer
- Auto Rename Tag
- Live Server
- GitLens
Alternative Code Editors:
- PHPStorm (Paid, very powerful)
- Sublime Text
- Atom
- Vim/Neovim (Advanced)
- Google Chrome (Rekomendasi utama)
- Mozilla Firefox
- Microsoft Edge
- Safari (macOS)
- phpMyAdmin (included in XAMPP/WAMP/MAMP)
- MySQL Workbench
- HeidiSQL
- DBeaver
- Git: https://git-scm.com/
- GitHub Desktop (Optional): https://desktop.github.com/
- Composer: https://getcomposer.org/
- Node.js & NPM: https://nodejs.org/
- Download XAMPP dari website resmi
- Jalankan installer dan ikuti petunjuk
- Start Apache dan MySQL dari XAMPP Control Panel
- Test dengan membuka http://localhost di browser
- Download dan install VSCode
- Install extensions yang direkomendasikan
- Set PHP executable path di settings
# Buat folder project di htdocs (XAMPP)
C:\xampp\htdocs\php-oop-course\
# Atau di www (WAMP)
C:\wamp64\www\php-oop-course\
# Atau di htdocs (MAMP)
/Applications/MAMP/htdocs/php-oop-course/Buat file test.php di folder project:
<?php
phpinfo();
echo "<h1>PHP OOP Course - Ready to Start!</h1>";
echo "<p>PHP Version: " . PHP_VERSION . "</p>";
echo "<p>Server: " . $_SERVER['SERVER_SOFTWARE'] . "</p>";
?>Akses via: http://localhost/php-oop-course/test.php
- Download dan install Git
- Konfigurasi:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"cd C:\xampp\htdocs\
git clone https://github.com/mahendartea/php-oop-course.gitphp-oop-course/
βββ README.md
βββ pertemuan-01/
β βββ README.md
β βββ example.php
βββ pertemuan-02/
β βββ README.md
β βββ example.php
βββ ...
βββ pertemuan-16/
β βββ README.md
β βββ example.php
βββ assets/
β βββ images/
β βββ docs/
βββ final-project/
βββ crud-app/
- Port 80 sudah digunakan aplikasi lain (Skype, IIS)
- Solusi: Ganti port Apache ke 8080 atau stop aplikasi yang conflict
- PATH environment variable belum di-set
- Solusi: Tambahkan PHP directory ke PATH
- Port 3306 sudah digunakan
- Password MySQL belum di-set
- Solusi: Check port di my.ini atau ganti port
sudo chmod -R 755 /path/to/htdocs
sudo chown -R $USER:$USER /path/to/htdocs- PHP Manual: https://www.php.net/manual/
- W3Schools PHP OOP: https://www.w3schools.com/php/php_oop_what_is.php
- PHP The Right Way: https://phptherightway.com/
- Laracasts PHP OOP: https://laracasts.com/series/object-oriented-principles-in-php
- Buat issue di GitHub repository
- Join Discord/Slack community (jika ada)
- Email instructor untuk bantuan lebih lanjut
Kursus ini dibagi menjadi 4 modul utama dengan progression yang sistematis:
Membangun pemahaman dasar tentang konsep Object-Oriented Programming
-
Pertemuan 01: π― Pengenalan OOP, Class, dan Object
- Objektif: Memahami paradigma OOP, membuat class pertama, dan instantiasi object
- Output: Mampu membuat class sederhana dengan property dan method dasar
-
Pertemuan 02: π§ Properti dan Method
- Objektif: Menguasai property dan method, parameter, return value
- Output: Membuat class dengan method yang kompleks dan property yang terstruktur
-
Pertemuan 03: ποΈ Constructor dan Destructor
- Objektif: Memahami lifecycle object, initialization, dan cleanup
- Output: Implementasi constructor untuk setup object dan destructor untuk cleanup
-
Pertemuan 04: 𧬠Inheritance (Pewarisan)
- Objektif: Menguasai konsep pewarisan, parent-child relationship
- Output: Membuat hierarchy class dengan inheritance yang efektif
Menguasai prinsip encapsulation dan abstraction untuk code yang robust
-
Pertemuan 05: π Visibility (Public, Private, Protected)
- Objektif: Memahami access modifier, data hiding, encapsulation
- Output: Implementasi proper encapsulation dengan getter/setter
-
Pertemuan 06: π¨ Abstract Class dan Method
- Objektif: Menguasai abstraction, template method pattern
- Output: Membuat abstract class sebagai blueprint untuk inheritance
-
Pertemuan 07: π Interface
- Objektif: Memahami contract programming, multiple inheritance alternative
- Output: Implementasi interface untuk loose coupling
- Pertemuan 08: Ujian Tengah Semester (UTS)
- Cakupan: Semua materi Modul 1 & 2 (Pertemuan 1-7)
- Format: Teori + Praktik coding + Studi kasus
Menguasai fitur-fitur advanced untuk aplikasi yang scalable
-
Pertemuan 09: β‘ Static Properties dan Methods
- Objektif: Memahami static context, utility methods, shared data
- Output: Implementasi static untuk helper class dan shared resources
-
Pertemuan 10: π§© Traits
- Objektif: Menguasai code reuse horizontal, mixin pattern
- Output: Membuat trait untuk shared functionality across classes
-
Pertemuan 11: π¦ Namespaces dan Autoloading
- Objektif: Organisasi code, menghindari name collision, lazy loading
- Output: Struktur project dengan namespace dan autoloader
Implementasi design patterns dan best practices untuk aplikasi real-world
-
Pertemuan 12:
β οΈ Error Handling dan Exception- Objektif: Menguasai exception handling, custom exception, debugging
- Output: Robust error handling system untuk aplikasi production
-
Pertemuan 13: ποΈ Prinsip SOLID
- Objektif: Memahami 5 prinsip SOLID untuk clean architecture
- Output: Refactoring code untuk compliance dengan SOLID principles
-
Pertemuan 14: π― Design Patterns (Creational & Structural)
- Objektif: Implementasi Singleton, Factory, Observer, Decorator patterns
- Output: Aplikasi design patterns untuk solving common problems
-
Pertemuan 15: πΌ Studi Kasus: Aplikasi CRUD dengan OOP
- Objektif: Integration semua konsep dalam aplikasi real-world
- Output: Full-stack CRUD application dengan proper OOP architecture
- Pertemuan 16: Ujian Akhir Semester (UAS)
- Cakupan: Comprehensive - Semua materi course (Pertemuan 1-15)
- Format: Project-based assessment + Teori mendalam + Code review
Basic OOP β Encapsulation β Advanced Features β Design Patterns β Real Application
β β β β β
Pertemuan Pertemuan Pertemuan Pertemuan Pertemuan
1-4 5-7 9-11 12-14 15
β β β β β
UTS (8) Integration Namespace & SOLID & Final Project
& Practice Autoloading Patterns & UAS (16)
Setelah menyelesaikan course ini, peserta akan mampu:
-
Fundamental Mastery
- Menguasai semua konsep dasar OOP (Class, Object, Inheritance, Encapsulation, Polymorphism)
- Menulis code PHP yang clean, maintainable, dan scalable
-
Advanced Implementation
- Menggunakan design patterns untuk solving complex problems
- Menerapkan SOLID principles dalam development
- Membuat aplikasi dengan proper error handling
-
Professional Development
- Mengorganisir project dengan namespace dan autoloading
- Menggunakan modern PHP features dan best practices
- Membuat aplikasi full-stack dengan OOP architecture
-
Real-world Application
- Membangun aplikasi CRUD yang production-ready
- Menerapkan semua konsep OOP dalam project nyata
- Melakukan code review dan refactoring
Wajib:
- Pemahaman basic PHP (variables, functions, arrays, control structures)
- Pengalaman dengan HTML/CSS dasar
- Familiar dengan database concepts (MySQL)
Recommended:
- Pengalaman dengan web development
- Basic understanding of software design
- Familiar dengan command line operations