You are on page 1of 18

BAHASA PENGATURCARAAN

TOPIK 6

TOPIK 6

BAHASA PENGATURCARAAN

PENGENALAN
Dalam topik ini kita akan mengenali dengan lebih dekat apakah yang dimaksudkan dengan bahasa pengaturcaraan. Atur cara komputer dibangunkan dengan menggunakan bahasa pengaturcaraan. Atur cara adalah satu senarai arahan untuk diikuti komputer agar data dapat diproses. Proses untuk menghasilkan atur cara dinamakan pengaturcaraan. Pengaturcaraan juga dikenali sebagai pembangunan perisian dan merupakan langkah-langkah untuk menghasilkan senarai arahan. Langkah-langkah dalam pengaturcaraan adalah spesifikasi atur cara, rekabentuk atur cara, kod atur cara, ujian atur cara, dokumentasi atur cara dan penyelenggaraan atur cara.

OBJEKTIF
Di akhir topik ini anda seharusnya dapat: 1. memahami konsep bahasa pengaturcaraan; 2. mengetahui 5 generasi bahasa pengaturcaraan; dan 3. mengetahui 10 bahasa pengaturcaraan.

6.1

BAHASA PENGATURCARAAN

Ia juga boleh disebut sebagai bahasa buatan untuk pengaturcaraan komputer. Secara amnya, komputer itu sendiri adalah dungu dan tidak boleh berfikir dengan sendiri. Komputer memerlukan arahan dari manusia untuk melakukan sesuatu tugas yang amat mudah (seperti melakukan operasi 2+2) hingga ke satu tugas yang paling sukar (seperti melancarkan kapal angkasa ke Marikh). Oleh itu, manusia menggunakan bahasa pengaturcaraan untuk berkomunikasi dan menyuruh komputer melakukan sesuatu tugasan. Arahan dalam atur cara disusun secara logik menerusi proses pengaturcaraan. Terdapat banyak jenis bahasa pengaturcaraan yang boleh digunakan oleh pengaturcara untuk berhubung dengan komputer. Bahasa pengaturcaraan menyerupai bahasa tabii seperti Bahasa Inggeris dalam beberapa aspek. Contohnya, ia mempunyai perkataan, simbol dan sintaks. Untuk menulis atur cara, pengaturcara perlu mengetahui perkataan, simbol dan sintaks bahasa pengaturcaraan yang akan digunakan. Terdapat banyak bahasa pengaturcaraan seperti APL, Pascal, Java, Perl, Eifel, C, C++, Basic, Fortran, Lisp, Scheme, BETA, Lua, Visual Basic, Prolog, Haskell, Hugs dan COBOL. Sebenarnya dianggarkan terdapat lebih 1000 bahasa pengaturcaraan di dunia. Setiap bahasa pengaturcaraan dicipta untuk tujuan yang berlainan seperti yang ditunjukkan di dalam Jadual 6.1.

88

OUM

TOPIK 6

BAHASA PENGATURCARAAN

Jadual 6.1: Evolusi Bahasa Pengaturcaraan

Dekad
50an 60an - 70an 90an

Bahasa Pengaturcaraan
Lisp, FORTRAN BASIC, C, SmallTalk, Pascal, Scheme Objective-C, C++, BETA, Java dan Prolog

Ada juga bahasa untuk tujuan khas seperti pengaturcaraan selari seperti ConcurrentC, Orca dan Leda. Rajah 6.1 menunjukkan model hubungan di antara pengguna, bahasa atur cara dan komputer.

Rajah 6.1: Model hubungan di antara pengguna, bahasa atur cara dan komputer

6.2

KENAPA KITA PERLU MEMAHAMI BAHASA PENGATURCARAAN

Pengguna boleh menggunakan apa sahaja bahasa pengaturcaraan yang diketahui dalam menyelesaikan masalah. Namun demikian, jika pengguna hanya tahu satu bahasa pengaturcaraan sahaja, penyelesaian yang digunakan mungkin tidak optimal atau efisyen. Oleh itu, pengguna perlu memahami keupayaan sesuatu bahasa pengaturcaraan supaya pengguna dapat menilai kelebihan dan kelemahan bahasa pengaturcaraan tersebut dalam menyelesaikan masalah yang dihadapi. Setelah membuat penilaian, pengguna boleh menggunakan kaedah yang optimal dari beberapa kaedah yang difikirkan untuk menyelesaikan masalah. Di antara faedah memahami bahasa pengaturcaraan adalah; (i) Mengetahui kelebihan bahasa pengaturcaraan dan di mana ia sesuai digunakan. Sebagai contoh, jika melibatkan pembangunan satu prototaip secara pantas, adalah lebih efisyen menggunakan bahasa skrip seperti Python dari menggunakan C atau C++. Memahami kelemahan bahasa pengaturcaraan. Setiap bahasa sesuai untuk satu bidang dan tidak efisyen untuk bidang lain. Sebagai contoh, untuk membangunkan GUI, adalah lebih efisyen menggunakan C++ atau Java berbanding dengan C. Untuk pengiraan yang banyak, FORTRAN adalah lebih sesuai dari JAVA atau C.

