Struktur Program & Modularisasi


🎯 1. Pengantar Struktur Program

https://images.openai.com/static-rsc-4/oH1I6t28cJkcVWg55m-Q14SkxXXvMHH8jMpBzMRgEW9gk7zgo7tm4cpHaf5xvvFVyT8V7AB_DaM6qZDm_l2zymfNAT7yR851e8SjPXodHvddLZ91xSdpzbqNkaP84tIQ0Rkfpj1JH3yUxX8NlXIab9lQg1_MrNQZA8_boLlSRMigRIcBjJmsDoxs906MNqKD?purpose=fullsize
https://images.openai.com/static-rsc-4/AnZmvI9JunptDau4eP3vuHGgAz0BMbPfN0oBz2Hsuw646Ob8Rkcq5ECimD5ldDF8HJft1WZdkNis_TI10ZeShTNOjRTGat50FeZ7c4l98EavX1TPhnwnt62ANaTcA03FAmutQxxnzAdeMklF9oGsKncEh5Wy1TgUZsViaCyJ4Qjn8JlP8Ub5MD9buMhKRQjz?purpose=fullsize
https://images.openai.com/static-rsc-4/rTfkSOHBTjvLIA0CrB3aBtYSESnB60xK6advr0qCrfMeUc13tOKR4XAmBX1Wz-gKg0FELtVGyNf5J_IdQxFlxiInQeMsnvIiaNiDKUaarVRQ2BT95rd0rGIw5Xm9Th0y7lTeWNKd0ez-UGl73cBbcfr1CoGWCDgv_epSYTyjefk8Al3FznYwb7VKZiNTB0ts?purpose=fullsize

6

πŸ“– Deskripsi

Struktur program adalah cara mengorganisasi kode agar mudah dibaca, dikembangkan, dan dipelihara. Dalam aplikasi desktop, struktur yang baik sangat penting karena aplikasi cenderung berkembang kompleks.

🧠 Narasi

Bayangkan aplikasi tanpa struktur seperti kabel kusutβ€”sulit diperbaiki, sulit dikembangkan. Struktur program adalah β€œpeta” agar developer tidak tersesat.


🧩 2. Konsep Modularisasi

https://images.openai.com/static-rsc-4/WdVoeWRj1qzAQG0OBtsUwp4f85iZv04BYkwib2t4woFQDv0riuXjLDkm_0-WkDSF2J1OA-1AZa4hORz1hYtpmBCAJ9R8BniOpohv4mIclw6kjBh3aYSxQkaKcMKLr4_mFFx96TGbBdKTwDk5fDWNHqFFUHqIGOsDm7abmI53us6znTf-HnRXevEd0UcD_MB8?purpose=fullsize
https://images.openai.com/static-rsc-4/nh-0_UhrG9GghjBPeMK0-TTaX8IQnPwImfL2hU1F26jpsE96bzqrk2JaZxZYpiNXgVBiKDN4P04y59ystgD6UCyCN5U17sIJw-pNoDiVCqCuLblR9Lc4Cl5MQJk0ZfL52EjVf3IUgyaCcqd6M7suNUH-3z8hvsEbLgUzs1v91_42N0l79hSdSYZdoHhCX6V8?purpose=fullsize
https://images.openai.com/static-rsc-4/21qGGrEfeN1M6ZxYQM9dd5w0cScjEEJtYhCdq-60fWoRswerjfryuq5uFgFMiwM3ktuVzMmtzmdmCrhztxBRbBDmKZcUSy8GJ5yq9RhR0NKLgkjpqP9z2jlgep-BtnuGJsxyTWCRCkrE0D2ER2y5bREjdnbjMMq6QOa9Sk9Fcic4hHhp-DQKQI56yhnHj228?purpose=fullsize

7

πŸ“– Deskripsi

Modularisasi adalah teknik membagi program menjadi bagian-bagian kecil (modul) yang memiliki fungsi spesifik.


πŸ“Œ Tujuan Modularisasi

  • Mempermudah pengembangan
  • Mempermudah debugging
  • Meningkatkan reuse (penggunaan ulang kode)

🧠 Narasi

Alih-alih membuat satu file besar, kita membaginya menjadi bagian kecil seperti:

  • Modul UI
  • Modul Logika
  • Modul Database

🧱 3. Struktur Dasar Aplikasi Desktop

