Memaparkan catatan dengan label Ilmu Komputer. Papar semua catatan
Memaparkan catatan dengan label Ilmu Komputer. Papar semua catatan

Rabu, 4 Disember 2013

C PROGRAMMING

PENGENALAN KEPADA PENGATURCARAAN C (C PROGRAMMING)



Bahasa C diambil daripada ALGOL iaitu bahasa pengaturcaraan pertama menggunakan struktur blok. Pada 1960-an, ALGOL diguna secara meluas di negara-negara Eropah. Sebelum C, telah ada bahasa lain yang dibangunkan, antaranya pada tahun 1967, Martin Richards membangunkan BCPL (Basic Combined Programming Language), yang mempunya acess secara terus kepada memori. Pada tahu 1970, Ken Thompson membangunkan bahasa B. B merupakan versi pertama UNIX (sebuah sistem operasi komputer yang juga dibagunkan oleh Dennis ). Dengan mengambil konsep ALGOL, BCPL, dan C, Dennis Ritchie membangunkan C pada tahun 1972. 

Antara ciri-ciri dan kelebihan bahasa C:
  • bahasa yang mantap (robust) 
  • Paling popular
  • bahasa peringkat tinggi
  • bersaiz kecil - 32 katakunci (mudah dipelajari)
  • sangat sesuai dengan program berstruktur, C membolehkan pengguna untuk memikirkan masalah dalam modul/fungsi di mana pengumpulan kesemua modul itu dapat dijadikan sebuah program yang lengkap. Mudah untuk di'debug', pengujian dan dipelihara
  • tidak seperti PASCAL, ia menyokong 'loose typing', karakter yang boleh dianggap integer dan sebaliknya
  • bahasa yang stabil
  • bahasa yang pantas
  • menyokong pengaturcaraan peringkat rendah (bitwise)
  • menyokong 'pointers' untuk merujuk memori komputer, array, structures dan function
  • C adalah bahasa teras banyak bahasa lain, C++, Java, Perl
  • C adalah serbaguna
  • C boleh dipanjangkan
  • Bahasa kedua terbaik selepas bahasa pilihan pertama, selalunya ramai pengguna memilih C

Selasa, 3 Disember 2013

Sejarah Generasi-generasi Bahasa Pengaturcaraan

SEJARAH KELAHIRAN BAHASA PENGATURCARAAN

Katakunci: | Generasi pertama | bahasa mesin | bahasa peringkat rendah | binari |
Keywords: | First generation | machine language | low-level language | binary |

Kita telah mengetahui bahawa bahasa pengaturcaraan adalah peralatan utama untuk mencipta sebuah perisian. Hari ini, terdapat beratus-ratus bahasa pengaturcaraan di pasaran; dan masing-masing mempertahankan bahawa merekalah yang terbaik. Walaubagaimanapun, pada 1940-an sewaktu komputer masih berada di dalam pembangunan, hanya satu bahasa sahaja yang ada iaitu - bahasa mesin. 


Konsep generasi bahasa pengaturcaraan atau dikenal sebagai 'level' atau peringkat sangat berkesinambungan dengan perjalan kecanggihan dalam teknologi komputer. Empat generasi bahasa pengaturcaraan, iaitu:

  1. bahasa mesin (machine language)
  2. bahasa pemasangan (assembly language)
  3. 3GL atau Third Generation Language/High-level language
  4. 4GL atau Fourth Generation Language/Very high level language

GENERASI PERTAMA: MACHINE LANGUAGE (BAHASA MESIN)

Pengaturcaraan bagi sistem komputer pertama adalah menggunakan bahasa mesin. Ianya merupakan bahasa pengaturcaraan berperingkat paling rendah, dan juga satu-satunya bahasa yang dapat difahami oleh komputer. Kesemua 'commands' atau arahan dan nilai data dinyatakan dengan menggunakan 1s dan 0s bersepadanan dengan 'on' dan 'off' dalam keadaan elektrikal di dalam komputer. 

Pada tahun 1950-an, setiap komputer memiliki bahasa aslinya tersendiri, dan programmer juga memiliki sistem yang primitif dalam menggabungkan nombor; untuk menunjukkan arahan seperti 'tambah' dan 'tolak'. Walaupun terdapat persamaan diantara bahasa-bahasa mesin tersebut, sesuatu komputer tidak dapat memahami program yang ditulis dalam bahasa mesin yang lain.