(ii)

(iii) Menghasilkan penyelesaian yang lebih efisien. Jika pengguna memahami bahasa pengaturcaraan, pengguna boleh menggunakan bahasa yang paling optimal untuk menyelesaikan masalah yang cuba diselesaikan. Misalnya, jika penyelesaian memerlukan capaian kepada pangkalan data, adalah lebih baik menggunakan bahasa skrip seperti Python sebagai penghubung berbanding dengan C atau C++.

OUM

89

BAHASA PENGATURCARAAN

TOPIK 6

(iv) Bahasa pengaturcaraan akan mempengaruhi cara pengguna berfikir dalam menyelesaikan masalah. Misalnya, bahasa berasaskan objek akan membuat pengguna berfikir cara penyelesaian masalah berasaskan objek, dan bahasa berasaskan logik akan membuat pengguna berfikir cara penyelesaian berasaskan logik. (v) Bahasa pengaturcaraan adalah satu alat untuk menyelesaikan masalah dengan menggunakan komputer. Kebanyakan masalah adalah lebih efisyen jika diselesaikan oleh mereka yang pakar dalam bidang yang tertentu. Oleh itu, mereka yang merupakan pakar dalam bidang itu boleh mempelajari bahasa pengaturcaraan untuk menyelesaikan masalah mereka.

Adalah menjadi kebiasaan untuk seorang pengaturcara mengetahui lebih dari satu bahasa pengaturcaraan. Lazimnya, setiap bahasa pengaturcaraan mempunyai ciri-ciri yang hampir sama. Setelah mempelajari satu bahasa pengaturcaraan, adalah mudah untuk belajar bahasa pengaturcaraan lain kerana konsep pengaturcaraan adalah sama, hanya sintaks bahasa yang berubah.

Latihan 6.1
Nyatakan 6 langkah yang terdapat dalam pengaturcaraan.

6.3

GENERASI BAHASA PENGATURCARAAN DAN CONTOHNYA

Amnya, bahasa pengaturcaraan boleh dikategorikan kepada 5 generasi. Generasi pertama dikenali sebagai bahasa mesin. Bila komputer mula-mula dicipta, bahasa yang digunakan adalah bahasa mesin yang menggunakan digit penduaan 0 dan 1 untuk mewakili arahan dan data. Atur cara yang ditulis dalam bahasa mesin tidak perlu diterjemah kepada kod objek sebelum dilaksanakan oleh komputer kerana format bahasa mesin adalah menurut senibina komputer. Generasi bahasa komputer boleh dikatakan bermula dari paras rendah ke paras tinggi. Bahasa pengaturcaraan dikatakan peringkat rendah apabila ia menyerupai dengan bahasa yang digunakan sendiri oleh komputer. Bahasa pengaturcaraan peringkat tinggi pula lebih hampir kepada bahasa yang digunakan oleh manusia seperti Bahasa Melayu. Jadual 6.2 menunjukkan generasi bahasa pengaturcaraan.
Jadual 6.2: Ringkasan Lima Generasi Pengaturcaraan

Generasi
Pertama: Mesin Kedua: Himpunan Ketiga: Bertatacara Keempat: Masalah Kelima: Tabii 10010001

Bahasa Pengaturcaraan

ADD 210(8,13), 02B(4,7) Lebih_masa := 0 FIND Nama = "MAZLAN" JIKA pesakit demam MAKA periksa suhu badan dan tekanan darah

90

OUM

TOPIK 6

BAHASA PENGATURCARAAN

(i)

Generasi pertama bahasa pengaturcaraan adalah bahasa mesin. Dengan bahasa mesin, pengaturcara boleh menulis satu atur cara yang optimal. Tapi, kaedah ini agak sukar kerana pengaturcara perlu mengingati kod binari dan nombor. Oleh itu, bahasa mesin jarang digunakan sekarang. Bahasa mesin juga bergantung kepada jenama komputer dan ini agak menyukarkan penggunaannya. Contoh bahasa mesin yang digunakan untuk mewakilkan suruhan dan data adalah: 01011010 000100000111110011101001

(ii)

Generasi kedua adalah bahasa penghimpun. Penciptaan bahasa penghimpun adalah langkah pertama kepada pembangunan perisian yang lebih mudah dan cekap. Bahasa penghimpun lebih mudah untuk diingati kerana bentuknya lebih ringkas. Ia juga bergantung kepada jenis komputer. Ia menggunakan simbol dan perkataan untuk mewakili arahan serta data dan tidak menggunakan digit pendua seperti bahasa mesin. Contoh atur cara dalam bahasa penghimpun adalah seperti berikut: v86_signal_return: call SYMBOL_NAME(save_v86_state) movl xorl call SYMBOL_NAME(do_signal) jmp restore_all ALIGN Oleh kerana atur cara dalam bahasa penghimpun bukan dalam bahasa mesin yang difahami oleh komputer, ia perlu ditukar dahulu kepada bahasa mesin sebelum ia boleh dilaksanakan oleh komputer. Atur cara penghimpun digunakan untuk menukar atur cara dalam bahasa penghimpun kepada bahasa mesin.

