Modularisasi, Fungsi, Rekursi, dan Penanganan Kesalahan dalam Pemrograman

Modularisasi, Fungsi, Rekursi, dan Penanganan Kesalahan dalam Pemrograman | KKA Kelas XI
KKA Kelas XI Fase F Pertemuan 10 Bab 3

Modularisasi, Fungsi, Rekursi, dan Penanganan Kesalahan dalam Pemrograman

Pada Pertemuan 10 Koding dan Kecerdasan Artifisial (KKA) Kelas XI, kita akan mempelajari bagaimana membuat program yang lebih terstruktur, mudah digunakan kembali, lebih mudah diuji, dan lebih siap dikembangkan.

Materi tidak berhenti pada pengertian fungsi atau jenis-jenis error. Kita akan bekerja seperti seorang programmer ketika membangun aplikasi: memecah masalah menjadi bagian-bagian kecil, membuat fungsi, mengatur parameter dan nilai balik, memahami scope, menggunakan rekursi secara terbatas, serta menangani kesalahan agar program tidak mudah berhenti ketika menerima input yang tidak sesuai.

1. Apa yang Dipelajari pada Pertemuan 10?

Pertemuan 10 merupakan bagian dari Bab 3 - Algoritma Pemrograman Tingkat Lanjut. Fokus pembelajarannya adalah:

  • Parameter
  • Return value
  • Scope
  • Dekomposisi atau modularisasi program
  • Rekursi terbatas
  • Exception atau error handling
  • Kontrak fungsi
Inti pembelajaran: program yang baik bukan hanya program yang dapat berjalan. Program juga perlu disusun agar bagian-bagiannya jelas, dapat digunakan kembali, mudah diuji, dan memiliki perilaku yang dapat dipahami ketika terjadi kesalahan.

2. Mengapa Programmer Menggunakan Modularisasi?

Bayangkan sebuah aplikasi kasir memiliki 2.000 baris kode dalam satu file. Di dalamnya terdapat kode untuk login, menghitung harga, mencetak struk, menghitung diskon, menyimpan data pelanggan, dan membuat laporan.

Jika semuanya ditulis dalam satu blok besar, programmer akan kesulitan memahami, menguji, dan memperbaiki program tersebut.

Karena itu program biasanya dipecah menjadi beberapa bagian atau modul. Setiap bagian memiliki tugas tertentu.

Contoh pembagian program kasir

Modul/Fungsi Tugas
hitung_total() Menghitung total belanja
hitung_diskon() Menghitung potongan harga
hitung_pajak() Menghitung pajak
cetak_struk() Mencetak informasi transaksi

Inilah salah satu ide utama modularisasi: sebuah masalah besar dipecah menjadi bagian-bagian yang lebih kecil dan memiliki tanggung jawab yang jelas.

3. Apa Itu Fungsi?

Fungsi adalah blok kode yang dibuat untuk menjalankan tugas tertentu dan dapat dipanggil ketika diperlukan.

Dalam Python, fungsi dibuat menggunakan kata kunci def.

def sapa():
    print("Halo, selamat belajar!")

Fungsi tersebut belum dijalankan hanya karena dibuat. Kita perlu memanggilnya.

sapa()

Hasil:

Halo, selamat belajar!

4. Parameter pada Fungsi

Fungsi dapat menerima data dari luar. Data tersebut dapat diterima melalui parameter.

def sapa(nama):
    print("Halo", nama)

sapa("Andi")
sapa("Siti")

Pada contoh tersebut, nama adalah parameter. Nilai "Andi" dan "Siti" merupakan argumen yang diberikan ketika fungsi dipanggil.

Contoh fungsi dengan dua parameter

def luas_persegi_panjang(panjang, lebar):
    luas = panjang * lebar
    print("Luas =", luas)

luas_persegi_panjang(10, 5)

Hasil:

Luas = 50

5. Return Value

Fungsi tidak selalu hanya menampilkan hasil menggunakan print(). Fungsi juga dapat mengembalikan nilai menggunakan return.

def luas_persegi_panjang(panjang, lebar):
    return panjang * lebar

hasil = luas_persegi_panjang(10, 5)

print("Luas =", hasil)

Perbedaan penting:

print() return
Menampilkan sesuatu ke layar Mengembalikan nilai kepada bagian program yang memanggil fungsi
Cocok untuk output langsung Cocok ketika hasil masih akan diproses

Contoh dalam aplikasi

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

