Selasa, 28 Februari 2012

Kriteria Bahasa Pemrograman

Seorang programmer akan memilih bahasa pemrogramannya jika merasa bahwa bahasa pemrograman tersebut bagus dan mudah digunakan. Ada beberapa criteria untuk penilaian suatu bahasa pemrograman, yaitu :
a.       Clarity, Simplicity, dan Unity
Bahasa pemrograman harus dapat menology programmer untuk membuat suatu desain program jauh sebelum programmer melakukan coding. Kemudahan, kesederhanaan, dan kesatuan merupakan suatu kombinasi yang membantu programmer mengembangkan suatu algoritma sehingga algoritma yang dihasilkan mempunyai kompleksitas yang rendah.
Syntax bahasa pemrograman mempengaruhi kemudahan ketika program mulai ditulis, dites, dan dimodifikasi. Program yang mudah dibaca adalah kunci dari hal tersebut.
b.      Orthogonality
Orthogonality menunjuk kepada suatu atribut yang dapat dikombinasikan dengan beragam fitur bahasa pemrograman sehingga setiap kombinasinya mempunyai arti dan dapat digunakan. Contohnya, suatu bahasa pemrograman mendukung suatu ekspresi yang dapat menghasilkan suatu nilai, dan bahasa pemrograman tersebut juga mendukung statemen kondisi yang mengevaluasi suatu ekspresi untuk mendapatkan nilai true atau false. Dua fitur dari bahasa pemrograman tersebut, yaitu ekspresi dan statemen kondisi, adalah orthogonal jika sembarang ekspresi dapat digunakan (dan dievaluasi) di dalam statemen kondisi.
Ketika fitur bahasa pemrograman adalah orthogonal, maka bahasa pemrograman tersebut akan mudah dipelajari dan program akan mudah ditulis karena hanya ada sedikit exception dan case yang harus diingat.
c.       Kewajaran untuk Aplikasi
Bahasa pemrograman membutuhkan syntax yang tepat/cocok yang digunakan pada struktur program untuk merefleksikan struktur logika yang melandasi suatu algoritma.
Bahasa pemrograman harus mempunyai struktur data, operasi-operasi, struktur control, dan syntax alami yang tepat/cocok memecahkan suatu masalah. Suatu bahasa pemrograman didesain secara khusus untuk kebutuhan tertentu, misalnya PROLOG digunakan untuk keperluan deduksi atau C++ untuk pemrograman berorientasi objek.
d.      Mendukung Abstraksi
Abstraksi merupakan suatu hal yang substansial pagi programmer untuk membuat suatu solusi dari masalah yang dihadapi. Kemudian abstraksi tersebut dapat dengan mudah diimplementasikan menggunakan fitur-fitur yang ada dalam bahasa pemrograman.
e.       Kemudahan untuk Verifikasi Program
Verifikasi program merupakan hal penting bagi sebuah program karena dengan verifikasi yang mudah maka suatu program akan dengan mudah dibangun dan dikembangkan. Kesederhanaan struktur semantic dan syntax merupakan aspek primer yang mempengaruhi kesederhaan verifikasi program.
f.       Lingkungan Pemrograman
Bahasa pemrograman yang mempunyai lingkungan pemrograman yang baik dan lengkap akan memudahkan programmer untuk mengimplementasikan abstraksi yang sudah disusunnya. Lingkungan pemrogramn disini dapat berarti editor yang digunakan, dokumetasi yang baik dari bahasa pemrograman, fasilitas debugging, user interface yang baik, ataupun tool lain yang dapat digunakan untuk memudahkan pekerjaan programmer.
SmallTalk merupakan salahsatu bahasa pemrograman yang didesain secara khusus untuk lingkungan pemrogramannya, terdiri dari Windows, menu, input mouse, dan sekumpulan tool untuk digunakan dalam program.
g.      Portabilitas Program
Salah satu criteria penting untuk proyek pemrograman adalah kemudahan program yang sudah jadi untuk dipindah-pindahkan dari computer yang digunakan untuk membuat dan mengembangkan, ke computer lain yang akan menggunakannya.
h.      Biaya Penggunaan
Biaya merupakan elemen penting dalam mengevaluasi suatu bahasa pemrograman. Ada beberapa biaya yang dapat diukur, yaitu :
1)      Biaya eksekusi program
Program yang sering dieksekusi akan membutuhkan suatu kode executable yang efisien sehingga cepat untuk dieksekusi. Semakin cepat suatu program dieksekusi maka akan semakin murah biaya eksekusi program.
2)      Biaya translasi/kompilasi program
Untuk pembelajaran, kecepatan translasi lebih diutamakan daripada kecepatan eksekusi karena pada pembelajaran lebih sering dilakukan translasi/kompilasi daripada eksekusi program yang dihasilkan. Oleh karena itu, lebih dibutuhkan compiler yang efisien dibandingkan kode executable yang efisien.
3)      Biaya penciptaan, testing, dan penggunaan program
Semakin baik dan lengkap lingkungan pemrograman pada bahasa pemrograman maka ketiga biaya ini akan menjadi rendah. Hal ini disebabkan tidak banyak waktu dan tenaga serta pikiran yang dicurahkan ke pembuatan program. SmallTalk sudah membuktikannya.
4)      Biaya pemeliharaan program
Pemeliharaan program termasuk perbaikan error yang muncul ketika program sudah digunakan, perubahan yang dibutuhkan pada program ketika hardware atau system operasi berubah, dan penyesuaian kebutuhan dengan kebutuhan baru.Pemeliharaan merupakan salah satu biaya terbesar dari life cycle cost dan merupakan hal yang membosankan bagi programmer.

