Membuat Kode Terstruktur & Bisa Dipakai Ulang
Untuk Jurusan Teknik Bodi Kendaraan Ringan (TBKR)
Kelas X SMK
Setelah mengikuti praktek ini, kamu akan mampu:
def dan memanggilnyaFungsi seperti SOP (Standar Operasional Prosedur) di bengkel. Setiap kali ada mobil masuk dengan masalah penyok, teknisi tidak perlu mengingat ulang semua langkah dari nol — mereka cukup mengikuti SOP "Perbaikan Penyok". Fungsi bekerja persis seperti itu: tulis sekali, pakai berkali-kali!
Tulis ulang kode yang sama setiap kali dibutuhkan → boros & rawan salah
Tulis sekali, panggil berkali-kali dengan nama fungsi → efisien & rapi
Program besar dipecah jadi fungsi-fungsi kecil → mudah diperbaiki
def
Kata kunci untuk mendefinisikan (membuat) fungsi. Selalu diikuti nama fungsi dan tanda kurung.
Nilai yang dikirim ke fungsi saat dipanggil. Ibaratnya: "bahan baku" yang diterima fungsi untuk diolah.
return
Mengembalikan hasil kerja fungsi ke tempat pemanggilnya. Seperti teknisi menyerahkan laporan hasil diagnosa.
Gunakan nama fungsi diikuti tanda kurung berisi nilai. Fungsi langsung bekerja saat dipanggil.
Fungsi paling dasar — tidak menerima input, langsung menjalankan tugasnya. Seperti SOP menyambut pelanggan yang selalu sama setiap kali ada tamu masuk bengkel.
def sapa_bengkel(): → kata def artinya "saya sedang mendefinisikan fungsi bernama sapa_bengkel"() berarti fungsi ini tidak butuh input apapun dari luarsapa_bengkel()sapa_bengkel() kapan saja tanpa menulis ulang 4 baris printFungsi yang lebih powerful: bisa menerima data (parameter) dan mengembalikan hasil (return). Seperti teknisi yang menerima info kerusakan → menganalisis → menyerahkan laporan hasil diagnosa.
hitung_biaya(luas_cm2, harga_per_cm2) punya 2 slot — keduanya wajib diisi saat memanggilreturn total mengirim nilai total keluar dari fungsi. Tanpa return, fungsi tidak bisa "memberi tahu" hasil kerjanyaif/elif/else dan tiap cabang bisa punya return berbeda — fungsi langsung berhenti saat bertemu returnstatus = cek_status(kedalaman) — sekarang status berisi teks hasil diagnosaIni adalah cara profesional menulis program: setiap "tugas" dipecah menjadi fungsi terpisah, lalu disatukan oleh sebuah fungsi utama. Hasilnya: kode rapi, mudah dicari kalau ada error, dan mudah dikembangkan.
main() — fungsi utama
input_data()
diagnosa()
hitung_biaya()
tampilkan_laporan()
return jenis, luas, usia → Python otomatis mengirim 3 nilai sekaligus. Di pemanggil: jenis, luas, usia = input_data()"""...""" di dalam fungsi): penjelasan singkat tujuan fungsi. Ini kebiasaan programmer profesional!tarif = {"penyok": 2500, ...} lalu ambil nilai dengan tarif.get(jenis, 3000)main(): tugasnya hanya "mengatur lalu lintas" — memanggil fungsi lain secara berurutan. Program utama jadi sangat mudah dibaca!| Konsep / Kata Kunci | Artinya | Contoh | Keterangan |
|---|---|---|---|
def |
Mendefinisikan / membuat fungsi | def sapa(): |
Tulis sekali di atas program |
| Parameter | Input yang diterima fungsi | def hitung(luas, harga): |
Nilai dikirim saat memanggil |
return |
Mengembalikan hasil fungsi | return total |
Opsional — fungsi bisa tanpa return |
| Pemanggilan | Menjalankan fungsi | sapa() atau hitung(80, 2000) |
Bisa dipanggil berkali-kali |
| Docstring | Komentar penjelasan fungsi | """Fungsi ini untuk...""" |
Di baris pertama dalam fungsi |
| Return banyak nilai | Mengembalikan beberapa nilai sekaligus | return a, b, c |
Terima dengan: x, y, z = fungsi() |
| Modularisasi | Memecah program jadi banyak fungsi | main() memanggil fungsi lain |
Kode lebih rapi, mudah dikelola |
Kerjakan semua latihan di Pydroid 3 atau Pythonista 3 pada smartphone/tablet Anda!
Buat dua fungsi: sambutan() untuk menyambut pelanggan dan penutup() untuk menutup laporan. Panggil kedua fungsi tersebut di program utama.
______ pada bagian print() dengan string. Isi ______ di bawah dengan nama pemanggilan fungsi yang benar.
Buat fungsi cek_cat(ketebalan) yang menerima ketebalan cat (mm) dan mengembalikan teks status apakah memenuhi standar atau tidak (standar: 0.2 – 0.5 mm).
Buat program modular dengan minimal 3 fungsi terpisah:
ambil_input()
Tanya nama pelanggan dan jenis layanan, return kedua data
hitung_antrian(n)
Terima nomor n, kembalikan pesan "Anda antrian ke-N"
cetak_tiket()
Cetak tiket antrean lengkap dengan semua informasi
validasi_nama(nama) yang mengecek apakah nama tidak kosong — jika kosong, tampilkan peringatan.
Gabungkan materi Logika IF (pertemuan sebelumnya) dengan Fungsi untuk membuat sistem bengkel digital yang lengkap — semua fitur dibuat menjadi fungsi terpisah.
Setiap menu memanggil fungsi yang berbeda. Gunakan while True agar program berjalan terus sampai pengguna pilih "Keluar".
Setiap latihan yang telah kamu kerjakan WAJIB didokumentasikan dalam satu postingan di Blogger sebagai bukti pembelajaran.
Dokumentasikan semua hasil latihan (kode program, screenshot output, dan penjelasan) dalam satu postingan Blogger yang rapi dan menarik.
Pastikan postingan menggunakan judul persis seperti berikut:
Setelah postingan dipublikasikan, kirim link lengkap postinganmu melalui Google Form berikut:
Beri nama fungsi yang menjelaskan tugasnya: hitung_biaya() bukan fungsi1(). Kalau fungsi punya dua tugas berbeda, pecah jadi dua fungsi!
Coba sengaja panggil fungsi sebelum menuliskan def-nya. Amati error yang muncul: NameError: name 'xxx' is not defined. Ini cara cepat memahami urutan eksekusi Python.
Setelah membuat fungsi, uji langsung dengan memanggilnya dan print hasilnya. Jangan tunggu sampai seluruh program selesai — lebih mudah menemukan bug jika fungsi diuji satu per satu.
Ini kelebihan modularisasi: satu teman bisa buat fungsi input_data(), teman lain buat hitung_biaya(). Gabungkan di main(). Seperti kerja tim di bengkel sungguhan!