Di dalam bahasa mesin, kesemua arahan, lokasi memori, nombor dan karakter adalah ditunjukkan dalam 'strings' 1s dan 0s. Sungguhpun secara tipikal bahasa mesin dipaparkan dengan nombor binari di dalam program (oktal-asas 8 atau hexadecimal - asas 16), program-program ini sukar dan rumit bagi manusia untuk membacanya, menulisnya dan memperbaikinya.

Kelebihan utama bahasa mesin adalah ianya dapat dilaksnakan dengan cepat dan efisien disebabkan ia dilaksana secara langsung oleh CPU. Walaubagaimanapun, kekurangannya adalah ianya sangat sukar untuk dipelajari apatah lagi lebih sukar untuk diedit jika berlaku sebarang ralat (errors). Selain itu, jika kita ingin menambah suatu arahan baru dalam sesuatu lokasi memori, kesemua arahan selepas titik penambahan itu perlu dipindahkan ke bawah bagi memberi ruang kepada arahan baru tersebut. 

Akhir sekali, kod-kod yang ditulis dalam bahasa mesin tidak dapat dipindahkan kepada komputer lain, oleh yang demikian, ia perlu ditulis semula kerana setiap komputer adalah berlainan. 


GENERASI KEDUA: BAHASA PEMASANGAN (Assembly Language) 2GL

Generasi kedua atau 2GL adalah bahasa yang merangkumi bahasa pemasangan. Ianya merupakan bahasa 'simbolik' bagi menunjukkan arahan bahasa mesin. Bahasa-bahasa ini sangat hampir dengan bahasa mesin serta arkitektur dalaman sistem komputer. Oleh kerana itulah ianya digolongkan sebagai bahasa peringkat rendah. 

Bahasa pemasangan yang dibangunkan pada pertengahan 1950-an merupakan batu loncatan kepada dunia bahasa pengaturcaraan. Ia menggunakan kod-kod simbolik yang juga dikenal sebagai 'mnemonics codes' yang mana menggunakan singkatan mudah untuk diingati berbanding menggunakan nombor. Contoh kod-kod ini termasuklah 'ADD' untuk penambahan, 'CMP' untuk perbandingan (compare) dan MUL untuk pengkalian (multiply). 

Bahasa pemasangan terdiri daripada siri-siri pernyataan persendirian serta arahan-arahan untuk mengarahkan komputer. Asasnya, suatu pernyataan bahasa pemasangan terdiri daripada 'label', 'opcode' (kod operasi) dan 'operands'.

Label adalah digunakan untuk mengenalpasti dan menrujuk kepada arahan dalam program tersebut. Opcode merupakan mnemonics (ilmu cara menghafal/bantuan kepada memori) yang merincikan operasi-operasi yang perlu dijalankan seperti move, add, substract, atau compare. Manakala operand merincikan register (daftar) atau lokasi di dalam memori di mana data tersebut diproses. 

Walaubagaimanapun, sebagaimana bahasa mesin, bahasa pemasangan turut memiliki pernyataan dan arahan yang berlainan dari mesin yang berbeza. Boleh sekali suatu kod yang tulis tetap tidak dapat dilaksanakan walaupun dua mesin yang dikilangkan oleh jenama yang sama. Namun, tiada keraguan bahawa kecekapan dari segi masa dan penggunaan memori memang terbaik kerana ianya sangat hampir dengan bahasa mesin.


Program yang ditulis dalam bahasa pemasangan memerlukan penterjemah yang dipanggil 'translator' atau pemasang 'assembler' untuk menukar bahasa kepada bahasa mesin. Walaupun bahasa pemasang ini sangat bagus berbanding bahasa mesin, tetapi programmer masih lagi perlu memikirkan dari sudut mesin tersebut. Sehingga hari ini, bahasa pemasangan ini masih lagi digunakan oleh programmer untuk menulis bahagian-bahagian aplikasi yang memerlukan execution yang pantas seperti permainan video, namun kebanyakan mereka telah beralih menggunakan bahasa peringkat 3GL dan 4GL.

GENERASI KETIGA: BAHASA PERINGKAT TINGGI (3GL)

3GL merupakan penambahbaikan 2GL. Bahasa 2GL membawa struktur logikal kepada perisian, manakala generasi ketiga diperkenalkan untuk menjadikan bahasa-bahasa ini lebih mesra-programmer. Bahasa 3GL semakin berkembang pesat kerana peningkatan pemprosesan data pada 1960-an dan 1970-an. Dalam bahasa ini, pernyataan program tidak hampir dengan karakteristik dalaman komputer, dan atas sebab inilah ia dipanggil bahasa peringkat tinggi. 

