بسم الله الرحمن الرحيم

"We are not in the position to apply pressure on anyone, we are a small country. But we do express our views on things. If we think that people are practicing double standards, we just say so, whether people listen to us or not is a different matter but we feel that we have to give our comment based on the truth." -Tun Dr. Mahathir Mohamad in 'Restoring Muslim's Dignity / Menebus Maruah Ummah'. Jabatan Perkhidmatan Penerangan Malaysia. KL. 2002

السلام عليكم ورحمةالله وبركاته - Blog ni berkisar tentang hal-hal berkaitan pembangunan Malaysia ke arah Wawasan 2020, terutama berkaitan pembangunan negara menurut acuan Islam. Kita mempunyai cita-cita yg besar tetapi masih berdiri pada asas yg tidak kukuh. Saat kita jatuh, baru kita sedar di mana kita berpijak. (Ilustrasi: Potret Ibnu Sina)







Memaparkan catatan dengan label komputer. Papar semua catatan
Memaparkan catatan dengan label komputer. Papar semua catatan

Ahad, 8 November 2009

Kepentingan Islam dari perspektif Teknologi Maklumat dan Komunikasi (TMK)

(Siri MEMBANGUN BERSAMA ISLAM - bhgn 3)



Pemikiran kritikal adalah asas kepada budaya penyelidikan. Pemikiran kritikal menghendaki kita berfikir secara rasional dan mencari rasionaliti terhadap setiap yang berlaku dalam hidup kita. Melalui persoalan-persoalan yang dikemukakan boleh mendorong kita mencari sebab-musabab kepada sesuatu perkara dan alasan yang munasabah untuk kita menerimanya. Pemikiran kritikal selalu disebut apabila bercakap soal pemikiran saintifik. Sesetengah ahli sains terlalu obses dengan tema ini, sehingga menolak sama sekali kewujudan alam rohaniah. Salah satu sebabnya adalah kerana alam rohaniah tidak boleh dijelaskan menggunakan hujah pemikiran rasional. Malah 'kekurangan' ini mendorong ahli sains terbabit menolak konsep agama dalam kehidupan (terutama yang melibatkan alam roh dan akhirat, seperti Islam).

Namun dalam keghairahan kita untuk menerima pemikiran saintifik dan pemikiran kritikal, kita tidak harus menolak agama (cth menganggapnya karut, tidak penting dll). Sebagai orang Islam, keimanan dan tauhid itu menjadi asas kepada ajaran Islam. Jika kita menolak kepercayaan terhadap alam roh dan hari akhirat, maka Islam kita belum sempurna. Apatah lagi jika kita menolak keseluruhan konsep beragama sepertimana fahaman ahli sains atheis. Membuktikan kewujudan alam roh bagi menunjukkan kepentingan agama mungkin sangat sukar. Sebab-sebabnya ialah (1) kekangan ilmu dan (2) kekangan teknologi. Pembuktian tanpa ilmu tidak akan membuktikan apa-apa. Manakala untuk mewujudkan ilmu tanpa teknologi adalah sangat sukar.

Bagi umat Islam kita sangat bertuah kerana telah dibekalkan ilmu, iaitu Al-Quran. Mukjizat ini dihuraikan pula oleh sunnah dan hadis Nabi S.A.W.. Namun kita masih tidak mampu menjelaskan setiap ilmu ini secara saintifik kerana tidak ada sebarang teknologi/ilmu saintifik yang dapat menjelaskannya dengan sempurna. Hanya sebahagian teknologi hari ini dapat digunakan untuk membuktikan kandungan Al-Quran. Sebagai orang Islam kita tetap percaya walaupun belum terbukti. Usaha perlu diteruskan bagi mencari 'bukti' dan 'sebab-musabab' kepentingan beragama supaya dapat meningkatkan keimanan kita dan juga meyakinkan orang yang menolak agama (khususnya Islam) atas nama 'saintifik'. (Hakikatnya kita tidak perlu tunggu bukti untuk beriman. Bahkan alam sekeliling kita telah pun membuktikan keagungan Allah.)

Walaupun tidak ada hujah saintifik, sebagai Muslim, kita masih boleh menunjukkan kepentingan agama terhadap manusia melalui hikmah, contoh dan kesan positif yang boleh dihasilkan melalui aplikasi agama Islam dalam kehidupan. Justeru artikel ini cuba menghuraikan secara umum kesan positif amalan beragama dan mempraktikkan ajaran Islam dari perspektif Teknologi Maklumat dan Komunikasi (TMK). Amnya bidang TMK merupakan salah satu bidang sains sosial kerana ianya lebih melibatkan aplikasi, misalnya ilmu matematik dan bahasa. Ia bukanlah sains tulen/asas seperti ilmu fizik, kimia mahupun biologi. Di sebalik bidang TMK, wujud pula bidang Sains Komputer. Sains Komputer mengkaji secara saintifik teori dan ilmu yang dapat digunapakai untuk meningkatkan bidang pengkomputan dan komputasi. Ini sekaligus meningkatkan prestasi komputer bagi kegunaan manusia dan memperluaskan manfaatnya dalam pelbagai bidang.

Bagi menjelaskan kepentingan Islam kepada TMK, kita boleh lihat dalam 2 aspek - (1)sumbangan Islam kepada TMK, dan (2)potensi serta sumbangan TMK kepada perkembangan Islam. Melalui huraian aspek (1), kita boleh menilai kepentingan dan sumbangan utama Islam dari segi pembangunan sahsiah modal insan yang seimbang terhadap bidang TMK. Ada kemungkinan terdapat kepentingan-kepentingan lain yang belum dapat kita rungkai. Namun sekurang-kurangnya ini boleh menjadi titik permulaan kepada penerokaan fungsi agama dalam TMK. Manakala aspek (2), sebenarnya merupakan satu ruang yang agak luas dan terbuka kerana terdapat pelbagai kemungkinan dan usaha yang boleh dilakukan. Namun di sini kita akan membincangkan beberapa potensi TMK terhadap kepentingan Islam, supaya umat Islam dapat melibat bahawa penglibatan Islam sebenarnya menghasilkan lebih banyak peluang kepada potensi saintifik TMK. Justeru dalam aspek ini kepentingan agama lebih dilihat sebagai nilai-tambah kepada bidang TMK.