subtotal = hitung_total(15000, 3)

diskon = 5000

total = subtotal - diskon

print("Total pembayaran:", total)

Dalam aplikasi nyata, return value sangat berguna karena hasil sebuah fungsi dapat digunakan oleh fungsi lainnya.

6. Scope Variabel

Scope berkaitan dengan wilayah atau bagian program tempat sebuah variabel dapat digunakan.

Local variable

Variabel yang dibuat di dalam fungsi biasanya hanya digunakan di dalam fungsi tersebut.

def hitung():
    nilai = 100
    print(nilai)

hitung()

Variabel nilai berada dalam scope fungsi hitung().

Contoh kesalahan scope

def hitung():
    nilai = 100

hitung()

print(nilai)

Program tersebut bermasalah karena nilai dibuat di dalam fungsi dan tidak tersedia begitu saja di luar scope tersebut.

Catatan penting: memahami scope membantu programmer mencegah konflik nama variabel dan membuat aliran data program lebih jelas.

7. Modularisasi Program

Modularisasi berarti membagi program menjadi bagian-bagian yang memiliki tugas tertentu.

Contoh program yang kurang modular

harga = 50000
jumlah = 3

subtotal = harga * jumlah

if subtotal >= 100000:
    diskon = 10000
else:
    diskon = 0

total = subtotal - diskon

print("Subtotal:", subtotal)
print("Diskon:", diskon)
print("Total:", total)

Program tersebut masih dapat berjalan, tetapi ketika aplikasi semakin besar, kode seperti ini akan lebih sulit dirawat.

Versi modular

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


def hitung_diskon(subtotal):
    if subtotal >= 100000:
        return 10000
    return 0


def hitung_total(subtotal, diskon):
    return subtotal - diskon


harga = 50000
jumlah = 3

subtotal = hitung_subtotal(harga, jumlah)
diskon = hitung_diskon(subtotal)
total = hitung_total(subtotal, diskon)

print("Subtotal:", subtotal)
print("Diskon:", diskon)
print("Total:", total)

Sekarang setiap fungsi mempunyai tanggung jawab yang lebih jelas. Jika aturan diskon berubah, programmer dapat fokus pada fungsi hitung_diskon().

8. Kontrak Fungsi

Kontrak fungsi adalah kesepakatan mengenai bagaimana sebuah fungsi digunakan dan apa yang diharapkan dari fungsi tersebut.

Secara sederhana, kontrak fungsi dapat menjelaskan:

  • Data apa yang diterima?
  • Data tersebut harus memiliki kondisi seperti apa?
  • Apa hasil yang dikembalikan?
  • Apa yang terjadi jika input tidak sesuai?

Contoh

def hitung_diskon(total):
    """
    Kontrak:
    - total harus berupa angka
    - total tidak boleh negatif
    - mengembalikan nilai diskon
    """

    if total < 0:
        raise ValueError("Total tidak boleh negatif")

    if total >= 100000:
        return 10000

    return 0

Kontrak membuat perilaku fungsi lebih mudah dipahami oleh programmer lain.

9. Apa Itu Rekursi?

Rekursi adalah teknik ketika sebuah fungsi memanggil dirinya sendiri untuk menyelesaikan masalah yang dapat dipecah menjadi bentuk yang lebih kecil.

Rekursi membutuhkan base case atau kondisi berhenti. Tanpa kondisi berhenti, fungsi dapat terus memanggil dirinya sendiri.

Contoh faktorial

Faktorial 5 adalah:

5 × 4 × 3 × 2 × 1 = 120

Contoh implementasi:

def faktorial(n):
    if n == 0:
        return 1

    return n * faktorial(n - 1)


print(faktorial(5))

Hasil:

120

Bagaimana prosesnya?

faktorial(5)
= 5 × faktorial(4)
= 5 × 4 × faktorial(3)
= 5 × 4 × 3 × faktorial(2)
= 5 × 4 × 3 × 2 × faktorial(1)
= 5 × 4 × 3 × 2 × 1 × faktorial(0)
= 120
Perhatikan: Pertemuan ini membahas rekursi secara terbatas. Tujuannya adalah memahami pola pemanggilan fungsi dan kondisi berhenti, bukan membuat semua persoalan diselesaikan dengan rekursi.

10. Apa Itu Error dan Exception?

Dalam pekerjaan programmer, kesalahan program merupakan sesuatu yang perlu ditemukan, dipahami, dan ditangani.