Secara umum, suatu pernyataan yang ditulis dalam bahasa peringkat tinggi akan berkembang kepada beberapa arahan bahasa mesin. Sifat inilah yang meunujukkan perbezaan ketara dengan bahasa pemasangan yang mana satu pernyataan hanya menghasilkan satu arahan bahasa mesin. 3GL mempermudahkan pengaturcaraan, efisien, dan tidak mudah cenderung kepada kesilapan, antaranya FORTRAN dan COBOL.

Di awal 1960-an, penyebaran bahasa peringkat tinggi telah mengubah dimensi pengaturcaraan yang berlainan dari apa yang ada sebelumnya. Program telah ditulis di dalam bentuk seperti bahasa Inggeris, menjadikan ia selesa digunakan dan memudahkan programmer untuk mencari permasalahan yang diajukan oleh klien. Walaupun 3GL 'melegakan' programmer, akan tetapi ia tidak menyediakan kemudahan yang fleksible sepertimana bahasa peringkat rendah. Sungguhpun demikian, bahasa seperti C dan FORTH menggabungkan kefleksibelan (maaf, tatabahasa baru) bahasa peringkat rendah bersama kekuatan bahasa peringkat tinggi. Akan tetapi, bahasa ini sangat tidak bersesuaian dengan programmer yang sedang di tahap permulaan. 

Sebahagian bahasa peringkat tinggi direka untuk tujuan yang khusus seperti kawalan robot perinduntsrian atau grafik, sedang bahasa lainnya adalah fleksible dan serba-guna seperti BASIC, FORTRAN, PASCAL, COBOL, C++ atau Java untuk menulis kod-kod bagi aplikasinya. Sekali lagi, bahasa-bahasa ini turut memerlukan penterjemah untuk menterjemah bahasa peringkat tinggi ini kepada bahasa yang difahami komputer. Ianya biasa dikenal sebagai interpreters dan compilers

GENERASI KEEMPAT: BAHASA PERINGKAT SANGAT TINGGI (4GL)

Semakin pesat teknologi bahasa pengaturcaraan, ia semakin mudah dan menjadi sangat hampir seperti bahasa semulajadi. Akan tetapi, 4GL adalah sedikit berlainan daripada generasi sebelumnya iaitu tidak mempunyai prosedur. Apabila menulis kod dengan menggunakan bahasa prosidual, programmer hendaklah menuliskan kepada komputer bagaimana sesuatu tugas itu perlu diselesaikan. add, compare, do if the condition is true dan lain-lain semacam ini di dalam langkah-langkah yang tersusun rapi. Sebaliknya, apabila menggunakan bahasa yang tidak prosedual, programmer hanya perlu menjelaskan apa yang mereka hendak komputer lakukan tanpa menerangkan perincian bagaimana ia harus dilakukan.

Walaupun tidak ada piawaian tetap yang dapat mengelaskan 4GL secara tepat, terdapat beberapa ciri yang menjadikan bahasa pengaturcaraan itu mencapai tahap peringkat tinggi:
  • Kod arahan ditulis semacam bahasa Inggeris asli
  • Tidak prosedual, tidak berprosedual
  • Mudah untuk dikemaskini
  • Dikatakan programmer akan 10X lebih produktif dengan 4GL berbanding 3GL

GENERASI KELIMA: (ADVANCED 5GL)

Bahasa pengaturcaraan yang tergolong dalam 5GL adalah tertumpu kepada penyelesaian masalah; menggunakan 'pembatas' yang diberi kepada program berbanding progammer menulis sendiri algoritma. Kebanyakan bahasa pengaturcaraan yang berasaskan-pembatas dan logikal serta beberapa bahasa perisytiharan membentuk sebahagian daripada 5GL. 5GL banyak digunakan dalam Artificial Intelligence (AI) - Kepintaran buatan. Contohnya Programming Logic (PROLOG), Official Production System 5 (OPS5) dan Mercury. 

Suatu aspek menarik yang ada pada sebahagian 5GL adalah memiliki peralatan visual untuk membantu dalam membangunkan sebuah program. Contoh terbaik adalah Visual Basic (VB). Lebih terkehadapan, 5GL direka untuk membuatkan komputer untuk menyelesaikan masalah tanpa programmer. 

Dalam tahun 1990-an, 5GL dianggap sebagai gelombang pencetus masa hadapan, sebahagian menjangkakan ia akan menggantikan kesemua bahasa dan sistem (kecuali tahap rendah). Pada tahun 1982-93, Jepun telah melaburkan banyak di dalam kajian pembangunan 5GL, mengharapkan rangkaian komputer yang sangat besar dapat dibina. Akan tetapi, semakin besar program, semakin besar kelemahannya; dan para pengkaji mendapati untuk menghasilkan suatu algoritma yang begitu efektif adalah terlalu sukar, dan tidak dapat diautomasikan, masih mmerlukan programmer untuk mengendalikannya. 



