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

Popular posts from this blog

PART 0.1.0 RAD PROTOTYPE Web-App: Post-Video & Comments [program]

Video List — JP Kanji Ultra Translation CONTROL SECTION — Login (Admin) Username: Password: Login CONTROL SECTION — Admin Panel Enable Comments Disable Comments Logout Activity Log Show Video COMMENTS DISABLED BY ADMIN Leave a Comment: Additional Comment Show Video COMMENTS DISABLED BY ADMIN Leave a Comment: Additional Comment Show Video COMMENTS DISABLED BY ADMIN Leave a Comment: Additional Comment Show Video COMMENTS DISABLED BY ADMIN Leave a Comment: Additional Comment

My Pending and Delayed POSTs SUMMARY [APPs]
MADE by ChatGPT

🔗 My Pending and Delayed POSTs SUMMARY Sort by Date Sort by Auto Title Sort by My Title Ascending Descending (Newest First) Insert URL: Your Own Title (Optional): Status: Pending Done ➕ ADD ENTRY 💾 SAVE EDIT (MAIN FORM) DATE / TIME AUTO TITLE MY TITLE STATUS URL ACTIONS 📝 TO DO LIST SUMMARY Sort by Date Sort by Header Sort by Detail ...

Tablet Holder di Mobil dan Konsep DOUBLE Tablet Holder aka +secondary supporting holder

Gw udah pasang Holder khusus Tablet yg menurut gw sudah pilihan terbaik! Karena memiliki Arm KERAS/RIGID yg dibutuhkan utk menggenggam ERAT Dalam hal menopang Tablet yg lebih berat dr HP biasa Cekidot Lapak (click here!!) Namun .. Setelah gw pasang Bukan tidak bagus Tapi kalau melewati jalan jelek GOYANG (sikit) juga Gan! Akan tetapi .... Gw rasa bisa makin dimaksimalkan KERIGIDAN dengan menambah PENOPANG KEDUA Check it out: Dari searching2 di MarketPlace Gw ketemu yg mirip holder lampu belajar zaman doeloe Dan .. namun .. tiba2 gw menemukan Ide (lanjutan) Mekanisme yg bisa diReApplied kalau suatu saat diperlukan di Kreasi Agan2 lain  Gunakan Kombo 2 Perangkat berikut apabila membutuhkan holdingan tablet tambahan yg memiliki  "hold area"  yg lebih sempit karena holder kedua "takutnya/dirasa" tidak akan muat utk menggenggam Tablet sebagai penopang kedua, sebagai akibat holder pertama/utama sudah "cukup banyak" memakan tempat Perangkat Pertama (kon...