Salah satu situasi yang umum terjadi adalah program menerima input yang tidak sesuai.

Contoh masalah

umur = int(input("Masukkan umur: "))

print("Umur:", umur)

Jika pengguna memasukkan:

dua puluh

program dapat mengalami exception karena teks tersebut tidak dapat langsung dikonversi menjadi integer.

11. Exception Handling dengan try dan except

Python menyediakan mekanisme penanganan exception menggunakan try dan except.

try:
    umur = int(input("Masukkan umur: "))
    print("Umur:", umur)

except ValueError:
    print("Input harus berupa angka.")

Dengan demikian, program dapat memberikan pesan yang lebih ramah ketika input pengguna tidak sesuai.

Contoh pembagian

try:
    angka1 = int(input("Angka pertama: "))
    angka2 = int(input("Angka kedua: "))

    hasil = angka1 / angka2

    print("Hasil:", hasil)

except ValueError:
    print("Masukkan harus berupa angka.")

except ZeroDivisionError:
    print("Angka kedua tidak boleh nol.")

Di sini programmer menangani dua kemungkinan kesalahan berbeda.

12. Mengapa Error Handling Penting di Dunia Kerja?

Dalam aplikasi nyata, pengguna tidak selalu memberikan input sesuai harapan programmer.

Contohnya:

  • Pengguna memasukkan huruf ketika sistem meminta angka.
  • Jumlah barang bernilai negatif.
  • Data yang dicari tidak ditemukan.
  • File tidak tersedia.
  • Nilai tertentu tidak valid.
  • Operasi matematika tidak dapat dilakukan.

Karena itu programmer perlu merancang program agar kesalahan dapat ditangani dengan jelas.

Prinsip kerja: error bukan sekadar sesuatu yang harus disembunyikan. Error harus dipahami, dicatat bila diperlukan, dan ditangani dengan cara yang membantu pengguna maupun pengembang.

13. Praktik Industri: Membuat Modul Kasir Sederhana

Simulasi pekerjaan programmer

Kamu berperan sebagai junior programmer yang mendapatkan tugas memperbaiki modul perhitungan transaksi pada aplikasi kasir.

Programmer sebelumnya membuat seluruh proses dalam satu blok kode. Tugasmu adalah melakukan refactoring sederhana dengan menerapkan fungsi, parameter, return value, validasi input, scope yang jelas, dan error handling.

Kasus

Sebuah toko membutuhkan program sederhana untuk menghitung transaksi. Program harus:

  1. Menerima nama produk.
  2. Menerima harga produk.
  3. Menerima jumlah produk.
  4. Menghitung subtotal.
  5. Memberikan diskon jika memenuhi syarat.
  6. Menghitung total pembayaran.
  7. Menangani input yang tidak valid.

14. Tahap 1: Membuat Fungsi Validasi

def validasi_harga(harga):
    if harga <= 0:
        raise ValueError("Harga harus lebih dari 0")

    return harga


def validasi_jumlah(jumlah):
    if jumlah <= 0:
        raise ValueError("Jumlah harus lebih dari 0")

    return jumlah

Sekarang validasi tidak perlu ditulis berulang-ulang di seluruh program. Kita sudah membuat fungsi khusus.

15. Tahap 2: Membuat Fungsi Perhitungan

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


def hitung_diskon(subtotal):
    if subtotal >= 500000:
        return subtotal * 0.10

    return 0


def hitung_total(subtotal, diskon):
    return subtotal - diskon

Setiap fungsi memiliki satu tugas utama.

16. Tahap 3: Menggabungkan Modul

def validasi_harga(harga):
    if harga <= 0:
        raise ValueError("Harga harus lebih dari 0")

    return harga


def validasi_jumlah(jumlah):
    if jumlah <= 0:
        raise ValueError("Jumlah harus lebih dari 0")

    return jumlah


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


def hitung_diskon(subtotal):
    if subtotal >= 500000:
        return subtotal * 0.10

    return 0


def hitung_total(subtotal, diskon):
    return subtotal - diskon


try:
    nama_produk = input("Nama produk: ")

    harga = float(input("Harga produk: "))
    jumlah = int(input("Jumlah produk: "))

    harga = validasi_harga(harga)
    jumlah = validasi_jumlah(jumlah)

    subtotal = hitung_subtotal(harga, jumlah)
    diskon = hitung_diskon(subtotal)
    total = hitung_total(subtotal, diskon)

    print("\n=== STRUK TRANSAKSI ===")
    print("Produk   :", nama_produk)
    print("Harga    :", harga)
    print("Jumlah   :", jumlah)
    print("Subtotal :", subtotal)
    print("Diskon   :", diskon)
    print("Total    :", total)