(iii) Generasi ketiga bahasa pengaturcaraan adalah bahasa yang dihasilkan pada 1950an iaitu bahasa paras tinggi. Tetapi ia masih digunakan hingga ke hari ini seperti bahasa C, COBOL dan FORTRAN. Ia banyak menyerupai bahasa tabii manusia. Ini memudahkan pengaturcara untuk menulis atur cara. Bahasa generasi ini juga dikenali sebagai bahasa paras tinggi dan direkabentuk untuk digunakan pada berbagai mesin dengan sedikit perubahan. Dengan bahasa generasi ketiga pengguna tidak perlu lagi menulis banyak arahan bahasa mesin yang rumit. Sebaliknya pengguna hanya perlu menaip satu arahan untuk melakukan sesuatu yang memerlukan banyak arahan dalam bahasa mesin. Antara sebab-sebab penciptaan bahasa paras tinggi adalah untuk: (a) Memudahkan penulisan dalam bahasa mesin dan bahasa penghimpun. (b) Membolehkan atur cara dijalankan pada lebih dari satu mesin. Atur cara hanya perlu dikompil semula untuk dilarikan pada mesin yang berlainan. (c) Membolehkan pengaturcara memberikan tumpuan kepada memenuhi keperluan pengguna.

OUM

91

BAHASA PENGATURCARAAN

TOPIK 6

Contoh bahasa pengaturcaraan yang dihasilkan pada generasi ini adalah Algol 68, FORTRAN, C, ADA, COBOL, Simula, APL, BCPL, BASIC, PL/1, Pascal, Logo, Modula, dan sebagainya. Kebanyakan bahasa paras tinggi adalah bahasa yang berasaskan tatacara atau prosedur. Dengan bahasa berasaskan prosedur, pengaturcara perlu menggunakan logik pengaturcaraan untuk menyelesaikan masalah. Dalam erti kata lain, pengaturcara perlu menulis arahan dalam turutan tertentu yang dilaksanakan untuk menyelesaikan masalah. Atur cara yang ditulis dalam bahasa paras tinggi disebut sebagai kod punca. Ini perlu ditukar kepada bahasa mesin yang disebut juga kod objek untuk membolehkan atur cara tersebut dilaksanakan oleh komputer. Proses penukaran ini dilakukan oleh pemproses bahasa. Terdapat tiga jenis pemproses bahasa iaitu: 1. 2. 3. Penghimpun - menukarkan bahasa penghimpun kepada kod mesin. Pengkompil - menukar bahasa paras tinggi (seperti BASIC, C, Pascal) kepada kod mesin. Penterjemah - menterjemah dan melaksanakan suruhan bahasa paras tinggi satu suruhan demi satu suruhan. Atur cara yang diterjemah adalah lebih perlahan berbanding dengan atur cara yang dikompil.

(iv) Generasi ke empat dikenali sebagai bahasa berorientasikan masalah. Bahasa generasi ini, dikenali juga sebagai 4GL, memerlukan lebih sedikit suruhan dari bahasa generasi ketiga dalam melaksanakan satu-satu tugasan. Takrifan 4GL adalah berbeza mengikut vendor. Selalunya bahasa ini digabungkan dengan pakej perisian seperti perisian pengurusan pangkalan data (DBMS). Lazimnya, 4GL digunakan untuk mencapai maklumat dari fail dan pangkalan data. Arahan dalam 4GL menyerupai arahan dalam Bahasa Inggeris untuk mencapai dan memformat data. Bahasa generasi ini mudah digunakan. Ini membolehkan pengguna profesional dan bukan profesional membangunkan perisian aplikasi dengan mudah. Setengah pihak menganggap ia bukan bahasa berorientasikan tatacara kerana ia lebih menekankan kepada apa yang patut dilakukan dan bukan kepada bagaimana patut dilakukan (tatacara). 4GL tidak akan menggantikan bahasa generasi ketiga kerana ia lebih memfokus kepada satu tugas. Kebanyakan dari prosedur 4GL dijana secara automatik oleh komputer dan pengguna hanya perlu menyatakan apa yang perlu dibuat dan bukan bagaimana hendak melakukannya. Beberapa contoh bahasa generasi keempat adalah: (a) Bahasa pertanyaan seperti SQL, QBE dan Intellect. Bahasa ini digunakan untuk mengubah, mengedit, mencipta dan mencapai maklumat dari pangkalan data. (b) Penjana laporan adalah bahasa yang digunakan untuk menjana pertanyaan dan laporan dari pangkalan data.

92

OUM

TOPIK 6

BAHASA PENGATURCARAAN

(c) Penjana aplikasi melakukan lebih daripada bahasa pertanyaan dan penjana laporan. Ia merupakan satu alat yang menjanakan perisian mengikut kehendak pengguna tentang keperluan data yang perlu diproses dan dilaporkan. (v) Generasi kelima bahasa pengaturcaraan adalah bahasa tabii iaitu bahasa yang hampir sama kepada bahasa pertanyaan kecuali pengguna tidak perlu mempelajari kamus, nahu dan sintaks tertentu. Ia menggunakan bahasa tabii seperti Bahasa Inggeris. Penggunaan bahasa tabii ini menyentuh tentang satu bidang kajian kecerdasan buatan, iaitu satu bidang yang mengkaji bagaimana cara hendak menjadikan komputer yang boleh berfikir seperti manusia.