https://images.openai.com/static-rsc-4/zMEDAL-BqwsmiU495ucRYOXT1Ws7_L185BrlaFJ3kG4iinO4jUC4nosXtub_uxly5G4FcOM-jXGI6gSeDQ0sTreNoJ9tILDKW2mDkvoCroT8uQ40jp31jsiqvM5zSwSSGT7DNbhk5xKEtNWvn48Py68XVR5b7HSLPLkNpaWzFALJLjAnCy8Bj-qENkSZ8--m?purpose=fullsize
https://images.openai.com/static-rsc-4/VOBHQme-koURdVFG0MPZr_ixHrFmHaUYshZU7PIuFRFf1g70ZmvZ1e43gzUkWDXe47clOtJkTJTo71vIZHlT1VbFVVijnnPOyK8fHz3KVTuf6QwTv294GLmq2HYZgvckxOUDsQBiQaZRHSp5n1wXLScmK9N3XTdc9UB2N4_TnAbpSHE0No9ukmDi-4w08xD4?purpose=fullsize
https://images.openai.com/static-rsc-4/t7_FUKns-fzY0GeEDZD2qZv_EbD-YE8JEtpkLQZ68vB8AlMl91K1Eqx0Bl6vnjiiq6hFBnjEhWPEvlKHVPl9BxTVj8efMIlSQeLUu1Mi9_pVWnIkbFlxBNJbyB8dZVcb32orErFKjlPtIgfd5Y8CoAUPaNYGhcPcErQ_qXt1z4x5CDGgoO97tKOAvcEj88Mj?purpose=fullsize

7

πŸ“Š Arsitektur Umum

LayerFungsi
UI LayerTampilan (form, button)
Logic LayerProses bisnis
Data LayerDatabase/file

🧠 Narasi

Struktur ini disebut Separation of Concerns:

  • UI tidak mengurus database
  • Logic tidak mengurus tampilan

πŸ‘‰ Hasilnya: kode lebih rapi dan scalable


πŸ”§ 4. Fungsi dan Prosedur

πŸ“– Deskripsi

Fungsi adalah blok kode yang dapat digunakan kembali.


πŸ’» Contoh

def hitung_total(harga, jumlah):
return harga * jumlah

total = hitung_total(10000, 3)
print(total)

🧠 Narasi

Dengan fungsi:

  • Kode tidak berulang
  • Lebih mudah dibaca
  • Lebih modular

🧩 5. Modularisasi dalam GUI Programming

https://images.openai.com/static-rsc-4/OwUBl3FWFA7KFlnSc6eRisOPi7SzbVvQoNaHrfBfhUNLoAR19zscMKM3ROcuU9VI5FzuByH0h4PdIxZ9_Mk1Sq6moKDkPG44PLSi2E2TBzxfXKV9M-ojvTsuP9rPz0bisqAoZAKsJ6l8Z1UyouVWLrXeDEK7TMPt5rAfIVUco2jd1_7Z9FuDVlHgZlB9n6O4?purpose=fullsize
https://images.openai.com/static-rsc-4/lhnYYc8-jKei9J7k-uaX1g_ajeen_YPdksPK3pNzE-PDZHHJq-5isxeOxA4ul_hhvhpjKYQsPNV2dQUoc-ZnFuuHW-owsmoNGHpHVSX4k95ijDu5E8rCArQlGM8Vv6kCFXxtjbvvJH-QCGBKKWFwW4rysCcdUK-5xBbKUDXBLN-RYk20oEyt0Km_JW-ZzaTC?purpose=fullsize
https://images.openai.com/static-rsc-4/acKCwfVr4yuT2FncXBkgQOHj3mtDCVoIhrvdNqmKmjtcPVFpJY7t15dZrQV3W1mGZQFMr0_szSbzoHdWgr7rlhLu9XYXZgQtuOKRhUX-GJlCKS9jzTsbfsa5mxiTIPUvLExlr8DW0RLMXFF7URvEVogb7O9F-bW-LfLuNC_orErHV7Sd2mrcaru9yxUSPm70?purpose=fullsize

7

πŸ“Œ Pembagian Modul GUI

  • UI Module β†’ tampilan
  • Event Handler Module β†’ aksi
  • Business Logic Module β†’ proses
  • Data Module β†’ penyimpanan

🧠 Narasi

Contoh:

  • Tombol klik β†’ handler
  • Handler β†’ panggil fungsi logika
  • Logika β†’ akses data

πŸ—‚οΈ 6. Struktur Folder Project

https://images.openai.com/static-rsc-4/TAdw6OliBSp6hlsi-S3mN262kEavciqjSasTa187yl7EUC-AUzJt69PDDOQC-FDzq8Ns3uK8WJw_dIIMDtMJPEhyAwV-qboDev-A3Zr-wVp0qEvxwq7fQ7oAPGR8Rp5nWMqXqiJrZr0iZKLYLJSCRhxZY0d50H4j4YEK_QM2vD-EOUHOtoTHdLERN2NAz4HU?purpose=fullsize
https://images.openai.com/static-rsc-4/TCEMpEZjPP_uDGfFX0yBSrrwbDwQLDAeQLxvue0EEFevr6HHyYvqFPyVu2KhIeXeCWd6t6SjwZqGdbncvKdCGpNmenqTxX5PXUgLKaUQeV9TPtjFkFUp1IgHNAwGuXv65fb3jzohi7L9QA9rlAOxnYlq5OBu0L1BGPtfzr0mNGsyZF0z9LUbX-Bl1HiAPbR-?purpose=fullsize
https://images.openai.com/static-rsc-4/LMcyrsuSIASA7sti1OHd1RXTggeUvMzPS5GKnlGOyJvKNAw3xNVwY5fotGtGm5e5Z3BBiOimZtkIhXiBcdPVHKIl1Q1P2tTw34Nzc6zKBrNWONGLnIqH8NxkNkViF_QsezYQWDGBWe-ka5-vUCqmsxTGkkUODMsjKZeT5LKPpu3UKs71WIef7dxETPlWfMab?purpose=fullsize

