OOP dalam Aplikasi Desktop


🎯 1. Pengantar OOP (Object-Oriented Programming)

https://images.openai.com/static-rsc-4/tQvoJp186soXGjPzIHtlD9nHzzzDNMERESw5ok0pC9_9gIBkSf7yrG75i1S2ez5_fDrodp30fL9wcclg2uMmWGJ6tZ_rL-26XH1xRK4Azm27QTQiTWrQ10PnvXGr9si2SD7LHHxrIrodVWizRIoCnjto60rlR0TTUIfvtjHH5yNubbp4FyssJQiyoxkv0sQx?purpose=fullsize
https://images.openai.com/static-rsc-4/F9x6km6OFu1G4sMaMdV6ZYQiaRPKSYJ9QSiWA-_kzMKaZSjv-JLHl4K1DGVAxihvuE3yS9FGb2CEamD0qsNqMoVpB3PsAUVqquVggm7ulU1Ma1JraQu7YHLGQo0Dt81UwGxSw-6izlKc8_qN7x5_SfKBtpdJUsNG4M03i0dyXRKcK7-Zgzs-Bqt2Zr7IeGYi?purpose=fullsize
https://images.openai.com/static-rsc-4/to4GbogA8LmVefp_pL1ouDedSg23ksPt-FH4s1AoVdhOQXjPmtaEjMgGpylK5k-dbBTizgoRtKVSSB_lNHXQAD_6cnEm7dTjXJ8WoPspgQov8xPMSyMXbC5npabc-nnZ0zm7kT7dbpXC67mRjpxy3XVNSAnKkBClsJqKBjDQoXXOw6fBQabralG0Njh5NVgs?purpose=fullsize

7

πŸ“– Deskripsi

Object-Oriented Programming (OOP) adalah paradigma pemrograman yang berfokus pada objek, yaitu representasi dari entitas dunia nyata yang memiliki data (atribut) dan perilaku (method).

🧠 Narasi

Daripada menulis kode panjang tanpa struktur, OOP membantu kita membangun aplikasi seperti menyusun β€œlego”: tiap bagian kecil (objek) punya fungsi jelas dan bisa digabung menjadi sistem besar.


🧩 2. Konsep Dasar OOP

πŸ“Š Tabel Konsep

KonsepPenjelasanContoh
ClassBlueprintMahasiswa
ObjectInstanceAndi, Budi
AttributeDatanama, nim
MethodFungsitampilkanData()

🧠 Narasi

  • Class = cetakan
  • Object = hasil cetakan
    πŸ‘‰ Satu class bisa menghasilkan banyak object

🧱 3. Pilar OOP

https://images.openai.com/static-rsc-4/50qrp6UbYiREtWCUYySWRY9ho5KRBL2j2w7vgGcc6KahQQY7jFEbV_y0ak6VkymVlG8qAFd5l7Jvr4czT8YEflR8DL5qKHlt5qpJXQeN7c8dD8S8MbvCXJBQqbSbs1KaaDWAa-TL4idmwGKRQ0q_OKeayEquDlgyRT0TYHuZR4LxkAVIYhX_03EvLitR73nA?purpose=fullsize
https://images.openai.com/static-rsc-4/-Hm8mB6sxx1v8gl6mzgeG88DKWGlD33qX6U4D7ZyiGO5BJA9DGVBACQWN_0wYYftXhObJBmNB6bYSQEhRV8Er937-NAbuld69asZNYCnXarAUlHYMuK1qJ4-UHUGq2VC-wG5Z6wkHdq8B1nps1lMejmVwOAlhvJDSy1rV5j-LJbxm-J4KGdJrmP0XDswEXrZ?purpose=fullsize
https://images.openai.com/static-rsc-4/gY4nOxegF2a56zHaFI2-UAF9HNFhWxbIr34kYq6hdP6nDkTlYSNZensl8G7o-QAAorS_zeL5lmf7dk0lgsvUsMbVK4v43Ava_DOvcvWbwbxnxlMFFJPWHjVezBiVegDGFXU7llBY63I-kxytZx3kKfkdPA0hJm9YSpksMCo5HFu3h4JBuy20BHVZdWwmqSjB?purpose=fullsize

6

πŸ“Œ 4 Pilar OOP

  1. Encapsulation
  2. Inheritance
  3. Polymorphism
  4. Abstraction

🧠 Narasi

Empat pilar ini membuat kode:

  • Lebih aman
  • Lebih fleksibel
  • Mudah dikembangkan

πŸ”’ 4. Encapsulation

πŸ“– Deskripsi