Latihan 6.2
1. 2. Apakah yang membezakan bahasa pengaturcaraan peringkat rendah dan peringkat tinggi? Berikan dua faedah yang boleh didapati sekiranya anda memahami bahasa pengaturcaraan.

6.4 PENDEKATAN: PENGKELASAN BAHASA PENGATURCARAAN


6.4.1 Ciri-ciri

Bahasa pengaturcaraan boleh dikelaskan berdasarkan ciri-ciri bahasa tersebut seperti imperatif, berorientasikan objek, fungsi, logik, selari, berselerak dan skrip dan visual seperti yang ditunjukkan dalam Rajah 6.2. Setiap ciri-ciri ini mempunyai kebaikan dan kelemahan. Bahagian seterusnya membincangkan kebaikan dan kekurangan setiap ciriciri di atas.

Rajah 6.2: Ciri-ciri bahasa pengaturcaraan

6.4.2

Bahasa Imperatif
Maksud imperatif adalah arahan, suruhan atau perintah.

Dengan itu, bahasa imperatif merupakan bahasa di mana setiap arahan untuk menyelesaikan masalah perlu dinyatakan dengan jelas. Setiap arahan untuk menyelesaikan masalah akan dilaksanakan langkah demi langkah. Bahasa imperatif boleh diibaratkan seperti satu resepi masakan. Dalam bahasa ini, kaedah yang

OUM

93

BAHASA PENGATURCARAAN

TOPIK 6

digunakan adalah buat A, kemudian buat B. Contoh-contoh bahasa imperatif adalah seperti yang ditujukkan di dalam Jadual 6.3. Ada masanya, ia juga dikenali sebagai bahasa prosedur. Idea asas dalam bahasa imperatif adalah, pengguna perlu menyatakan setiap langkah yang diperlukan dalam menyelesaikan masalah.
Jadual 6.3: Contoh-contoh Bahasa Imperatif
Bahasa Imperatif
C Ada C++ Pascal Modula 2 FORTRAN COBOL Algol 68 PL/1 Simula Turing Oberon BASIC

Sebagai contoh, kita diminta mencetak semua nombor ganjil antara 1 dan 40, maka kod dalam bahasa imperatif adalah seperti berikut:for(i=1;i<=40;i++) if (i % 2 != 0) printf(ganjil %d\n,i);

6.4.3

Bahasa Berorientasikan Objek

Bahasa berorientasikan objek dicipta untuk membangunkan sistem yang besar dan kompleks. Keperluan untuk bahasa berorientasikan objek timbul apabila bahasa yang sedia ada tidak lagi dapat memenuhi keperluan sistem yang semakin kompleks. Kebaikan berorientasikan objek adalah kemudahan dalam pengurusan sistem, kemampuan untuk mengubah sistem secara teratur dan penggunaan semula komponen dalam sistem yang baru. Struktur bahasa berorientasikan objek membuatkan sesuatu program lebih mudah untuk direka bentuk dan difahami. Bahasa berorientasikan objek mengendalikan imej, audio, video dan bunyi lebih mudah dari bahasa prosedur (generasi ketiga).Idea asas ialah untuk memfokus kepada objek dalam sesuatu sistem, bukan kepada fungsi yang berlaku dalam satu sistem.

94

OUM

TOPIK 6

BAHASA PENGATURCARAAN

Konsep penting dalam bahasa berorientasikan objek adalah kelas, objek, enkapsulasi, warisan, polimorphisma dan ikatan dinamik. Satu kelas menerangkan tentang satu objek, di mana objek ini mengandungi data tentang objek dan suruhan yang boleh diproses oleh objek. Sebagai contoh, pengguna ingin memodelkan satu restoran seperti yang ditunjukkan dalam Rajah 6.3. Kaedah seperti di dalam Rajah 6.4 boleh digunakan dalam bahasa berasaskan objek.

Rajah 6.3: Objek dalam pengaturcaraan berorientasikan objek

class Pekerja: def __init__(self,nama,gaji=0): self.nama = nama self.gaji = gaji def kenaikanGaji(self,peratus): self.gaji = self.gaji + (self.salary*peratus) def kerja(self): print self.nama, buat kerja def __repr__(self): return Pekerja: name:%s gaji=%s % (self.nama , self.gaji) class TukangMasak(Pekerja): def __init__(self,name): Pekerja.__init__(self,nama,500) def kerja(self): print self.nama,masak lauk class Pelayan(Pekerja) def __init__(self,nama) Pekerja.__init__(self,nama,400) def kerja(self) print self.name,melayan pelanggan Rajah 6.4: Keratan atur cara bahasa berasaskan objek

OUM

95

BAHASA PENGATURCARAAN

TOPIK 6

