Pemrograman Generasi Keempat Pengenalan Pemrograman Generasi Keempat (4GL)
Perlukah Bahasa Generasi Keempat? Banyaknya kebutuhan akan aplikasi baru membutuhkan semakin banyak programmer. Sulitnya bahasa generasi pertama, kedua dan ketiga membuat lambatnya programmer baru untuk menjadi profesional Berkembangnya tingkat kebutuhan pengguna menjadi lebih canggih membuat perlunya programmer lebih berkutat pada “apa yang seharusnya dilakukan” dan bukan pada “bagaimana melakukannya”.
Tingkatan Bahasa Pemrograman Generasi Pertama Merupakan bahasa mesin. Tidak ada interpreter atau kompilator yang menerjemahkan dalam bentuk yang berbeda. Komputer awal yang diprogram dengan notasi biner. Misal : 011011 000000 000000 000001 110101 Berarti : bersihkan accumulator dan tambahkan isi lokasi penyimpanan 117 ke dalamnya. Sangat sukar untuk membuat program dengan cara ini tanpa melakukan kesalahan.
Generasi Kedua Digunakan pada pertengahan tahun 1950 dan merupakan bahasa assembly simbolis. Alamat simbolis lebih jarang digunakan daripada alamat mesin fisik, misal contoh instruksi berupa: CLA SALARY Berarti membersihkan lokasi SALARY, dengan SALARY menunjukkan lokasi dalam memori tempat variabel disimpan. Pengalamatan simbolis merupakan langkah besar karena sekarang ketika lokasi fisik variabel diubah atau instruksi dirubah, programmer tidak harus memasukkan alamat fisik yang baru. Contoh bahasa assembly : SAP (Symbolic Assembly Program), AUTOCODER, SPS, BAL, dan EASYCODER.
Generasi Ketiga Digunakan pada tahun 1960 dan disebut bahasa tingkat tinggi. Contoh bahasa ini adalah FORTRAN dan ALGOL (untuk pengetahuan) dan COBOL untuk pekerjaan komersial. Pada bahasa tingkat tinggi seorang programmer dapat memberikan kode program tanpa pengetahuan instruksi mesin dan register. Programmer memerlukan beberapa pengetahuan mesin untuk mengoptimalkan pembuatan yang efisien.
Contoh bahasa generasi ketiga: X=(A+B)/(C+D) Bandingkan dengan bahasa generasi kedua : CLA C ADD D STO Y CLA A ADD B DIV Y STO X
Bahasa generasi ketiga memerlukan sejumlah baris kode untuk sistem komersial dan didesain untuk programmer profesional bukan pada end user. Hal ini mengakibatkan waktu yang lama dan modifikasi kompleks menjadi sulit.
Generasi Keempat Bahasa ini didesain untuk menyelesaikan masalah pada bahasa generasi ketiga dan sebelumnya. Tujuan dari bahasa generasi keempat adalah: Mempercepat proses pembuatan aplikasi Mempermudah aplikasi dan mempercepat perubahan, dengan demikian akan mengurangi biaya Meminimalkan problem debugging Membuat bug-free dari ekspresi persyaratan dengan level tinggi Membuat bahasa lebih mudah dipelajari sehingga pemakai dapat memecahkan problem sendiri dengan menggunakan komputer yang dimiliki
Bahasa generasi keempat memungkinkan aplikasi dibuat dengan satu perintah yang lebih sedikit dari yang diperlukan bahasa generasi ketiga Beberapa bahasa generasi keempat tergantung pada basis data dan kamus data atau direktori. Bahasa generasi ketiga menggunakan konstruksi von-Neumann yaitu ekspresi dengan cabang dan loop. Pada generasi keempat : tidak!
Generasi kelima Bentuk bahasa generasi kelima umumnya mengacu pada sistem yang menggunakan disiplin yang disusun dalam bidang artifial intelligence, khususnya: Sistem berbasis pengetahuan Expert system Mesin interference Pemrosesan Bahasa Manusia
Sistem generasi kelima memberi kode pengetahuan yang kompleks sehingga suatu mesin dapat menggambarkan kesimpulan. Bahasa yang menggambarkan generasi ini masih dalam embrio. Contoh terkenal adalah PROLOG
ASPEK BAHASA PEMROGRAMAN GENERASI KEEMPAT
Bahasa Prosedural dan Non Prosedural Bahasa prosedural menentukan bagaimana sesuatu diselesaikan, sedangkan bahasa non prosedural menentukan apa yang harus diselesaikan tanpa menjelaskan bagaimana sesuatu diselesaikan. Beberapa bahasa generasi keempat disebut sebagai bahasa nonprosedural. Bahasa generasi ketiga seperti COBOL adalah bahasa prosedural karena merinci secara detail instruksi untuk menyelesaikan sesuatu. Bahasa query, pembuatan laporan, paket grafik dan pembuat aplikasi adalah nonprosedural.
Contoh bahasa non prosedural PLOT REVENUE, EXPENSES, MARK-UP, EMPLOYEE BY MONTH Program tidak perlu menyatakan tipe plot yang diperlukan , karena program dapat memilihkan tipe, warna yang terbaik untuk kasus tersebut.
Dengan Bahasa Prosedural kita memberikan instruksi kepada supir taksi: “Terus, masuk jalur cepat, putar balik, terus, masuk jalur lambat, dan berhenti di dekat jembatan”. Dengan Bahasa NonProsedural kita memberikan instruksi: “Tolong antarkan ke Cempaka Mas!”
Pada bahasa non prosedural kita dapat terjebak pada kesalahan semantik yang fatal akibat penulisan kode yang salah. Misal kita meminta taksi untuk mengantarkan ke Kemayoran, tapi ternyata kita salah mengungkapkan sehingga supir taksi menangkap perintah untuk pergi ke Kebayoran! Sehingga kita menghabiskan lebih banyak waktu dan biaya. Oleh karena itu diperlukan umpan balik yang baik untuk mengecek kebenaran semantik!
Perbedaan antara Generasi Ketiga dan Keempat User Friendliness Tidak friendly dengan pemakai Lebih friendly Fungsionalitas Lebih luas fungsinya Lebih sempit fungsinya Batasan Pilihan Lebih fleksibel Lebih terbatas Pilihan Default Tidak ada (sedikit) Lebih banyak asumsi (default) Monolog/Dialog Tahapan adalah menulis seluruh perintah baru kompilasi (Monolog) Software memberikan masukan saat perintah dituliskan (Dialog) Kesederhanaan Tidak lebih sederhana Lebih sederhana
Prinsip Pokok 4GL Prinsip kerja minimal: Kita menggunakan komputer untuk bekerja dengan usaha yang minimal Prinsip ketrampilan minimum : Kita dapat menggunakan komputer untuk bekerja semudah mungkin tanpa perlu terlalu lama belajar. Prinsip penghindaran sintaks dan mnemonics asing : Konstruksi bahasa harus menghindari istilah asing
Prinsip waktu minimal: Kita membuat kemungkinan untuk memberi peralatan komputer tanpa delai kosong Prinsip perawatan minimal : Mekanisme 4GL harus dapat membuat aplikasi yang mudah diubah. Prinsip hasil maksimal : Kita ingin aplikasi komputer yang powerful, berguna dan menarik.
Karakter Pokok 4GL Apakah diperuntukkan untuk perhitungan rutin atau untuk keputusan seketika (ad-hoc)? Apakah diperlukan untuk pemakai terakhir (end-user) atau programmer profesional? Apakah memerlukan ketrampilan programmer atau dapatkan seorang analis yang tidak memrogram pada generasi ketiga mampu melaksanakannya?
Feature apa yang dipilih? Simple queries Simple queries dan updates Komplek queries Komplek queries dan updates Kemampuan membuat basis data secara cepat Operasi intelligent basis data Teknik grafik Pembuatan laporan Manipulasi teks Dan lain-lain
Apakah on-line atau off-line? Apakah dijalankan untuk mainframes, mini komputer atau komputer ? Dapatkah mengakses mainfram atau remote basis data? Apakah cukup mudah digunakan? Dapatkah hasilnya diperoleh dengan cepat?
Properti 4GL user-friendly Dapat digunakan oleh programmer nonprofesional Menggunakan sistem basis data secara langsung Instruksi lebih sedikit dari bahasa 3GL Kode nonprosedural digunakan, jika mungkin.
Akan membuat asumsi default intellegent Disusun untuk operasi online Kode lebih terstruktur dan mudah difahami User bukan programmer dapat mempelajari dalam waktu singkat Didesain untuk debugging yang mudah Prototipe dibuat dan dimodifikasi dengan cepat
Komponen GL
Contoh Software 4GL Informix Oracle Mathcad Matlab Microsoft Visual Basic Microsoft Access Macromedia Dreamweaver
Pengaruh 4GL
Salah satu pengaruh penting dari pemrograman 4GL adalah perubahan pada life cycle (siklus) dari suatu perangkat lunak.
Traditional Life Cycle Requirement Specification Design Programming Testing Integration Development Maintenance Traditional Life Cycle
Pemrograman Non Tradisional Bahasa Non Prosedural Teknik yang membuat kode program secara otomatis Bahasa spesifikasi yang dapat menghitung Teknik verifikasi yang kuat Peralatan grafik on-line untuk design Peralatan data-modelling formal
Teknik perencanaan data strategis Teknik informasi Bahasa untuk prototype Bahasa untuk pemakai terakhir Mikro komputer dan pemrosesan yang didistribusi Konsep pusat informasi
Tipe Life Cycle Sistem Ad Hoc Pembuat sekaligus pemakai melakukan seluruh tahap. Prototype Cycle Analis membuat prototype dan diberikan kepada pemakai untuk digunakan. Prototype-3GL Cycle Prototype digunakan kemudian diperbaiki , namun diprogram kembali dalam bahasa 3GL. Spesifikasi dan 4GL Cycle Analisis dilakukan dengan life cycle tradisional tapi kode dibuat dengan code generator. Lingkaran Spesifikasi – Bahasa Spesifikasi tidak dilakukan secara manual lagi seperti pada jenis 4, tetapi secara terintegrasi.
Pengaruh 4GL pada Produktifitas Salah satu hal yang sering disinggung adalah 4GL mampu meningkatkan produktifitas terutama dalam pembuatan program.
Jumlah orang yang terlibat pada Pemrograman 3GL
Pengaruh pemanfaatan 4GL terhadap jumlah pekerja
Pengaruh 4GL pada jumlah pekerja
Pengaruh 4GL pada jumlah pekerja
Aspek-aspek Produktifitas yang dipengaruhi oleh 4GL Biaya training berkurang Biaya kesalahan pemrograman Berkurangnya waktu pengengembangan dan jumlah orang yang terlibat secara keseluruhan mengurangi biaya pengembangan
Pemrograman Generasi Keempat untuk Proyek Skala Kecil
Variasi Besar dalam Produktifitas 4GL Karena banyak aplikasi yang dikembangkan oleh satu orang, kadang tidak terjadi proses learning team. Seseorang dituntut mempelajari semuanya secara mandiri. Pemerataan pengetahuan seseorang yang mahir dalam suatu aplikasi 4GL menjadi lebih sulit.
Hal-hal yang menunjang Pemrograman 4GL Ketersediaan mesin/komputer Grafik editor Peralatan data model Bebas gangguan/interfensi Sistem yang terintegrasi
Pemrograman 4GL untuk Proyek Skala Besar
Kesimpulan: Sebaiknya suatu proyek besar dibagi menjadi beberapa sub proyek agar dapat lebih produktif. Kendala: integrasi !!!
Kekurangan 4GL Meskipun keuntungan 4GL menjanjikan hal-hal yang luar biasa namun harus disadari bahwa 4GL memiliki kelemahan yang juga perlu diwaspadai yaitu: Penggunaan resource yang berlebihan Kesalahan akibat tipe yang tidak terstruktur Semakin tinggi jenis kesalahan yang mungkin dibuat. Perlu tahap pemilihan program 4GL yang tepat, karena fungsionalitas program yang terbatas.
Penggunaan Dialog dalam 4GL
Pemrograman Generasi Keempat didesain untuk pemakaian interaktif. Migrasi dari text mode ke GUI (Graphics User Interface) Dialog berubah dari satu dimensi (garis: sangat penting kanan kiri) menuju dua dimensi (yang diperhatikan:kanan, kiri, atas, bawah)
Contoh Query dan Update 2 dimensi: QBE pada Microsoft Access 3. Dialog beralih dari monolog menuju dialog Misal untuk pilihan fungsi dapat muncul secara otomatis saat kita mengetik satu huruf
4. Adanya pilihan default : mementingkan isi daripada desain 5 4. Adanya pilihan default : mementingkan isi daripada desain 5. Optimalisasi Mouse dan Step Keys. Meskipun demikian mouse lebih efektif daripada Step Keys
Evolusi High Productivity Language Menemonic oriented language Off-line language where the user fills in forms Character stream languages, online with character oriented terminal Languages designed for dumb visual display units
Languages making use of interactive graphics for specifying logic and programs Languages using artificial intellligence techniques with a knowledge base and inference processing Avoidance of mnemonics and nonhuman syntax