Paradigma Bahasa Pemrograman

Bahasa yang dimengerti oleh computer disebut bahasa pemrograman. Bahasa pemrograman mempengaruhi cara dan teknik pemrograman. Dibawah ini adalah beberapa cara dan teknik pemrograman :
a.       Pemrograman Procedural
Pada program procedural, banyak orang berpikir bahwa program merupakan suatu rangkaian procedure yang memanipulasi data. Procedure merupakan suatu instruksi khusus yang dieksekusi secara berurutan. Trik dalam pemrograman ini adalah mengingat procedure mana yang sudah dipanggil dan data apa yang sudah diubah. Untuk menanggulangi kebingungan dan ketidakjelasan situasi pada saat pengingatan pemanggilan procedure, pemrograman terstruktur pun diciptakan.
b.      Pemrograman Functional
Pemrograman ini berdasarkan teori fungsi matematika. Artinya, pemrograman ini terdiri atas fungsi-fungsi seperti fungsi-fungsi yang ada di matematika. Fungsi merupakan pembangun utama program sehingga fungsi-fungsi ini dapat melewatkan parameter dan mengembalikan nilai yang sudah diproses.
c.       Pemrograman Terstruktur
Secara mendasar, pemrograman terstruktur merupakan suatu teknik yang memecah masalah besar menjadi lebih kecil dan lebih mudah dipahami sehingga masalah yang besar dapat diselesaikan dengan baik. Biasanya masalah-masalah yang menjadi lebih kecil tersebut diimplementasikan ke dalam suatu procedure atau fungsi. Banyak bahasa pemrograman yang mendukung pemrograman terstruktur, diantaranya bahasa C.
d.      Pemrograman Berbasis Modul
Program ini membentuk banyak modul, masing-masing modul merupakan suatu grup dari entitas variable, procedure, atau fungsi. Dapat dikatakan bahwa modul merupakan suatu program kecil yang mandiri. Sebuah program merupakan kumpulan dari modul-modul ini. MODULA-2 dan ADA mendukung pemrograman ini.
e.       Pemrograman Berorientasi Objek
Pada saat ini, pemrograman computer menjadi lebih interaktif, yaitu muncul suatu kejadian, shingga program harus dapat dengan capat menanggapi kejadian tersebut. Contohnya adalah pemakai meng-klik suatu tombol menu dilayar monitor atau memilih menu dengan keyboard.
Pemrograman berorientasi objek pada dasarnya merupakan perlakuan untuk data dan procedure yang memanipulasinya, sebagai objek tunggal. C++, JAVA, dan bahasa pemrograman visual mendukung pemrograman ini.
f.       Pemrograman Generic
Pada dasarnya terfokus pada modul-modul generic yang di-instantiate pada waktu kompilasi ataupun pada waktu run-time, untuk membuat suatu entitas (struktur data, fungsi, dan procedure) yang diperlukan oleh program. Pendekatan ini mendorong pemrograman menuju ke pengembangan tingkat tinggi dan abstraksi generic sebagai suatu unit modularity.
Pemrograman generic ini tidak berdiri sendiri, melainkan bergabung dengan bahasa-bahasa pemrograman yang mempunyai teknik pemrograman lebih dari satu, seperti Ada dan C++.
g.      Pemrograman Declarative
Pemrograman ini mendeskripsikan suatu masalah dengan pernyataan (declarative) daripada memecahkan masalah dengan implementasi algoritma. Bahasa pemrograman yang dibutuhkan untuk pemrograman declarative ini adalah bahasa PROLOG dan bahasa pemrograman berbasis aturan, seperti OPS5 dan CLIPS.
      Cara dan teknik pemrograman tersebut berjalan dan berkembang seiring dengan perkembangan hardware computer dan kebutuhan manusia. Pada awalnya, kebutuhan untuk perhitungan numeric menggunakan bahasa FORTRAN, kebutuhan penggunaan di bidang bisnis menggunakan bahasa COBOL, kebutuhan pengembangan kecerdasan buatan menggunakan bahasa LIPS dan PROLOG, untuk kebutuhan pengembangan system, terutama system operasi computer menggunakan bahasa C (bahkan sampai sekarang bahasa C masih digunakan untuk pengembangan system operasi, seperti UNIX).
      Banyak pengaruh yang menjadikan bahasa-bahasa pemrograman berkembang atau mati. Pengaruh-pengaruh tersebut antara lain :
