Komputer mencakup tiga aspek penting :
- Perangkat keras (hardware)
- Perangkat lunak (software)
- Perangkat akal (brainware) / orang yang berperan dalam operasi computer (user)
Program adalah suatu kumpulan urutan perintah ke computer untuk mengerakan sesuatu, dimana instruksi tersebut menggunakan bahasa yang dimengerti oleh computer atau yang dinamakan bahasa pemrograman.
Bahasa pemrograman merupakan prosedur atau tata cara penulisan program, pada bahasa pemrograman terdapat dua factor penting, yaitu sintaks dan semantic.
Fungsi bahasa pemrograman adalah sebagai media untuk menyusun dan memahami serta sebagai alat komunikasi antara pemrogram dengan computer.
Generasi bahasa pemrograman:
• Generasi I: machine language • Generasi II: assembly language : Asssembler • Generasi III: high-level programming language: C, PASCAL, dsb. • Generasi IV: 4 GL (fourth-generation language): SQL
Tahapan dalam Pemrograman
Langkah-langkah yang dilakukan dalam menyelesaikan masalah dalam pemrograman dengan komputer adalah:
1. Defenisikan Masalah
a. Tentukan apa yang menjadi masalah
b. Tentukan data input yang diperlukan
c. Tentukan output yang diinginkan
2. Buat bagan dan struktur cara penyelesaian
a. Bagan secara global
b. Deskripsikan tugas masing-masing subprogram
3. Pilih Metode Penyelesaian
a. Pilih struktur data dan Algoritma terbaik
4. Pengkodean
a. Pilih bahasa pemrograman yang sesuai
b. Menterjemahkan algoritma ke bahasa pemrograman
5. Mencari Kesalahan
a. Kesalahan sintaks (penulisan program)
b. Kesalahan Pelaksanaan: Semantik, Logika, dan ketelitian
6. Uji dan Verifikasi Program
7. Dokumentasi Program
8. Pemiliharaan Program
a. Memperbaiki kekurangan yang ditemukan kemudian
b. Memodifikasi, karena perubahan spesifikasi
Tipe pemrograman ada 7 macam, yaitu :
1. Pemrograman procedural, definisi procedural adalah tahap-tahap kegiatan untuk menyelesaikan suatu aktifitas.
2. Pemrograman terstruktur adalah pemrograman yang mendukung abstraksi data, pengkodean terstruktur dan control program terstruktur.
3. Pemrograman modural diterapkan dengan menggunakan sub-routine, yaitu sebuah kumpulan perintah yang melakukan tugas pemrosesan yang terbatas.
4. Pemrograman fungsionalmerupakan salah satu bahasa pemrograman yang memperlakukan proses komputasi sebagai evaluasi fungsi-fungsi matematika.
5. Pemrograman berorientasi obyek, merupakan bahasa pemrograman yang mampu memanfaatkan obyek-obyek yang tersedia atau membuat suatu obyek tertentu dengan menggunakan bahasa pemrograman.
6. Pemrograman visual, penggunaan ekspresi visual (grafik, gambar atau icon) dalam proses pemrograman.
7. Pemrograman even-driven, “jika sebuah aksi/perintah dilakukan terhadap sebuah obyek, apa yang akan terjadi/dilakukan oleh obyek tersebut selanjutnya”.
Kriteria bahasa pemrograman :
a. Clarity, simplycity dan unity
Bahasa pemrograman harus dapat menolong programmer untuk membuat suatu desain
program jauh sebelum programmer melakukan coding.
b. Orthogonality
Orthogonality menunjuk kepada suatu atribut yang dapat dikombinasikan dengan
beragam fitur bahasa pemrograman sehingga setiap kombinasinya mempunyai arti dan
dapat digunakan.
c. Kewajaran untuk aplikasi
Bahasa pemrograman membutuhkan sintaks yang tepat/cocok yang digunakan pada
struktur program untuk merefleksikan struktur logika yang melandasi suatu algoritma.
d. Mendukung abstraksi
Abstraksi merupakan suatu hal yang substansial bagi programmer untuk membuat suatu
solusi dari masalah yang dihadapi, sehingga abstraksi tersebut dapat dengan mudah
diimplementasikan menggunakan fitur-fitur yang ada dalam bahasa pemrograman.
e. Kemudahan untuk verifikasi program
Kesederhanaa struktur semantik dan sintaks merupakan aspek primer yang
mempengaruhi kesederhanaan verifikasi program.
f. Lingkungan pemrograman
Bahasa pemrograman yang mempunyai lingkungan pemrograman yang baik dan lengkap
akan memudahkan programmer untuk mengimplementasikan abstraksi yang sudah
disusunnya.
g. Portabilitas program
Salah satu kriteria penting untuk proyek pemrograman adalah kemudahan program yang
yang sudah jadi untuk dipindah-pindahkan dari komputer yang digunakan untuk membuat
dan mengembangkan ke komputer lain yang akan menggunakannya.
h. Biaya penggunaan
Biaya merupakan elemen penting dalam mengevaluasi suatu bahasa pemrograman. Ada
beberapa biaya yang dapat diukur, yaitu :
- Biaya Eksekusi Program
- Biaya Translasi / Kompilasi Program
- Biaya Penciptaan, Testing dan Penggunaan Program
- Biaya Pemeliharaan Program
Bahasa pemrograman harus dapat menolong programmer untuk membuat suatu desain
program jauh sebelum programmer melakukan coding.
b. Orthogonality
Orthogonality menunjuk kepada suatu atribut yang dapat dikombinasikan dengan
beragam fitur bahasa pemrograman sehingga setiap kombinasinya mempunyai arti dan
dapat digunakan.
c. Kewajaran untuk aplikasi
Bahasa pemrograman membutuhkan sintaks yang tepat/cocok yang digunakan pada
struktur program untuk merefleksikan struktur logika yang melandasi suatu algoritma.
d. Mendukung abstraksi
Abstraksi merupakan suatu hal yang substansial bagi programmer untuk membuat suatu
solusi dari masalah yang dihadapi, sehingga abstraksi tersebut dapat dengan mudah
diimplementasikan menggunakan fitur-fitur yang ada dalam bahasa pemrograman.
e. Kemudahan untuk verifikasi program
Kesederhanaa struktur semantik dan sintaks merupakan aspek primer yang
mempengaruhi kesederhanaan verifikasi program.
f. Lingkungan pemrograman
Bahasa pemrograman yang mempunyai lingkungan pemrograman yang baik dan lengkap
akan memudahkan programmer untuk mengimplementasikan abstraksi yang sudah
disusunnya.
g. Portabilitas program
Salah satu kriteria penting untuk proyek pemrograman adalah kemudahan program yang
yang sudah jadi untuk dipindah-pindahkan dari komputer yang digunakan untuk membuat
dan mengembangkan ke komputer lain yang akan menggunakannya.
h. Biaya penggunaan
Biaya merupakan elemen penting dalam mengevaluasi suatu bahasa pemrograman. Ada
beberapa biaya yang dapat diukur, yaitu :
- Biaya Eksekusi Program
- Biaya Translasi / Kompilasi Program
- Biaya Penciptaan, Testing dan Penggunaan Program
- Biaya Pemeliharaan Program
DEFINISI SINTAKS, SEMANTIK DAN PRAGMATIS
Ada 3 hal yang berhubungan dengan konsep bahasa pemrogramanan: sintaks, semantiks dan pragmatis.
Sintaks
Sintaks adalah sebuah bahasa berhubungan dengan struktur bahasa. Sebagai contoh, untuk membentuk sebuah kalimat yang valid dalam bahasa kita memakai struktur: [subyek] + [kata kerja] + [kata benda]. Dengan memakai struktur ini, kita bisa membentuk kalimat, sebagai contoh: Saya makan nasi. Dalam hubungannya dengan bahasa pemrograman, kita harus memenuhi sintaks (baca: aturan struktur bahasa) agar program dapat berjalan. Sebagai contoh, dalam bahasa BASIC, untuk mengassign sebuah variabel dengan sebuah nilai, kita memakai operand ‘=’, tetapi kalau dalam Pascal, kita pakai ‘:=’. Contoh dalam BASIC: a=1, tapi dalam bahasa Pascal, a:=1.
Semantik
Semantik adalah sebuah bahasa menggambarkan hubungan antara sintaks dan model komputasi. Sederhananya, semantik menjelaskan arti dari program.
Analoginya sebagai berikut. Apabila kita memakai sintaks [subyek] + [kata kerja] + [kata benda], kita bisa menghasilkan kalimat-kalimat.
Apabila kita mengasilkan kalimat Saya makan nasi, maka kalimat ini memenuhi aturan sintaks. Tapi, apabila saya membuat kalimat Saya makan batu, secara sintaks kalimat ini sudah benar. Namun, secara semantik, kalimat ini tidak mengandung makna yang berarti.
Dalam hubungannya dengan bahasa pemrograman, kadang ada kalanya seorang programmer tidak bisa mengaitkan sintaks dengan model komputasi. Kesalahan logika bisa dengan mudah terjadi.
Sebagai contoh ada bahasa pemrograman sebagai berikut:
if(a=5) {echo ‘Nilai a=5′;}
Apabila program ini dijalankan, apa yang terjadi? Bergantung bahasa apa yang digunakan. Apabila bahasa yang dipakai adalah bahasa C, maka output yang keluar selalu Nilai a=5, walaupun nilai variabel a sebelumnya selain 5. Kenapa itu bisa terjadi? Itu karena operator ‘=’ dalam bahasa C berarti mengassign sebuah variabel yang ada di sebelah kiri dengan nilai yang ada di sebelah kanan. Dalam bahasa C, secara sintaks operasi ini sudah benar.
Tapi, apabila yang dimaksud adalah programmer ingin mengevaluasi nilai variabel a, maka seharusnya memakai operator logika ‘==’. Jadi, program yang sebenarnya menjadi
if(a==5){echo ‘Nilai a=5′;}
Pragmatik
Pragmatik berhubungan dengan kemudahan implementasi dan efisiensi. Dalam analoginya dengan bahasa, kita bisa saja memberitahukan ke seseorang “Jangan merokok” apabila ada peraturan yang melarang seseorang merokok di dalam sebuah ruangan. Kalimat singkat seperti itu sebenarnya sudah cukup efisien. Tapi, dalam kesempatan lain kita bisa saja memakai kalimat “Mohon Anda jangan merokok di sini karena menurut peraturan pemerintah daerah nomor XXX tahun XXX dinyatakan bahwa merokok di tempat umum akan mengakibatkan pelanggaran peraturan, selain itu dari sisi kesehatan… blah blah blah”.
Dalam hubungannya dengan bahasa pemrograman, seorang programmer harus bisa memastikan efisiensi dalam melakukan peng-coding-an. Dalam bahasa C, programmer diberikan kekuasaan untuk mengalokasikan memori. Sebagai akibatnya, apabila programmer lalai dalam mengontorl variabel-variabel yang dihasilkan dari hasil assignment pointer, maka akan terjadi kebocoran memori. Ini diakibatkan apabila seorang programmer mengcreate sebuah variabel pointer, dan kemudian menghapusnya, informasi tersebut masih ada dalam memori, hanya saja sudah tidak bisa diakses lagi.
Referensi :
1. Modul Algoritma dan Pemrograman 1C
2. R. Sadgewick, Algorithms, Addison-Wsley, 2002.
3. Yay Singlemann, Bussines Programming Logic 2/e, Prentice Hall Engelwood Cliffs, New Jersey, 1982.
4. Clark, R, Comparative Programming Languages 3/e, Addison Wesley, 2001.
5. Bel, H. dan Grune, D., Programming Languages Essentials, Addison Wesley, 1994.
6. Sebest, R.W., Conceptss of Programming Languages 5/e, Addison Wesley, 2002.
7. Binanto, Iwan, Konsep Bahasa Pemrograman, Andi, Yogyakarta, 2005.
1. Modul Algoritma dan Pemrograman 1C
2. R. Sadgewick, Algorithms, Addison-Wsley, 2002.
3. Yay Singlemann, Bussines Programming Logic 2/e, Prentice Hall Engelwood Cliffs, New Jersey, 1982.
4. Clark, R, Comparative Programming Languages 3/e, Addison Wesley, 2001.
5. Bel, H. dan Grune, D., Programming Languages Essentials, Addison Wesley, 1994.
6. Sebest, R.W., Conceptss of Programming Languages 5/e, Addison Wesley, 2002.
7. Binanto, Iwan, Konsep Bahasa Pemrograman, Andi, Yogyakarta, 2005.