Pages

Thursday, June 12, 2025

Subrutin dalam program seumpama mesin dalam kilang

 * Penulisan ini disunting daripada nota asal berkaitan pengaturcaraan yang saya tulis dan kongsikan kepada pelajar saya di UPM, CCS3100 Penyelesaian Masalah dan Konsep Pengaturcaraan, Jun 2025 *


Membina subrutin atau metod

Membina subrutin dan metod dalam program seumpama mereka bentuk sebuah kilang. Sebagai contoh, sebuah kilang untuk penghasilan kertas.

Penghasilan kertas memerlukan proses*, 

  1. mengumpulkan kayu,
  2. memecahkan dan mericih kayu kepada kepingan kecil,
  3. melembutkan kepingan kepada pulpa kayu,
  4. menekan pulpa menjadi lembaran kertas,
  5. mengeringkan lembaran kertas, dan
  6. membungkus kertas untuk penghantaran.

(*ini hanya gambaran kasar, saya bukan pakar bidang pembuatan kertas)

Sekarang, bayangkan anda (pelajar) sebagai seorang jurutera yang ditugaskan untuk mereka bentuk sebuah kilang untuk menghasilkan kertas. Apa yang anda akan lakukan?

Tentunya anda akan mereka bentuk jalur paip proses, untuk melakukan proses (1) hingga proses (6) seperti berikut:

Setiap proses dalam jalur paip akan dilaksanakan oleh suatu seksyen atau suatu mesin.

Setiap seksyen / mesin akan menerima input daripada seksyen / mesin sebelumnya, dan menghasilkan output untuk seksyen / mesin seterusnya. Seksyen / mesin akhir untuk proses (6) akan menghasilkan output akhir, iaitu kertas.

Subrutin / metod juga seperti seksyen / mesin dalam kilang. Ia akan melakukan tugas atau proses spesifik untuk program utama. Metod akan menghasilkan output untuk proses seterusnya atau produk akhir.

Sebagai pengatur cara, anda mereka bentuk dan menyusun 'mesin-mesin' (metod) di dalam program supaya mesin tersebut dapat bekerjasama untuk memproses input awal hingga menghasilkan output akhir.

Untuk membina kilang, adakala anda hanya memasang terus mesin-mesin sedia ada untuk kilang. Adakala anda perlu mengubah suai mesin sedia ada sebagai mesin custom, atau membina mesin baharu untuk kilang tersebut.

Samalah juga dengan program. Adakala anda hanya perlu guna (panggil) metod sedia ada untuk program anda. Adakalanya anda perlu mengubah suai metod sedia ada sebagai metod custom, atau membina membina baharu untuk program.


Perkongsian merentas metod menggunakan pemboleh ubah global

Pemboleh ubah global atau sejagat seumpama membenarkan perkongsian produk untuk pemasangan merentas jalur pair dalam sebuah kilang.

Mesin dalam jalur paip sentiasa memerlukan input, sama ada input dari luar, atau input daripada mesin sebelumnya (dalam jalur paip).

Mesin dalam jalur paip juga perlu menghasilkan output, sama ada output untuk mesin seterusnya dalam jalur paip, atau output sebagai produk akhir.

Berkongsi produk yang sama merentas jalur paip memudahkan pemprosesan.

Bayangkan enjin kereta yang melalui siri proses pemasangan untuk memasukkan wayar, gear, komponen-komponen kecil, dsb. seperti berikut (* sekali lagi, hanya gambaran kasar *):

Setiap proses dalam jalur paip bebas untuk mencapai enjin yang sama, untuk mengubah suai atau mengambil enjin tersebut untuk pemprosesan berbeza.

Ini akan membolehkan hasil daripada pemprosesan semasa dikongsi untuk pemprosesan seterusnya sehinggalah produk dapat disiapkan.

Metod juga boleh berkongsi pemboleh ubah (global) untuk memudahkan pemprosesan bagi suatu program. Hal ini sama seperti berkongsi enjin merentas proses dalam jalur paip pemasangan enjin.

Walau bagaimanapun, ini bukanlah reka bentuk terbaik untuk metod, walaupun mudah untuk direka bentuk berbanding penggunaan parameter dan nilai pulangan.


Parameter dan nilai pulangan untuk metod seumpama input dan ouput untuk mesin

Mesin sentiasa perlukan input, sama ada input daripada luar, atau input daripada mesin sebelumnya. Mesin juga perlu hasilkan output, sama ada output untuk mesin seterusnya dalam jalur paip, atau output sebagai produk akhir.

Metod juga perlu menerima input daripada luar program (cth: pengguna) atau metod sebelumnya yang berada dalam 'jalur paip'.

Parameter ialah input yang diterima oleh metod daripada  metod lain (sebelumnya). Parameter akan membolehkan suatu metod menjadi lebih fleksibel, yang mana ia dapat melakukan process yang sama untuk pelbagai jenis nilai (sebagai inputnya).

Metod juga perlu menghasilkan output ke luar program (cth: pengguna, sebagai produk akhir) atau kepada metod seterusnya yang berada dalam 'jalur paip'.

Nilai pulangan ialah output yang dihasilkan oleh metod untuk metod lain (seterusnya). Nilai pulangan membolehkan suatu metod menyampaikan hasil kepada metod lain di dalam program yang sama.

Pemboleh ubah sejagat atau global mudah untuk diimplimentasi, tetapi susah untuk diubah suai sekiranya terdapat pepijat dalam program.

Tetapi dengan menggunakan parameter dan nilai pulangan, dapat memastikan tiada pemboleh ubah yang dikongsi sebagai global atau sejagat, sekaligus menjadikan suatu metod terasing dan mudah untuk diubah suai.


Lain kali, apabila anda membina program Java, fikirkan seolah anda sedang membina kilang!