except ValueError as error:
    print("Transaksi gagal:", error)

17. Menguji Program Seperti Programmer di Industri

Program belum dianggap selesai hanya karena dapat dijalankan. Kita perlu mengujinya dengan beberapa kondisi.

No. Skenario Input Hasil yang Diharapkan
1 Kondisi normal Harga 20.000, jumlah 3 Subtotal 60.000 dan transaksi berhasil
2 Mendapat diskon Harga 200.000, jumlah 3 Diskon 10% diterapkan
3 Harga tidak valid Harga -10.000 Program menolak input
4 Jumlah tidak valid Jumlah 0 Program menolak input
5 Input bukan angka Harga "dua puluh" Program menampilkan pesan kesalahan
Praktik kerja: catat hasil aktual setiap pengujian. Jika hasil aktual berbeda dengan hasil yang diharapkan, cari penyebabnya, perbaiki kode, lalu lakukan pengujian ulang.

18. Praktik Rekursi: Menghitung Total Struktur Data

Untuk memahami rekursi secara lebih nyata, kita dapat menggunakan contoh sederhana berupa penjumlahan angka.

def jumlah_sampai(n):
    if n == 0:
        return 0

    return n + jumlah_sampai(n - 1)


print(jumlah_sampai(5))

Hasil:

15

Prosesnya:

5 + jumlah_sampai(4)
4 + jumlah_sampai(3)
3 + jumlah_sampai(2)
2 + jumlah_sampai(1)
1 + jumlah_sampai(0)
0

Setelah mencapai 0, fungsi berhenti dan hasil dikembalikan melalui rangkaian pemanggilan sebelumnya.

19. Kesalahan Umum Saat Membuat Fungsi

Kesalahan 1: Tidak menggunakan return

def tambah(a, b):
    hasil = a + b
    print(hasil)

nilai = tambah(10, 20)

Fungsi hanya mencetak hasil, bukan mengembalikan hasil untuk digunakan oleh bagian program lain.

Kesalahan 2: Tidak memvalidasi input

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

Fungsi tersebut belum memastikan apakah harga dan jumlah masuk akal.

Kesalahan 3: Rekursi tanpa kondisi berhenti

def hitung(n):
    return hitung(n - 1)

Fungsi tersebut tidak mempunyai base case sehingga tidak memiliki kondisi berhenti yang benar.

Kesalahan 4: Menangani semua error secara sembarangan

try:
    ...
except:
    print("Terjadi error")

Penanganan seperti ini terlalu umum karena programmer kehilangan informasi mengenai jenis kesalahan yang sebenarnya terjadi. Sebisa mungkin tangani exception yang memang diketahui dan relevan.

20. Praktik Industri: Refactoring Program

Dalam pekerjaan pengembangan perangkat lunak, programmer sering kali tidak selalu membuat program dari halaman kosong. Programmer juga memperbaiki kode yang sudah ada.

Proses memperbaiki struktur kode tanpa mengubah tujuan utama program dikenal sebagai refactoring.

Tugas Simulasi

Guru memberikan sebuah program sederhana yang masih ditulis dalam satu blok kode.

Tugas siswa adalah mengubahnya menjadi program yang lebih modular.

Minimal harus memiliki:

  • 3 fungsi atau lebih
  • Parameter
  • Return value
  • Validasi input
  • Minimal 1 penggunaan exception handling
  • Scope variabel yang jelas
  • Minimal 3 test case
  • Dokumentasi singkat

21. Tugas Praktik Siswa

Judul Praktik

Refactoring Program Sederhana Menjadi Program Modular dengan Fungsi dan Error Handling

Skenario

Kamu bekerja sebagai junior programmer pada sebuah tim pengembang aplikasi sederhana untuk toko sekolah.

Tim membutuhkan program untuk menghitung transaksi pembelian. Program harus dapat menerima data barang, menghitung subtotal, menghitung diskon, menghitung total pembayaran, dan menangani input yang tidak valid.