Rujukan: Reena Thareja, Oxford Learnings

Isnin, 2 Disember 2013

Pengenalan kepada Bahasa Pengaturcaraan (Programming)

Bahasa Pengaturcaraan

Katakunci: | Bahasa pengaturcaraan | syntax | bahasa peringkat tinggi | bahasa peringkat rendah | bahasa mesin Keywords: | Programming language | syntax | High-level language | low-level language | machine language


Suatu bahasa pengaturcaraan adalah suatu bahasa yang direkabentuk khusus untuk menzahirkan bentuk pengiraan yang dijalankan menggunakan komputer. Bahasa pengaturcaraan adalah digunakan untuk menghasilkan sesuatu program yang mengawal kelakuan sesuatu sistem, atau menjalankan algoritma atau juga sebagai satu mod perhubungan sesama manusia.

"Asas kepada komputer bukanlah bahasa pengaturcaraan, tetapi algoritma."

Samalah seperti bahasa manusia, bahawa 'programming language' adalah bahasa komputer; turut memiliki perbendaharaan katanya yang tersendiri, 'syntax' dan 'semantics' bagi mengarahkan sebuah komputer supaya menjalankan sesuatu tugasan. Terma 'programming language' biasanya merujuk kepada bahasa pengaturcaraan peringkat tinggi seperti BASIC, C, C++, COBOL, FORTRAN, Ada, PASCAL, dan banyak lagi. Setiap satu bahasa ini memiliki set katakunci yang tersendiri dan syntax khas untuk menyusun atur program. 

Seperti bahasa pertuturan manusia, bahasa pengaturcaraan turut mempunyai nahu atau tatabahasanya. Jika tidak disusun dengan betul, komputer tidak dapat memproses arahan-arahan, dan program tidak berjaya dilaksanakan dengan sempurna.

Bahasa pengaturcaraan peringkat tinggi adalah mudah bagi manusia untuk dibaca dan difahami, akan tetapi komputer sebenarnya hanya memahami bahasa- dipanggil bahasa mesin (machine language) yang terdiri daripada digit-digit. Setiap unit pemproses pusat (CPU) yang berlainan memiliki bahasa mesinnya yang tersendiri. 

Diantara kedua-dua bahasa mesin dan bahasa peringkat tinggi, terdapat satu lagi jenis bahasa yang dikenal sebagai 'assembly language' atau bahasa pemasangan. Bahasa ini sama seperti bahasa mesin, tetapi ianya lebih mudah untuk diprogramkan kerana ia membenarkan programmer untuk menggantikan nama dengan digit (nombor). 

Bahasa perinkat tinggi: High-level language
Bahasa mesin: Machine language 
Bahasa peringkat rendah: Low-level language/ assembly language

Akan tetapi, apa-apa bahasa sekalipun yang ditulis oleh programmer mestilah ditukar kepada bahasa mesin supaya komputer dapat memahaminya. Terdapat dua cara untuk menterjemahkan bahasa pengaturcaraan kepada bahasa mesin; iaitu 'compiling' atau 'interpreting'. 

"Apakah bahasa pengaturcaraan yang sesuai?"

Bagi menjawab persoalan diatas, ia sangatlah amat baik untuk mengambilkira faktor-faktor ini:
  • Jenis komputer yang akan melaksanakan program
  • Jenis program
  • Kepakaran atau kehandalan programmer itu sendiri 
Sebagai contoh:

FORTRAN: bahasa yang paling baik untuk memproses data bernombor (numerical), tetapi sangat kurang baik untuk program yang besar.

PASCAL: sesuai untuk program yang mudah dibaca dan berstruktur, tetapi tidak fleksible seperti C.

C++: adalah penambahbaikan C dengan mempunyai ciri berorientasikan-objek, akan tetapi tersangat kompleks dan rumit untuk dipelajari.

Contoh bahasa-bahasa pengaturcaraan -online compiler

Lagi bahasa pengaturcaraan -ideone online compiler

Ahad, 1 Disember 2013

Ciri-ciri Wajib pada Algoritma

Ciri-ciri wajib Algoritma: Sequence


Kata kunci: | algoritma | pengaturcaraan | turutan | 
Keywords: | algorithm | programming | sequence |

Suatu algoritma mempunyai suatu bilangan langkah yang tertentu dan sesetengah langkah boleh jadi melibatkan 'pembuat-keputusan' dan pengulangan. 