Kalau kita teliti, kod ini menerangkan tentang tiga objek; Pekerja, TukangMasak dan Pelayan. Objek Pekerja mempunyai data tentang nama, gaji dan suruhan bagaimana mengira kenaikan gaji. Objek TukangMasak dan Pelayan mempunyai data tentang kerja yang dilakukan seperti masak lauk dan melayan pelanggan. Konsep warisan membolehkan pengguna menghasilkan satu objek baru berasaskan objek yang sedia ada. Sebagai contoh, objek TukangMasak adalah warisan dari objek Pekerja. Ini bermakna, objek TukangMasak mempunyai data dan suruhan yang sama dengan objek Pekerja. Perhatikan bahawa objek TukangMasak menakrifkan semula maklumat iaitu; def kerja(self): print self.nama, buat kerja kepada def kerja(self): print self.nama,masak lauk Kaedah di mana satu objek mempunyai data dan suruhan disebut enkapsulasi. Enkapsulasi bermaksud memasukkan ke dalam bekas. Polimorphisma merujuk kepada banyak bentuk iaitu data dalam objek boleh terdiri dari berbagai bentuk. Sebagai contoh, data self.gaji tidak dinyatakan bentuknya, sama ada integer, titik terapung atau aksara. Penghantaran mesej digunakan apabila satu objek ingin berhubung dengan satu objek yang lain. Interaksi antara objek adalah melalui mesej. Konsep pengaturcaraan berasaskan objek agak sukar diterima pada mulanya, tetapi penggunaan konsep ini boleh digunakan untuk membangunkan sistem yang besar dan kompleks. Secara ringkas, tiga konsep asas dalam bahasa berasaskan objek adalah: (i) (ii) Enkapsulasi: bermaksud objek mempunyai data dan suruhan. Warisan: satu objek boleh mewarisi data dan suruhan dari objek lain secara hirarki. Kelas adalah gabungan objek yang dijana dan mempunyai ciri yang sama.

(iii) Polimorphisma: bermaksud banyak bentuk. Data dalam objek tidak dinyatakan bentuknya. Poli, dari perkataan asal poly, bermaksud banyak sementara morphisma, dari perkataan morph, bermaksud berubah bentuk. Satu kebaikan bahasa berasaskan objek ialah guna semula. Sesuatu objek yang telah diisytihar boleh diguna semula dalam atur cara yang lain. Ini memudahkan dan mempercepatkan pembangunan aplikasi. Bahasa berasaskan objek mula diperkenalkan pada tahun 1970 dalam bahasa Simula, diikuti oleh bahasa SmallTalk dan C++. Contoh-contoh bahasa objek adalah C++, Smalltalk, Java dan Objective-C, Object-Oriented, Pascal, Delphi, Beta, HyperTalk, Limbo, Python dan Eifel. Bahasa jenis ini mulai mendapat perhatian besar pada dekad 80an dan 90an.

96

OUM

TOPIK 6

BAHASA PENGATURCARAAN

Latihan 6.3
Apakah yang dimaksudkan dengan pengaturcaraan berorientasikan objek?

6.4.4

Bahasa Berasaskan Logik

Bahasa berasaskan logik lebih memfokus kepada penyataan masalah, bukan bagaimana untuk menyelesaikan masalah. Sistem yang bertanggungjawab untuk menyelesaikan masalah yang dinyatakan. Bahasa ini berasaskan logik, iaitu berasaskan fakta dan peraturan. Fakta dan peraturan dinyatakan dalam bentuk penyataan if-then. Sebagai contoh, pengguna boleh menyatakan fakta dan peraturan seperti berikut: if X ayah Y dan Y ayah Z, then X adalah datuk Z. Dalam menulis atur cara logik, pengguna menggunakan logik Horn, iaitu satu penyataan yang menggunakan if-then. Semua fakta dan peraturan akan dinyatakan dalam bentuk logik Horn. Selanjutnya, pengguna akan menyatakan masalah yang ingin diselesaikan. Sistem akan cuba menyelesaikan masalah tersebut berasaskan fakta dan peraturan yang telah diberikan. Sebagai contoh, kita boleh menghasilkan maklumat berikut berasaskan logik Horn: gembira(x)<-kaya(x),terkenal(x) gembira(x)<-muda(x),dalam_percintaan(x) gembira(x)<-tua(x),bijaksana(x) terkenal(x)<-pelakon(x) terkenal(x)<-penyanyi(x) Seterusnya kita nyatakan fakta berikut: pelakon{ali} kaya(ali) Akhir sekali, kita boleh menanyakan kepada sistem soalan berikut, yang bermaksud adakah ali gembira?: ?-gembira(ali) Sistem akan memberikan jawaban ya atau tidak, berdasarkan maklumat yang diberikan sebelum ini. Contoh bahasa logik adalah Prolog. Beberapa contoh bahasa yang dibincangkan di atas dan bidang kegunaannya untuk bahasa ditunjukkan dalan Jadual 6.4.

OUM

97

BAHASA PENGATURCARAAN

TOPIK 6

Jadual 6.4: Contoh-contoh Bahasa Pengaturcaraan dan Bidang Kegunaannya