a.       Kemampuan Komputer 
     Computer berkembang dengan sangat cepat dari computer dengan tabung hampa (vaccum-tube) ditahun 1950-an sampai ke super computer dan computer mikro atau computer pribadi, bahkan computer handheld. Pada saat yang sama, system operasi computer menyisipkan suatu layer antara bahasa pemrograman dengan hardware computer. Disamping itu, harga computer pun semakin murah. Factor-faktor ini mempengaruhi struktur dan perkembangan penggunaan bahasa-bahasa pemrograman tingkat tinggi. Dengan kata lain, desakan agar kemampuan computer untuk lebih didayagunakan dan kebutuhan para programmer, menghasilkan suatu perkembangan penggunaan bahasa-bahasa pemrograman tingkat tinggi.

Gambar : Bahasa pemrograman sebagai
perantara kebutuhan programmer dengan desakan
dari hardware computer
 
 
a.       Aplikasi
Penggunaan computer berkembang dengan pesat mulai dari konsentrasi utama untuk kepentingan militer, bidang keilmuan, bidang bisnis, dan aplikasi industri pada tahun 1950-an. Disaat ini, penggunaan computer lebih beragam lagi, mulai dari permainan (games), computer pribadi, sampai aplikasi-aplikasi di seluruh aspek kehidupan manusia.
         Permintaan aplikasi-aplikasi baru ini melahirkan suatu bahasa pemrograman baru dan perbaikan-perbaikan dari bahasa-bahasa pemrograman yang lama.
b.      Metode Pemrograman
         Perancangan bahasa pemrograman mencerminkan perubahan pandangan programmer terhadap suatu metode untuk menulis suatu metode untuk menulis suatu program yang besar dan kompleks. Perancangan tersebut juga mencerminkan perubahan lingkungan tempat program tersebut dikerjakan.
c.       Metode Impementasi
         Membuat metode implementasi menjadi lebih baik dari waktu-waktu sebelumnya, mempengaruhi pemilihan keistimewaan atau fitur suatu bahasa pemrograman baru.
d.      Pembelajaran Secara Teori
         Penelitian pada dasar-dasar konseptual rancangan dan impelmentasi bahasa pemrograman, dengan menggunakan metode formal matematika, menjadikan peneliti mempunyai pengertian yang lebih dalam tentang kekuatan dan kelemahan suatu bahasa pemrograman. Dengan demikian, dapat merancang suatu bahasa pemrograman baru dengan kelebihan yang baru pula.
e.       Standarisasi
         Kebutuhan standarisasi suatu bahasa pemrograman untuk dapat diimplementasikan dibanyak system computer sehingga dapat menjalankan suatu program di banyak system computer (tanpa harus meng-update program tersebut), berpengaruh besar terhadap evolusi perancangan bahasa pemrograman.

Bahasa Pemrograman Generasi Kelima

Bahasa pemrograman generasi kelima merupakan kelompok bahasa-bahasa pemrograman yang ditunjukkan untuk menangani kecerdasan buatan (artificial intelligence). Kecerdasan buatan adalah disiplin dalam ilmu computer yang mempelajari cara computer meniru kecerdasan manusia. Berbagai aplikasi kecerdasan manusia adalah sebagai berikut:
  • Pemrosesan bahasa alami (natural language processing), yakni mengatur computer agar bisa berkomunikasi dengan manusia melalui bahasa manusia (Inggris, Spanyol, Perancis, Indonesia, dan sebagainya)
  • Pengendalian robotika dengan sensor mata.
  • Aplikasi system pakar (expert system) yang meniru seorang pakar di bidang tertentu shingga bisa menghasilkan nasihat atau pemikiran yang setara dengan seorang pakar.
Dengan menggunkan bahasa generasi kelima dimungkinkan untuk melakukan perintah dengan menggunakan cara percakapan sebagai berikut :
“Tolong tampilkan nama semua pegawai yang pernah absen lima kali pada bulan yang lalu dan diurutkan menurut abjad”.
Tentu saja, sejauh ini bentuk percakapan yang dilakukan umumnya dalam bahasa Inggris.
PROLOG dan LISP merupakan dua contoh bahasa pemrograman yang ditujukan untuk menangani kecerdasan buatan.