Melalui aplikasi agama akan dapat melahirkan modal insan yang mantap dalam bidang TMK. Amnya agama lebih tertumpu kepada memantapkan sahsiah diri sebagai manusia. Bidang TMK memerlukan penglibatan manusia. Pelbagai peranan diperlukan oleh TMK seperti penyelidik, pengaturcara, perekabentuk, penganalisis, penguji dan sebagainya. Ada sebahagian peranan telah diambil-alih sepenuhnya oleh komputer (cth penguji), sebahagiannya (computer-assisted spt pengkompil atau pembina program, tugas merekabentuk) atau bergantung sepenuhnya kepada manusia (cth pembinaan algoritma). Oleh kerana wujud penglibatan manusia, maka ia perlukan bimbingan agama bagi memastikan manusia yang terlibat dapat melaksanakan tugasnya dengan sempurna.

Peranan yang boleh dimainkan oleh ajaran Islam terhadap modal insan TMK ialah dalam soal etika dan kualiti kerja. Etika merupakan satu perkara asas yang perlu bagi setiap individu. Etika ditampilkan melalui perwatakan dalaman manusia seperti berintegriti, jujur, ikhlas, adil dsb. Persoalan etika sering diperkatakan kerana ia memberi kesan/impak yang besar terhadap aktiviti yang dilakukan. Pada masa yang sama etika sangat sukar untuk diawasi/dikuatkuasakan. Justeru ianya bergantung kepada keikhlasan/kehendak individu untuk melakukannya, selain adanya undang-undang dan peraturan yang dilaksanakan bagi 'memastikan' kod etika dipatuhi. Dalam hal ini, agama sebenarnya boleh memainkan peranan untuk 'menguatkuasakan' kod etika. Melalui bimbingan (dan desakan) iman, manusia akan cenderung untuk memelihara etika. Bagi orang yang beriman (mempercayai hukuman tuhan), kesalahan adalah dosa yang pasti akan dihukum, setidaknya oleh hukuman akhirat. Maka walaupun tidak diawasi oleh undang-undang, individu tetap memelihara etika kerana adanya 'undang-undang tuhan'.

Apabila ada keimananan, akan mendorong kepada hidup berdisiplin. Jika ditaati dan diamalkan sebaik mungkin (seperti saranan agama), akan melahirkan individu yang mementingkan ketelitian, kecekapan, ketaatan dsb. Ini adalah hasil disiplin. Adanya disiplin yang tinggi akan mendorong modal insan TMK untuk menghasilkan produktiviti yang bukan saja memenuhi matlamat tetapi juga berkualiti tinggi. Misalnya dalam tugas pengaturcaraan/pengekodan, adakala sesuatu matlamat boleh dicapai dengan pelbagai cara. Sama konsepnya dengan nilai 10 yang boleh dihasilkan dengan 5+5, 2x5, 9+1, 12-2, 50/5 dsb. Perkara penting bagi pengaturcara/pengekod adalah memilih cara yang terbaik untuk menyelesaikan masalah dan mencapai objektif (iaitu masalah komputasi selesai). 'Terbaik' diukur berdasarkan tahap optimum sesuatu penyelesaian, 'efficiency' dan juga kompleksiti sesuatu algoritma. Maka pengaturcara yang beriman akan cuba memilih kaedah yang dirasakannya terbaik (yang mampu dilakukan) kerana ia adalah amanah. Namun bagi yang tidak mementingkan iman, pelbagai unsur 'khianat' atau 'usaha sambil lewa' mungkin diamalkan. Misalnya dalam kes mendapatkan nilai 10, 5+5 lebih efisien berbanding 50 bahagi 5 (50/5). Namun bagi pengaturcara yang tidak beretika mungkin ini tidak diambil peduli, selagi nilai 10 diperolehi. Itupun jika tidak 'mencuri' atau meniru aturcara orang lain. Maka manfaat agama sebenarnya sangat besar terhadap TMK jika dapat diterapkan.

Ajaran Islam merupakan satu ajaran yang (kita imani) berasal dari Allah S.W.T. Maka banyak konsep yang sangat ideal boleh kita dapati dalam Islam. Untuk memahami sesuatu persoalan berkaitan cabang agama, misalnya ilmu fiqh, kita tidak boleh hanya menerima sahaja (sepertimana budaya ikut-ikutan). Sebaiknya, umat Islam perlu berfikiran rasional dengan memahami sebab-sebab di sebalik hukum tersebut (jika boleh). Misalnya, mengapa tidak boleh memegang kulit babi yang basah dan perlu disamak? Alasan umum adalah kerana hukumnya telah jelas sebagai perintah Allah. Tapi setakat menerima fakta 'pegang babi perlu samak' belum cukup. Sebaliknya kita perlu memahami bahawa perintah Allah dalam Al-Quran wajib kita taati (hukum tauhid). Kita perlu belajar kaedah 'samak' yang betul (hukum fiqh selanjutnya). Bagi ilmu saintifik pula kita boleh kaji alasan-alasan yang mungkin wujud di sebalik perintah ini sebagai nilai-tambah kepada pengukuhan iman kita.

Justeru konsep kesempurnaan dan 'ikutan berasas' dalam agama ini menggalakkan kita belajar/mendalami secara menyeluruh ke peringkat dasar, dan ini boleh diterapkan kepada penglibatan dalam bidang TMK. Sebagai contoh, dalam memahami sesuatu peraturan pengaturcaraan kita tidak boleh semata-mata menerima, malah sebaiknya perlu mengkaji alasan dan falsafah di sebalik peraturan itu supaya lebih memahaminya. Antaranya konsep orientasi-objek (OO). OO adalah paradigma, dan bukan sesuatu yang nyata (yakni implicit). Bagi pengaturcara yang tidak memahami konsep OO, adalah mustahil untuk membina program OO menggunakan bahasa pengaturcaraan OO seperti C++. Pengaturcara mungkin akan menghasilkan aturcara bermodul kerana C++ turut membenarkan konsep aturcara bermodul selain OO. Maka dengan penghasilan aturcara bermodul dan bukan OO adalah tidak berkesan dan mencapai matlamat, kerana matlamatnya aturcara berkonsepkan OO. Oleh itu melalui pemahaman dalam beragama kepada pembawaan dalam TMK akan menggalakkan individu menjadi modal insan yang berkualiti dan bermutu. Maka dapat mendorong kepada pemahaman terhadap falsafah dan paradigma, berbanding hanya melihat kepada aplikasi semata-mata.

