54
MODUL MATAKULIAH PRAKTIKUM DASAR PEMROGRAMAN CHOERUN ASNAWI, S.KOM. PROGRAM STUDI MANAJEMEN INFORMATIKA STMIK JENDERAL ACHMAD YANI YOGYAKARTA 2010

Modul PDP.pdf

Embed Size (px)

Citation preview

  • 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