modul pdp.pdf
TRANSCRIPT
-
MODUL MATAKULIAH
PRAKTIKUM DASAR PEMROGRAMAN
CHOERUN ASNAWI, S.KOM.
PROGRAM STUDI MANAJEMEN INFORMATIKA STMIK JENDERAL ACHMAD YANI YOGYAKARTA
2010
-
11 PEMROGRAMAN KOMPUTER
1.1. Apa yang Dilakukan Program Komputer?
Kebanyakan orang saat ini sedikit banyak memiliki pengetahuan mengenai kegunaan
komputer. Sebagai contoh, sebuah komputer dapat menolong dalam perhitungan akuntansi atau
mencatat inventaris. Jika seseorang bermaksud mulai menulis program, besar kemungkinan
orang tersebut sudah menggunakan komputer dalam waktu yang tidak sebentar. Untuk dapat
mulai mempelajari dasar pemrograman, seorang pemula harus memulai dari memahami konsep-
konsep dasar komputasi. Seorang programmer yang sudah cukup mapan pun tetap harus me-
review konsep-konsep komputasi dasar sebelum dapat menguasai suatu bahasa pemrograman
baru secara keseluruhan.
Gambar 1.1 Program mengubah data kasar menjadi informasi yang memiliki arti
Pada tingkat paling sederhana, pekerjaan komputer adalah mengolah data. Gambar 1.1
memperlihatkan hal ini sebagai tujuan utama dari semua program komputer. Banyak instansi
menyebut bagian pemrograman komputer mereka sebagai Bagian Pemrosesan Data Elektronik
(PDE). Banyak yang menganggap sama antara kata data dan informasi, tapi bagi seorang
profesional komputer keduanya memiliki perbedaan yang sangat besar. Data kasar terdiri atas
fakta dan gambar, seperti catatan indeks prestasi (IP) mahasiswa per semester. Suatu program
mungkin mengolah data tersebut menjadi informasi yang lebih berarti, seperti grafik garis yang
memperlihatkan perkembangan IP mahasiswa dalam satuan waktu. Program komputerlah yang
menunjukkan pada komputer apa yang harus dilakukan. Kadang-kadang, ada program yang
hanya mengolah data yang diperoleh dari program lain tanpa memperlihatkan output apa pun
kepada pengguna. Data yang diproses tetap dianggap sebagai informasi, sebab output dari
program, yang tersimpan di disk, telah mengalami suatu perubahan. Sebagai contoh, suatu
program yang menerima masukan berupa nilai-nilai matakuliah dari mahasiswa akan secara
Input Output
Data Proses Informasi
-
2 Modul Matakuliah Praktikum Dasar Pemrograman
Bab I. Pemrograman Komputer Choerun Asnawi, S.Kom.
internal menghitung IP dari mahasiswa berdasarkan nilai-nilai tersebut lalu menyimpannya ke
basis data tanpa merasa perlu menampilkannya ke user.
Sebuah program merupakan suatu daftar instruksi detail yang dibawa oleh komputer.
Program merupakan tenaga pengendali di balik setiap pekerjaan yang dilakukan oleh sebuah
komputer. Komputer tidak dapat melakukan apa pun tanpa keberadaan program. Tugas
programmer lah untuk merancang dan menulis program yang mengarahkan komputer untuk
mengambil data kasar dan mengubahnya menjadi informasi yang berarti untuk pengguna akhir.
Pengguna akhir (end-user) komputer, atau sering disingkat menjadi pengguna (user) saja,
biasanya adalah orang yang tidak mengerti tentang masalah teknis maupun pemrograman, yang
membutuhkan hasil (informasi) yang disediakan oleh program. Programmer bertanggung jawab
untuk menuntun komputer dengan program yang ditulisnya. Belajar pemrograman komputer
membutuhkan waktu yang tidak sebentar, namun hasil yang diperoleh tentu sangatlah berharga.
1.2. Kesalahan Konsep yang Umum tentang Pemrograman
Komputer mudah digunakan dan mudah untuk diprogram. Sebuah komputer tak ubahnya
hanyalah sebuah mesin bodoh yang tidak tahu apa-apa. Pengguna harus menyediakan program
yang menunjukkan apa yang harus dilakukan komputer. Komputer seperti sebuah robot yang
menunggu perintah dan bertindak sesuai dengan perintah yang diberikan. Kadang-kadang jika
instruksi program yang diberikan tidak benar maka komputer tetap akan mencoba melakukan apa
adanya. Hal ini lah yang kadang-kadang menimbulkan apa yang disebut sebagai kesalahan
program (program error).
Kebanyakan kesalahan konsep mengenai komputer muncul dari kekurangpahaman
mengenai cara komputer bekerja dan apa yang dapat komputer kerjakan. Komputer tak lebih dari
sekedar alat untuk membantu manusia untuk mengerjakan pekerjaan tertentu. Komputer sendiri
tidak memiliki sifat baik atau buruk. Seperti halnya palu hanyalah sebuah alat yang dapat
digunakan untuk kebaikan (membangun rumah) atau untuk kejelekan (merusak sesuatu). Sebuah
komputer di tangan yang salah dapat digunakan untuk tujuan buruk, namun itu bukan kesalahan
komputer lagi seperti halnya palu yang disalahgunakan tadi.
Pada bagian ini akan disebutkan dan dijelaskan mengenai 3 (tiga) mitos yang saat ini
masih dianggap sebagai suatu kenyataan oleh sebagian besar orang.
1.2.1 Mitos 1: Hanya Ahli Matematika yang Dapat Memprogram Komputer
Syukurlah bahwa ini hanya mitos dan bukan kenyataan, karena jika ini benar maka akan
banyak orang yang akan kehilangan pekerjaannya. Jika hal ini benar maka komputer akan
menjadi mesin elit yang hanya digunakan oleh para insinyur dan ilmuwan terbaik; sementara
pengguna biasa tidak dapat menguasainya. Komputer hanya akan memberikan manfaat pada
bidang tertentu saja tapi tidak akan dapat memberi manfaat yang dapat dinikmati banyak orang.
Fakta sebenarnya, bukan hanya orang yang buruk matematikanya, orang pun tidak perlu
harus suka matematika atau punya keinginan belajar matematika untuk dapat menjadi
programmer yang baik. Komputer mengerjakan seluruh perhitungan matematis untuk
-
Modul Matakuliah Praktikum Dasar Pemrograman 3
Choerun Asnawi, S.Kom. Bab I. Pemrograman Komputer
penggunanya; hal itu merupakan salah satu tugasnya. Tak terhitung banyaknya programmer
komputer ahli yang tidak dapat menghitung luas sebuah lingkaran atau akar kuadrat dari 64.
Pemrograman dapat menghasilkan efek samping yang bermanfaat. Ternyata, saat
seseorang menjadi programmer yang lebih baik, kemampuan matematikanya juga akan
meningkat. Mengembangkan keahlian pemrograman akan meningkatkan kemampuan
keseluruhan untuk berfikir logis, yang mendasari berbagai keahlian dalam matematika. Oleh
karena itu, menjadi lebih baik dalam bidang matematika mungkin lebih merupakan hasil dari
pemrograman, dan bukan merupakan prasyarat.
1.2.2 Mitos 2: Komputer Melakukan Kesalahan
Ada kalimat yang mengatakan, Melakukan kesalahan adalah sifat manusia, tapi untuk
benar-benar membuat segalanya berantakan diperlukan sebuah komputer! Hal ini mungkin
akurat, namun hanya karena sebuah komputer bekerja dengan amat sangat cepat sehingga
dapat meniru kesalahan manusia dengan cepat.
Kenyataannya komputer tidak melakukan kesalahan, tapi manusialah yang salah. Jika
ada seorang teller bank mengatakan pada seorang nasabah bahwa ada sedikit dari tabungannya
tidak sengaja terhapus dikarenakan program komputer yang melakukan kesalahan (error), teller
tersebut kemungkinan tidak paham apa yang sebenarnya terjadi. Orang memprogram komputer,
orang menjalankannya, dan orang juga yang memasukkan data yang diproses oleh komputer.
Kemungkinan sebuah komputer secara acak mengacau rekening nasabah bank dapat
dikatakan tidak ada. Komputer tidak akan melakukan kesalahan acak kecuali mereka diprogram
secara tidak benar. Komputer merupakan mesin berhingga (finite); jika diberi masukan yang
sama, selalu akan menghasilkan keluaran yang sama pula. Artinya, komputer selalu akan
melakukan hal yang sama pada kondisi yang sama. Tugas manusia lah, saat belajar
memprogram, untuk mengurangi kemungkinan terjadinya kesalahan pada komputer.
1.2.3 Mitos 3: Komputer Sulit untuk Diprogram
Dulu saat komputer masih di era generasi pertama, hal ini mungkin benar. Diperlukan
pengetahuan tentang sejarah komputer untuk mengetahui betapa sulit dan repotnya
memprogram komputer generasi awal. Namun faktanya saat ini dari hari ke hari komputer
semakin mudah digunakan, dan juga diprogram. Banyak orang yang tidak menyadari bahwa
sehari-harinya dia telah menjadi pengguna komputer, seperti saat menggunakan microwave atau
menyetir mobilnya, bahkan saat menonton acara televisi sambil menikmati dinginnya AC.
Pembuat komputer telah menemukan cara untuk mengintegrasikan komputer ke dalam
kehidupan sehari-hari untuk memonitor dan mengkoreksi setiap masalah yang mungkin akan
muncul apabila tak ada komputer.
Menulis program komputer memang akan membutuhkan kerja lebih banyak daripada
hanya menggunakan fungsi timer terkomputerisasi dari oven microwave. Walaupun begitu,
pekerjaan memprogram komputer utamanya hanyalah belajar apa sebenarnya yang diinginkan
atau diharapkan oleh sebuah komputer. Sulit tidaknya memprogram komputer kembali lagi pada
kemauan dari yang akan mempelajarinya. Hal ini dapat disamakan dengan saat seseorang akan
-
4 Modul Matakuliah Praktikum Dasar Pemrograman
Bab I. Pemrograman Komputer Choerun Asnawi, S.Kom.
belajar mengendarai sepeda atau mengemudikan mobil. Saat pertama kali belajar akan terasa
sulit, dan jika kemauannya rendah atau bahkan tidak ada maka besar kemungkinannya bahwa
orang itu akan gagal. Namun jika memiliki kemauan tinggi dan disertai dengan latihan rutin maka
lama kelamaan akan menjadi mahir dengan sendirinya. Demikian juga halnya dengan belajar
memprogram komputer. Untuk meningkatkan motivasi mungkin perlu diingatkan bahwa potensi
kemampuan manusia itu sangat besar. Sejarah telah mencatat bahwa ada seorang tuna rungu
yang mampu menciptakan karya di bidang musik klasik yang sangat fenomenal dan masih
banyak dinikmati hingga zaman sekarang.
1.3. Definisi Pemrograman
Tidak ada definisi tunggal mengenai pemrograman. Pemrograman dapat memiliki artinya
sendiri-sendiri bagi setiap orang. Walaupun begitu, definisi berikut dapat mewakilinya:
Pemrograman komputer adalah tindakan untuk berbicara atau berkomunikasi dengan komputer
menggunakan suatu bahasa yang dapat dimengerti oleh komputer serta menggunakan tata
bahasa (grammar) dan tata tulis (sintaks) yang dapat diikuti oleh komputer, dengan tujuan agar
komputer melakukan suatu pekerjaan yang berguna untuk pemrogram atau penggunanya.
Sederhananya, itulah yang dinamakan sebagai pemrograman. Orang menulis kode yang
berisi permintaan, komputer membaca dan memahami permintaan tersebut dan melakukan
sesuatu berdasarkan permintaan tersebut. Melakukan sesuatu merupakan hal yang vital dalam
pemrograman. Programmer selalu memprogram komputer untuk melakukan sesuatu, meskipun
sesuatu itu hanyalah untuk menunggu instruksi berikutnya. Pemrograman hanyalah tentang
melakukan sesuatu dan terus lanjut ke depan. Saat memprogram, tak peduli sederhana atau
rumit pekerjaan yang harus dilakukan, komputer selalu hanya diberi suatu instruksi. Biasanya
instruksi ini diberikan satu persatu. Walaupun kadang-kadang terlihat seakan-akan komputer
diminta untuk melakukan banyak hal dalam satu waktu, pada kenyataannya instruksi yang
diberikan tetap akan dijalankan satu persatu.
Kode yang diberikan harus benar dan tidak rancu. Tidak boleh mengandung kesalahan,
error atau kerancuan. Keberadaan salah satunya akan menyebabkan kode tersebut gagal
dijalankan dan menimbulkan error. Bukanlah kapasitas komputer untuk menebak apa yang
dimaksud oleh programmer maupun mengkoreksi kode yang diterimanya.
Hal lain yang akan disadari cepat atau lambat oleh seorang programmer adalah bahwa
setelah dia mulai menulis program maka dia tidak akan menulis kode yang hanya melakukan satu
hal saja.
1.4. Tujuan dan Manfaat Pemrograman
Secara umum tujuan pemrograman komputer adalah untuk memudahkan pekerjaan
manusia, khususnya pekerjaan yang dapat dikaitkan dengan penggunaan komputer. Jika yang
dipandang dapat memudahkan pekerjaan manusia adalah komputernya, maka pemrograman
dipakai supaya komputer benar-benar dapat memenuhi pandangan tersebut. Seperti telah
-
Modul Matakuliah Praktikum Dasar Pemrograman 5
Choerun Asnawi, S.Kom. Bab I. Pemrograman Komputer
disebutkan di atas, komputer benar-benar baru dapat dimanfaatkan jika diprogram sesuai dengan
kebutuhan. Sehingga dapat dikatakan juga bahwa tujuan pemrograman adalah membuat
komputer dapat bekerja sesuai dengan apa yang diharapkan penggunanya.
Dengan demikian maka dapat dikatakan bahwa manfaat pemrograman adalah terkait
dengan manfaat yang dihasilkan dari komputer yang menjalankan program tersebut. Jika
komputer dianalogikan dengan kendaraan, maka memprogram komputer dapat dianalogikan
dengan mengemudikan kendaraan. Dengan sifat kendaraan yang dapat bergerak lebih cepat dan
dapat mengurangi tenaga fisik yang harus dikeluarkan manusia, maka dengan kendaraan
diperoleh manfaat seperti manusia dapat bepergiaan dengan jarak lebih jauh dan waktu lebih
singkat serta tidak mudah kelelahan. Bukannya manusia tidak dapat bepergian tanpa kendaraan,
namun dengan kendaraan akan diperoleh manfaat lebih seperti disebutkan di atas. Demikian juga
halnya dengan pemrograman. Beberapa sifat komputer yang perlu untuk diketahui adalah
sebagai berikut:
mampu memproses perhitungan matematis dengan sangat cepat;
dalam keadaan normal perhitungan yang dilakukan akan selalu akurat; serta
dapat mengerjakan sesuatu yang sama secara berulang-ulang terus menerus tanpa
merasa lelah atau bosan.
Point terakhir di atas merupakan point yang paling penting dari sifat komputer. Dengan
banyak melakukan latihan menggunakan metode yang tepat, manusia juga akan mampu
melakukan proses perhitungan dengan cepat dan akurat. Walaupun tetap tidak akan dapat
mengimbangi kecepatan dan keakuratan komputer, untuk perhitungan yang tidak terlalu rumit hal
tersebut sudah cukup tanpa harus menggunakan komputer. Namun sudah menjadi sifat manusia
bahwa dia tidak akan tahan melakukan suatu pekerjaan yang sama secara berulang-ulang terus
menerus. Sudah menjadi kewajaran bahwa manusia akan merasa bosan, jemu dan lelah jika
diharuskan mengulang-ulang suatu pekerjaan yang sama. Untuk itulah sebenarnya komputer
diciptakan. Dalam kondisi normal, komputer mampu mengerjakan suatu pekerjaan yang sama
secara berulang-ulang tanpa protes. Waktu yang dibutuhkan oleh komputer untuk mengerjakan
setiap pekerjaan yang diulang-ulang itu pun relatif sama atau konsisten. Sementara manusia,
semakin lama pasti kinerjanya akan semakin melambat, dipengaruhi oleh rasa bosan atau lelah.
Dengan sifat-sifat komputer seperti yang disebutkan di atas, maka dari pemrograman
dapat diperoleh manfaat yaitu dapat mengarahkan komputer untuk mengerjakan suatu pekerjaan
pemrosesan data secara cepat dan menghasilkan output yang akurat, terutama untuk pekerjaan
yang membutuhkan banyak pengulangan kegiatan yang sama.
1.5. Apa yang Dibutuhkan untuk Jadi Programmer yang Baik?
Saat menciptakan FORTRAN, John W. Backus pernah mengungkapkan bahwa alasan
mengapa dia membuat FORTRAN adalah karena dia malas. Dikatakannya dalam wawancara
dengan Think, majalah karyawannya IBM, di tahun 1979, Kebanyakan kerja saya bermula
karena saya malas. Saya tidak suka memprogram, sehingga ketika saya bekerja untuk IBM 701,
-
6 Modul Matakuliah Praktikum Dasar Pemrograman
Bab I. Pemrograman Komputer Choerun Asnawi, S.Kom.
yaitu menulis program untuk menghitung trayektori misil, saya malah mulai mengerjakan suatu
sistem pemrograman untuk memudahkan saya menulis program. Jadi, alih-alih dia langsung
menulis programnya dalam Assembly, Backus memilih untuk memulai pekerjaannya dengan
membuat FORTRAN dulu, baru setelah itu dia akan dimudahkan untuk pekerjaan-pekerjaan
menulis programnya karena tidak perlu menulis program menggunakan Assembly lagi.
Hal ini terus dilakukan dan dikembangkan hingga sekarang. Upaya-upaya untuk
memudahkan dan mengotomasikan penulisan program terus dilakukan, dengan membuat sistem
pemrograman yang baru. Dan itu semua selain karena faktor kemalasan dari programmer, juga
karena tuntutan agar dapat lebih produktif dalam menghasilkan program serta mengupayakan
agar pemrograman komputer dapat diterima secara luas.
Filosofi Backus di atas masih diakui hingga saat ini. Terdapat paradoks seputar kriteria
programmer yang baik ini. Paradoks itu menyebutkan bahwa programmer yang baik di satu sisi
haruslah luar biasa malas, namun di sisi lain dia harus sekaligus jadi orang yang rajin. Dia harus
menjadi orang yang malas mengerjakan sesuatu, dalam hal ini menuliskan kode program, yang
sama secara berulang-ulang, namun bersamaan dengan itu dia juga harus rajin mencari solusi
untuk mengatasi permasalahannya itu. Dari kerajinannya dalam mencari solusi tersebut maka
lama-lama banyak pengetahuan dan skill yang tanpa terasa akan terserap dengan sendirinya.
-
22 BAHASA PEMROGRAMAN
2.1. Pengantar
Bahasa pemrograman adalah sebuah vokabulari dan himpunan aturan gramatikal untuk
menginstruksikan sebuah komputer untuk melakukan pekerjaan tertentu. Istilah bahasa
pemrograman biasanya mengacu pada bahasa aras tinggi, seperti BASIC, C, C++, COBOL,
FORTRAN, Ada, Pascal, Java, dll. Setiap bahasa memiliki sekelompok keyword-nya sendiri-
sendiri, yaitu sekelompok kata-kata khusus yang dapat dimengertinya, serta sintaks khusus untuk
mengorganisisasikan semua instruksi program.
Seperti halnya bahasa manusia, terdapat banyak sekali bahasa pemrograman. Sebagai
tambahan, bahasa pemrograman baru muncul tiap tahunnya. Bahasa-bahasa pemrograman
tersebut masing-masing memiliki kelebihan dan kekurangannya sendiri-sendiri dan kadang-
kadang lebih tepat untuk jenis pekerjaan tertentu dibandingkan bahasa yang lainnya. Sebagai
contoh, Visual Basic hanya dapat bekerja atau dijalankan menggunakan sistem operasi Windows
dan merupakan bahasa yang bagus untuk membuat aplikasi desktop di Windows. Sementara itu,
JavaScript dijalankan di dalam sebuah browser web sehingga tidak tergantung pada sistem
operasinya dan merupakan bahasa yang bagus untuk menambahkan konten dinamis dan
interaktifitas pada situs web. Pada kasus biasa, Visual Basic tidak dapat digunakan untuk
menggantikan fungsionalitas JavaScript, dan juga sebaliknya, banyak fitur pada Visual Basic
yang tidak dapat dilakukan oleh JavaScript.
2.2. Bahasa Mesin
Meskipun terdapat banyak bahasa pemrograman komputer, pada kenyataannya hanya
satu bahasa saja yang dipahami oleh komputer. Kode dalam bahasa pemrograman tertentu yang
dibuat oleh seorang programmer bukanlah kode yang akan langsung dimengerti oleh komputer.
Menggunakan bahasa pemrograman apa pun, kode tersebut harus dikonversi atau diterjemahkan
terlebih dahulu ke dalam suatu bahasa yang langsung dimengerti oleh komputer. Bahasa yang
langsung dimengerti komputer ini dinamakan sebagai bahasa mesin.
-
8 Modul Matakuliah Praktikum Dasar Pemrograman
Bab II. Bahasa Pemrograman Choerun Asnawi, S.Kom.
Jenis komputer yang berbeda memiliki bahasa mesin yang berbeda pula. Sehingga
bahasa yang dipahami oleh PC (Personal Computer) berbeda dengan bahasa yang dipahami
komputer Macintosh, berbeda pula dengan bahasa yang dipahami komputer jenis mainframe.
Letak perbedaan tersebut sebenarnya ada pada perbedaan prosesor (CPU) yang digunakan,
karena di dalam prosesorlah bahasa tersebut didefinisikan. Satu prosesor dikatakan kompatibel
dengan prosesor yang lain jika sama-sama mengerti satu bahasa mesin yang sama.
Kode dalam bahasa mesin tersusun atas sederetan pola digit (angka) biner (binary digit
atau disingkat bit). Biner adalah sebuah sistem bilangan yang berbeda dengan sistem bilangan
desimal yang dipakai oleh kebanyakan manusia. Dalam sistem bilangan desimal yang
menggunakan basis 10 terdapat sepuluh simbol, yaitu angka 0 hingga 9. Sementara itu sistem
bilangan biner merupakan sistem bilangan berbasis 2, sehingga hanya memiliki dua simbol saja,
yaitu 0 dan 1. Di dalam komputer, kedua simbol tersebut direpresentasikan sebagai switch off
(digit 0) dan switch on (digit 1), atau sebagai sinyal rendah (digit 0) dan sinyal tinggi (digit 1).
Bagaimanapun canggihnya komputer, dia hanya dapat mengenali dua simbol saja, yakni
0 dan 1. Bagaimanapun kompleksnya data yang akan diolah atau informasi yang diperlihatkan ke
penggunanya, semuanya itu bagi komputer hanyalah sederetan simbol 0 dan 1. Mulai dari
sebuah data teks sederhana hingga sebuah video, bagi komputer tak lebih hanyalah sederetan
simbol 0 dan 1. Termasuk di dalamnya adalah instruksi-instruksi dalam bahasa yang dapat
dipahami secara langsung oleh komputer, semuanya hanyalah sederetan simbol 0 dan 1. Kode
Program 2.1 merupakan contoh kode untuk menampilkan huruf A di layar monitor menggunakan
bahasa mesin pada komputer dengan prosesor keluarga Intel x86 atau yang kompatibel.
Kode Program 2.1 Contoh kode mesin pada keluarga prosesor x86
101100100100000110110100000000101100110100100001
Biasanya untuk memudahkan pembacaan, deretan kode biner tersebut dikelompokkan
dalam 8 digit, lalu disingkat menggunakan notasi heksadesimal, seperti terlihat pada Gambar 2.1.
Heksadesimal merupakan sistem bilangan lain yang menggunakan basis 16, mempunyai enam
belas simbol, yaitu dari 0 hingga 9 ditambah A hingga F.
Gambar 2.1 Contoh pengubahan dari notasi biner ke notasi heksadesimal
Pada contoh di atas, 4 bit pertama (1011 atau 11 desimal atau B dalam heksadesimal)
merupakan suatu instruksi untuk memasukkan data ke dalam register tertentu di dalam prosesor.
Register adalah sebuah memori kecil di dalam prosesor yang memiliki kecepatan sangat tinggi,
dan jumlahnya lebih dari satu buah. Register mana yang akan diberi atau dimasuki data
disebutkan pada 4 bit berikutnya. Nilai 0010 atau 2 menandakan register DL, sementara nilai
0100 atau 4 menandakan register AH. Bit-bit berikutnya menandakan nilai data yang akan
-
Modul Matakuliah Praktikum Dasar Pemrograman 9
Choerun Asnawi, S.Kom. Bab II. Bahasa Pemrograman
dimasukkan ke dalam register, sesuai dengan ukuran dari registernya. Kebetulan untuk contoh di
atas (register DL dan AH) masing-masing berukuran 8 bit, sehingga ukuran datanya juga 8 bit.
Jadi untuk contoh di atas, instruksi B2 41 artinya adalah masukkan data bernilai 41
heksadesimal atau 65 desimal ke dalam register DL atau dengan kata lain beri register DL nilai
41 heksadesimal (65 desimal). Berikutnya instruksi B4 02 artinya beri register AH nilai 02
heksadesimal (2 desimal). Untuk lebih detailnya dapat dilihat pada sub bab Bahasa Rakitan
(Assembly).
Contoh di atas dapat digunakan untuk memperlihatkan bahwa bahasa mesin merupakan
bahasa pemrograman yang sangat sulit dipelajari. Walaupun sistem bilangan biner jauh lebih
sederhana daripada sistem bilangan desimal, namun bagi manusia membaca kode biner
sangatlah menjemukan. Untuk mengingat setiap instruksi dalam bentuk angka biner tentu akan
sangat sulit. Bekerja dengan komputer menggunakan sistem biner sepanjang waktu malah akan
menjadi lebih rumit, walaupun keyboard yang dipakai akan menjadi jauh lebih sederhana (lihat
Gambar 2.2). Mengubahnya ke notasi heksadesimal tidak akan membantu karena untuk
beberapa instruksi, instruksi aslinya memang akan lebih terbaca dalam bentuk biner. Karena
bahasa mesin sangat sulit dipelajari, saat ini hanya ada sedikit sekali programmer yang tahu cara
menulis program menggunakan kode bahasa mesin. Bahkan, beberapa programmer yang paling
berbakat di dunia pun tidak pernah berpikir untuk bekerja menggunakan kode mesin.
Gambar 2.2 Lelucon mengenai real programmer yang memprogram dalam bahasa mesin
2.3. Bahasa Rakitan (Assembly)
Seperti telah disebutkan di atas, memprogram menggunakan bahasa mesin sangat sulit
dilakukan manusia. Sebagai solusi permasalahan ini, pada tahun 1950-an dibuatlah bahasa
rakitan atau Assembly. Bahasa rakitan menggunakan kode mnemonic untuk merepresentasikan
perintah kode mesin tertentu. Dinamakan kode mnemonic (alat bantu mengingat) karena
memang penggunaan bahasa rakitan akan lebih memudahkan manusia dalam mengingat
perintah-perintah bahasa mesin. Tidak seperti kode mesin yang hanya tersusun atas 0 dan 1,
bahasa rakitan tersusun atas kombinasi kata-kata sederhana dan bilangan. Namun demikian,
bahasa rakitan hanyalah bentuk lain dari bahasa mesin, menggunakan kode yang lebih mudah
dipahami manusia. Terdapat korespondensi satu-satu antara instruksi dalam bahasa rakitan
dengan instruksi dalam bahasa mesin, yang berarti satu instruksi dalam bahasa rakitan mewakili
satu instruksi tertentu dalam bahasa mesin. Contohnya dapat dilihat pada Kode Program 2.2.
-
10 Modul Matakuliah Praktikum Dasar Pemrograman
Bab II. Bahasa Pemrograman Choerun Asnawi, S.Kom.
Kode Program 2.2 Contoh kode program dalam bahasa Assembly di prosesor x86
MOV DL, 41h MOV AH, 02h INT 21h
Hubungan antara bahasa mesin dengan kode Assembly pada contoh di atas, serta
penjelasan maksudnya dapat dilihat pada Tabel 2.1.
Tabel 2.1 Contoh hubungan antara bahasa Assembly dengan bahasa mesin
No Kode Mesin
Heksa-desimal
Kode Assembly
Keterangan
1 10110010 01000001
B2 41 MOV DL, 41h 1011 dalam bahasa mesin yang berada pada awal instruksi disubstitusi dengan perintah MOV, singkatan dari move (memindahkan), yaitu perintah untuk memindahkan suatu nilai data ke dalam register tertentu, atau dengan kata lain untuk memberi nilai pada register tertentu. Instruksi di samping artinya memberi nilai register DL dengan nilai 41 heksadesimal atau 65 desimal.
2 10110100 00000010
B4 02 MOV AH, 02h Memberi nilai register AH dengan nilai 02 heksadesimal atau 2 desimal.
3 11001101 00100001
CD 21 INT 21h 11001101 (CD heksadesimal) dalam bahasa mesin yang berada pada awal instruksi disubstitusi dengan perintah INT, singkatan dari interrupt, yaitu sebuah perintah yang digunakan untuk memanggil (menjalankan) fungsi atau servis yang disediakan oleh BIOS atau sistem operasi. Instruksi di samping artinya adalah memanggil fungsi atau servis sistem operasi nomor 21 heksadesimal (33 desimal), yang merupakan servis yang berkaitan dengan operasi input/output. Servis ini masih dibagi lagi ke dalam berbagai subservis yang ditandai dari nilai register AH. Karena register AH sebelumnya diberi nilai 2 maka arti lengkapnya adalah memanggil servis 21 heksadesimal subservis 2, yaitu mencetak atau menampilkan sebuah karakter (huruf) di layar. Huruf apa yang akan dicetak merupakan tujuan dari instruksi yang pertama di atas. Kode ASCII dari karakter yang akan dicetak disimpan atau diletakkan di register DL, yaitu 41 heksadesimal yang merupakan kode ASCII dari karakter A. Jadi secara keseluruhan ketiga kode Assembly tersebut digunakan untuk mencetak karakter atau huruf A di layar.
Seperti terlihat pada contoh di atas, bahasa Assembly menggunakan kode mnemonic
semacam MOV dan INT. Selain itu masih banyak lagi kode mnemonic yang lain, seperti ADD,
SUB, XOR, AND, OR, CMP, JMP, JNZ, JNE, JE, CALL, OUT, DEC, INC, POP, PUSH, dll.
Kesemuanya itu merupakan kata atau singkatan dari kata-kata yang menggambarkan apa yang
akan dilakukan instruksi yang mengandung kode tersebut. Misalkan ADD digunakan untuk
-
Modul Matakuliah Praktikum Dasar Pemrograman 11
Choerun Asnawi, S.Kom. Bab II. Bahasa Pemrograman
penambahan, JMP merupakan singkatan dari jump yang artinya melompat dan digunakan untuk
mengarahkan eksekusi program ke alamat tertentu, CMP singkatan dari compare yang artinya
membandingkan dan digunakan untuk membandingkan nilai register tertentu dengan nilai data
tertentu, JNE singkatan dari Jump if Not Equal (lompat jika tidak sama) dan digunakan untuk
mengarahkan program ke alamat tertentu jika hasil dari instruksi CMP sebelumnya menghasilkan
perbandingan yang sama.
Meskipun berkaitan langsung dengan bahasa mesin, bahasa rakitan tetaplah bukan
bahasa mesin dan tidak akan dapat langsung dipahami oleh komputer. Namun karena sifatnya
yang hanya merupakan representasi bahasa mesin, maka untuk mengkonversi bahasa rakitan
menjadi bahasa mesin sangat mudah dilakukan. Seiring dengan diciptakannya bahasa rakitan
maka dibuat juga sebuah program penerjemah yang dinamakan assembler (perakit). Tugas
utama assembler adalah mengubah kode dalam bahasa rakitan menjadi kode bahasa mesin.
Contoh program assembler adalah Turbo Assembler (TASM) dari Borland, Microsoft Assembler
(MASM), Fast Assembler (FASM), dll.
Seperti halnya bahasa mesin, Assembly juga dianggap sebagai bahasa aras rendah (low
level). Bahasa Assembly terkait langsung dengan CPU tertentu. Oleh karenanya, bahasa
Assembly yang digunakan di jenis komputer yang satu akan sedikit banyak berbeda dengan
bahasa Assembly yang digunakan di jenis komputer lainnya. Dalam istilah pemrograman, hal ini
dinamakan sebagai tidak portable.
Bahasa Assembly pernah dipakai secara luas untuk pengembangan aplikasi, terutama di
saat memang tidak ada atau hanya sedikit pilihan lainnya. Assembly pernah digunakan untuk
membangun sistem operasi semacam MS-DOS (sistem operasi pendahulu Microsoft Windows)
serta aplikasi Lotus 123 versi-versi awal, sebuah aplikasi spreadsheet semacam Microsoft Excel
yang dulu pernah jaya. Program Assembly juga pernah digunakan secara besar-besaran pada
tingkat komputer mainframe. Namun, semenjak munculnya bahasa-bahasa pemrograman
semacam FORTRAN, COBOL, BASIC, dan C, secara perlahan-lahan bahasa Assembly mulai
ditinggalkan banyak penggunanya. Hari ini bahasa Assembly digunakan hanya untuk pekerjaan
yang sangat spesifik, seperti pengembangan device driver yang membutuhkan akses langsung
ke hardware atau untuk sistem komputer baru yang di dalamnya belum ada bahasa lainnya.
Bagaimanapun juga, pemahaman tentang pemrograman Assembly masih tetap menjadi
bagian penting pada sebagian besar perguruan tinggi ilmu komputer dan informatika. Meskipun
bagitu, telah terbukti bahwa bahasa Assembly sulit dipelajari dan dipahami oleh programmer rata-
rata, apalagi untuk seorang pemula.
2.4. Bahasa Pemrograman Aras Menengah ke Atas
Seperti tergambar pada Gambar 2.3, manusia berkomunikasi dengan bahasa manusia
sedangkan komputer berkomunikasi dengan bahasa komputer (bahasa mesin). Bahasa
Assembly pun hanyalah sebuah bahasa mesin yang menggunakan dialek yang memiliki sedikit
kemiripan dengan bahasa manusia. Hal inilah yang dulu menjadi salah satu penyebab munculnya
mitos bahwa komputer sulit diprogram dan hanya ahli matematika (yang memahami angka biner)
-
12 Modul Matakuliah Praktikum Dasar Pemrograman
Bab II. Bahasa Pemrograman Choerun Asnawi, S.Kom.
saja yang dapat memprogram komputer. Untuk itulah maka para ahli mulai mengembangkan
bahasa-bahasa pemrograman baru yang dapat lebih memudahkan dalam memprogram komputer
dibandingkan dengan menggunakan bahasa Assembly, apalagi bahasa mesin. Dalam membuat
bahasa baru, yang perlu diperhatikan bahwa bahasa tersebut harus dapat dengan cepat
diterjemahkan ke dalam bahasa mesin namun memiliki bentuk yang menyerupai atau mendekati
bahasa manusia (kebanyakan menggunakan Bahasa Inggris).
Gambar 2.3 Manusia dan komputer menggunakan bahasa yang berbeda
Jika bahasa mesin dan Assembly dikelompokkan ke dalam bahasa pemrograman aras
rendah (low-level), maka bahasa pemrograman yang dikembangkan selanjutnya dikelompokkan
menjadi bahasa aras menengah (middle-level) dan bahasa aras tinggi (high-level). Ada juga yang
menganggap semua bahasa yang tidak masuk bahasa aras rendah pasti termasuk bahasa aras
tinggi, tanpa menyebutkan tentang aras menengah. Ciri-ciri bahasa aras tinggi adalah sudah
menggunakan kalimat yang sangat mirip dengan bahasa manusia dan programmer yang
menggunakannya sudah tidak perlu lagi berpikir tentang detail cara kerja internal komputer.
Sementara ciri-ciri bahasa aras menengah adalah meskipun menggunakan kalimat yang mirip
bahasa manusia, bahasa ini masih memperlihatkan pola-pola cara kerja internal komputer,
seperti akses langsung ke hardware, akses langsung ke alamat memori dan port, penggunaan
pointer, dll. Contoh bahasa aras menengah yang paling populer adalah Bahasa C. Sementara
bahasa aras tinggi lebih banyak contohnya, yang paling populer saat ini antara lain adalah Java,
Visual Basic, C++, Delphi, PHP, JavaScript, C#, ASP, MatLab, Fortran, COBOL, dll.
Seperti halnya bahasa Assembly, bahasa pemrograman aras menengah ke atas juga
tidak akan dapat langsung dimengerti oleh komputer. Untuk dapat dipahami oleh komputer, kode
dalam bahasa-bahasa tersebut harus dikonversi atau diterjemahkan terlebih dahulu ke dalam
kode bahasa mesin. Seiring dengan diciptakannya bahasa pemrograman baru, penciptanya juga
akan membuat sebuah program penerjemahnya. Jika program penerjemah bahasa Assembly
dinamakan assembler, maka penerjemah bahasa aras menengah ke atas dikelompokkan ke
dalam 2 (dua) jenis penerjemah, yaitu compiler (kompilator) dan interpreter. Untuk lebih jelasnya
dapat dilihat pada bab tentang Compiler dan Interpreter.
Berikut ini akan diberikan tulisan mengenai beberapa bahasa pemrograman aras
menengah atau aras tinggi yang boleh dikatakan sebagai pelopor munculnya bahasa-bahasa
pemrograman yang ada saat ini. Sementara itu untuk bahasa-bahasa pemrograman yang lain
akan dapat dilihat pada lampiran modul ini.
-
Modul Matakuliah Praktikum Dasar Pemrograman 13
Choerun Asnawi, S.Kom. Bab II. Bahasa Pemrograman
2.4.1 Fortran
Walaupun dianggap sebagai peningkatan yang sangat signifikan terhadap bahasa mesin,
bahasa Assembly masih belum dapat digunakan sebagai bahasa pemrograman untuk berbagai
kebutuhan (general-purpose). Saat itu masih diperlukan bahasa pemrograman baru yang dapat
memfasilitasi pengembangan aplikasi komputer di bidang bisnis dan keilmuwan. Di akhir era
1950-an, sepasang bahasa pemrograman baru muncul untuk memenuhi kebutuhan tersebut.
Fortran muncul terlebih dulu pada tahun 1957. Fortran, akronim dari FORmula
TRANslator, dirancang untuk mendukung kalkulasi matematis yang rumit. Pencipta Fortran
adalah John W. Backus, yang saat itu bekerja untuk IBM. Versi awal dari Fortran memungkinkan
pengembangan aplikasi yang kinerjanya secara kasar setara dengan program Assembly namun
dianggap lebih mudah digunakan. Di awal era 60-an, beberapa lusin kompilator Fortran telah
dibuat untuk berbagai platform komputasi, membuatnya menjadi bahasa pemrograman pertama
yang benar-benar portabel.
Gambar 2.4 John W. Backus, pencipta Fortran
Kira-kira satu tahun setelah kompilator pertamanya diperkenalkan, IBM memperkenalkan
Fortran II. Salah satu perubahan paling penting dalam Fortran II adalah penambahan fitur
subrutin yang dapat dikompilasi secara independen. Dengan demikian Fortran telah mengalami
perubahan yang cukup substansial di tahun pertamanya. Hingga saat ini Fortran terus mengalami
perubahan, perbaikan-perbaikan dan standarisasi. Hasil dari standarisasi tersebut adalah Fortran
66, Fortran 77, Fortran 90, Fortran 95, dan terakhir Fortran 2003.
Aplikasi Fortran saat ini masih banyak dipakai dalam berbagai area teknis, termasuk
pemodelan iklim dan cuaca serta komputasi fisika dan kimia. Walaupun begitu, secara umum
Fortran tetap dianggap sebagai bahasa pemrograman untuk kalangan spesialis (ilmuwan dan
insinyur) dan tidak banyak digunakan di kalangan umum.
Contoh kode program dalam Bahasa Fortran dapat dilihat pada Kode Program 2.3.
Program tersebut digunakan untuk menampilkan kalimat Hello, World! di layar monitor.
Kode Program 2.3 Contoh program dalam Bahasa Fortran
C Hello World in Fortran PROGRAM HELLO WRITE (*,100) STOP 100 FORMAT (' Hello World! ' /) END
-
14 Modul Matakuliah Praktikum Dasar Pemrograman
Bab II. Bahasa Pemrograman Choerun Asnawi, S.Kom.
2.4.2 COBOL
Bahasa yang muncul setelah Fortran namun pada era yang hampir bersamaan adalah
COBOL. COBOL dikembangkan oleh tim yang dipimpin oleh Grace Murray Hopper dan
diperkenalkan pada tahun 1959. Tim tersebut merupakan gabungan dari berbagai kalangan
profesional di bidang komputer dan dinamakan Conference On Data Systems Languages
(CODASYL). COBOL, yang kepanjangannya adalah COmmon Business-Oriented Language,
dirancang untuk mendukung pengembangan aplikasi bisnis. Sesuai dengan namanya, bahasa ini
memang memiliki ranah utama di seputar bisnis, finansial, dan sistem administrasi dalam suatu
perusahaan atau pemerintahan. Seperti halnya FORTRAN, agar komputer dapat memahami
kode program dalam Bahasa COBOL, maka dibutuhkan sebuah compiler COBOL yang dapat
menerjemahkannya ke dalam bahasa mesin.
Gambar 2.5 Grace Hopper, pencetus bahasa COBOL
Sejak 1959, COBOL telah mengalami berbagai perubahan dan perbaikan. Sebagai
usaha untuk mengatasi masalah inkompatibilitas antar versi, American National Standard Institute
(ANSI) mengembangkan bentuk standar dari Bahasa COBOL pada tahun 1968. Versi tersebut
dinamakan American National Standard (ANS) COBOL. Setelah itu, dua versi revisi dikeluarkan
lagi oleh ANSI, yaitu pada tahun 1974 dan 1985. Pada awal 90-an, diputuskan untuk menambah
fitur pemrograman berorientasi objek pada COBOL. Draftnya terselesaikan pada tahun 1997
namun implementasinya baru dapat dinikmati pada tahun 2002 dengan munculnya COBOL 2002.
Saat ini COBOL masih digunakan untuk pengembangan aplikasi mainframe. Pada
kenyataannya, mayoritas aplikasi bisnis di dunia saat ini masih ditulis dengan COBOL. Walaupun
begitu, COBOL masih tetap dipandang sebagai bahasa pemrograman untuk kalangan dan
kepentingan khusus saja, sehingga tidak digunakan secara luas.
Contoh kode program dalam Bahasa COBOL dapat dilihat pada Kode Program 2.4.
Kode Program 2.4 Contoh program COBOL
* Hello World in COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. ENVIRONMENT DIVISION. DATA DIVISION. PROCEDURE DIVISION. MAIN SECTION. DISPLAY "Hello World!" STOP RUN.
-
Modul Matakuliah Praktikum Dasar Pemrograman 15
Choerun Asnawi, S.Kom. Bab II. Bahasa Pemrograman
2.4.3 Bahasa C
Setelah kemunculan Fortran dan COBOL, para programmer mulai menyadari bahwa
mereka membutuhkan sebuah bahasa yang memiliki sifat mudah ditulis, dibaca dan dimodifikasi
(seperti halnya Fortran dan COBOL) namun memiliki kegunaan yang tidak terlalu spesifik dan
mampu melakukan apa yang dapat dilakukan Assembly, seperti mengakses hardware secara
langsung. BCPL merupakan salah satu bahasa pemrograman aras tinggi paling awal yang
dikembangkan untuk memenuhi kebutuhan tersebut. BCPL dibuat pada tahun 1967 oleh Martin
Richards dengan tujuan untuk menulis sebuah program sistem operasi. Sesudahnya bahasa
tersebut dikembangkan lagi oleh Ken Thompson dengan menambahkan berbagai fitur baru, dan
hasilnya diberi nama Bahasa B.
Gambar 2.6 Martin Richards, Ken Thompson, dan Dennis Ritchie
Bahasa C dikembangkan utamanya dari Bahasa B oleh Dennis Ritchie pada awal 70-an.
Bahasa C dikembangkan di Bell Telephone Laboratories untuk digunakan pada sistem operasi
UNIX. Segera setelah diperkenalkan, Bahasa C cepat menjadi populer di kalangan programmer
dan tetap bertahan selama beberapa dekade, bahkan sekarang pun masih banyak penggunanya.
Bahasa C dirasakan jauh lebih mudah untuk bekerja daripada Assembly namun memiliki semua
kemampuan Assembly. Ditambah lagi bahwa Bahasa C bersifat portabel, tidak seperti Assembly.
Oleh karena itu, Bahasa C sering disebut sebagai Assembly yang portabel. Bahasa C secara
cepat menjadi bahasa pemrograman yang paling umum untuk menulis software aplikasi sistem.
Salah satu fitur utama dari C adalah kemampuan untuk mengakses langsung hardware
komputer. Hal ini telah terbukti menjadi sebuah pedang dengan dua sisi tajam. Hanya
programmer yang paling berpengalaman dan mapan sajalah yang dapat menggunakan fitur
tersebut secara aman. Di tangan programmer yang kurang pengalaman, C terbukti dapat menjadi
sebuah bom waktu yang setiap saat dapat membuat komputer menjadi crash.
Bahasa C dikenal sebagai sebuah bahasa yang sangat ringkas dari segi bahasa,
memiliki sangat sedikit kata-kata kunci atau keyword sehingga sangat mudah dihapalkan, serta
memiliki struktur statement yang sederhana. Sedemikian ringkasnya, bahkan untuk beberapa
fungsional yang sangat sederhana sekalipun (misalkan untuk menulis teks) tidak diintegrasikan
ke dalam bahasanya sendiri namun dimasukkan ke dalam pustaka inti (core library). Keunggulan
Bahasa C selain dari portabilitas dan kecepatan, adalah tersedianya banyak pustaka-pustaka
yang siap untuk dipakai baik yang komersial maupun gratis. Saat ini banyak bahasa-bahasa yang
diimplementasikan (compiler atau interpreter-nya) menggunakan Bahasa C.
-
16 Modul Matakuliah Praktikum Dasar Pemrograman
Bab II. Bahasa Pemrograman Choerun Asnawi, S.Kom.
Dari Bahasa C kemudian muncul bahasa-bahasa yang terinspirasi darinya, seperti
Bahasa C++ (dibaca Si Plus Plus), C# (dibaca Si Sharp), Objective C, dan bahasa-bahasa yang
memiliki kemiripan sintaks dengannya semacam Java, JavaScript, Perl, PHP, dll. Mungkin satu-
satunya bahasa yang mirip dengan C dalam hal perkembangannya adalah Bahasa BASIC.
Hanya saja keduanya memang ditujukan untuk segmen yang berbeda, bahkan berlawanan.
Kode Program 2.5 memperlihatkan contoh program dalam Bahasa C.
Kode Program 2.5 Contoh program C
#include int main() { printf (Hello World!\n); return 0; }
-
33 COMPILER DAN INTERPRETER
3.1. Pengertian dan Cara Kerjanya
Seperti telah dijelaskan sebelumnya, komputer sebenarnya tidak dapat memahami dan
tidak mengerti secara langsung dengan kode program yang ditulis menggunakan bahasa
pemrograman tertentu. Jangankan bahasa pemrograman aras tinggi, bahasa Assembly yang
beraras rendah dan paling dekat dengan bahasa mesin saja tidak dapat langsung dipahaminya.
Komputer membutuhkan sesuatu untuk menerjemahkan kode program itu dan mengubahnya ke
dalam bentuk yang dapat langsung dia pahami, yaitu dalam bahasa mesin. Penerjemah tersebut
mau tidak mau haruslah sesuatu yang langsung dapat dimengerti dan dijalankan oleh komputer
(untuk menunaikan tugasnya menerjemahkan program). Oleh karena itu, penerjemah biasanya
berbentuk program yang sudah menggunakan bahasa mesin.
Secara garis besar, penerjemah bahasa pemrograman dapat dibagi menjadi dua jenis.
Jenis penerjemah yang pertama bekerja dengan cara menerjemahkan semua kode yang ada di
dalam program menjadi program berbahasa mesin sekaligus, lalu menyimpannya sebagai versi
bahasa mesin dari program tersebut. Versi bahasa mesin itulah yang nantinya akan dibaca dan
dijalankan oleh komputer. Cara ini dapat dianalogikan dengan menerjemahkan sebuah buku dan
menerbitkannya dalam versi bahasa hasil terjemahan. Untuk membaca buku terjemahan tersebut
orang sudah tidak memerlukan buku aslinya maupun orang yang menerjemahkan buku itu lagi.
Gambar 3.1 Cara kerja compiler
Demikian juga dengan komputer, untuk membaca hasil terjemahan yang sudah dalam
bahasa mesin dia sudah tidak membutuhkan program aslinya yang masih dalam bahasa
pemrograman tertentu dan juga sudah tidak membutuhkan penerjemah untuk
-
18 Modul Matakuliah Praktikum Dasar Pemrograman
Bab III. Compiler dan Interpreter Choerun Asnawi, S.Kom.
menerjemahkannya lagi. Dengan kata lain penerjemahan dilakukan hanya sekali dan terjadi
sebelum program benar-benar dijalankan. Penerjemahan yang seperti ini disebut dengan istilah
kompilasi (compile), sehingga program penerjemahnya dinamakan sebagai kompilator atau
compiler. Cara kerja compiler ini dapat dilihat pada Gambar 3.1.
Sedangkan jenis penerjemah yang kedua bekerja dengan cara berturut-turut membaca
program asli dalam bahasa pemrograman tertentu, menafsirkannya dan mengubahnya ke dalam
kode mesin yang sesuai lalu langsung menjalankan kode tersebut saat itu juga. Cara ini dapat
dianalogikan dengan membaca buku berbahasa asing. Jika si pembaca paham dengan bahasa
tersebut maka setiap kata atau frase yang baru dibacanya secara otomatis akan ditafsirkannya ke
dalam bahasanya sendiri. Pada kasus ini maka otaknyalah yang berfungsi sebagai penerjemah.
Namun jika si pembaca tidak memahami bahasa pada buku yang dibacanya, paling tidak dia
membutuhkan seseorang yang paham bahasa tersebut untuk membacakan dan menafsirkan isi
buku tersebut padanya. Dengan demikian setiap kali mau membaca buku tersebut, si pembaca
selalu membutuhkan keberadaan buku asli sekaligus penerjemahnya. Tanpa kehadiran salah
satunya maka dapat dipastikan bahwa orang itu tidak akan dapat membaca dan memahami isi
buku tersebut.
Gambar 3.2 Cara kerja interpreter
Serupa dengan itu, komputer yang tidak dapat memahami langsung kode program dalam
bahasa pemrograman tertentu akan membutuhkan sebuah penerjemah yang bertugas
menafsirkan dan menjelaskan padanya maksud kode program itu. Dengan cara ini maka setiap
kali mau menjalankan program dibutuhkan keberadaan program asli yang masih dalam bahasa
pemrograman tertentu serta program penerjemah yang mengetahui cara menafsirkan bahasa
tersebut. Penerjemahan semacam ini disebut dengan istilah penafsiran atau interpretasi
(interpret) dan program penerjemahnya dinamakan penafsir atau interpreter. Cara kerja
interpreter dapat dilihat pada Gambar 3.2.
3.2. Kelebihan dan Kekurangan
Kedua cara tersebut masing-masing memiliki kelebihan dan kekurangannya sendiri.
Dengan menggunakan cara kompilasi diperoleh keuntungan bahwa program akan dapat berjalan
relatif lebih cepat serta membutuhkan ruang memori yang lebih kecil dibandingkan dengan cara
penafsiran. Hal ini terjadi karena saat menjalankan program, kode program sudah berada dalam
bahasa mesin sehingga proses penerjemahan sudah tidak diperlukan lagi. Hal ini jelas akan
mempercepat jalannya program karena tidak ada waktu terbuang untuk menerjemahkan kode.
Selain itu penggunaan memori akan jauh lebih kecil dan efisien karena alokasi memori relatif
sudah fix dan hanya untuk menampung kode mesin atau data yang sudah dalam bentuk biner.
Bandingkan dengan cara penafsiran yang harus mengalokasikan memori bukan hanya untuk
-
Modul Matakuliah Praktikum Dasar Pemrograman 19
Choerun Asnawi, S.Kom. Bab III. Compiler dan Interpreter
kode mesin yang dihasilkan melainkan juga untuk kode asli yang akan diterjemahkan. Selain itu
alokasi memori belum fix dari awal dan akan berubah sepanjang program berjalan.
Di samping semua kelebihan tersebut di atas, penggunaan cara kompilasi juga memiliki
kelemahan dilihat dari segi fleksibilitas dan efisiensi waktu. Proses kompilasi biasanya
merupakan sebuah proses yang cukup menyita waktu dan hanya sedikit compiler yang mampu
melakukan proses tersebut dengan cepat. Biasanya kecepatan proses kompilasi berbanding
terbalik dengan efisiensi kode mesin yang dihasilkan. Oleh karena itu perubahan kecil pada
program dapat menjadi sebuah proses yang panjang karena untuk melihat hasil dari perubahan
itu tetap harus lewat proses kompilasi ulang yang memakan waktu. Hal ini dapat dianalogikan
dengan perusahaan penerbit buku yang diharuskan menerjemahkan dan menerbitkan ulang buku
hanya karena ada perubahan minor pada buku aslinya. Hal ini tentu saja dapat dipandang
sebagai suatu kegiatan yang sangat menyita waktu, tenaga dan biaya. Demikian juga dengan
proses kompilasi program. Jika perubahan-perubahan kecil pada kode program asli banyak
terjadi selama proses pembuatan program maka proses kompilasi yang dilakukan berulang-ulang
akan terasa sangat menjemukan dan menyita banyak waktu programmer.
Berbeda dengan cara kompilasi, kecepatan program dan kebutuhan memori merupakan
kelemahan utama dari cara interpretasi. Secara umum bahasa pemrograman yang menggunakan
interpreter memang memiliki kecepatan yang lebih rendah dari bahasa yang menggunakan
compiler. Hal ini terjadi terutama karena adanya proses penerjemahan di sela-sela menjalankan
tiap statement atau kalimat pada program. Proses penerjemahan ini sebenarnya sudah sangat
cepat untuk ukuran manusia, namun bagi komputer itu sudah merupakan delay yang cukup lama,
apalagi jika terjadi berulang kali. Untuk program yang bersifat real-time atau yang membutuhkan
komputasi yang rumit perbedaan waktu ini akan menjadi sangat terasa. Demikian juga dengan
program yang memerlukan data berukuran besar, seringkali hanya dapat dibuat menggunakan
bahasa yang terkompilasi dan gagal jika menggunakan bahasa yang terinterpretasikan
(interpreted). Hal ini dikarenakan data yang besar membutuhkan ruang memori yang besar pula.
Meskipun demikian, dengan semakin cepatnya komputer saat ini dan semakin murahnya
harga memori maka untuk program yang biasa saja umumnya perbedaan tersebut menjadi tidak
terasa lagi. Apalagi di sisi programmer khususnya atau pengembang program aplikasi pada
umumnya, fleksibilitas yang diperoleh dari penggunaan cara interpretasi amat sangat membantu
proses pembuatan program. Siklus menjemukan yang terjadi ketika memakai compiler tidak akan
ditemui jika menggunakan interpreter. Jika mau melakukan perubahan pada program, sekecil
apapun perubahan itu, tinggal modifikasi langsung kode program aslinya dan untuk melihat
hasilnya tinggal menjalankannya saat itu juga. Bahkan ada beberapa interpreter yang memiliki
fasilitas untuk menjalankan bagian tertentu saja dari keseluruhan program. Hal ini tentu saja akan
memudahkan dan mempercepat proses penulisan program.
Di sisi lain, bahasa pemrograman yang terinterpretasikan pada umumnya relatif lebih
mudah dipelajari daripada bahasa yang terkompilasi. Hal ini terutama berlaku bagi pemula yang
baru mempelajari konsep-konsep dasar pemrograman. Kebanyakan interpreter menyediakan
fasilitas interaktif yang memungkinkan programmer atau penggunanya untuk memasukkan kode
-
20 Modul Matakuliah Praktikum Dasar Pemrograman
Bab III. Compiler dan Interpreter Choerun Asnawi, S.Kom.
yang akan langsung dijalankannya dan langsung terlihat hasilnya. Kemudahan ini kadang-kadang
menyebabkan bahasa yang terinterpretasikan oleh sebagian programmer profesional dianggap
remeh dan dipandang lebih rendah dari bahasa yang terkompilasi. Padahal kemampuan dan
kerumitan bahasa yang terinterpretasikan di satu tingkat bisa jadi tidak kalah dari bahasa yang
terkompilasi, bahkan kadang-kadang dapat melebihinya. Sebagai contoh, JavaScript yang
merupakan bahasa yang terinterpretasikan, pada satu sisi memiliki sintaks yang sederhana dan
sangat mudah dipelajari oleh seorang pemula, namun di sisi lain ketika sudah mempelajari fitur
lanjut dan segala seluk beluk internalnya maka akan didapati bahwa JavaScript merupakan
bahasa yang sangat rumit dan tidak mudah untuk dikuasai.
3.3. Bahasa Skrip (Scripting Language)
Beberapa bahasa pemrograman memiliki nama yang berakhiran Script, seperti VBScript,
JavaScript, JScript, ActionScript atau AppleScript. Semua bahasa tersebut memiliki satu
kesamaan yaitu sama-sama merupakan bahasa yang terinterpretasikan. Istilah script sendiri
berasal dari istilah skrip pada perfileman yang berisi dialog yang harus diucapkan oleh pemain.
Jika skrip film berfungsi untuk memberitahu pemain (aktor) apa yang harus dilakukannya secara
berturut-turut, maka bahasa skrip berfungsi untuk memberitahu sebuah program apa yang harus
dilakukannya secara berturut-turut.
Pengertian bahasa skrip sendiri adalah bahasa yang menumpang pada sebuah sistem
tertentu yang normalnya berjalan secara interaktif, dan digunakan untuk mengendalikan operasi,
memanipulasi, mengkustomisasi atau mengotomasikan fasilitas pada sistem tersebut. Tujuan dari
sebuah program skrip biasanya adalah untuk memberikan sederetan pekerjaan pada sistem yang
ditumpanginya untuk dikerjakan sekaligus dalam satu batch. Sebagai contoh, seseorang dapat
menaruh sederetan perintah penyuntingan (editing) ke dalam sebuah file, dan menyuruh sebuah
program editor untuk menjalankan skrip tersebut sehingga seakan-akan semua perintah yang
ada di dalamnya itu diketik secara bergantian.
Seperti telah dicontohkan sebelumnya, semua bahasa skrip merupakan bahasa yang
terinterpretasikan. Interpreter-nya sendiri adalah sistem yang ditumpanginya. Sistem tersebut
dapat berupa sistem apa pun juga, seperti program aplikasi perkantoran, editor gambar maupun
teks, web browser, bahkan sampai sistem operasi. Sebagai contoh, pada sistem operasi keluarga
UNIX dikenal berbagai macam shell script yang digunakan untuk mengotomasikan berbagai
operasi yang dapat dilakukan di dalam shell sistem operasi tersebut. Pada sistem operasi MS-
DOS dan Windows juga dikenal bahasa yang memiliki fungsi serupa yang dikenal sebagai batch.
Beberapa contoh lainnya, JavaScript dan VBScript merupakan bahasa skrip yang digunakan
untuk mengontrol dan mengendalikan dokumen web di dalam lingkup web browser. Pada animasi
Flash dikenal sebuah bahasa skrip dengan nama ActionScript yang akan dikenali oleh aplikasi
Flash player. Sementara itu pada keluarga aplikasi MS Office dikenal skrip yang dinamakan
macro dan menggunakan bahasa VBA (Visual Basic for Application). Bahasa skrip yang lainnya
antara lain Python yang dipakai pada aplikasi pemodelan 3D Blender serta game Civilization IV,
Lua yang digunakan pada game World of WarCraft, dan PHP yang digunakan pada server web.
-
Modul Matakuliah Praktikum Dasar Pemrograman 21
Choerun Asnawi, S.Kom. Bab III. Compiler dan Interpreter
3.4. Keterkaitan Bahasa Pemrograman dengan Penerjemah
Secara teoritis seharusnya tak ada kaitan langsung antara bahasa pemrograman dengan
cara menerjemahkannya, dalam artian bahwa seharusnya bahasa pemrograman apa pun dapat
diterjemahkan dengan cara kompilasi maupun interpretasi. Namun biasanya suatu bahasa
pemrograman tertentu selalu dikaitkan sifatnya dengan teknik penerjemahan yang digunakan.
Misalkan suatu Bahasa A bersifat terinterpretasikan (interpreted language), sedangkan Bahasa B
bersifat terkompilasi (compiled language). Jika dilihat dari sisi rancangan (desain) bahasa maka
pengaitan tersebut bisa jadi memang ada benarnya. Ada fitur-fitur tertentu yang membuat suatu
bahasa menjadi hanya bisa dikompilasi dan tidak mungkin atau paling tidak sangat sulit
diterjemahkan dengan cara interpretasi. Demikian juga sebaliknya, ada bahasa yang dari
rancangannya memang menjadi hanya dapat diinterpretasikan dan tidak mungkin atau sangat
sulit untuk dikompilasi. Batasan tersebut bisa jadi memang disengaja saat merancang bahasa
atau bisa jadi tidak disengaja dan baru disadari belakangan.
Namun seiring dengan perkembangan teknologi komputer disertai dengan kecerdikan
otak manusia maka batasan tersebut dapat dilalui atau minimal diakali. Saat ini sudah banyak
bermunculan bahasa-bahasa yang memiliki versi terinterpretasikan dan versi terkompilasi.
Bahasa BASIC merupakan salah satu contoh yang populer. Pada pertengahan era 90-an ada
versi BASIC yang bernama QBASIC dan QuickBASIC yang memiliki sintaks yang sama namun
berbeda teknologi penerjemahnya. QBASIC bersifat terinterpretasikan sedangkan QuickBASIC
bersifat terkompilasi. Saat ini, terdapat VBScript dan VBA yang merupakan versi terinterpretasi
dari Visual Basic (VB). Contoh lainnya adalah adanya upaya untuk menciptakan compiler untuk
PHP yang jelas-jelas dirancang sebagai bahasa terinterpretasikan.
Bahasa Java bahkan menggunakan kedua teknik penerjemahan tersebut sekaligus.
Teknik kompilasi digunakan untuk mengubah program dalam Bahasa Java ke bentuk antara yang
dinamakan ByteCode. Teknik interpretasi digunakan untuk membaca kode ByteCode tersebut
dan menjalankannya. Cara ini dimungkinkan dengan adanya Java Virtual Machine (JVM) yang
tahu cara membaca ByteCode dan menafsirkannya ke kode mesin yang sebenarnya.
3.5. Kode Sumber, Pustaka dan Executable
Seperti telah disebutkan sebelumnya, pada dasarnya sebuah komputer tidak mempunyai
kemampuan untuk membedakan kode program dengan data. Bagi komputer keduanya tidak ada
bedanya, sama-sama berupa rangkaian angka biner. Data pada komputer tersimpan dalam
bentuk file di dalam storage dan ketika akan dibaca maka dimuat ke dalam memori. Demikian
juga halnya dengan program, kodenya disimpan di dalam file dan akan dimuat ke memori ketika
dijalankan. Kadang-kadang data tersisip di antara kode program dan tersimpan dalam file yang
sama. Tugas programmer lah untuk mengarahkan komputer mana yang data dan mana yang
kode program. Kesalahan dalam pemberian arahan ini dapat berakibat fatal.
Sebuah file yang berisi program asli yang masih tertulis dalam bahasa pemrograman
tertentu dinamakan sebagai file kode sumber (source code). Istilah ini muncul karena memang
file tersebut berisi sumber atau asal dari kode program yang akan diterjemahkan. Jadi istilah
-
22 Modul Matakuliah Praktikum Dasar Pemrograman
Bab III. Compiler dan Interpreter Choerun Asnawi, S.Kom.
source code mengacu pada kode program yang masih belum diterjemahkan ke kode mesin.
Source code inilah yang dimodifikasi jika ada perubahan pada program.
Sementara itu untuk file yang memuat hasil kompilasi (isinya sudah berupa kode program
dalam bahasa mesin), umumnya disebut sebagai file biner (binary). Hal ini dikarenakan bahasa
mesin memang tersusun dari angka-angka biner. Untuk menjalankan file biner hasil kompilasi
tersebut dibutuhkan sebuah program khusus yang dinamakan sistem operasi. Tidak semua hasil
akhir proses kompilasi berisi kode yang siap dijalankan. Ada juga hasil kompilasi yang hanya
berisi potongan-potongan kode yang dapat dipanggil dan digunakan oleh program lainnya. File
semacam ini dinamakan sebagai file pustaka (library) atau file objek karena memang berisi
sekumpulan objek atau kode yang siap diambil dan dipakai disertai dengan katalog atau daftar
isinya. Sementara itu hasil kompilasi yang berisi kode yang siap dijalankan dinamakan sebagai
executable atau file yang dapat dieksekusi.
Perlu dicatat bahwa dalam konteks program komputer, istilah mengeksekusi (execute)
memiliki makna yang sama dengan menjalankan (run) dan keduanya sering dipertukarkan dalam
pemakaiannya. Istilah lain yang sering digunakan juga adalah meluncurkan (launch).
Proses pengubahan dari source code menjadi executable atau library sebenarnya melalui
dua tahapan, seperti terlihat pada Gambar 3.3. Tahap yang pertama adalah tahap
pengkompilasian (compiling), yaitu mengubah dari satu atau lebih file source code menjadi satu
atau lebih file objek yang berisi kode mesin. Kemudian tahap yang kedua disebut sebagai tahap
penautan (linking) yang bertujuan untuk menautkan dan menghubungkan setiap file objek yang
dihasilkan pada tahap pertama ke dalam sebuah file executable atau library. Program untuk
melakukan penautan ini dinamakan penaut atau linker. Beberapa tool pemrograman kadang-
kadang menyamarkan hal ini dari programmer sehingga seakan-akan hanya ada satu tahap
kompilasi saja dari source code langsung jadi executable atau library.
Gambar 3.3 Proses pengubahan dari source code menuju executable
-
44 PENGENALAN PHP
4.1. Apa itu PHP?
PHP, akronim (singkatan) rekursif dari PHP: Hypertext Preprocessor, merupakan
sebuah bahasa pemrograman scripting yang bersifat general-purpose (ditujukan untuk berbagai
keperluan). PHP merupakan sebuah produk Open Source yang saat ini sangat banyak
penggunanya. PHP utamanya dipakai untuk pengembangan aplikasi berbasis web, terkait
dengan kemampuannya yang dapat ditanamkan (embedded) dalam dokumen web (HTML). Hal
terbaik dalam menggunakan PHP adalah kenyataan bahwa walaupun PHP sangatlah sederhana
dan mudah dipelajari oleh seorang pemula, namun juga menyediakan banyak fitur canggih bagi
seorang programmer profesional.
Gambar 4.1 Logo PHP (kiri) dan maskot PHP, ElePHPant (kanan)
Dalam kaitannya dengan pengembangan aplikasi web, fungsi PHP adalah untuk
menambahkan kemampuan scripting pada sebuah aplikasi server web. Dengan kemampuan
scripting ini maka server web dapat menghasilkan konten web yang dinamis, menerima dan
memproses input dari pengguna, membaca dan menulis ke filesystem, berhubungan dengan
server database, dll. Penggunaan PHP semacam ini dikenal dengan istilah scripting di sisi server
(server-side scripting).
4.2. Apa Saja yang Dapat Dilakukan PHP?
Hampir semuanya! Fokus utama PHP adalah pada server-side scripting, sehingga dapat
melakukan apa pun yang dapat dilakukan menggunakan program CGI, seperti mengkoleksi data
form, menghasilkan konten dinamis, atau mengirim dan menerima cookie. Tapi PHP dapat
melakukan yang lebih dari sekedar itu, sesuai dengan sifatnya yang general-purpose.
-
24 Modul Matakuliah Praktikum Dasar Pemrograman
Bab IV. Pengenalan PHP Choerun Asnawi, S.Kom.
Dua area utama penggunaan PHP adalah area server-side scripting (menggantikan
program CGI) dan area command-line scripting (menggantikan shell script). Selain itu ada
beberapa area lain penggunaan PHP. Secara detail, area penggunaan script PHP dapat
dituliskan dalam daftar berikut:
Server-side scripting. Ini merupakan bidang target paling umum dan utama untuk PHP.
Dibutuhkan tiga hal untuk ini, yaitu sebuah interpreter PHP (CGI atau modul server),
sebuah server web dan sebuah browser web. Server web harus dijalankan dengan
terhubung pada sebuah instalasi PHP. Output program PHP dapat diakses dengan
sebuah browser web, dengan melihat halaman PHP melalui server.
Command-line scripting. Script PHP dapat dijalankan tanpa menggunakan server dan
browser. Cara ini hanya membutuhkan interpreter PHP saja. Jenis penggunaaan ini
cocok untuk script yang dieksekusi secara rutin menggunakan cron (di UNIX atau Linux)
dan Task Scheduler (di Windows). Script semacam ini dapat digunakan juga untuk
pekerjaan mengolah teks sederhana.
Menulis aplikasi desktop. PHP mungkin bukan bahasa yang paling tepat untuk membuat
sebuah aplikasi desktop dengan antarmuka grafis, namun jika mengenal PHP dengan
sangat baik, hal ini dapat dilakukan menggunakan ekstensi semacam PHP-GTK atau
WinBinder.
Menciptakan dokumen atau file dengan format tertentu melalui kode program (script).
Dengan berbagai ekstensi yang ada, PHP memiliki kemampuan untuk tidak hanya
menghasilkan output berupa teks atau HTML saja, namun dapat juga menghasilkan
(generate) konten lainnya, semacam image atau citra (gambar), dokumen MS Word,
Excel atau PDF, bahkan animasi Flash.
4.3. Seperti Apakah Program PHP?
PHP merupakan bahasa pemrograman yang sintaksnya merupakan turunan dari Bahasa
Perl, yang merupakan turunan dari Bahasa C. Jadi, secara sekilas program PHP memiliki
kemiripan dalam hal sintaks dengan program Perl dan program C. Hanya saja jika dibandingkan
dengan Bahasa C yang sangat tegas dalam berbagai aturan pemrograman, maka PHP memiliki
sifat yang lebih longgar dan lebih toleran terhadap kesalahan yang dibuat programmer. Hal ini
tentu saja akan memudahkan bagi seorang pemula untuk mempelajarinya. Tak heran jika untuk
mempelajari dasar-dasar PHP jauh lebih mudah daripada Bahasa C. Sementara itu Bahasa Perl
yang lebih mirip dengan PHP dikenal sebagai bahasa yang mengandalkan keringkasan. Namun
justru karena ringkasnya itu maka tak jarang program Perl menjadi sulit untuk dibaca. Dari segi
itu, PHP memiliki sintaks yang lebih jelas dan lebih mudah dibaca daripada Perl.
Ada satu hal yang membuat PHP menjadi sangat unik dan berbeda dengan bahasa-
bahasa pemrograman lainnya. Hal ini berkaitan dengan kemampuannya untuk menanamkan
(embed) dan mengeksekusi kode program di dalam suatu dokumen atau file tertentu. Ilustrasinya
dapat dilihat pada Gambar 4.2.
-
Modul Matakuliah Praktikum Dasar Pemrograman 25
Choerun Asnawi, S.Kom. Bab IV. Pengenalan PHP
Gambar 4.2 Ilustrasi penanaman kode program PHP di dalam suatu dokumen
Saat PHP membaca sebuah file untuk diterjemahkan, dilakukan pencarian sebuah tanda
pembuka dan penutup, yang digunakan untuk memberitahu PHP kapan mulai dan berhenti
menerjemahkan kode yang ada di antaranya. Tanda ini dikenal dengan sebutan tag. Kode PHP
harus ditulis di antara tag pembuka dan penutup tersebut, sedangkan yang berada di luar kedua
tag tersebut dapat dianggap sebagai dunia luar, yang tidak akan dipedulikan oleh PHP. Cara
pembacaan seperti ini memungkinkan PHP untuk diltanamkan pada berbagai jenis dokumen,
karena semua di luar pasangan tag pembuka dan penutup tersebut tidak diacuhkan oleh PHP.
Dokumen yang paling banyak digunakan untuk menanamkan kode PHP adalah dokumen HTML,
seperti dicontohkan pada Kode Program 4.1.
Kode Program 4.1 Contoh kode PHP yang dilekatkan dalam dokumen HTML
Selamat Datang di Teks ini akan dibiarkan saja oleh PHP. Yang ini tidak akan diacuhkan lagi. Hari ini tanggal
Saat PHP belum menemukan sebuah tag pembuka atau saat PHP telah menemukan
sebuah tag penutup, maka sederhananya PHP hanya akan mulai meng-output-kan apapun yang
ditemuinya sampai menemukan tag pembuka lainnya. Untuk meng-ouput-kan blok besar teks,
menyingkirkan mode pembacaan PHP secara umum akan lebih efisien daripada melalui perintah
output semacam echo atau print.
Terdapat empat macam pasangan tag pembuka dan penutup yang dapat digunakan
dalam PHP. Dua di antaranya, dan selalu tersedia
dan dapat selalu digunakan. Dua yang lainnya dinamakan tag pendek (short tags) dan tag gaya
ASP, yang dapat diaktifkan atau dinonaktifkan lewat file konfigurasi PHP (php.ini). Oleh karena
itu, walaupun tag pendek dan tag gaya ASP dipandang beberapa orang lebih enak digunakan,
pada kenyataannya kurang portabel, sehingga secara umum tidak disarankan. Daftar tag
pembuka dan penutup yang dikenal oleh PHP dapat dilihat pada Tabel 4.1.
-
26 Modul Matakuliah Praktikum Dasar Pemrograman
Bab IV. Pengenalan PHP Choerun Asnawi, S.Kom.
Tabel 4.1 Daftar pasangan tag pembuka dan penutup pada PHP
No Pembuka Penutup Keterangan
1 paling disarankan karena yang sesuai dengan standar yang ada
2 cocok untuk editor semacam FrontPage, yang kurang berkenan dengan keberadaan tanda dinamakan sebagai tag pendek
4 tag gaya ASP (ASP-style)
Kesimpulannya, untuk mulai menuliskan kode PHP harus dimulai dengan menuliskan
salah satu dari beberapa tag pembuka yang ada di Tabel 4.1 (disarankan menggunakan
-
Modul Matakuliah Praktikum Dasar Pemrograman 27
Choerun Asnawi, S.Kom. Bab IV. Pengenalan PHP
4.5. Sejarah PHP
4.5.1 PHP/FI
Sejarah PHP diawali oleh sebuah produk lama, yang bernama PHP/FI (Personal Home
Page/Forms Interpreter). PHP/FI diciptakan oleh Rasmus Lerdorf (lihat Gambar 4.5) pada tahun
1995, diawali dari sekelompok script Perl yang sederhana untuk mencatat pengaksesan terhadap
resume online-nya. Dia menyebut kelompok script ini dengan nama Personal Home Page Tools.
Seiring dengan lebih banyak fungsionalitas yang diperlukan, Rasmus kemudian mengganti
penggunaan Perl dan mulai mengimplementasikannya menggunakan Bahasa C. Hasilnya adalah
sebuah tool yang dapat melakukan komunikasi dengan database, dan memungkinkan user untuk
mengembangkan aplikasi web dinamis yang sederhana. Saat itulah Rasmus memilih untuk
merilis kode sumber dari PHP/FI untuk dilihat semua orang, sehingga selain setiap orang dapat
menggunakannya, juga sekalian untuk memperbaiki bug dan kodenya.
Gambar 4.5 Rasmus Lerdorf, Andi Gutmans dan Zeev Suraski
PHP/FI, yang berarti Personal Home Page/Forms Interpreter, telah memiliki beberapa
fungsionalitas dasar dari PHP yang dikenal saat ini. PHP/FI memiliki variabel yang mirip dengan
Perl, interpretasi otomatis terhadap variabel form dan sintaks yang dapat ditanamkan pada
HTML. Sintaksnya sendiri memiliki banyak kemiripan dengan Perl, namun lebih terbatas dan lebih
sederhana serta dalam beberapa hal kurang konsisten.
Sampai pada tahun 1997, implementasinya yang kedua dengan Bahasa C (PHP/FI 2.0)
telah memiliki pengguna yang diperkirakan sebanyak beberapa ribu pengguna di seluruh dunia,
dengan sekitar 50.000 domain yang dilaporkan menggunakannya, atau sekitar 1% dari domain
yang terdaftar di Internet. Walaupun ada beberapa orang yang memberikan sedikit kontribusi
kode, namun secara keseluruhan tetap saja sebagai projek satu orang saja. PHP/FI 2.0 secara
resmi dirilis pada November 1997, setelah sebelumnya hanya berbentuk rilis versi beta. Sebentar
kemudian setelah rilisnya tersebut, langsung digantikan dengan versi alfa pertama dari PHP 3.0.
4.5.2 PHP 3
PHP 3.0 merupakan versi pertama yang wujudnya paling mendekati PHP yang dikenal
saat ini. Versi ini dibuat oleh Andi Gutmans dan Zeev Suraski (lihat Gambar 4.5) pada tahun 1997
sebagai suatu penulisan ulang total, setelah mereka menyadari bahwa PHP/FI 2.0 sangat tidak
cocok untuk mengembangkan aplikasi eCommerce yang sedang mereka kerjakan pada suatu
projek kuliah. Sebagai suatu usaha untuk bekerja sama dan mulai membangun di atas user-base
PHP/FI, maka Andi, Rasmus dan Zeev memutuskan untuk bekerja sama dan mengumumkan
-
28 Modul Matakuliah Praktikum Dasar Pemrograman
Bab IV. Pengenalan PHP Choerun Asnawi, S.Kom.
bahwa PHP 3.0 merupakan penerus resmi dari PHP/FI 2.0. Setelah itu pengembangan PHP/FI
2.0 secara keseluruhan terhenti.
Salah satu kekuatan terbesar dari PHP 3.0 adalah fitur extensibility-nya yang kuat.
Sebagai tambahan dari penyediaan suatu infrastruktur yang solid untuk berbagai database,
protokol dan API yang berbeda, fitur extensibility dari PHP 3.0 telah menarik banyak pengembang
untuk bergabung dan membuat modul ekstensi baru. Hal ini merupakan kunci dari kesuksesan
PHP 3.0. Fitur kunci lainnya yang diperkenalkan di PHP 3.0 adalah dukungan sintaks berorientasi
pada objek serta sintaks bahasa yang jauh lebih handal dan lebih konsisten.
Bahasa yang baru ini dirilis dengan menggunakan nama baru, yang menghilangkan
implikasi batasan penggunaan personal yang tertera pada nama PHP/FI 2.0. Bahasa yang baru
ini cukup dinamai PHP, yang merupakan akronim rekursif dari PHP: Hypertext Preprocessor.
PHP 3.0 secara resmi dirilis pada Juni 1998, setelah selama 9 bulan dalam pengetesan publik.
Menginjak akhir 1998, PHP diestimasi telah memiliki puluhan ribu user dan ratusan ribu
situs web dilaporkan menggunakannya. Pada puncaknya, PHP 3.0 telah terinstall pada hampir
10% dari web server yang tersambung ke Internet.
4.5.3 PHP 4
Menginjak musim dingin 1998, beberapa saat setelah PHP 3.0 dirilis secara resmi, Andi
Gutmans dan Zeev Suraski mulai bekerja untuk menulis ulang inti dari PHP. Tujuan dari
perancangan tersebut adalah untuk meningkatkan kinerja dari aplikasi yang kompleks, serta
meningkatkan modularitas dasar kode PHP. Aplikasi semacam itu menjadi dimungkinkan dengan
fitur baru dan dukungan PHP 3.0 terhadap berbagai database dan API. Namun demikian PHP 3.0
tidak dirancang untuk menangani aplikasi kompleks secara efisien.
Mesin (engine) yang baru, dinamakan Zend Engine (dibentuk dari gabungan nama awal
penciptanya, Zeev dan Andi), berhasil memenuhi target ini dengan sukses, dan dikenalkan
pertama kalinya di pertengahan tahun 1999. PHP 4.0, dengan dasar mesin ini, serta ditambahi
dengan berbagai fitur baru, secara resmi dirilis pada mei 2000, hampir dua tahun setelah
pendahulunya, PHP 3.0. Sebagai tambahan dari peningkatan kinerja yang sangat tinggi, PHP 4.0
menyertakan fitur kunci lainnya seperti dukungan lebih banyak web server, sesi HTTP, output
buffering, cara yang lebih aman dalam menangani masukan dari user, serta beberapa konstruksi
bahasa yang baru.
Saat ini, PHP diestimasikan telah digunakan oleh ratusan ribu pengembang, dan
beberapa juta situs web dilaporkan telah menggunakannya, yang berarti lebih dari 20% dari
domain di Internet. PHP merupakan salah satu projek open source yang paling aktif saat ini. Tim
pengembangan PHP meliputi belasan atau puluhan pengembang, serta puluhan lainnya yang
bekerja di projek-projek yang terkait dengan PHP semacam PEAR dan projek dokumentasinya.
4.5.4 PHP 5
PHP 5 dirilis pada Juli 2004 setelah pengembangan yang lama dan beberapa rilis awal.
Pengembangan PHP 5 terutama tertuju pada intinya, yaitu Zend Engine 2.0 dengan model objek
yang berbeda serta berbagai fitur baru lainnya.
-
Modul Matakuliah Praktikum Dasar Pemrograman 29
Choerun Asnawi, S.Kom. Bab IV. Pengenalan PHP
4.6. PHP dan Matakuliah PDP
4.6.1 Penggunaan PHP
Matakuliah Praktikum Dasar Pemrograman (PDP) merupakan kelanjutan dari matakuliah
Algoritma dan Pemrograman (Alpro). Di dalam matakuliah Alpro, mahasiswa belajar menyusun
algoritma, baik memakai kalimat deskriptif, pseudo code atau flow chart. Selain itu mahasiswa
juga belajar dasar-dasar dan teori pemrograman, mulai dari konsep variabel, konstanta,
statement, ekspresi, nilai dan tipe data, assignment, percabangan, pemilihan kondisi, hingga
perulangan. Di dalam matakuliah PDP inilah, semua konsep dan teori pemrograman tersebut
akan dipraktekkan, sehingga mahasiswa dapat melihat dan mencoba langsung semua yang
selama ini hanya berupa teori. Bahasa pemrograman yang dipilih adalah PHP.
Banyak yang memiliki anggapan bahwa penggunaan PHP sebagai bahasa pengantar
matakuliah pemrograman tidak tepat. Sebagian beranggapan bahwa untuk bahasa pengantar
harusnya sebuah bahasa pemrograman yang nyata dan serius, semacam Pascal, C atau C++,
Java, Visual Basic, atau yang semacamnya. Kalangan ini menganggap bahwa bahasa-bahasa
script semacam PHP, Perl, Python, JavaScript, dan semacamnya hanyalah bahasa mainan dan
tidak serius. Kadang-kadang meskipun sangat yakin dengan anggapannya itu, tapi mereka tidak
dapat menerangkan apa yang dimaksud dengan nyata, mainan dan serius itu.
Terlepas dari benar tidaknya anggapan itu, saat ini memang kontroversi semacam itu
sedang menjadi diskusi (atau perdebatan) yang hangat di kalangan programmer. Sebagian
beranggapan bahwa bahasa yang serius adalah bahasa yang menggunakan teknik kompilasi,
sedangkan bahasa skrip atau bahasa yang terinterpretasi pada umumnya bukanlah bahasa yang
serius. Sebagian yang lain menolak anggapan ini dengan alasan saat ini banyak bahasa
terinterpretasi yang justru memiliki fitur dan sintaks yang jauh lebih kompleks dibandingkan
bahasa terkompilasi. Contohnya adalah Falcon, sebuah bahasa terinterpretasi baru yang
merupakan satu-satunya bahasa yang sudah mendukung penulisan kode program menggunakan
karakter Unicode, sehingga nama identifier dapat ditulis menggunakan karakter non-latin. Saat ini
PHP juga dapat dikatakan sudah bukan bahasa mainan lagi. Fiturnya sudah sedemikian
kompleks hingga tak jarang hanya sedikit yang benar-benar dapat menguasainya dengan utuh.
Sebagian lagi beranggapan bahwa dengan menggunakan bahasa yang bertipe lemah
seperti PHP akan menyusahkan dalam rangka menjelaskan konsep tipe data. Anggapan ini jelas
kurang tepat. Bahasa yang bertipe lemah (weakly-typed) bukannya tidak paham tentang konsep
tipe data. Mereka paham dan mereka juga memiliki tipe data, hanya saja mereka menganggap
bahwa tipe data itu tidak harus membebani programmer. Programmer dipersilahkan memasukkan
data sekehendak hati mereka, lalu interpreter-lah yang akan secara otomatis menentukan tipe
data untuk data tersebut. Jika memang programmer mau menentukan sendiri tipe datanya
sendiri, fasilitas itu juga tersedia.
Ada lagi kalangan yang beranggapan bahwa PHP kurang tepat untuk bahasa pengantar
karena PHP merupakan bahasa yang hanya dapat digunakan untuk membangun aplikasi web.
Anggapan ini tentu saja juga sangat tidak tepat. Jika memang seperti itu, terus apa bedanya
-
30 Modul Matakuliah Praktikum Dasar Pemrograman
Bab IV. Pengenalan PHP Choerun Asnawi, S.Kom.
dengan Visual Basic yang hanya dapat digunakan untuk membangun aplikasi desktop? Ketika
sebagian orang menggunakannya sebagai bahasa pengantar, apakah harus menerangkan dulu
tentang konsep objek, event atau windowing? Tentu saja tidak! Karena yang akan diajarkan
adalah konsep dasar pemrograman, maka materi itulah yang harusnya dipelajari. Demikian juga
dengan PHP, sebagai bahasa pemrograman yang utuh, PHP juga memiliki konstruksi yang dapat
digunakan untuk menerangkan konsep dasar pemrograman. Jadi terlepas bahwa PHP khusus
untuk membuat aplikasi web, konsep dasar pemrograman tetap dapat dijelaskan menggunakan
PHP. Apalagi anggapan bahwa PHP hanya dapat digunakan untuk aplikasi web itu merupakan
anggapan yang salah. Seperti telah dijelaskan sebelumnya, saat ini PHP merupakan bahasa
yang general-purpose alias untuk berbagai keperluan. Jika pemrograman berbasis console dirasa
paling tepat untuk menerangkan konsep pemrograman, maka PHP menyediakannya. Jika
pemrograman berbasis desktop yang dirasa paling tepat, PHP juga menyediakannya.
Yang terakhir, ada kalangan yang menganggap bahwa PHP memiliki sintaks yang kurang
konsisten sehingga terkesan akan membingungkan. Hal ini memang ada benarnya, terkait
dengan pengembangan PHP yang sangat dinamis. Namun seperti telah disebutkan, kekuatan
PHP salah satunya adalah kemudahannya untuk dipelajari oleh pemula karena memiliki sintaks
yang sederhana, namun juga memiliki berbagai fitur canggih yang akan sangat memanjakan
programmer profesional. Jadi masalah ketidakkonsistenan ini sebenarnya dapat dipecahkan
dengan memilih-milih dan menstrukturisasi menggunakan urutan-urutan materi yang tepat.
Setelah matakuliah ini, mahasiswa nantinya memang akan difokuskan untuk mempelajari
pembuatan aplikasi dan sistem informasi berbasis web menggunakan PHP. Dengan pemberian
dasar-dasar PHP di matakuliah PDP, HTML dan CSS di matakuliah Web Dasar, serta dasar
basis data (MySQL) di matakuliah Sistem Manajemen Basis Data (SMBD) dan Praktikum Basis
Data, maka diharapkan mahasiswa dapat meramunya di semester depan pada matakuliah
Pengembangan Aplikasi Web (PAW).
4.6.2 Aplikasi PHPDraw
Untuk bisa melakukan percobaan atau praktikum, jelas diperlukan sebuah tool atau alat.
Selain tentu saja diperlukan sebuah komputer, juga diperlukan program aplikasi dan bahasa
pemrograman yang sudah terinstall pada komputer tersebut. Pada matakuliah PDP ini, akan
digunakan bahasa pemrograman PHP dengan program aplikasinya bernama PHPDraw.
PHPDraw merupakan sebuah aplikasi sederhana yang digunakan untuk menciptakan
gambar digital menggunakan kode program PHP. Tujuan utama penggunaan aplikasi ini adalah
untuk mempelajari konsep dasar pemrograman menggunakan bahasa pemrograman PHP
sekaligus sebagai sarana berlatih yang menyenangkan. Kode perintah yang digunakan untuk
menciptakan setiap elemen gambar dibuat sesederhana mungkin agar mudah dipahami dan
diingat oleh programmer pemula. Dengan menggunakan gambar sebagai output dari program,
diharapkan akan lebih memudahkan dalam menghubungkan antara kode dengan hasilnya,
sehingga mahasiswa dapat lebih cepat dalam menyerap berbagai materi terkait konsep dasar
pemrograman.
-
55 DASAR-DASAR KONSEP PEMROGRAMAN
5.1. Pengenal (Identifier)
Pada bahasa mesin, untuk mengacu pada suatu data atau suatu kode program tertentu,
maka programmer diharuskan untuk menuliskan alamat memori tempat data atau kode program
itu berada. Bahkan tak jarang programmer harus menghitung posisi alamat memori yang akan
diacu tersebut relatif terhadap posisi kode yang akan mengacu. Misalkan jika di alamat 0100
akan dituliskan kode program untuk melompat dan langsung mengeksekusi kode di alamat 0108,
maka kode mesinnya (prosesor Intel 32 bit atau yang kompatibel) adalah 1110 1011 0000 0110
atau EB 06 dalam heksadesimal. Kode EB di sini dapat diartikan sebagai lompat sebanyak ...
alamat ke depan. Sehingga kode EB 06 dapat diartikan sebagai lompat sebanyak 6 alamat ke
depan. Banyaknya alamat yang dilompati didapatkan dari alamat yang dituju dikurangi alamat
kode yang mengacu dikurangi lagi ukuran kode yang mengacu (dalam byte). Jadi nilai 6 di sini
didapat dari 108-100-2 (kode EB 06 menempati 2 alamat memori atau ukurannya 2 byte).
Konsep pengacuan langsung ke alamat memori ini selain menyulitkan programmer dalam
hal mengingat, juga akan menimbulkan masalah jika alamat yang diacu mengalami perubahan.
Perubahan tersebut dapat terjadi karena adanya penyisipan atau penghapusan data atau kode
lainnya sehingga alamat memori yang diacu menjadi bergeser. Jika hal ini terjadi maka
programmer dipaksa untuk menelusuri kode programnya dan mencari kode-kode yang mengacu
ke alamat yang berubah tersebut untuk kemudian melakukan penyesuaian.
Bahasa Assembly menyederhanakan konsep pengacuan ke alamat memori ini dengan
menggunakan konsep label. Label digunakan untuk menggantikan alamat memori tertentu yang
akan diacu di bagian lain program. Dengan demikian programmer sudah tidak perlu mengingat
dan menghitung-hitung lagi alamat memori yang akan diacu, namun cukup dengan menyebutkan
label dari alamat yang akan diacu tersebut. Jika ada perubahan atau pergeseran alamat memori
maka assembler akan secara otomatis menyesuaikan label dengan alamat yang baru, sehingga
programmer tidak perlu repot mengubah kode-kode yang mengacu ke label tersebut.
Pada bahasa pemrograman lain, konsep label ini digeneralisir menjadi yang dinamakan
identifier. Dalam konsep pemrograman, identifier atau pengenal merupakan nama atau sebutan
-
32 Modul Matakuliah Praktikum Dasar Pemrograman
Bab V. Dasar-Dasar Konsep Pemrograman Choerun Asnawi, S.Kom.
untuk suatu objek atau entitas program. Definisi lainnya adalah suatu simbol yang mewakili objek
dalam program. Objek di sini dapat berupa kode program atau data. Seperti halnya bahasa
pemrograman yang dibuat untuk memudahkan manusia dalam memberi instruksi pada mesin
atau komputer, identifier dibuat untuk memudahkan manusia mengingat setiap objek yang ada
dalam program. Untuk itu, disarankan untuk selalu membuat identifier yang deskriptif, yang
menggambarkan objek apa yang diwakilinya.
Pembuatan identifier di setiap bahasa pemrograman memiliki aturan-aturannya sendiri.
Yang jelas di semua bahasa pemrograman, ada kata-kata tertentu yang sudah terpakai dan tidak
diperkenankan untuk dijadikan sebagai identifier (lihat subbab berikutnya). Pada PHP, identifier
hanya boleh terdiri dari huruf, angka, dan garis bawah (underscore). Selain itu, karakter pertama
pada identifier tidak boleh berupa angka. Perlu diketahui bahwa PHP umumnya membedakan
huruf besar dan kecil (case-sensitive), sehingga identifier nama berbeda dengan Nama.
Aturan penggunaan karakter untuk identifier kadang-kadang sering membuat bingung
programmer pemula. Aturan yang sering dilupakan oleh seorang pemula adalah tidak bolehnya
menggunakan spasi untuk identifier. Hal ini terutama terjadi jika identifier terbentuk dari dua atau
lebih kata. Setiap bahasa pemrograman mempunyai cara sendiri untuk mengatasi hal itu, dan
biasanya bukan berupa suatu keharusan tapi lebih disikapi sebagai sebuah kesepakatan saja.
Misalkan ada yang mengganti spasi dengan garis bawah, contohnya untuk mewakili data harga
obat digunakan identifier harga_obat. Ada yang menggunakan tanda hubung (dash) untuk
mengganti spasi, contohnya untuk mewakili harga obat digunakan identifier harga-obat. Hanya
saja karena tanda dash ini sama dengan tanda minus (operator pengurangan) maka jarang yang
menggunakannya. Ada juga yang menggunakan kombinasi huruf besar dan huruf kecil untuk
menunjukkan adanya lebih dari satu kata dalam identifier. Sebagian menggunakan kapitalisasi
(capitalized), yaitu setiap kata disambung dan huruf pertama dari tiap kata ditulis dengan huruf
besar, contohnya untuk mewakili data harga obat digunakan identifier HargaObat. Sebagian
lainnya menggunakan teknik yang disebut dengan istilah camelized, yaitu dengan menyambung
kata-katanya lalu huruf pertama tiap kata selain kata pertama ditulis dengan huruf besar. Istilah
camelized berasal dari kata camel atau unta, karena huruf besar pada huruf pertama tiap kata
dianggap sebagai punuk unta, lalu huruf paling awal tidak dibesarkan untuk menggambarkan
ekor unta. Contohnya untuk data harga obat diwakili dengan identifier hargaObat.
Dalam berbagai kasus, PHP menggunakan bentuk yang pertama, yaitu menggunakan
tanda garis bawah (underscore) untuk memisahkan kata pada identifier. Namun ada beberapa
kasus tertentu yang menggunakan bentuk capitalized. Tanda underscore juga sering digunakan
untuk menunjukkan bahwa suatu identifier merupakan identifier khusus yang sudah disediakan
o