TUTORIAL by ChatGPT: MODUL PEMBELAJARAN PRAKTIS Object Oriented Programming/Pemrograman Berorientasi Obyek dengan Bahasa Pemrograman PHP
FILE-FILE LAMPIRAN
📘 MODUL PEMBELAJARAN PRAKTIS OOP (PHP) — LEVEL PEMULA
Hybrid Structure (Bab Tematik + Referensi File Latihan)
Semua contoh kode bersumber dari file latihan Anda dan disertai sitasi seperti:
``
BAB 1 — Pengenalan OOP
Object-Oriented Programming (OOP) adalah cara penulisan program dengan konsep objek (object) dan class.
Dalam PHP, OOP membantu membuat kode lebih terstruktur, mudah dipelihara, dan dapat dikembangkan.
Konsep dasarnya:
-
Class = blueprint (cetakan)
-
Object = hasil dari class
-
Property = variabel milik class
-
Method = fungsi milik class
BAB 2 — Class & Object
📌 Contoh dari latihan1.php
File ini menunjukkan dasar OOP: membuat class, membuat object, mengisi property, dan menampilkan output.
Pada file tersebut terdapat:
-
class orang
-
property:
$nama,$umur -
method:
berbicara()danstatususia() -
object:
$objOrang = new orang();
Intinya:
Class adalah cetakan data & perilaku, sedangkan object adalah instance (hasil nyata) dari class itu.
📌 Pengayaan dari latihan2.php
File ini menampilkan lebih dari satu object dari class yang sama: $objOrang dan $objOrang2.
Konsep yang dipelajari:
-
Satu class dapat menghasilkan banyak object.
-
Setiap object memiliki nilai property masing-masing.
BAB 3 — Property & Method
📌 Contoh dari latihan3.php
Class mahasiswa memiliki:
-
property:
$nim,$nama,$nilai -
method:
prosesNilai()yang menampilkan ketiga property tersebut
Di sini Anda belajar:
-
Cara menggunakan
$this->property -
Cara membuat method untuk memproses data
BAB 4 — Enkapsulasi (Encapsulation)
Enkapsulasi = menyembunyikan data agar tidak bisa diakses sembarangan.
📌 Contoh dari latihan4.php (akses private → error)
Properti $nim, $nama, $nilai dibuat private.
Lalu object mencoba mengakses:
$objMhs->nim = '122001321'; // tidak boleh
Ini akan menghasilkan error.
Pelajaran penting:
Property private hanya bisa diakses di dalam class, bukan dari luar.
📌 Contoh dari latihan5.php (getter & setter)
Solusi enkapsulasi → gunakan setter dan getter:
-
setNim(),setNama(),setNilai() -
getNim(),getNama(),getNilai()
Inilah praktik enkapsulasi yang benar.
BAB 5 — Access Modifier
Dalam PHP ada 3 jenis:
-
public → dapat diakses dari mana pun
-
private → hanya di dalam class sendiri
-
protected → di class sendiri dan turunan (inheritance)
📌 Contoh dari latihan6.php (protected)
Property $nim, $nama, $nilai dibuat protected.
Seperti private, tetapi:
-
tetap tidak bisa diakses langsung dari object
-
bisa diakses oleh class turunan (inheritance)
Inilah konsep yang menjadi jembatan menuju bab berikutnya.
BAB 6 — Constructor & Destructor
Constructor = kode otomatis yang dijalankan saat object dibuat.
Destructor = kode otomatis saat object dihapus.
📌 Contoh dari latihan7.php
Class orang memiliki:
-
__construct($nama)→ menampilkan pesan saat object dibuat -
__destruct()→ menampilkan pesan saat object dihapus
Pelajaran penting:
-
Constructor cocok untuk inisialisasi data awal.
-
Destructor cocok untuk proses “pembersihan”.
📌 Contoh dari latihan8.php
Class Nilai memiliki:
-
Constructor yang menginisialisasi nilai awal: tugas=0, uts=0, uas=0
-
Method setter dengan validasi
-
Destructor yang menampilkan pesan saat object dihapus
Ini memperlihatkan constructor/destructor dalam skenario nyata.
BAB 7 — Inheritance (Pewarisan)
Inheritance = class turunan mewarisi property & method class induk.
📌 Contoh dari latihan9.php
Class:
-
OrangTua
-
Anak extends OrangTua
Object dari class Anak dapat memanggil:
-
helloOrangTua()→ dari parent -
helloAnak()→ dari class Anak sendiri
Konsep inti:
Class turunan otomatis mewarisi semua method/properti publik dari parent.
📌 Contoh dari latihan10.php
Perbedaan penting di sini:
-
property
$namadi parent bersifat protected
→ maka class Anak boleh mengaksesnya, tapi object dari luar tidak boleh.
Method cetakNamaOrt() di Anak menampilkan:
Nama Orang Tua : $this->nama
Ini contoh nyata bagaimana protected dipakai dalam inheritance.
BAB 8 — Studi Kasus Mini (Menggabungkan Semua Konsep)
Dari seluruh file latihan, Anda telah mempelajari:
-
Membuat class & object
-
Property & method
-
Access modifier (public/private/protected)
-
Enkapsulasi dengan getter/setter
-
Constructor & destructor
-
Inheritance
Untuk latihan lanjutan, Anda bisa membuat sistem OOP kecil:
-
Class
Mahasiswa -
Class
Nilai -
Class
MahasiswaAktif extends Mahasiswa -
Menggunakan constructor untuk set data awal
-
Menggunakan getter/setter untuk keamanan data
-
Menggunakan inheritance untuk menambah fitur
(Silakan minta jika ingin dibuatkan contoh studi kasus tersebut.)
📚 PENUTUP
Modul ini memberikan dasar yang kuat untuk memahami OOP di PHP berdasarkan 10 file latihan Anda.
Jika Anda ingin:
-
versi PDF
-
versi slide
-
versi latihan soal
-
studi kasus lengkap
-
atau modul tingkat lanjut
Cukup beri tahu saya — saya bisa lanjutkan.
Baik! Berikut saya tambahkan BAB 9 — Latihan Soal yang sesuai dengan tingkat pemula dan langsung terkait dengan contoh dalam 10 file latihan.
Soal dibuat bertahap, dari mudah → sedang → agak menantang.
📘 BAB 9 — LATIHAN SOAL OOP (LEVEL PEMULA)
Semua soal dibuat agar Anda berlatih konsep yang muncul di latihan1.php sampai latihan10.php.
A. SOAL DASAR (Class & Object)
1. (Konsep dari latihan1 & latihan2)
Buat class Buku dengan property:
-
judul
-
penulis
-
tahun
Lalu buat dua object berbeda dan tampilkan nilainya.
Tujuan: Latihan membuat class & object dasar.
2. (Konsep dari latihan3)
Buat class Produk dengan property:
-
kode
-
nama
-
harga
Buat method info() yang menampilkan ketiga property tersebut.
Tujuan: Latihan method sederhana menggunakan
$this->…
B. SOAL ENKAPSULASI (private, getter, setter)
3. (Konsep dari latihan4 & latihan5)
Buat class User dengan property private:
-
username
-
password
Tambahkan:
-
setter untuk mengisi username dan password
-
getter untuk mengambil username
-
method login() yang memeriksa apakah password benar (misal password = “admin123”)
Tujuan: Memahami enkapsulasi & penggunaan getter/setter.
4. (Penerapan validasi, konsep latihan8)
Buat class SkorGame dengan property private:
-
skor (0–100)
Buat setter yang:
-
hanya menerima nilai valid 0–100
-
menolak nilai lain
Tujuan: Mengimplementasikan validasi pada setter.
C. SOAL ACCESS MODIFIER (protected)
5. (Konsep dari latihan6)
Buat class AkunBank dengan property protected:
-
saldo
Buat class AkunTabungan yang mewarisi AkunBank dan memiliki method:
-
setor($jumlah) -
ambil($jumlah)
Syarat:
-
saldo tidak boleh negatif
Tujuan: Latihan protected + inheritance dasar.
D. SOAL CONSTRUCTOR & DESTRUCTOR
6. (Konsep dari latihan7)
Buat class Server dengan constructor yang menampilkan:
“Server dimulai…”
Dan destructor menampilkan:
“Server dimatikan…”
Lalu buat minimal 2 object dari class tersebut.
Tujuan: Latihan memahami kapan constructor & destructor berjalan.
7. (Konsep dari latihan8)
Buat class NilaiSiswa dengan:
-
constructor yang mengisi nilai awal = 0
-
setter untuk tugas, uts, uas
-
method hitungAkhir() dengan bobot:
-
tugas 20%
-
uts 30%
-
uas 50%
-
Tujuan: Meniru fitur class Nilai (latihan8.php).
E. SOAL INHERITANCE (Pewarisan)
8. (Konsep dari latihan9)
Buat dua class:
-
Hewan → method suara()
-
Kucing extends Hewan → method suaraKucing()
Buat object dari class Kucing dan panggil kedua method.
Tujuan: Turunan dapat memakai method parent.
9. (Konsep dari latihan10 — akses protected di inheritance)
Buat class:
-
Karyawan dengan property protected:
$nama -
Manager extends Karyawan
-
tambah method
tampilkanNama()untuk menampilkan property$nama
-
Buat object dari class Manager dan tampilkan namanya melalui method tersebut.
Tujuan: Meniru file latihan10 yang mengakses protected dari class turunan.
F. SOAL MINI-PROJECT (Menggabungkan Semua Konsep)
10. MINI PROJECT — “Sistem Mahasiswa Sederhana”
Buat sistem dengan ketentuan:
Class Mahasiswa
Property:
-
nim (private)
-
nama (private)
Method:
-
setter & getter untuk keduanya
Class Nilai
Property:
-
tugas
-
uts
-
uas
(semua private dengan setter validasi 0–100)
Method:
-
hitung nilai akhir (20% + 30% + 50%)
-
tampil()
Class MahasiswaAktif extends Mahasiswa
Property tambahan:
-
semester (protected)
Method:
-
constructor mengisi nim, nama, semester
-
tampilProfil()
Output yang diharuskan:
-
Profil mahasiswa
-
Nilai tugas, uts, uas
-
Nilai akhir
-
Semua menggunakan enkapsulasi & inheritance
Tujuan: Menggabungkan seluruh konsep OOP latihan1–latihan10.
Comments