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

"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 pengaturcaraan. Papar semua catatan
Memaparkan catatan dengan label pengaturcaraan. Papar semua catatan

Selasa, 10 Februari 2009

Pengaturcara muda dan harta intelek

Kisah remaja bijak (pengaturcaraan) di Singapura...
Nine-year-old writes iPhone code

A nine-year-old Malaysian boy in Singapore has written a painting application for the Apple iPhone. Lim Ding Wen created the finger painting program, known as Doodle Kids, for his two younger sisters aged three and five. The program allows iPhone owners to draw images on the handset's touch screen using just their fingers. The program has been downloaded more than 4,000 times from Apple's iTunes store in less than two weeks. While most children of his age are painting or drawing with crayons, Lim Ding Wen has been programming.

Lim, who is now fluent in six programming languages, first started using a computer when he was two-years-old, discovered programming aged seven, and has since completed more than 20 programming projects. His latest application, Doodle Kids, allows users to draw pictures using their fingers and then clear the screen by shaking the iPhone.

"I wrote the program for my younger sisters, who like to draw," said Lim. "But I am happy that people like it."

Lim wrote the original application on his computer but has now adapted it for use on an iPhone. He told The Electric New Paper in Singapore that he wrote the application in just a few days in Pascal. Writing on his website, Lim's father - Lim Thye Chean - a chief technology officer at a local hi-tech firm, who also writes iPhone applications, was modest about his son's achievements.

"Ding Wen is an above average boy with an interest in computers, especially Apple IIGS and Macs, likes to do programming, and that's it.

"Doodle Kids is an extremely simple program that can be done by anybody. Everybody can program - if Ding Wen can, so can you," he wrote.

Lim Ding Wen is now working on a sci-fi game for the iPhone called Invader Wars and plans to join his school's robotics club.

Sumber: BBC - Technology

Apa yang menarik di atas:
  • mula kenal pengaturcaraan seawal usia 2 tahun
  • membina aplikasi seawal usia 9 tahun
  • membina aplikasi permainan untuk adik-adiknya!
Generasi muda yang bukan saja cemerlang dan pintar, tetapi beretika. Inilah yang Malaysia perlukan...

Berita di atas berkenaan seorang rakyat Malaysia, yang mencapai kejayaan di negara jiran, Singapura. Saya ingin berkongsi tentang saranan Tun M dalam ucapannya tentang perlindungan harta intelek dan peranan negara membangun (dan miskin) melindungi harta intelek (Mahathir, 2006). Antara lain, beliau menyebut tentang hak-hak negara membangun dari sudut perlindungan harta intelek mereka terhadap negara kaya.

Dewasa ini ramai penyelidik/intelek daripada negara-negara membangun bermastautin di negara kaya dan menyumbang hasil kerja dan keintelektualan mereka di sana. Hal ini disebabkan negara kaya dapat menyediakan kemudahan penyelidikan yang diperlukan oleh penyelidik, berbanding berada di negara asal mereka. Tun M berpendapat, seharusnya negara-negara kaya membayar royalti atas sumbangan para penyeldik yang bermastautin di negara kaya. Royalti ini perlu dibayar kepada negara asal penyelidik berkenaan.

Negara asal berhak mendapat royalti kerana negara berkenaan telah berusaha menyediakan pendidikan dan prasarana untuk melahirkan penyelidik. Tetapi apabila para penyelidik telah mendapat pendidikan yang cukup, mereka 'melarikan diri' ke negara kaya. Kesannya, negara kaya terus kaya dengan sumbangan mereka, sedangkan yang membangun dan miskin terus ketinggalan tanpa mendapat apa-apa sumbangan daripada penyelidik yang mereka lahirkan. Justeru Tun M berpendapat, adalah wajar negara kaya terbabit membayar royalti sebagai 'ganti rugi' kepada negara asal penyelidik. Royalti ini bukan sekadar sebagai 'wang tebusan', bahkan bertujuan (1) membantu negara membangun mendapat manfaat dari penyelidik yang mereka lahirkan, selain (2) meningkatkan lagi keupayaan negara tersebut untuk melahirkan lebih ramai cerdik pandai dan penyelidik yang berbakat.

Pastinya saya sangat bersetuju dengan Tun M. Namun untuk memberi komen yang bersifat kritis, pandangan Tun M ini mungkin akan jadi sekadar pandangan yang tidak dipedulikan (hakikat ini sebenarnya diujarkan juga oleh Tun pada akhir ucapannya hehehe). Hujah yang akan dibangkitkan oleh negara kaya ialah (1) bagaimana negara asal boleh mendakwa royalti hak mereka, sedangkan belum tentu pendidikan yang diberikan merupakan asas kepada penemuan penyelidik berkenaan (mana bukti adanya hubungan langsung? Penyelidik belajar juga di negara lain); (2) penyelidik secara sukarela bermastautin di negara kaya dan dianggap ingin menyumbang kepada negara kaya, bukan negara asal mereka; (3) berapa peratus royalti yang perlu dibayar? dan bermacam alasan lain yang akan digunakan oleh negara kaya.

Tun M mungkin sedar atas masalah ini dan beliau sendiri mengujarkan bahawa semua ini bergantung atas 'ehsan' dan rasa prihatin negara kaya berkenaan untuk membayar, kerana tiada badan antarabangsa atau undang-undang yang boleh memaksa mereka membayarnya. Justeru, dalam menyelesaikan masalah ini, mungkin (MUNGKIN), atas inisiatif dan semangat patriotik penyelidik berkenaan, boleh (1) mendapatkan hak (cth: paten) peribadi terhadap penyelidikan mereka, dan membawanya pulang ke negara asal; (2) pulang ke negara asal dan membangunkan prasarana penyelidikan (seperti yang diusahakan oleh Malaysia sblm ini memanggil pulang tenaga pakar); (3) menyalurkan perkembangan penyelidikan mereka ke negara asal (tak perlu pulang), supaya maklumat itu boleh dikembangkan di negara asal mereka oleh penyelidik lain. Sedikit sebanyak usaha ini dapat mengelakkan hasil sumbangan penyelidik dari negara membangun/miskin dimanipulasi oleh negara kaya yang tidak mahu memikirkan nasib negara terbabit.


Rujukan:
  1. Mahathir Mohamad (2006). Islam, Knowledge and Other Affairs. MPH Publishing.
  2. BBC News. URL = http://news.bbc.co.uk/2/hi/technology/7874291.stm (dirujuk pada : 10/02/2009)

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.