Selasa, 05 November 2013

Pemograman Visual


Pemrograman Visual



Selasa, 05 Nopember 2013
Neli Elprida Sihombing 
 
Beberapa bulan lalu saya sering cerita via chat ama temen tentang tugas kuliahnya di kampus *tiiiit*, beberapa kali dia mention tentang tugas mata kuliah Pemrograman Visual, setelah saya intip, cukup kaget karena materinya tidak sesuai dengan judul mata kuliahnya. Kalau kalian lagi ambil mata kuliah Pemrograman Visual dan diajarin VB atau Java, selamat, kalian tersesat.
Belakangan ini saya mulai terusik lagi dengan judul mata kuliah Pemrograman Visual. Sekarang saya pengen bahasa singkat aja (karna kalau diulas semua sumpah panjang banget) tentang salahnya dimana dan apa yang membedakan antara Pemrograman Visual dan yang bukan.
Permasalahan utamanya adalah: Mata kuliah dengan judul Pemrograman Visual, tapi dengan materi bahasa pemrograman seperti Visual Basic dan Java, digabungkan dengan software seperti Microsoft Visual Studio, Eclipse dan NetBeans.

Bahasa-bahasa tersebut bukanlah bahasa pemrograman visual

Dalam desain bahasa pemrograman, ada satu bagian tentang studi semantik, yaitu proses penterjemahan sebuah valid statement dari bahasa pemrograman menjadi sebuah computational model, ini terdiri dari banyak sekali parameter, salah satunya adalah struktur sintatik, dan dimensi.
Jumlah dimensi inilah yang menentukan bahwa bahasa-bahasa seperti VB dan teman-temannya adalah bukan bahasa pemrograman visual, melainkan textual programming language. Apa saja dimensi textual programming language?
  • Dimensi horizontal, adalah semantic sebagai legal linear string, yang membentuk sebuah statement menjadi computational model
  • Dimensi vertikal, adalah line continuation, baris ke 2 di kode biasanya diartikan sebagai baris selanjutnya setelah baris pertama, atau jalankan baris kedua setelah baris pertama
Dimensi vertikal meskipun salah satu bagian utama, tapi bukan bagian dari semantik melainkan spatial relationship, atau flow/blok selanjutnya setelah blok pertama (baris pertama).

Apa itu Pemrograman Visual?

VPL adalah bahasa pemrograman yang menggunakan banyak dimensi yang visually expresive sebagai semantiknya. Expresi Visual bukan berarti tombol-tombol di Microsoft Visual Basic untuk bikin textbox atau picture box, tapi simbol-simbol yang menjelaskan tentang alur program, hubungan antar entity, dan impact.
Didalam VPL, saya bisa secara visual mendeklarasikan A dan B, lalu menggabungkan keduanya dengan sebuah operator matematika, lalu melihat dampaknya secara langsung, semua dalam bentuk diagram/simbol.
Flowchart, UML Diagram, adalah contoh dari model sebuah VPL, dimensinya adalah spatial relationship lewat penunjuk panah, atau time-based impact seperti perubahan data sebelum dan sesudah.

Tapi kan, saya pakai Microsoft Visual Basic/Netbeans, bisa drag & drop, itu visual!

Software yang dipakai untuk 'drag & drop' itu adalah development environment, nggak boleh disamakan dengan bahasa pemrogramannya, development environment adalah software yang ngasih kita shortcut untuk melakukan task-task yang umum seperti manage project, bikin GUI (Form/Tombol/Textbox/dll), bikin build, dll, tapi dibelakang layar mereka ngehasilin kode yang kurang lebih sama dengan kalau kita ngetik di teks editor biasa. Tampilan GUI yang dibuat di software ini juga di simpan ke file teks manifest biasa.
Ini yang namanya VPE (Visual Programming Environment), bahasa pemrograman seperti Visual Basic dan Java punya Microsoft Visual Studio dan Netbeans sebagai VPEnya, namun nggak diwajibkan harus pakai karena sifat textual programming languagenya yang dengan semantik terbatas bisa dimanage sebagai teks biasa dan bisa di compile terpisah.
Sedangkan VPE untuk untuk Visual Programming Language (VPL) lebih bersifat sebagai sebuah keharusan karna VPL sendiri sangat ekspresif dan sulit untuk bekerja dengan VPL (dengan simbol dan sebagainya) tanpa menggunakan software yang mensupport untuk membuat visually expressive syntax.