Sebagai suatu ajaran yang benar dan bersifat universal/sejagat, ada kemungkinan terdapat elemen-elemen dalam ajaran Islam yang boleh dijadikan asas kepada pembinaan teori/aplikasi sains komputer. Tidak mustahil. Sains komputer yang ada sekarang umpamanya, banyak mengaplikasi konsep-konsep dalam alam nyata sebagai asas teori atau perbandingan. Misalnya konsep pepohon dan hutan (struktur data), keselarian (pemprosesan), struktur nahu bahasa (pemprosesan) dan bahasa formal (analisis). Maka ada baiknya jika kita cuba mengkaji kemungkinan-kemungkinan yang wujud dalam ajaran Islam yang boleh diterapkan dalam TMK. Contohnya formula penentuan kedudukan planet berdasarkan ilmu falaq Islam mungkin boleh digunakan bagi formula kebarangkalian, konsep kejadian langit dan bumi yang tersusun boleh menjadi sumber idea penyusunan organisasi sistem komputer dll. Tidak mustahil perkara ini mahupun kemungkinan lain menjadi releven dengan TMK dan dapat direalisasikan. Sesungguhnya alam ini Allah jadikan untuk manusia, dan salah satu elemennya adalah ajaran Islam. Justeru perlu difikirkan contoh/tauladan yang boleh diadaptasi dari ajaran Islam kepada TMK.

Manakala bagi aspek (2) ialah potensi-potensi pembangunan aplikasi dan penyelidikan TMK untuk kepentingan ajaran Islam. Kepentingan agama yang cuba diketengahkan ialah penglibatan agama dapat memperluaskan lagi skop dan ruang aplikasi TMK terhadap kehidupan manusia. Komputer sudah digunakan di pelbagai bidang, dalam pelbagai aspek kehidupan manusia moden. Amnya ini akan mendorong komputer dan TMK terus releven. Justeru dengan memastikan agama itu releven terhadap TMK membolehkan survivaliti agama dalam arus pemodenan hidup manusia. (Hakikatnya agama tetap boleh wujud melalui kepentingan-kepentingan dalam bidang/aspek lain. Ini cuma satu daripadanya.) Namun bahagian seterusnya ini lebih bersifat sebagai cadangan yang merangkumi sebahagian daripada kemungkinan dan potensi yang ada berkenaan TMK.

Antara aplikasi TMK dalam bidang berkaitan ajaran Islam ialah aplikasi sistem zakat dan pengurusan ekonomi Islam. Pengurusan zakat dan ekonomi Islam memerlukan pengurusan yang bukan saja betul, tetapi juga cekap dan efisien. Bagi sebuah pusat pungutan zakat, sistem pengurusan kutipan zakat akan dapat meningkatkan kecekapan pusat berkenaan dalam mengurus harta zakat. Formula zakat tidak sama dengan formula cukai, kerana peraturan dan syaratnya berbeza. Tugas sistem pengurusan zakat bukan saja perlu mengira, tetapi juga menyimpan maklumat, serta mengurus transaksi dan penyaluran wang zakat, maklumat asnaf dan sebagainya. Semua ini akan lebih mudah disempurnakan jika menggunakan sistem komputer kerana maklumat boleh diurus dengan cekap dan pantas. Hasil daripada sistem seperti ini akan mendorong kepada keperluan penyelidikan terhadap model, teori, formula dan sebagainya bagi tujuan penghasilan aplikasi khusus untuk pengurusan zakat dan masalah sepertinya. Malah kajian akan mendorong kepada pengkajian terhadap ilmu baharu. Zakat adalah salah satu model ekonomi Islam dan melalui pengembangan ilmu berkaitan dengannya secara tidak langsung mengembangkan ilmu dan sistem ekonomi Islam.

Al-Quran adalah petunjuk dan rahmat bagi seluruh alam semesta. Maka manusia yang berperanan sebagai khalifah bukan saja perlu memelihara isi Al-Quran tetapi juga menjadikannya sumber rujukan yang utama. Tidak bermakna jika Al-Quran itu dianggap petunjuk, tetapi tidak dirujuk mahupun dibaca. Justeru umat Islam perlu ada satu sistem yang menguruskan kandungan Al-Quran sebagai rujukan utama. Kemudian rekod-rekod hadis boleh disimpan bagi membantu menerangkan isi kandungan Al-Quran. Matlamat ini mendorong kepada pembangunan sistem pangkalan data/maklumat oleh pakar rujuk kepada kandungan Al-Quran dan hadis. Sistem ini juga merupakan satu usaha pemusatan rujukan Al-Quran dan hadis kepada umat Islam di seluruh dunia. Ini memudahkan ianya dipantau dan dikawal daripada usaha penipuan/kesilapan. Tugas sistem ini ialah (1) menyimpan dan mengurus kandungan Al-Quran dan hadis, (2) menyediakan sistem pakar yang boleh menganalisis kandungan Al-Quran dan dengan gabungan enjin carian serta keupayaan perlombongan data (3) memudahkan umat Islam mencari ayat-ayat Al-Quran atau keterangan hadis yang menjelaskan sesuatu isu. Malah bagi hadis pula (4) memudahkan urusan perekodan sanad atau susur-galur perawi atau ulama yang merekodkan hadis berkenaan. Melalui pengwujudan maklumat digital pula, akan membolehkan penyelidikan berkaitan Al-Quran dilakukan dengan lebih berkesan cth. analisis komputasi bagi kajian bahasa Arab dsb.

