Skip to main content

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() dan statususia()

  • 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 $nama di 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:

  1. Membuat class & object

  2. Property & method

  3. Access modifier (public/private/protected)

  4. Enkapsulasi dengan getter/setter

  5. Constructor & destructor

  6. 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