Ketentuan

  1. Buat program menggunakan Python.
  2. Gunakan minimal 3 fungsi.
  3. Gunakan parameter pada fungsi.
  4. Gunakan return value.
  5. Terapkan validasi input.
  6. Gunakan try-except.
  7. Gunakan nama fungsi dan variabel yang mudah dipahami.
  8. Tambahkan komentar pada bagian penting.
  9. Lakukan minimal 3 pengujian.
  10. Catat hasil pengujian.
  11. Jelaskan bagian yang diperbaiki atau dimodularisasi.

Output yang Dikumpulkan

  • File program Python.
  • Screenshot program ketika berhasil dijalankan.
  • Screenshot minimal satu kondisi error.
  • Tabel hasil pengujian.
  • Penjelasan fungsi yang dibuat.
  • Refleksi singkat.

22. Format Laporan Praktik

Bagian Isi
Judul Refactoring Program Transaksi
Tujuan Menjelaskan tujuan pembuatan program dan modularisasi.
Masalah Menjelaskan permasalahan pada program awal.
Solusi Menjelaskan fungsi/modul yang dibuat.
Implementasi Melampirkan kode program.
Pengujian Melampirkan minimal tiga skenario pengujian.
Perbaikan Menjelaskan bug atau masalah yang ditemukan.
Refleksi Menjelaskan hal yang dipahami, kesulitan, dan perbaikan berikutnya.

23. Contoh Jawaban Praktik

Berikut contoh salah satu solusi. Siswa tidak harus menghasilkan kode yang identik selama memenuhi kebutuhan dan kriteria praktik.

def validasi_harga(harga):
    if harga <= 0:
        raise ValueError("Harga harus lebih dari 0")
    return harga


def validasi_jumlah(jumlah):
    if jumlah <= 0:
        raise ValueError("Jumlah harus lebih dari 0")
    return jumlah


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


def hitung_diskon(subtotal):
    if subtotal >= 500000:
        return subtotal * 0.10
    return 0


def hitung_total(subtotal, diskon):
    return subtotal - diskon


try:
    produk = input("Nama produk: ")
    harga = float(input("Harga: "))
    jumlah = int(input("Jumlah: "))

    harga = validasi_harga(harga)
    jumlah = validasi_jumlah(jumlah)

    subtotal = hitung_subtotal(harga, jumlah)
    diskon = hitung_diskon(subtotal)
    total = hitung_total(subtotal, diskon)

    print("\n=== HASIL TRANSAKSI ===")
    print("Produk   :", produk)
    print("Subtotal :", subtotal)
    print("Diskon   :", diskon)
    print("Total    :", total)

except ValueError as error:
    print("Transaksi gagal:", error)

24. Contoh Hasil Pengujian

Skenario Input Expected Result Actual Result Status
Normal 20.000 × 3 Total 60.000 Total 60.000 PASS
Diskon 200.000 × 3 Diskon 60.000 Diskon 60.000 PASS
Harga negatif -10.000 × 2 Input ditolak Input ditolak PASS
Input teks "dua puluh" Error ditangani Error ditangani PASS

25. Tantangan Pengayaan

Bagi siswa yang sudah menyelesaikan tugas utama, tambahkan fitur berikut:

  1. Program dapat menangani beberapa produk.
  2. Buat fungsi untuk menghitung total seluruh transaksi.
  3. Buat fungsi untuk menentukan kategori diskon.
  4. Tambahkan penanganan kesalahan untuk input kosong.
  5. Tambahkan fungsi untuk menampilkan ringkasan transaksi.
  6. Gunakan rekursi sederhana pada bagian yang sesuai dan jelaskan base case-nya.
Jangan menggunakan rekursi hanya agar terlihat lebih canggih. Rekursi harus memiliki alasan penggunaan yang jelas dan mempunyai kondisi berhenti.

26. Tantangan Debugging

Perbaiki kode berikut agar dapat bekerja dengan benar.

def hitung_total(harga, jumlah):
    total = harga * jumlah


try:
    harga = int(input("Harga: "))
    jumlah = int(input("Jumlah: "))

    hasil = hitung_total(harga, jumlah)

    print("Total:", hasil)

except:
    print("Terjadi kesalahan")

Pertanyaan

  1. Apa masalah pada fungsi hitung_total()?
  2. Mengapa hasil fungsi tersebut tidak dapat digunakan dengan benar?
  3. Bagaimana cara memperbaikinya menggunakan return?
  4. Apakah penggunaan except: sudah tepat? Jelaskan.
  5. Buat minimal dua test case untuk membuktikan perbaikanmu.