Lanjutan daripada sistem ini, dapat diteruskan pula kepada sistem pengurusan pendokumentasian Al-Quran. Sistem ini merupakan sebuah pangkalan data arkib yang menyimpan dokumentasi dan pentafsiran oleh ulama Islam (yang diiktiraf) dari seluruh dunia dalam pelbagai bahasa dan budaya. Ini membolehkan Al-Quran itu difahami mengikut konteks ataupun mazhab. Malah pada masa yang sama, umat Islam boleh membaca/mengetahui pandangan dari mazhab-mazhab yang berbeza terhadap sesuatu isu yang dibincangkan oleh Al-Quran. Perbezaan sebab dan alasan terhadap sesuatu pendapat boleh direkodkan, dan kemudian dirujuk oleh umat Islam. Ini dapat meningkatkan kefahaman di kalangan umat Islam sekaligus menghindarkan permusuhan antara puak dan kumpulan akibat perbezaan mazhab. Sistem dokumentasi ini juga perlu memiliki ciri carian, perlombongan data, sistem penyuntingan serta menyediakan sistem-sistem maklumat lain yang berkaitan, supaya penggunaannya lebih mantap dan berkesan.

Antara isu yang diperkatakan dalam Sains Komputer ialah cabaran dalam perlombongan data dan dapatan semula maklumat. Perlombongan data merujuk kepada kaedah bagi mencari dan memilih maklumat yang benar-benar releven dengan kehendak/carian pengguna. Fungsi ini merupakan antara ciri utama enjin carian internet seperti Google, Yahoo, Altavista dan sebagainya. Selain itu enjin carian juga digunakan bagi kegunaan setempat (cth. mencari fail gambar dalam cakera keras) seperti enjin carian Sherlock dalam MacOS X atau enjian carian dalam Microsoft Windows. Enjin carian pada hakikatnya masih kekurangan teori-teori yang berkesan, walaupun prestasinya hari ini kelihatan sangat mantap. Maka dalam usaha penyelidikan untuk membangunkan perlombongan data dan dapatan semula maklumat, boleh difikirkan juga bagaimana membina kaedah perlombongan data yang khusus bagi masalah-masalah berkaitan agama dan sistem rujukan Islam. Pada dasarnya kita boleh membina sebuah algoritma umum perlombongan data, kemudian digunakan untuk maklumat berkaitan ajaran Islam. Namun algoritma ini mungkin perlu diubahsuai; cth bagi kegunaan sistem pengurusan pendokumentasian Al-Quran.

Proses menjadi seorang Muslim bukanlah rumit. Asasnya hanya perlu meyakini dan mengakui bahawa Allah itu Tuhan yang tunggal (tiada yang lain) dan nabi Muhammad S.A.W. pesuruh-Nya, dan dilafazkan sebagai 'ikrar'. Kemudian memahami prinsip Rukun Islam dan Rukun Iman serta mengamalkannya. Maka sudah diiktiraf sebagai Muslim. Namun untuk mengamalkan ajaran Islam perlu kesungguhan dan usaha. Antara cabaran bagi seorang Islam ialah mempelajari ilmu bagi memantapkan akidah dan ibadah. Cabaran ini akan lebih tinggi terhadap Orang Kurang Upaya (OKU). Maka kita perlu menyahut tanggungjawab agama, iaitu membangunkan teknologi dan perisian aplikasi bagi kegunaan OKU Muslim. Sistem (aplikasi) pendidikan Islam bagi OKU merupakan satu cabaran kepada saintis Sains Komputer. Ini kerana OKU Muslim perlu dididik tentang ajaran Islam sepertimana pelajar Muslim yang sempurna sifat. Umum mengetahui bahawa penggunaan komputer dan perisian dapat meningkatkan keberkesanan pengajaran dan pembelajaran. Namun dengan keupayaan yang terhad (buta, kurang anggota dsb), bagaimanakah perisian itu mampu digunakan dengan baik dan berkesan terhadap OKU? Teknologi multimedia dan grafik seperti manipulasi warna, bunyi dan interaksi pengguna yang berkesan akan dapat membantu. Insan Muslim yang cacat pendengaran boleh belajar solat melalui paparan visual. Bagi orang yang buta atau tidak ada kaki dan tangan pula bagaimana? Semua ini seharusnya difikirkan oleh saintis TMK supaya OKU Muslim dapat dibantu untuk mempelajari dan mengamalkan ajaran Islam dengan sesempurna yang mungkin, sepertimana saudaranya yang sempurna sifat.

Selain yang telah dinyatakan, pelbagai aplikasi lain seperti teknologi pengira koordinat kiblat (Kaabah) dan Al-Quran elektronik telah pun wujud. Manakala di pasaran hari ini kita dapat lihat pula perisian-perisian multimedia bagi tujuan panduan am pendidikan Islam, hiburan dan permainan, pendidikan (bahasa Arab, bacaan Al-Quran) dsb. Namun pencapaian ini hanyalah sebahagian kecil daripada ruang yang boleh diteroka dan dibangunkan. Sebenarnya terdapat banyak ruang aplikasi untuk sistem perisian bagi kegunaan umat Islam. Ini kerana keperluan umat Islam terhadap ajaran Islam hampir tidak terbatas dan akan sentiasa berkembang. Apatah lagi dalam bidang penyelidikan dan pembangunan teknologi.

Maka sebagai kesimpulannya, kepentingan ajaran Islam terhadap bidang TMK sangat besar. Agama tidak seharusnya diabaikan kerana selain dapat membimbing dan melahirkan modal insan yang berkaliber, agama juga memberi ruang kepada aplikasi yang lebih besar dan penting terhadap TMK. Justeru di sini ingin dilontarkan beberapa cabaran umum yang harus dipikul oleh ahli TMK. Cabaran-cabaran tersebut ialah mengkaji dan mengenalpasti - (1)Apakah teori/aplikasi TMK yang boleh diilhamkan dari ajaran Islam? (2)Apakah teori/aplikasi TMK yang boleh dimanfaatkan oleh umat Islam? (3)Bagaimana untuk memastikan bahawa setiap elemen dalam sains komputer meningkatkan ketaqwaan kepada Allah? dan (4)Bagaimana melahirkan umat Islam yang mantap akidahnya dan mantap ilmu TMK? Justeru dengan memperkembangkan ajaran Islam dalam bidang TMK bukan sahaja terus merelevenkan agama dalam kehidupan moden tetapi juga memantapkan lagi usaha dakwah di kalangan masyarakat saintifik dan TMK.


(bersambung...)