Mudahnya, algoritma mesti memiliki 3 perkara ini;
  1. Sequence (turutan)
  2. Decision (keputusan)
  3. Repetition (pengulangan)

SEQUENCE (TURUTAN)

Turutan di sini bermaksud setiap langkah algortima tersebut dilaksanakan di dalam susunan yang telah dispesifik-kan. Contoh dibawah menunjukkan algoritma yang menjalankan operasi tambah dua nombor, yang mana dilaksanakan dalam susunan turutan:

Step 1: Input the first number as A
Step 2: Input the second number as B
Step 3: Set Sum = A + B
Step 4: Print Sum
Step 5: End

Di sini saya cuba terjemahkan bertujuan untuk menambahkan kefahaman, dan sesungguhnya, masih belum ada bahasa pengaturcaraan berbahasa Melayu.

Langkah 1: Input nombor pertama sebagai A 
Langkah 2: Input nombor kedua sebagai B
Langkah 3: Set hasil tambah = A + B
Langkah 4: Cetak hasil tambah
Langkah 5: Tamat

DECISION (KEPUTUSAN)

Pernyataan keputusan adalah digunakan apabila hasil akhir sesuatu proses tersebut bergantung kepada beberapa syarat. Sebagai contoh,

if x = y, then print "EQUAL"

Oleh yang demikian, bentuk umum 'if' dapat digambarkan seperti ini:

if condition then process

'Condition' atau syarat dalam konteks ini adalah apa-apa pernyataan yang mungkin menilai sama ada kepada nilai benar dan nilai tidak benar. Seperti contoh sebelum ini, pembolehubah x boleh jadi sama atau tidak sama nilai dengan y. Akan tetapi, ia tidak boleh jadi: kedua-dua betul atau kedua-dua salah. Sekiranya syarat adalah betul, barulah proses dilaksanakan. 

Suatu pernyataan pembuat keputusan dapat ditulis seperti turutan sebegini:

if condition 
      then process1
else process2

Bentuk ini dikenal sebagai if-else construct. Di sini, sekiranya kondisi adalah benar, process1 akan dilaksanakan, kemudian else process2 dilaksanakan. 

Langkah 1: Input the first number as A
Langkah 2: Input the second number as B
Langkah 3: if A =B
         then print "Equal"
     else
          print "Not equal"
Langkah 4: End


Rujukan: Reema Thareja, Oxford Learnings.

Pengenalan kepada Algoritma (asas pengaturcaraan)

Pengenalan Kepada algoritma

Kata kunci: | algoritma | pengaturcaraan | logic |
Keywords: | algorithm | programming | logic |

Secara mudah, algoritma dapat diertikan sebagai prosedur yang telah ditentukan bagi menjalankan sesuatu pengiraan. 

Sekiranya prosedur telah ditentukan secara formal, ia nya kemudian mestilah dilaksanakan dengan menggunakan 'bahasa' yang juga formal, dan bahasa inilah yang disebut sebagai bahasa pengaturcaraan. 

Logik: Algoritma tersebut akan memberikan logik program tersebut, iaitu, suatu perincian langkah-demi-langkah terhadap bagaimana ia dapat sampai kepada suatu penyelesaian.

Umumnya, suatu algoritma menyediakan 'plan' atau kerangka untuk menulis suatu program bagi menyelesaikan suatu masalah tertentu. Ia dianggap untuk menjadi suatu prosedur yang efektif dalam menyelesaikan suatu masalah di dalam beberapa langkah yang telah ditentukan (dirapikan). Begitulah, jika suatu algoritma adalah disusun rapi setiap aturannya, tiada keraguan bahawa ia akan sentiasa menghasilkan penyelesaian dan terjamin sesuatu program berjaya dihentikan (terminated) dengan sempurna.

Algoritma biasanya dan sebilangan besar digunakan untuk mencapai 'software-reuse'. Apabila kita sudah mendapat suatu idea atau blueprint (kerangka plan) untuk menyelesaikan masalah, kita dapat menggunapakainya di dalam mana-mana bahasa yang bertaraf tinggi seperti C, C++, Java dan sebagainya. Bagi menjadikan sesuatu algoritma itu diterimapakai, suatu turutan arahan mestilah memiliki ciri-ciri yang berikut:

Contoh unambiguous

  • Tepat
  • unambiguous (tidak terbuka kepada lebih dari satu intepretasi)
  • Tiada satupun mana-mana arahan berulang 
  • Setelah algoritma berjaya dihentikan (terminated), keputusan yang dikehendaki mestilah dicapai dan berhasil.


Rujukan: Reema Thareja, Oxford Learnings