27. Refleksi Pembelajaran

Setelah praktik, jawab pertanyaan berikut menggunakan bukti dari proses pekerjaanmu.

  1. Apa manfaat memecah program menjadi beberapa fungsi?
  2. Apa perbedaan parameter dan return value?
  3. Apa yang dimaksud scope?
  4. Mengapa rekursi membutuhkan kondisi berhenti?
  5. Mengapa program perlu menangani exception?
  6. Bug atau kesalahan apa yang kamu temukan?
  7. Bagaimana cara kamu memperbaikinya?
  8. Bagaimana modularisasi membuat program lebih mudah dikembangkan?
  9. Bagian mana dari programmu yang paling perlu diperbaiki?
  10. Apa hubungan materi ini dengan pekerjaan programmer?

Refleksi 150–200 kata

Tuliskan pengalamanmu setelah menyelesaikan praktik. Jelaskan perubahan pemahamanmu, bukti bahwa program sudah diuji, kesalahan yang ditemukan, cara memperbaikinya, dan hal yang ingin kamu tingkatkan pada praktik berikutnya.

28. Checklist Sebelum Mengumpulkan

  • ☐ Program dapat dijalankan.
  • ☐ Program menggunakan fungsi.
  • ☐ Fungsi memiliki parameter jika diperlukan.
  • ☐ Fungsi menggunakan return value jika diperlukan.
  • ☐ Scope variabel dipahami.
  • ☐ Terdapat validasi input.
  • ☐ Terdapat exception handling.
  • ☐ Jika menggunakan rekursi, terdapat base case.
  • ☐ Program diuji dengan minimal tiga skenario.
  • ☐ Hasil aktual dicatat.
  • ☐ Kesalahan yang ditemukan diperbaiki.
  • ☐ Kode memiliki struktur yang mudah dibaca.
  • ☐ Dokumentasi dan screenshot tersedia.
  • ☐ Refleksi telah dibuat.

29. Ringkasan Pertemuan 10

Konsep Inti Pemahaman Penerapan
Modularisasi Membagi program menjadi bagian yang lebih terstruktur. Membuat fungsi dengan tanggung jawab tertentu.
Parameter Data yang diterima fungsi. Mengirim input ke fungsi.
Return value Nilai yang dikembalikan fungsi. Menggunakan hasil fungsi untuk proses berikutnya.
Scope Wilayah penggunaan variabel. Mengelola variabel lokal dan global secara tepat.
Rekursi Fungsi memanggil dirinya sendiri. Masalah yang dapat dipecah menjadi bentuk lebih kecil.
Error handling Menangani kondisi kesalahan secara terkontrol. try, except, dan exception tertentu.
Kontrak fungsi Kesepakatan input, output, dan kondisi fungsi. Membuat fungsi lebih mudah dipahami dan digunakan.

30. Kesimpulan

Modularisasi, fungsi, rekursi, dan penanganan kesalahan merupakan bagian penting dalam membangun program yang lebih terstruktur. Programmer tidak hanya dituntut membuat kode yang menghasilkan output, tetapi juga perlu membuat kode yang dapat dipahami, diuji, diperbaiki, dan dikembangkan.

Melalui praktik pada Pertemuan 10, siswa tidak hanya mempelajari apa itu fungsi, tetapi juga belajar bagaimana fungsi digunakan untuk membangun solusi nyata.

Pola kerjanya adalah:

Masalah
   ↓
Pecah menjadi bagian kecil
   ↓
Buat fungsi/modul
   ↓
Tentukan parameter dan return value
   ↓
Validasi input
   ↓
Tangani kemungkinan error
   ↓
Uji program
   ↓
Temukan bug
   ↓
Perbaiki
   ↓
Uji kembali
   ↓
Dokumentasikan hasil
Inti yang perlu diingat: programmer yang baik bukan hanya membuat program yang "jalan", tetapi juga memikirkan bagaimana program tersebut dapat dipelihara, diuji, diperbaiki, dan digunakan oleh orang lain.

Materi disusun berdasarkan topik Pertemuan 10 pada Modul Ajar Pembelajaran Mendalam Koding dan Kecerdasan Artifisial (KKA) Fase F Kelas XI Semester 1.

Bab: Algoritma Pemrograman Tingkat Lanjut | Pertemuan: 10 | Alokasi: 2 JP × 45 menit

Post a Comment

0 Comments