Jumaat, 23 Januari 2009

Memasyarakatkan Pengaturcaraan Komputer

Artikel berikut adalah kesinambungan daripada pos 'Kepentingan Pengaturcaraan' (telah dikemaskini).


Notes: The above image/cartoon was published for illustration purposes only, to the following article, without any commercial or advertising intent. All copyright and credits belong to the original publisher.

'Pendedahan Ilmu Pengaturcaraan di Kalangan Masyarakat dan Pendekatan dalam Pendidikan'

Pelbagai usaha boleh dilakukan bagi melahirkan ramai pengatur cara. Antara penekanan yang perlu diberikan ialah penerangan terhadap kepentingan dan kegunaan komputer sebagai alat yang berpotensi dalam semua bidang, dan tidak hanya kepada bidang sains komputer sahaja. Masyarakat juga perlu diberi penerangan tentang pengaturcaraan dan potensinya. Pembangunan perisian tidak hanya terhad kepada komputer peribadi saja kerana apa saja yang menggunakan pemproses mikro, perlukan perisian dan pengaturcaraan. Pendedahan serta penerangan tentang bidang pengaturcaraan dan pembangunan perisian akan dapat membantu memberi kefahaman lebih mendalam kepada masyarakat erti sebenar pengaturcaraan dan betapa tingginya nilai kemahiran pengaturcaraan.

Komuniti sains komputer sedar tentang perlunya usaha menarik minat masyarakat kepada pengaturcaraan. Antara usaha yang dilakukan adalah dengan membina bahasa pengaturcaraan yang mudah dipelajari dan digunakan. Ini membolehkan generasi muda seawal Tahun Satu diajar menggunakan bahasa pengaturcaraan. Misalnya, bahasa pengaturcaraan BASIC dibina menggunakan sintaks bahasa yang mudah. Berbanding bahasa yang lebih kompleks, BASIC mudah dipelajari terutamanya bagi mereka yang baru menceburi bidang pengaturcaraan. Begitu juga dengan bahasa PASCAL. Manakala bahasa LOGO menggunakan konsep pengaturcaraan grafik untuk menarik minat kanak-kanak kepada bidang pengaturcaraan. Atur cara LOGO terdiri daripada set arahan-arahan untuk melukis dan secara tidak langsung kanak-kanak mudah tertarik untuk mencuba. Selain itu Scratch, AgenSheets, Alice, Baltie, Karel dan Phrogram adalah antara hasil kajian terhadap bahasa pengaturcaraan 'pendidikan' yang bertujuan menarik minat kanak-kanak mengatur cara. Pengaruh permainan komputer begitu ketara, kerana kebanyakan bahasa pengaturcaraan 'pendidikan' di atas lebih ke arah mengajak pengatur cara membina permainan komputer mereka sendiri.

Usaha meningkatkan kemahiran pengaturcaraan di kalangan generasi muda boleh dilakukan melalui penerapan kurikulum pengaturcaraan pada peringkat sekolah. Usaha ini akan menjadi lebih mudah dengan bantuan bahasa pengaturcaraan 'pendidikan' yang dinyatakan pada perenggan di atas. Pendedahan awal akan memberi maklumat kepada generasi muda tentang pengaturcaraan dan dengan pengetahuan yang luas akan memudahkan mereka menguasainya apabila dewasa kelak. Selain itu, pendedahan awal juga akan lebih berkesan kerana generasi muda sukakan cabaran dan sentiasa ingin mencuba sesuatu yang baru. Apatah lagi jika hasilnya menjanjikan keseronokan kepada mereka seperti pengaturcaraan permainan komputer. Melalui kurikulum pendidikan rendah dan menengah kita boleh memberi pendedahan dengan menyediakan tugasan atau projek yang melibatkan pengaturcaraan kepada pelajar. Jadi pelajar tidak ada pilihan selain mempelajari pengaturcaraan untuk menyiapkan tugasan yang diberikan.

Setakat ini pengatucaraan telah diajar di peringkat menengah atas di sekolah berasrama penuh dan MRSM (Maktab Rendah Sains Mara). Bahasa pengaturcaraan yang diajar pula adalah bahasa BASIC, iaitu bahasa yang ringkas dan agak mudah dipelajari.

Mengulas tentang hal ini saya pernah membelek koleksi buku rujukan KBSM berkaitan komputer hasil kerjasama pihak Kementerian Pelajaran Malaysia dengan sebuah syarikat penerbitan tempatan. Salah satu buku tersebut mengandungi kursus pengenalan terhadap pengaturcaraan C. Tidak pasti sama ada pihak kementerian telah menggunakannya di sekolah-sekolah. Walaupun secara peribadi saya rasakan kandungannya masih kurang berkesan, usaha ini merupakan satu langkah yang positif ke arah memberi pendidikan dan pendedahan kepada bidang pengaturcaraan di kalangan generasi muda. Cuma kandungannya perlu disemak dan dipertingkatkan dari masa ke semasa supaya lebih berkesan terhadap pelajar.

Publisiti terhadap industri permainan komputer juga mampu menarik minat golongan remaja mendalami bidang pengaturcaraan. Ini kerana ramai dari kalangan pengatur cara tertarik kepada pengaturcaraan disebabkan keinginan membina permainan komputer dan bersaing sesama mereka. Perkembangan industri permainan komputer di Eropah, Amerika Syarikat, Jepun dan Korea Selatan bukan saja menjanjikan keseronokan kepada masyarakat, malah menyediakan peluang kerjaya dan pendapatan yang lumayan. Di negara kita industri ini belum berkembang secara meluas, dan salah satu puncanya adalah faktor kurang kepakaran dalam bidang pengaturcaraan. Perkembangan industri permainan merupakan satu perkembangan yang positif kerana permainan komputer memerlukan pengatur cara dalam pembangunan permainan, selain pengurus, pereka grafik dan penguji permainan. Apabila remaja terdorong untuk melibatkan diri dalam pembangunan permainan atau menghasilkan permainan komputer sendiri, sudah tentu mereka akan berusaha mempelajari pengaturcaraan.