Tadi katanya Textual Programming itu berbentuk teks dan VPL berbentuk simbol, Jadi maksudnya VPL itu nggak boleh ada teks sama sekali?

Ini yang paling sering disalah artikan, TP dan VP itu yang membedakan adalah semantik, bukan tentang teks atau tidak, VPL juga punya teks di beberapa bagian sampai batas tertentu.
Lalu kenapa ada VPL? Salah satu main goalnya adalah untuk nge-improve language design yang sekarang konvensional seperti textual programming language, masalah dengan textual programming language adalah sifatnya yang restriktif sekali, nggak banyak ekspresi yang bisa kita lakukan karena dibatasi oleh struktur sintaks & parse tree bahasa pemrograman yang bersangkutan, sementara VPL punya lebih sedikit aturan, sehingga result yang dihasilkan bisa bermacam-macam karena objek dan spatial relationshipnya yang nggak terlalu restriktif.

Lalu apa efek negatifnya belajar Pemrograman Visual dengan materi yang salah?

Banyak sekali, ibaratkan dengan ikut les bahasa Korea tapi yang diajarkan adalah bahasa Jepang. VPL kebanyakan bukanlah general-purpose-language, sedangkan yang diajarkan (contoh:Java), adalah general-purpose-language, VPL lebih domain spesifik seperti untuk edukasi, hardware, dan multimedia seperti audio analyzer atau animation. Sedangkan bahasa seperti Java punya fungsi/domain yang luas sekali. Ditambah lagi biasanya materi yang diajarkan adalah tentang "Visual" yang salah, yaitu gimana cara membuat program berbasis GUI, gimana caranya supaya waktu tombol A ditekan, keluar gambar kucing lagi pakai topi semangka, dll. Ini bukan visual programming, mempelajari membuat program berbasis GUI nggak akan ngajarin kita tentang visual programming, dan bisa jadi tersesat lebih jauh, contoh: mengesampingkan materi yang lebih penting ketimbang belajar GUI, seperti programming language paradigm.
Post ini cuma mau menekankan perbedaan mendasar dari textual-programming language, dan VPL. Nggak ada contoh/screenshot karena pengennya dibahas singkat aja tentang karakteristik utama masing2 jenis programming languagenya.
Untuk paper yang ngebahas tentang VPL cukup lengkap, ada disini: http://www.cs.auckland.ac.nz/courses/compsci732s1c/archive/2005/lectures/WhatIsVP.pdf

Konsep OOP Pemograman Visual



Konsep OOP Pada Pemrograman Visual