Bahasa Pengaturcaraan FORTRAN Lisp C COBOL Visual Basic C++ Java Perl Bidang Penghitungan saintifik. Penghitungan simbol, kecerdasan buatan. Pembangunan sistem. Perniagaan. Pembangunan sistem, GUI Pembangunan sistem besar dan kompleks. Internet, GUI, pembangunan sistem. Internet, CGI, teks Tahun 1956 1957 1974 1960 1990 1984 1995 1990

6.4.5

Bahasa Berasaskan Fungsi

Bahasa berasaskan fungsi menekankan kepada apa yang perlu dihitung, tidak kepada bagaimana untuk menghitung. Atur cara adalah dalam bentuk fungsi, iaitu satu fungsi yang hampir setara dengan fungsi matematik. Bahasa fungsi berdasarkan kepada penilaian terhadap ungkapan yang mengandungi fungsi. Kod yang ditulis dalam bahasa fungsi lazimnya singkat dan padat. Sebagai contoh, untuk mendapat nombor ganjil antara 1 dan 20, atur cara berasaskan fungsi adalah seperti berikut: [x|x<-[1..20];x mod 2 = 1] Contoh bahasa fungsi adalah seperti Lisp, FP, Scheme, Common Lisp, Hope, Standard ML, Miranda, Haskell, Hugs, Lucid, FP.

6.4.6

Lain-lain

Bahasa skrip adalah bahasa terjemahan yang lazimnya dihasilkan untuk satu tujuan yang tertentu. Ia boleh digunakan untuk membangunkan prototaip secara cepat dan pantas. Bahasa ini bersifat mudahalih antara berbagai jenis pelantar komputer. Sistem yang dibangunkan dalam bahasa skrip adalah lebih perlahan. Contoh bahasa skrip adalah awk, sed, Perl, Python, REXX, rebol dan ruby. Selain dari ciri-ciri yang disebut, terdapat juga bahasa-bahasa lain seperti: (i) (ii) Constraint programming Accessed-oriented programming

(iii) Single data structure programming sebagai contoh, bahasa APL menganggap semua data dalam bentuk matrik atau tatasusunan, bahasa Icon menganggap semua data dalam bentuk ungkapan. (iv) Bahasa pangkalan data. Contoh: SQL.

98

OUM

TOPIK 6

BAHASA PENGATURCARAAN

6.5

BAHASA VISUAL

Pengaturcaraan menggunakan bahasa visual menggantikan arahan berasaskan teks dengan simbol ikon. Di mana setiap ikon mewakili objek atau fungsi pengaturcaraan umum seperti salin, hapus, buka fail dan sebagainya. Antara contoh bahasa visual adalah Visual Basic iaitu antara bahasa visual yang paling popular untuk pengguna biasa dan pengguna profesional. Lain-lain bahasa visual yang ada di pasaran adalah Visual Foxpro dan Visual C++.

6.6
6.6.1

CONTOH-CONTOH ATUR CARA


C