Menyembunyikan data dan hanya mengakses melalui method.


πŸ’» Contoh

class Mahasiswa:
def __init__(self, nama):
self.__nama = nama # private

def get_nama(self):
return self.__nama

🧠 Narasi

Encapsulation melindungi data agar tidak diubah sembarangan.


πŸ”— 5. Inheritance

πŸ“– Deskripsi

Class dapat mewarisi sifat dari class lain.


πŸ’» Contoh

class User:
def login(self):
print("Login user")

class Admin(User):
def akses(self):
print("Akses admin")

🧠 Narasi

Inheritance menghindari duplikasi kode.


πŸ”„ 6. Polymorphism

πŸ“– Deskripsi

Satu method bisa memiliki banyak bentuk.


πŸ’» Contoh

class Hewan:
def suara(self):
print("Suara hewan")

class Kucing(Hewan):
def suara(self):
print("Meong")

🧠 Narasi

Polymorphism membuat program lebih fleksibel.


🧠 7. Abstraction

πŸ“– Deskripsi

Menyembunyikan detail kompleks dan hanya menampilkan yang penting.


🧠 Narasi

User tidak perlu tahu bagaimana sistem bekerja, cukup tahu cara menggunakannya.


πŸ–₯️ 8. OOP dalam Aplikasi Desktop

https://images.openai.com/static-rsc-4/YXqlpxSkher3DRcWSXhRdRxNRz5WzvEMTYtjzsifHDMw3l_3D5TVRn8L1Nxxflx2sK3-LfIy5cR6N29A0-gN35-KLT-MzyoJ5i6h_M8GTIkO03fEutpz8O0yxA7XwMxRTQNUpOpnMxMWxphe2WXhqVQv7g3WHUZ4pcTTjMV9PmYHHlqhb2UuASM56ccvV47U?purpose=fullsize
https://images.openai.com/static-rsc-4/VOBHQme-koURdVFG0MPZr_ixHrFmHaUYshZU7PIuFRFf1g70ZmvZ1e43gzUkWDXe47clOtJkTJTo71vIZHlT1VbFVVijnnPOyK8fHz3KVTuf6QwTv294GLmq2HYZgvckxOUDsQBiQaZRHSp5n1wXLScmK9N3XTdc9UB2N4_TnAbpSHE0No9ukmDi-4w08xD4?purpose=fullsize
https://images.openai.com/static-rsc-4/rqIZO8S18dNcfEuJq3niPJ6pv_-nhDmTLc8Bie-4plbZQvByK9EYXBCNP7bWOvMi08kzHF_R-2iLMicpLEb_NtIJl80aLCXVbTNB3QO2tths4w6bPsgQDsVeflPLZ-y9_p9O5aX6XAm7P2WEFQw1t-UeXMdaXicTVEOpql3ukM6R_O4nEaFWcrzPGssYx4r4?purpose=fullsize

7

πŸ“– Implementasi

  • Class untuk GUI
  • Class untuk logic
  • Class untuk database

🧠 Narasi

OOP membantu memisahkan:

  • Tampilan (UI)
  • Proses (Logic)
  • Data (Model)

πŸ§ͺ 9. Tutorial Praktikum: OOP GUI (Python Tkinter)

🎯 Studi Kasus

Aplikasi GUI berbasis class


πŸ’» Contoh

import tkinter as tk

class Aplikasi:
def __init__(self, root):
self.root = root
self.root.title("OOP GUI")

self.label = tk.Label(root, text="Masukkan Nama")
self.label.pack()

self.entry = tk.Entry(root)
self.entry.pack()

self.button = tk.Button(root, text="Klik", command=self.tampil)
self.button.pack()

self.hasil = tk.Label(root, text="")
self.hasil.pack()

def tampil(self):
nama = self.entry.get()
self.hasil.config(text="Halo " + nama)

root = tk.Tk()
app = Aplikasi(root)
root.mainloop()

🧠 Penjelasan

  • class Aplikasi β†’ representasi program
  • __init__ β†’ konstruktor
  • Method tampil() β†’ event handler

πŸ—οΈ 10. Class Diagram