Bagaimana OOP bekerja : Objek, Pesan, dan Method Pemrograman berorientasi objek terdiri atas komponen-komponen berikut :
1. Apa itu OOP : dalam pemrograman berorientasi objek, data dan instruksi untuk pemrosesan di mana data dikombinasikan menjadi “objek” yang cukup memadai bisa digunakan pada program lain. Hal terpenting disini adalah objek.
2. Apa itu “objek” : objek adalah modul self-contained yang terdiri dari kode pemrogaman yang telah disusun sebelumnya. Modul memuat atau mengkapsulasi baik (1) cabang data, maupun (2) instruksi pemrosesan yang bisa dilakukan pada data tersebut.
3. Kapan objek data akan diproses – mengirim “message”: setelah objek menjadi bagian dari suatu program, instruksi tertentu diaktivasi hanya ketika “message” yang terkait sudah dikirimkan. Message adalah pengiriman peringatan kepada objek ketika operasi yang harus melibatkan objek tertentu dilakukan.
4. Bagaimana data objek diproses – “method”: message cukup mengidentifikasi operasinya. Bagaimana sebenarnya hal itu dilakukan akan disertakan didalam instruksi pemrosesan yang menjadi bagian dari objek. Instruksi pemrosesan ini dinamakan method.
Menggunakan kembali blok kode program setelah anda menuliskan satu blok kode program, kode tersebut dapat digunakan kembali pada program-program lain. Jadi, dengan OOP-tidak seperti pemrograman tradisional-anda tidak perlu memulai dari awal.
Dibandingkan dengan pemrogaman tradisional, mempelajari pemrogaman berorintasi objek memakan waktu yang lebih lama karena seperti berpikir dengan cara yang baru. Sekalipun demikian, OOP memilliki keunggulan yaitu objek bisa digunakan berulang-ulang pada aplikasi yang berbeda dan oleh programmer yang berbeda, karena itu waktu pengembanganya pun lebih cepat dan biaya pun bisa berkurang.
Pemrograman berorientasi objek memiliki tiga konsep dasar yang penting, yaitu enkapsulasi, pewarisan, dan polimorfisme.
1.      Enkapsulasi, berarti objek memuat (1) data dan (2) instruksi pemrosesan yang relevan. Setelah objek dibuat, objek dapat digunakan kembali untuk program lain. Penggunaan sebuah objek bisa dijabarkan melalui konsep kelas dan pewarisan.

2.      Pewarisan, setelah menciptakan sebuah objek. Kita dapat menggunakannya sebagai fondasi untuk objek yang sama yang memilliki perilaku atau karakteristik sama. Semua objek berasal dari atau yang saling berhubungan bisa membentuk suatu kelas. Masing-masing kelas memuat instruksi khusus (method) yang unik untuk kelompok tersebut.
Kelas bisa diatur dalam hierarki-kelas atau subkelas. Pewarisan adalah metode untuk mewariskan ciri dari suatu objek dari kelas ke subkelas dalam hierarki. Jadi objek yang baru dapat diciptakan dengan mewariskan ciri dari kelas yang sudah ada.
3.      Polimorfisme, berarti “banyak bentuk” . Dalam pemrograman berorientasi objek, polimorfisme berarti sebuah pesan (permintaan yang sudah digeneralisasi) memberikan hasil yang berbeda berdasarkan objek yang dikirimkan.
Polimorfisme sangat berguna karena programmer dapat membuat prosedur mengenai objek yang jenisnya tidak diketahui sebelumnya, namun akan diketahui saat program dijalankan di komputer.
Dari konsep diatas, dapat disimpulkan bahwa terdapat hubungan yang jelas antara OOP dengan pemrograman visual. Pemrograman berorientasi objek berperan dalam pendefinisian rutin-rutin pemrograman sedangkan pemrograman visual mendefinisikan secara visual bagaimana programmer atau user menjalankan program tersebut sehingga tampilan nyata yang ada pada program tersebut dapat kita ketahui. Dan ini sangat membantu dan memudahkan programmer dalam pembuatan program dan juga memungkinkan pengguna untuk lebih fokus pada pemecahan masalah daripada cara menangani bahasa pemrograman atau tidak perlu mendalami sintaks atau menulis kode. Selain itu dengan adanya konsep OOP ini kita cukup mendefinisikan event-event yang akan terjadi pada objek tersebut. Jadi,dalam pembuatan suatu program atau aplikasi yang berbasis visual kita cukup dimudahkan dengan objek-objek yang telah tersedia tersebut. Dengan kata lain adanya pemrograman visual ini cukup membantu dalam pembuatan program aplikasi dengan mendukung konsep object oriented programming.
Contoh dari penerapan konsep OOP adalah membuat sebuah aplikasi sederhana dengan mengunakan Borland C++ Builder karena tinggal menggunakan objek-objek yang telah disediakan sesuai kebutuhan kita. Misalnya form, label, edit, button, dan lain-lain. Objek-objek tersebut nantinya akan dapat bekerja sesuai dengan fungsinya tergantung event yang kita berikan. Yang menjadi objek dalam hal ini adalah form, label, edit, button atau objek lain yang kita tambahkan pada aplikasi yang kita buat.