8

πŸ“– Contoh Struktur

project/
│── main.py
│── ui/
β”‚ └── form.py
│── logic/
β”‚ └── process.py
│── data/
β”‚ └── database.py
│── assets/

🧠 Narasi

Struktur ini membantu:

  • Tim developer bekerja bersama
  • File tidak tercampur
  • Mudah menemukan kode

βš™οΈ 7. Separation of Concerns (SoC)

πŸ“– Deskripsi

SoC adalah prinsip memisahkan bagian program berdasarkan tanggung jawabnya.


🧠 Narasi

Tanpa SoC:

  • Semua kode bercampur
  • Sulit diperbaiki

Dengan SoC:

  • Kode lebih bersih
  • Lebih mudah dikembangkan

πŸ§ͺ 8. Tutorial Praktikum: Modularisasi GUI (Python)

🎯 Studi Kasus

Pisahkan GUI dan logika


πŸ’» File: logic.py

def sapa(nama):
return "Halo, " + nama

πŸ’» File: main.py

import tkinter as tk
from logic import sapa

def tampilkan():
hasil.config(text=sapa(entry.get()))

app = tk.Tk()

entry = tk.Entry(app)
entry.pack()

tk.Button(app, text="Klik", command=tampilkan).pack()

hasil = tk.Label(app)
hasil.pack()

app.mainloop()

🧠 Penjelasan

  • logic.py β†’ logika
  • main.py β†’ GUI
    πŸ‘‰ Ini modularisasi sederhana

⚠️ 9. Kesalahan Umum

❌ Tabel Kesalahan

KesalahanDampak
Semua kode dalam 1 fileSulit dibaca
Tidak pakai fungsiDuplikasi
UI campur databaseTidak terstruktur
Nama variabel tidak jelasMembingungkan

🧠 Narasi

Kesalahan ini sering terjadi pada pemula dan menyebabkan β€œspaghetti code”.


🎯 10. Best Practice

βœ… Tips

  • Gunakan fungsi dan modul
  • Pisahkan UI dan logika
  • Gunakan nama file jelas
  • Gunakan struktur folder
  • Dokumentasikan kode

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

https://images.openai.com/static-rsc-4/pKwcczvYkzTdLHrc3VzwRtj_O26boeNSsJylyxAKtVbZhxoHlHr7zveZ0NRsnGrerYXx9-dOarnnLbB-bChDpabBZLnFG2rQv9eQpBJJlXt8UNWMaBVe3A84jAjOsdZF2sNow6YOJ3wRc3XzSaqxgyFsGFeBqpLMbAWVdaqdt5cknrJKwNw7BE6-8SWPt1OO?purpose=fullsize
https://images.openai.com/static-rsc-4/F3zoRTrCEyzRYzVB-3PyCwUula89Hhz5d5YMFYr0YAuASKsbyFYCdzDai51ANz_SbObPhXpJtEN2bujszeCnR51DjJeRbbwsBa7de47pevh5x0FMGCRJuI70zyG34yk_GSDgo0f5qkwJm2vwR9qD-0zLVnzrbi01Q4bIS8MUaog3sRle-e-tWgRulX9stne9?purpose=fullsize
https://images.openai.com/static-rsc-4/HmA-O8acXTMJUtzEvD0PWxe-CD2rXg6WOSNQBnZ7LxZr8rRGUBmCpEKKIOtr5p439-NpOQ3uJ13ae-JsqRFfYjVT0JGc-yJypSmzhIMDGqHt0PONS05CYuY9eJbZeicsUMjvjwNM_uwyh0s4_UNHpmiauSTJHHqVK_Yl7MqhM913-LvBPakiBFeDbWfjzhvk?purpose=fullsize

7

πŸ“Œ Contoh

  • Aplikasi kasir
  • Sistem inventaris
  • Sistem akademik

🧠 Narasi

Semua aplikasi profesional menggunakan modularisasi agar:

  • Mudah dikembangkan
  • Mudah maintenance
  • Bisa dikerjakan tim

πŸŽ“ 12. Rangkuman

πŸ“Œ Inti Materi

  • Struktur program = organisasi kode
  • Modularisasi = membagi program
  • Gunakan fungsi & modul
  • Pisahkan UI, logic, data
  • Gunakan struktur folder

πŸ“ 13. Latihan & Tugas

✏️ Latihan

  1. Apa itu modularisasi?
  2. Apa manfaat fungsi?
  3. Jelaskan Separation of Concerns!

πŸ’» Tugas Praktikum

Buat aplikasi:

  • Input nama
  • Tombol tampilkan
  • Pisahkan:
    • File GUI
    • File logika

πŸš€ Penutup

Struktur program adalah fondasi:

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