Hakikatnya pengaturcaraan bukan suatu tugas yang mudah. Sebagai seorang tenaga pengajar di IPTA, saya melihat masih banyak perlu dilakukan bagi membolehkan masyarakat tertarik dan mampu menguasai bidang pengaturcaraan. Sedangkan pelajar di IPT pun masih 'terkial-kial' untuk menguasainya, apatah lagi generasi muda di peringkat yang lebih rendah. Walau bagaimanapun tidak mustahil majoriti masyarakat mampu menguasainya suatu hari nanti. Pengaturcaraan bukan hanya untuk mereka yang genius, sebaliknya bagi mereka yang rajin berusaha mempelajarinya. Kita boleh mencontohi negara India yang walaupun mempunyai populasi penduduk miskin yang ramai, mampu melahirkan ramai pakar IT yang diimport oleh negara-negara maju.

Peranan pihak-pihak berkenaan terutama ahli komuniti sains komputer di seluruh negara amat diperlukan dalam melakukan kajian dan penyelidikan bagi mencari kaedah terbaik untuk meningkatkan pengetahuan dan kemahiran pengaturcaraan di kalangan masyarakat. Sebagai contoh usaha ke arah ini, di kalangan IPT (Awam) misalnya, sentiasa memberi penekanan terhadap kemahiran pengaturcaraan di kalangan lulusan sains komputer bagi memastikan graduan yang dihasilkan dapat meningkatkan bilangan komuniti pengatur cara yang terbaik di negara ini. Sokongan kerajaan juga perlu dalam membantu memberi kesedaran kepada masyarakat melalui penerapan kaedah pengajaran-pembelajaran sains komputer yang lebih berkesan pada peringkat sekolah. Manakala ahli masyarakat perlu memberi sokongan dengan mempelajari dan memberi galakan kepada generasi muda untuk mempelajari pengaturcaraan komputer. Jika semua pihak berganding bahu dan menyumbang tenaga, tidak mustahil Malaysia mampu menjadi 'kilang' tenaga pakar dalam bidang teknologi maklumat, khususnya pembangunan perisian, selaras dengan matlamat penubuhan MSC.

p/s: Artikel ini saya tulis sekitar tahun 2007. Dihantar ke editor majalah tempatan, tetapi tidak pernah tersiar (kesian...perlu banyak berlatih agaknya). Jadi saya siarkan di sini saja untuk tatapan umum.

Khamis, 11 Disember 2008

Kepentingan Pengaturcaraan

[kemaskini : 22 Jan 2009]

Mungkin masih ramai yang belum mengetahui kepentingan pengaturcaraan. Malah ada juga di kalangan pelajar yang telah mengikuti program Sains Komputer beberapa semester di IPT tetapi masih tidak tahu mengapa mereka belajar atau melakukan pengaturcaraan. Ini memang mendukacitakan. Hal ini boleh diibaratkan seperti budak kecil 3 tahun yang sedang memegang not RM1000 (tidak tahu nilai benda yang dimiliki). Tapi tak mengapa. Kita sama-sama belajar, kerana selagi ada nyawa kita masih punya tanggungjawab untuk terus belajar. Hakikatnya setiap orang ada kelebihan dan kekurangan masing-masing. Bagi pelajar/individu berkenaan, perlulah mendalami dan mengulangkaji semula tujuan pembelajarannya supaya mudah mendapat pekerjaan kelak.

Kepentingan Perisian dan Aplikasi Komputer

Dalam zaman teknologi komputer begitu meluas, komputer digunakan di mana-mana, dan tidak terhad kepada perkakas elektronik yang dipanggil komputer peribadi (PC) saja. Bahkan peti ais dan mesin basuh sudah ada sistem elektronik, iaitu sebahagian komputer. Cuba bandingkan mesin basuh yang dihasilkan pada tahun 80-an dengan mesin basuh automatik sekarang. Apa yang berbeza? Salah satunya adalah cara ia berfungsi. Mesin basuh 'lama' berfungsi secara manual atau mekanikal. Tetapi mesin basuh automatik moden sudah boleh melakukan kerja basuhan secara lengkap (basuh, bilas, kering) dengan hanya menekan 1 butang saja. Semuanya dengan bantuan sistem elektronik.

Tanpa sistem elektronik, perkakas elektrik kurang berkemampuan untuk 'berfikir' sendiri dan memerlukan sistem mekanikal/elektrikal yang kompleks. Itupun jika ada. Dari segi saiz, ia lebih besar. Prestasinya juga jauh ketinggalan. Dengan adanya sistem elektronik, perkakas elektrik tersebut mampu melakukan pelbagai tugas secara automatik dan pantas dengan hanya memerlukan sistem yang bersaiz kecil. Mungkin kita tahu semua ini. Tapi tidak ramai yang tahu bahawa sistem ini menggunakan perisian untuk beroperasi.

Ramai di kalangan kita yang sudah mahir menggunakan komputer peribadi. Selain itu penggunaan komputer riba dan permainan video juga turut meluas. Kita sedang menggunakan komputer untuk melayari internet (membaca blog ini). Kita juga mungkin baru saja selesai menaip dokumen dan laporan untuk dihantar esok. Kawan-kawan kita pula sedang bermain perisian permainan dengan seronok sekali hingga terlupa soal makan-minum. Komputer tidak akan berguna tanpa perisian. Begitu juga konsol permainan video. Dengan adanya pelbagai perisian dengan pelbagai fungsi, maka semua perkakas elektronik dapat berfungsi dan dapat dimanfaatkan.

Perisian tidak wujud dengan sendiri. Ia juga suatu 'benda' dan perlu dibina. Mesin tidak mampu membina perisian*. Sepertimana proses menghasilkan suratkhabar, mesin hanya dapat mencetak tetapi kandungannya perlu dikarang, disunting dan disusun, sebelum dihantar ke kilang untuk dicetak. Perisian juga perlu ditulis/dikarang, dikompil dan disimpan ke dalam satu ruang storan. Selepas itu barulah boleh disalin dalam jumlah yang banyak ke dalam ruang storan setiap komputer atau perkakas elektronik. Jadi siapa yang membina/menulis perisian? (perisian bagi perkakas elektronik seperti mesin basuh automatik disimpan di dalam cip yang dipanggil ROM atau Read Only Memory).


Peranan pengaturcara