C dicipta di Bell Lab pada tahun 1971 oleh Dennis M. Ritchie (http:// plan9.bell-labs.com/who/dmr/) sebagai satu bahasa untuk tujuan am.

Ia merupakan satu bahasa yang kecil dengan ciri-ciri yang menarik. Bahasa C banyak digunakan dalam pembangunan sistem dan aplikasi. Atur cara dalam C adalah mudahalih, di mana pengguna hanya perlu kompil semula atur cara tersebut pada sistem pengendalian yang berlainan untuk menghasilkan kod objek yang sesuai. C merupakan bahasa yang paling banyak digunakan untuk pembangunan sistem dan aplikasi. Sebagai contoh, sistem pengendalian Linux dan Unix dibangunkan dalam bahasa C. Kursus C merupakan satu kursus teras dalam pembelajaran komputer sains di mana-mana universiti. Bahasa C agak sukar dipelajari oleh pengguna baru tetapi ia merupakan satu bahasa yang serba boleh dan amat berkuasa. Rajah 6.10 adalah contoh atur cara C untuk mendapat nombor jati berasaskan algoritma eratosthenes. /* sieve of eratosthenes */ #DEFINE N 10000 main () { int i, j, a[N]; for (i = 2; i < N; i++) a[i] = 1; for (i = 2; i < N; i++) if (a[i]) for (j = i; j < N / i; j++) a[i * j] = 0; for (i = 2; i < N; i++) if (a[i]) printf ( ); printf (\\n); }
Rajah 6.10: Keratan atur cara C

OUM

99

BAHASA PENGATURCARAAN

TOPIK 6

6.6.2

C++

C++ adalah bahasa berasaskan objek yang dicipta di Bell Lab oleh Bjarne Strousrup (http://www.research.att.com/~bs/homepage.html) pada tahun 1983. Ia menambahkan ciri-ciri objek kepada bahasa C berasaskan idea dari bahasa Simula. Pada mulanya ia dikenali sebagai bahasa C with Classes. Bahasa ini banyak digunakan dalam pembangunan sistem yang besar dan kompleks seperti pensuisan telefon, sistem GUI, pengawasan trafik jalanraya dan lain-lain. Rajah 6.11 menunjukkan contoh atur cara berasaskan objek dalam C++; void gen_array::read(istream& in, string s) { clear(); cout << s; int i = 0; while (in && i < sz) read_el(v[i++],in); while (i < sz) init_entry(v[i++]); } gen_array::gen_array(int a, int b) { if (a>b) error_handler(1,string(array: bad [%d..%d],a,b)); Low = a; High = b; sz = b-a+1; v = new GenPtr[sz]; if (v==0) error_handler(99,array: out of memory); last = v+sz-1; }
Rajah 6.11: Keratan atur cara C++

6.6.3

Java

Java adalah bahasa berasaskan objek yang dicipta pada tahun 1995 oleh James Gosling. Ia mempunyai ciri-ciri C++ dan Simula. Java menukar atur cara Java kepada byte code, bukan kepada kod objek, dan byte code ini boleh dilarikan pada mana-mana sistem pengendalian dengan menggunakan mesin maya Java tanpa sebarang perubahan. Kaedah ini membolehkan satu perisian Java bersifat mudahalih antara banyak sistem komputer. Pada mulanya, Java banyak digunakan dalam menghasilkan grafik dan animasi pada laman Internet. Pakar menjangkakan yang Java akan menjadi bahasa pengaturcaraan yang paling meluas penggunaannya di masa hadapan. Java telah popular dengan slogan, Tulis Sekali, Dilarikan di mana-mana, (WRite Once, Run EveryWhere).
100

OUM

TOPIK 6

BAHASA PENGATURCARAAN

Maklumat lanjut pada http:/www.javasoft.com. Satu tutoran dalam talian terdapat pada http://java.sun.com/docs/books/tutorial/.

Contoh atur cara Java untuk mencari nombor jati adalah seperti di dalam Rajah 6.12.
// Sieve of Eratosthenes import java.awt.*; public class Sieve extends java.applet.Applet implements Runnable Thread sieveThread; String results1, results2; public void start() sieveThread = new Thread(this); sieveThread.start(); void runSieve() int SIZE = 8190; boolean flags[] = new boolean[SIZE+1]; int i, prime, k, iter, count; startTime = System.currentTimeMillis(); while (true) count=0; for(i=0; i<=SIZE; i++) flags[i]=true; for (i=0; i<=SIZE; i++) if(flags[i]) prime=i+i+3; for(k=i+prime; k<=SIZE; k+=prime) flags[k]=false; count++; iterations++; Rajah 6.12. Keratan antaramuka JAVA

6.6.4

Perl

Perl adalah bahasa skrip yang boleh digunakan dalam memproses teks, CGI, menghubung pangkalan data dan sebagainya. PERL bersifat mudah alih. Maklumat lanjut boleh diperolehi pada http://www.perl.org.

OUM

101

BAHASA PENGATURCARAAN

TOPIK 6

Contoh atur cara perl untuk memproses dokumen adalah seperti di dalam Rajah 6.13.
@in = split(/[&;]/,$in); push(@in, @ARGV) if $cmdflag; foreach $i (0 .. $#in) { $in[$i] =~ s/\+/ /g; ($key,$val) = split(/=/,$in[$i],2);#splits on the first =. $key =~ s/%([A-Fa-f0-9]{2})/pack(c,hex($1))/ge; $val =~ s/%([A-Fa-f0-9]{2})/pack(c,hex($1))/ge; $in{$key} .= \0 if (defined($in{$key})); $in{$key} .= $val; } $name=~/([-\w]+)/;#This allows $insfn{$name} to be untainted if (defined $1) { $insfn{$1} .= \0 if defined $insfn{$1}; $insfn{$1} .= $fn if $fn; }$ Rajah 6.13: Keratan antaramuka Perl

6.6.5

Python

Python adalah satu bahasa skrip berasaskan objek yang boleh digunakan untuk pembangunan prototaip, pemprosesan data berasaskan teks, menghubungi pangkalan data dan sebagainya. Antara aplikasi yang telah dibina menggunakan python adalah peluncur web, buku alamat, pengurusan rangkaian komputer dan perisian astronomi. Python merupakan satu alternatif kepada Perl. Maklumat lanjut tentang python boleh diperolehi pada http:// www.python.org.

Contoh atur cara python di dalam Rajah 6.14 boleh digunakan untuk menghitung bilangan perkataan dalam satu dokumen;

102

OUM

TOPIK 6

BAHASA PENGATURCARAAN

from sys import * from string import * count = {} for line in open(argv[1], r).readlines(): for word in split(line): if count.has_key(word): count[word] = count[word] + 1 else: count[word] = 1 words = count.keys() words.sort() for word in words: print %15s\t%10d % (word, count[word]) Rajah 6.14: Keratan atur cara Python

6.7

PENGKOMPIL, PENGHIMPUN, PENTERJEMAH

Atur cara yang ditulis dalam bahasa pengaturcaraan disebut sebagai kod punca. Kod punca adalah dalam bentuk teks atau ASCII. Ia boleh ditulis dengan menggunakan penyunting. Contoh IDE yang banyak digunakan adalah Borland C++ dan Visual Studio. Contoh kod punca untuk bahasa pengaturcaraan C adalah seperti berikut: Kod punca ini perlu dikompil atau ditukar kepada kod objek sebelum ia boleh dilarikan pada mana-mana komputer. Proses kompilasi dilakukan oleh pengkompil. #include main() { printf(hello world\n); } Jika atur cara ini dikompil pada Linux, ia hanya boleh dilarikan pada Linux sahaja. Jika ia dikompil pada Windows, ia hanya boleh dilarikan pada Windows sahaja. Masalah ini disebut tidak mudahalih (non portable), iaitu satu perisian yang dikompil pada sistem pengendalian jenis A tidak boleh dilarikan pada sistem pengendalian jenis B. Masalah tidak mudahalih timbul kerana kod objek yang dihasilkan dari proses kompilasi adalah berbeza untuk sistem pengendalian yang berbeza. Kod objek ini khusus untuk satu jenis sistem pengendalian sahaja. Semasa kod punca dikompil, ia akan dipautkan dengan pustaka, iaitu satu set arahan yang sedia ada di dalam sistem pengendalian. Pada sistem pengendalian Windows, pustaka diberikan tambahan .dll (dynamic loading library). Contoh pustaka pada sistem Windows adalah seperti vb200.dll dan vb3000.dll. Perisian (atau kod objek) yang

OUM

103

BAHASA PENGATURCARAAN

TOPIK 6

dihasilkan memerlukan pustaka ini untuk dilarikan. Oleh kerana pustaka ini hanya wujud pada sistem pengendalian Windows, perisian (kod objek) yang dihasilkan hanya boleh dilarikan pada sistem pengendalian Windows sahaja. Setiap pemproses (CPU) dibina dengan menggunakan senibina yang berbeza, seperti CISC, SPARC, Motorola 6800 atau RISC. Setiap senibina mempunyai satu set arahan yang tidak sama antara satu senibina dengan senibina yang lain. Oleh kerana set arahan tidak sama, maka bahasa mesin (bahasa yang boleh digunakan untuk memberi arahan kepada pemproses) untuk setiap pemproses juga berlainan. Kod objek yang dijana dari proses kompilasi adalah dalam bentuk bahasa mesin. Oleh kerana bahasa mesin adalah berbeza, maka kod objek yang terhasil juga berbeza. Akibat dari ini, kod objek tersebut hanya boleh dilarikan pada pemproses yang menghasilkannya sahaja. Sebagai contoh, dua jenis senibina untuk pemproses adalah RISC dan CISC. Contoh CISC adalah pemproses Intel, AMD dan Cyrix sementara contoh RISC adalah Alpha, Motorola 6800 dan PowerPC. Sebarang perisian yang dikompil untuk pemproses Intel tidak boleh dilarikan pada pemproses Alpha kerana keduanya mempunyai kod objek yang berbeza.Untuk menukar atur cara bahasa penghimpun ini kepada kod objek, kita perlu menggunakan penghimpun. Kod objek yang dihasilkan adalah tidak mudahalih. Untuk menukar atur cara bahasa penghimpun ini kepada kod objek, kita perlu menggunakan penghimpun. Kod objek yang dihasilkan adalah tidak mudahalih. Kita boleh menggunakan bahasa penghimpun untuk menulis atur cara. Bahasa penghimpun banyak digunakan dalam pembangunan sistem pengendalian dan ia adalah khusus untuk satu-satu sistem pengendalian. Penterjemah berfungsi untuk menterjemah dan melaksanakan atur cara baris demi baris. Ia tidak menukar atur cara kepada kod objek. Atur cara dalam penterjemah adalah bersifat mudahalih, iaitu ia boleh dilarikan pada mana-mana sistem pengendalian. Atur cara dalam penterjemah adalah jauh lebih perlahan dari atur cara yang dikompil dan dilarikan dalam bentuk kod objek. Setiap bahasa pengaturcaraan mempunyai kelebihan tersendiri dan sesuai untuk sesuatu domain. Adalah perkara biasa untuk seorang pengaturcara mengetahui lebih dari satu bahasa. Lazimnya setelah mempelajari satu bahasa, amat mudah untuk seseorang mempelajari bahasa yang lain kerana struktur kebanyakan bahasa adalah sama. Ini dapat dilihat dalam Rajah 6.16 seperti berikut:

104

OUM

TOPIK 6

BAHASA PENGATURCARAAN

Rajah 6.16: Pengkompil, penghimpun dan penterjemah

RUMUSAN
Bahasa pengaturcaraan mempunyai peringkat atau generasi bermula dari yang rendah ke tinggi. Lebih tinggi bahasa itu lebih hampir lagi ia dengan bahan yang digunakan oleh manusia. Bahasa pengaturcaraan boleh juga dikelaskan berdasarkan ciri-ciri bahasa tersebut dan setiap kebaikan dan kelemahan ciri-ciri ini telah dibincangkan dalam topik ini. Beberapa contoh bahasa pengaturcaraan yang selalu digunakan turut diperkatakan dalam topik ini.

OUM

105

You might also like