https://images.openai.com/static-rsc-4/KiCPo7-wD4mN1wRdURHG9SfifMyVSMcs63xP3_TtC_3Ds9AEBchbfj2VlqEndmCLVkuIVKsDPQOQhxWmIVsj3NAX5B5Fb5B2bySpyAvR3hyeT96zueZW7r2r1VG90wANbHpzVBmHUsRyLitFbB_Rv3HpEoK73LO9YANpmmaNAa0PhLOQJPDghefOwvDccuQq?purpose=fullsize
https://images.openai.com/static-rsc-4/O3JClVrfEO-mUjtxZby88jQgMd6pIdg68YQvFkvKEiicqxiKGHYC8MBf9vATzi4HErEjW4kC7kbbHKmg1LqHHeSF0Km17JHK5MNoa61dUgQCbP0lK4f8v7y0GtbRg_ZigaahdUWDVMzgOuSDOFxjxeT6f9OQ6seYK9r40QmmS5j50sMZb4g_Bp06ux7aw3yB?purpose=fullsize
https://images.openai.com/static-rsc-4/LoqrBeIdWv9UIODuCDP7UkjXbBLxLe8jWrqj-Gv8ytck4bKCV4IJwllqiSeWym4rHyf106jaofp5xaQypdBGm1o55iWYdbrCiNjfA1IVz6Oq5PdrWLWTlVUAO9eShInJNneWaEvkS5nqz1KKWz4WU8jMWg7KaB5zpCH9YSWOSagof-M04f-cGBBM_P-K48iP?purpose=fullsize

8

πŸ“– Deskripsi

Class diagram digunakan untuk merancang struktur OOP.


🧠 Narasi

Diagram membantu sebelum coding:

  • Memahami hubungan class
  • Menghindari kesalahan desain

⚠️ 11. Kesalahan Umum

❌ Tabel Kesalahan

KesalahanDampak
Tidak gunakan OOPKode berantakan
Class terlalu besarSulit maintenance
Tidak gunakan inheritanceDuplikasi kode
Tidak encapsulationData tidak aman

🧠 Narasi

OOP harus digunakan dengan benar, bukan sekadar formalitas.


🎯 12. Best Practice

βœ… Tips

  • Buat class kecil dan fokus
  • Gunakan inheritance seperlunya
  • Gunakan encapsulation
  • Pisahkan UI dan logic
  • Gunakan naming yang jelas

πŸ—οΈ 13. Studi Kasus Nyata

https://images.openai.com/static-rsc-4/s8MMS-yXWQVWrZH2kv6UkCh3figqFtkWMx4m0yp0r98ZU3FK6MU03XUTjrc_gIT-mUP1-15cVYsIE71AJIUqxDnv7ncWWryIQy2qO7oIkHL9ZGWgD0H9D--9ysbKTUEeoUW-sw0X6WHiNTQST4blxlxCm2nwa-uHeSv-jlBJvbxD7GHmMJgdSrgfDZ810sNd?purpose=fullsize
https://images.openai.com/static-rsc-4/2LRLps2YvRpwU_fevAIW6Wv2UAaeRUuyktTysw94uPT2jbJfSJftajFkPcC76xU5Uqm2X85xx-gSyCVeRk48_BjVCLMLuAHDlJ07B7Hc3lvc1v5pdt8IHTZ2bVB0hIlnnmJ_4539eVgSDCvBhNFBYkd_0llRPUA9PyTCNVE96sD4twVNvYyHjGITP9AzWJXq?purpose=fullsize
https://images.openai.com/static-rsc-4/LPM5en9AEA4y-8J_ta-lm-xD17DwyP2pMnWhPxyz6LFouG9wdRYPnf99rYaANIA1FtFSUH_MTb-ZWHJPiyEQVjqaSDT1dNW7sH1KxZY_JMUeW5Cz8u1rEGHLNopFFqssYNWxIveE6e1xVddOyCYyXpL8tIM3MzGjkwA5WNMYBgDmhllX7P0gwyRU78k16BKc?purpose=fullsize

9

πŸ“Œ Contoh

  • Aplikasi kasir
  • Sistem akademik
  • Sistem inventaris

🧠 Narasi

Semua aplikasi profesional menggunakan OOP untuk skalabilitas.


πŸŽ“ 14. Rangkuman

πŸ“Œ Inti Materi

  • OOP = pemrograman berbasis objek
  • Terdiri dari class & object
  • Memiliki 4 pilar utama
  • Digunakan dalam aplikasi desktop
  • Membuat kode rapi & scalable

πŸ“ 15. Latihan & Tugas

✏️ Latihan

  1. Apa itu class dan object?
  2. Sebutkan 4 pilar OOP!
  3. Apa manfaat inheritance?

πŸ’» Tugas Praktikum

Buat aplikasi:

  • GUI berbasis class
  • Input nama
  • Tampilkan hasil
  • Gunakan minimal 1 class

πŸš€ Penutup

OOP adalah fondasi:

  • Untuk aplikasi besar
  • Untuk kerja tim
  • Untuk software profesional