Pengaturcaraan adalah menyusun langkah-langkah penyelesaian masalah. Tapi sebelum kita mengetahui mendalam tentang pengaturcaraan, kita perlu tahu kenapa kita melakukannya. Analogi melakukan pengaturcaraan ialah umpama kita hendak mengajar orang yang belum tahu ABC supaya boleh mengeja 'penswastaan'. Susah kan? Namun berbanding manusia yang perlu masa untuk belajar, komputer hanya perlu diarahkan dan sepantas kilat boleh menyelesaikan masalah.

Komputer adalah mesin pengiraan yang pantas dan sophisticated. Komputer boleh menyelesaikan pengiraan-pengiraan yang melibatkan nombor dan formula yang kompleks dalam sekelip mata. Mungkin tak sempat kelip mata! Tetapi masalahnya, komputer tidak boleh berfikir dan bertindak sendiri*. Komputer perlu diarahkan untuk melaksanakan sesuatu, dan pengaturcara akan menulis arahan-arahan yang boleh difahami oleh komputer. Manakala arahan-arahan komputer kebanyakannya adalah dalam bentuk aturcara* (arahan bukan aturcara dipanggil interaktif). Dalam melakukan tugas pengaturcaraan, pengaturcara menyusun arahan-arahan dalam bentuk bahasa tabii atau bahasa percakapan yang dipanggil pseudokod, dan menukarkannya ke dalam bahasa pengaturcaraan paras tinggi (pengaturcara boleh juga terus menulis dalam bahasa pengaturcaraan). Kemudian aturcara ini ditukar pula kepada mesin. Komputer akan membaca arahan dalam bahasa mesin dan melakukan seperti yang diarahkan.

Arahan mesti jelas serta diskrit. Apabila memberi arahan kepada komputer, pengaturcara tidak boleh agak-agak, atau menulis arahan yang tidak tetap.

Andaikan kita mengaturcara komputer supaya mengira kadar ketumpatan air dalam sebuah tangki. Jika formula ketumpatan air tidak dimasukkan dengan jelas, komputer tidak boleh melakukan pengiraan dengan betul. Misalnya isipadu air mengunakan pembolehubah X, tetapi kemudiannya menggunakan pembolehubah Y. Jika menggunakan X, teruslah menggunakan X, kerana komputer hanya akan menggunakan apa yang kita arahkan.

Pengaturcara juga tidak boleh main agak-agak (assume). Kalau kita arahkan komputer mengira menggunakan 3 langkah, maka 3 langkah yang akan dilakukan. Jika kita mengarahkan komputer menggunakan 3 langkah tetapi menjangka komputer akan menambah langkah 4, maka jangkaan kita silap. Jika kita mengharapkan 4 langkah, maka kita perlu menulis arahan 4 langkah*.

Berbalik kepada persoalan, siapa yang membina perisian, maka pengaturcara adalah orang yang bertanggungjawab menghasilkan perisian dengan menulis aturcara. Perisian adalah output dari pengkompilan aturcara. Komputer masih memerlukan kepintaran manusia mengarahkannya untuk menyelesaikan masalah, dan pengaturcara melakukan pengaturcaraan untuk menghasilkan perisian. Maka bidang pengaturcaraan penting untuk dipelajari supaya pelbagai perisian yang menggerakkan perkakas elektronik dapat dihasilkan.


Kepentingan bidang pengaturcaraan dalam industri

Dengan meluasnya penggunaan komputer, bererti bertambahlah permintaan terhadap tenaga mahir dalam pengaturcaraan. Ini kerana pertambahan aplikasi komputer akan meningkatkan peluang dalam bidang pembangunan dan pemasaran perisian. Misalnya permintaan terhadap pembangunan aplikasi komputer yang umum (cth penyunting dokumen) mahupun spesifik (cth aplikasi pengawal untuk loji nuklear). Selain itu kebanyakan organisasi, syarikat dan perniagaan memerlukan komputer dalam memantapkan operasi. Justeru permintaan terhadap pembangunan aplikasi yang spesifik untuk satu-satu organisasi (custom made) juga akan meningkat. Manakala perkembangan teknologi internet sebagai medium pemasaran dan perniagaan juga mendorong permintaan terhadap perisian aplikasi internet. Semua ini belum mengambilkira perkembangan industri multimedia seperti permainan video dan perfileman yang menggunakan aplikasi 3D, CGI dll yang semakin mendapat sambutan. Justeru pasaran kerja akan lebih terbuka luas bagi mereka yang mahir mengaturcara.

Selain itu, dewasa ini ramai tenaga pengaturcara diperlukan. Ini kerana projek pembangunan perisian bukanlah satu tugas yang mudah dan remeh. Malah ianya boleh jadi kompleks, memakan masa berbulan-bulan untuk disiapkan dan diuji, dan boleh memakan belanja berjuta-juta ringgit. Ini samalah juga dengan projek-projek seperti pembinaan bangunan dan kereta. Dalam projek pembangunan perisian yang kompleks, pengaturcara diperlukan untuk menganalisa masalah yang memerlukan perisian untuk menyelesaikannya, membina aturcara, menguji dan memasangnya supaya dapat berjalan/berfungsi dengan baik. Membaiki masalah yang melibatkan perjalanan perisian hanya boleh dilakukan oleh pengaturcara*. Bukan seperti pendingin hawa yang dibina di kilang dan dibaiki/diselenggara oleh juruteknik saja!

Pengaturcaraan sangat penting untuk dipelajari selain untuk merebut peluang pasaran kerja. Hakikatnya, ramai orang terlepas pandang bahawa pengaturcaraan sangat penting untuk pelbagai bidang, malah boleh dijadikan sebagai hobi dan aktiviti masa lapang yang menyeronokkan. Sebenarnya kita tidak perlu terlalu bergantung kepada pengaturcara yang lulus program Sains Komputer. Sebaliknya kita sendiri boleh (dan adakala perlu) mempelajarinya untuk memudahkan tugas harian kita, walaupun kita terlibat dalam bidang lain seperti perakaunan, biologi dsb.

