📐 Blueprint Program

Pengenalan Object-Oriented Programming (OOP)

Fondasi Menuju Computer Vision

🧠 Teori: Kenapa Harus OOP?

Sejauh ini, kita menulis kode dari atas ke bawah. Tapi bayangkan di dunia nyata, sebuah program Computer Vision harus memantau 5 kamera sekaligus. Jika kita menggunakan cara biasa, kode kita akan berantakan!

Object-Oriented Programming (OOP) mengubah cara pikir kita. Alih-alih menulis urutan perintah, kita membuat Objek virtual.

Di Computer Vision, semuanya adalah Objek. Kamera adalah objek, gambar wajah adalah objek, filter warna adalah objek. Masing-masing objek punya sifat dan fungsinya sendiri.

🏭 Class dan Object

Ada dua konsep utama yang harus ditanamkan kuat-kuat di kepalamu:

🧬 Atribut & Method (Nyawa sebuah Objek)

Setiap cetakan (Class) memiliki dua hal penting:

class Kamera:
    # __init__ adalah fungsi spesial untuk memberi nilai awal (Atribut)
    def __init__(self, merek):
        self.merek = merek

    # Ini adalah Method (Kemampuan)
    def ambil_foto(self):
        print("Cekrek! Foto diambil oleh kamera", self.merek)

Penting: Kata kunci self wajib ditulis pertama kali di dalam fungsi Class. self berarti objek itu sedang menunjuk kepada dirinya sendiri.

🧩 Latihan 1: Membuat Cetakan Objek (Blueprint)

Misi: Lengkapi kode Blueprint `KameraScanner` di bawah ini. Pastikan atribut resolusi tersimpan, dan buat kemampuan (method) mendeteksi wajah.

class KameraScanner:
    # 1. Lengkapi parameter wajib pertama pada fungsi __init__
    def __init__(____, resolusi):
        # Simpan data resolusi ke dalam atribut objek
        ____.resolusi = resolusi
        self.status = "Mati"
        
    # 2. Buat method untuk mendeteksi sesuatu
    def deteksi_wajah(____):
        if self.status == "Aktif":
            print("Wajah terdeteksi di resolusi", self.resolusi)
        else:
            print("Kamera belum dinyalakan!")

🧩 Latihan 2: Mencetak dan Menjalankan Objek

Misi: Blueprint sudah siap. Sekarang kita akan "mencetak" benda nyatanya dan menjalankan kemampuannya!

# 1. Mencetak objek nyata dari Class KameraScanner
# (Berikan resolusi "1080p" ke dalam kurung)
kamera_depan = ____("1080p")

# 2. Ubah atribut 'status' milik kamera_depan menjadi "Aktif"
____.status = "Aktif"

# 3. Panggil method 'deteksi_wajah' dari kamera_depan
____.____()

🚀 Kode Lengkap: Simulator Kamera CV

Satukan semuanya! Dengan OOP, kita bisa membuat puluhan kamera tanpa perlu mengulang-ulang menulis fungsi. Inilah kekuatan sejati Python!

class KameraScanner:
    def __init__(self, nama, resolusi):
        self.nama = nama
        self.resolusi = resolusi
        self.status = "Mati"
        
    def nyalakan(self):
        self.status = "Aktif"
        print(self.nama, "telah dinyalakan.")
        
    def deteksi_wajah(self):
        if self.status == "Aktif":
            print("[" + self.nama + "] Wajah terdeteksi! (Res:", self.resolusi + ")")
        else:
            print("[" + self.nama + "] Error: Kamera mati.")

# Mencetak DUA objek sekaligus dari satu Blueprint yang sama!
cam_utama = KameraScanner("Cam 1", "4K")
cam_cctv = KameraScanner("CCTV Parkiran", "720p")

cam_utama.nyalakan()
cam_utama.deteksi_wajah()
cam_cctv.deteksi_wajah() # Ini akan error karena belum dinyalakan!
1 / 7