Jika kita seorang ahli penyelidik biologi, mempelajari pengaturcaraan berkaitan boleh membantu kita membina perisian yang kita sendiri perlukan. Misalnya kita menyelidik tentang struktur molekul DNA (contoh). Mungkin orang belum pernah melihat atau mempelajari molekul DNA. Jadi bagaimana akan ada perisian yang boleh menganalisis struktur molekul DNA kerana mana-mana pengaturcara pun tidak mengetahui tentang DNA? Tetapi jika penyelidik yang mahir tentang molekul DNA ini boleh mengaturcara, maka dia boleh membina perisian penganalisis dan memudahkannya melakukan eksperimen/analisa. Ini kerana pengiraan menggunakan perisian dapat menjimatkan masa dan tenaga (berfikir). Lebih menguntungkan jika orang lain pun ingin menggunakan perisian itu untuk kegunaan mereka.

Harapnya jelaslah sudah kepentingan pengaturcaraan pada kita semua. Mungkin saya akan tambah lagi jika ada bahan dan kesempatan. Insya'allah.

(*) Nota: ada pernyataan yang sebenarnya lebih kompleks dan perlu penerangan lebih terperinci, tetapi dimudahkan untuk memudahkan kefahaman.

Selasa, 2 Disember 2008

Pengaturcaraan - Pengenalan

Bila berfikir tentang blog ini, saya baru teringat. Dalam banyak-banyak pos saya, belum ada yang khusus tentang sains komputer (sedangkan itu penyelidikan utama saya!). Maka untuk pos kali ini adalah untuk memperkenalkan bidang pengaturcaraan. Mungkin sebab selama ni saya menulis untuk diri sendiri, maka rasa tak penting 'memperkenalkan' subjek yang arif bagi saya. Tidak apa. Boleh juga jadi 'ulangkaji'!

Pengaturcaraan sangat rapat dengan istilah komputer. Ini kerana komputer tidak boleh berfungsi tanpa perisian. Pengaturcaraan adalah satu kerja (atau aktiviti) menyusun langkah-langkah penyelesaian masalah dalam bentuk diskrit untuk dilaksanakan oleh komputer. Set langkah ini dinamakan aturcara. Perisian ialah hasil dari kompilasi aturcara ke dalam bentuk kod mesin. Jadi perisian merujuk kepada langkah-langkah yang akan dilaksanakan oleh komputer dalam bentuk kod mesin, dan pengaturcaraan adalah kerja untuk menghasilkan perisian.

Dahulu mesin hanya merujuk pada komputer atau pemproses sebenar. Tapi kini terdapat perisian yang digelar 'mesin maya' atau VM (virtual machine). Perisian ini mengambil alih fungsi mesin sebenar untuk melaksanakan perisian. Jadi secara mudahnya, perisian tidak perlu mesin sebenar untuk dilaksanakan, sebaliknya dengan menggunakan VM, output perisian boleh dihasilkan. (hakikatnya perisian VM perlu mesin sebenar juga untuk 'berfungsi', cuma VM mampu melindungi perisian yang hendak dilarikan / 'execute' daripada bergantung kepada sesuatu mesin sebenar). Tujuan VM adalah membolehkan sesuatu perisian bersifat mudah-alih, sebab VM lebih murah dan perisian (secara amnya) dapat dilarikan pada mana-mana mesin sebenar.

Pengaturcaraan melibatkan bahasa pengaturcaraan. Pernah dengar PHP? HTML? C? Visual Basic? Java? Semua ini adalah antara bahasa pengaturcaraan yang dikenali ramai (kalangan ahli komputer). Secara terperinci HTML, PHP dan C adalah 3 jenis bahasa berbeza. Tapi untuk memudahkan, kita andaikan sebagai satu bahasa pengaturcaraan saja. Contoh:
(1)
#include "stdio.h"

int main (void)
{

printf("Selamat Pagi, Malaysia!\n");
return 0;
}

Contoh (1) di atas adalah aturcara dalam bahasa C. Aturcara akan disimpan dalam fail teks (misalnya 'ucapan.c') dan dikompil menggunakan perisian yang dipanggil pengkompil. Pengkompil khusus pada sesuatu bahasa pengaturcaraan, dan pengkompil untuk aturcara (1) adalah pengkompil C. Output pengkompil adalah fail perisian yang boleh dilaksanakan. Ia juga dipanggil program atau aturcara. Apabila dilaksanakan, akan mengeluarkan output berikut pada skrin:
(2)
Selamat Pagi, Malaysia!
Ini adalah satu contoh ciri perisian, iaitu mengeluarkan output. Tugas perisian lebih kepada untuk melakukan pengiraan dan komputasi. Apabila mengungkap istilah 'pengiraan', sebenarnya teks yang terpapar dalam (2) adalah hasil pengiraan (walaupun sekadar memaparkan teks). Jadi pengaturcaraan hakikatnya adalah langkah penyelesaian pengiraan. Maka tidak hairanlah ramai pakar pengaturcaraan biasanya mereka yang mahir Matematik, atau orang Matematik mudah mahir pengaturcaraan. Tapi bak kata pepatah 'Hendak seribu daya, tak hendak seribu dalih'. Sesiapa saja boleh menguasainya jika berusaha bersungguh-sungguh. Individu yang melakukan kerja pengaturcaraan pula dipanggil pengaturcara. Dalam industri pembangunan perisian dan aplikasi komputer, pengaturcara adalah salah satu golongan yang penting. Hakikatnya ramai lagi yang penting seperti pengurus projek, penganalisis sistem, perekabentuk, penguji, selain pengaturcara. Cuma dalam skop hobi atau eksperimen, seorang saja boleh menjawat semua tugas berkenaan.

Pelaksanaan perisian melibatkan tiga ciri utama, iaitu input, proses dan output (IPO). Ada juga yang memandang perisian sebagai sebuah sistem atau fungsi kerana mengandungi IPO. (IPO adalah konsep umum yang terpakai pada banyak bidang, termasuk sains komputer). Maka pengaturcara perlu mahir konsep IPO dan perisian untuk memahami pengaturcaraan, kerana pengaturcaraan adalah untuk menghasilkan perisian, dan perisian melakukan fungsi IPO.

Rasanya cukuplah untuk pengenalan. Insya'allah, ada masa (atau kesempatan dsb yang berkaitan) saya sambung lagi.