BAB 2
LANDASAN TEORI
2.1 Visualisasi Data
Teknik visualisasi adalah konversi data ke dalam format visual atau tabel
sehingga karakteristik dari data dan relasi di antara item data atau atribut dapat di
analisis dan dilaporkan. Teknik visualisasi memudahkan manusia untuk
menangkap konsep dari data yang ditampilkan karena pada dasarnya manusia
lebih mudah mengartikan sebuah gambar daripada teks yang menjelaskan
tentang makna gambar tersebut.
Teknik visualisasi dapat diterapkan ke dalam sistem informasi atau
aplikasi dengan koneksi database, sehingga data dapat diproses dan ditampilkan
secara dinamis, real time. Hal ini bertujuan untuk memperluas pemanfaatan data.
(Teknik Visualisasi Grafik Berbasis Web Di Atas Platform Open Source oleh
Indri J uwita Asmara, Elmi Achelia, Wildan Maulana, Rini Wijayanti, Yan
Rianto dari Pusat Penelitian Perkembangan Iptek, Lembaga Ilmu Pengetahuan
Indonesia)
http://journal.uii.ac.id/index.php/Snati/article/viewFile/1275/1083
2.2 Database dan DBMS
Pada dasarnya, data belum mempunyai arti bagi penerimanya dan
masih memerlukan adanya suatu pengolahan. Data bisa berwujud suatu
8
yang berkaitan dengan user agar user dapat memasukkan, mengubah, atau
menghapus data transaksi yang terjadi sehari-hari yang disimpan di dalam
DBMS.
2.3 Java
(http://java.sun.com/docs/books/vmspec/2nd-
editon/html/Introduction.do.html).
2.3.3 Object Oriented dalam Java
Di dalam J ava, konsep Object Oriented merupakan hal yang wajib
dikuasai sebelum menggunakan bahasa ini. Untuk mengerti akan OOP lebih
lanjut, maka perlu diketahui apa itu object, apa itu class, bagaimana object dan
class berhubungan, dan bagaimana object berkomunikasi, dan lain-lain.
2.3.3.1 Object
Dalam kehidupan nyata object memiliki dua karakteristik. Semua
object memiliki state dan behavior. Sebagai contoh, anjing memiliki state
(nama, warna, keturunan, menjadi lapar) dan mempunyai behavior (menyalak,
mengambil, menggoyangkan ekor). Sepeda memiliki state (gigi, pedal, dua
roda, jumlah gigi) dan mempunyai behavior (mengerem, mempercepat,
memperlampat ,mengganti gigi).
Object di dalam bahasa pemrograman adalah model dari object dunia nyata,
yang juga mempunyai state dan behavior. Object menyimpan state mereka
dalam satu atau lebih variabel (property) dan behavior dengan method (fungsi
yang berhubungan sebuah object) seperti yang digambarkan pada gambar 2.1
(http://java.sun.com/docs/books/tutorial/java/concepts/object.html).
13
2.3.3.2 Class
Dalam kehidupan nyata, anda mungkin memiliki banyak benda
(object) yang sama. Contohnya, sepeda anda hanyalah satu dari sekian banyak
sepeda yang ada di dunia. Dalam pandangan object oriented, sepeda anda
dapat dikatakan sebagai sebuah instance dari class yang bernama sepeda.
Sepeda mempunyai beberapa state dan behavior seperti yang telah disebutkan
pada pembahasan tentang object di atas. Walaupun demikian, masing-masing
object sepeda dapat memiliki state yang berbeda dengan object sepeda
lainnya.
Saat membuat sepeda, pabrik dapat membuat banyak sepeda dari
sebuah cetakan yang sama. Akan sangat tidak efisien bila membuat sebuah
cetakan baru untuk setiap yang diproduksi. Dalam program, cetakan untuk
membuat sebuah object disebut class. Gambaran umum suatu clas secara
14
superclass. Method yang sama tersebut yang disebut sebagai override method
(http://java.sun.com/docs/books/tutorial/java/concepts/inheritance.html).
2.3.3.4 Interface
Di dalam bahasa pemrograman J ava, interface berarti sebuah media
yang berhubungan dengan bagaimana sebuah object berinteraksi dengan
object lainnya. Sebuah interface dapat dianalogikan seperti sebuah protocol
(an agreed on behavior).
Untuk membuat suat program J ava yang dinamis yang dapat memanggil
program J ava lainnya, dapat digunakan J ava Reflection dan ClassLoader.
(http://java.sun.com/docs/books/tutorial/java/concepts/interface.html).
2.3.4 Reflection dan ClassLoader
Format binary file yang berekstension .class merupakan file yang
dihasilkan dari proses kompilasi yang dilakukan oleh kompiler java dari
source code program java. File binary class memiliki format tertentu yang
mengikuti spesifikasi yang dikeluarkan oleh Sun sehingga J ava Virtual
Machine dapat mengenali format tersebut dan menggunakannya.
Dengan menggunakan reflection kita dapat mengakses informasi
internal dari sebuah class dari file class-nya sehingga dapat di-load ke dalam
J VM, dan dengan menggunakan reflection dapat menuliskan program yang
berhubungan dengan sebuah class ketika saat program tersebut di eksekusi
bukan pada source code. Dengan kemampuan ini, menjadikan reflection
16
sebuah alat yang berguna untuk membangun aplikasi yang bersifat fleksibel,
dimana perubahan atau penanganan class dapat dilakukan pada saat runtime.
Bahasa seperti c dan c++mengkompilasi source code menjadi bahasa native
memerlukan bagian linking setelah sourc code dikompilasi. Proses linking
mengabungkan kode dari beberapa hasil source yang dikompilasi dengan kode
library untuk membentuk program yang dapat di eksekusi. Sedangkan java
menerapkan konsep yang berbeda, dengan menggunakan java, class-class
yang dihasilkan oleh kompiler akan di-load oleh J VM ketika diperlukan,
sehingga tidak diperlukan proses linking dengan bahasa native dari mesin.
J ava menerapkan late binding, sehingga suatu aplikasi dapat ditulis
menggunakan suatu interface tertentu denga implementasi aktual tidak
disebutkan sampai ketika pada saat run time.
Aturan untuk melakukan loading suatu clas telah dijelaskan secara
terperinci didalma spesifikasi J VM. Prinsip dasarnya adalah suatu class akan
di-load oleh J VM ketika dibutuhkan. Setiap class yang di-load mungkin
memiliki class lain yang tergantung kepada class tersebut, sehingga proses
loading tersebut menjadi rekursif.
Definisi class di dalam J ava dan spesifikasi dari J VM memberikan
suatu kerangka kerja yang sangat hebat dalam menciptakan suatu assembly
code ketika run time. Melalui kegunaan dari suatu class loader, fleksibilitas
dari sebuat class loader memungkinkan untuk melakukan loading suatu class
secara dinamis ketika suatu aplikasi dijalankan.
17
Suatu harga yang mesti dibayar dengan fleksibilitas tersebut adalah kerja
mesin yang lebih ketika pertama menjalankan suatu aplikasi. Beberapa ratus
class haris di-load oleh J VM sebelum dia dpat mengeksekusi aplikasi tersebut.
J ava menyediakan paket java.lang.reflection di mana di dalam paket tersebut
terdapat beberapak class yang digunakan untuk mendukung reflection, antara
lain :
1. class Class
Merupakan class yang terdapat method sebagai class loader, yaitu
dengan static method forName(), kita dapat membaca suatu byte code dari
sebuah class dan dijadikan object dari class Class.
2. class Constructor
Merupakan class yang digunkan untuk mendapatkan constructor dari
suatu class.
3. class Field
Merupakan class yang digunakan untuk mendapatkan attribute dari
suatu class.
4. class Method
Merupakan class yang digunakan untuk mendapatkan method dari
suatu class. J ava juga mendukung dalam pembuatan aplikasi yang terhubung
melalui jaringan. Banyak teknik yang dapat digunkan untuk membuat aplikasi
18
(http://java.sun.com/developer/technicalArticles/releases/j2se15/)
Edisi Standar J ava Platform ini dirancang khusus untuk
mengembangkan aman, portabel, aplikasi kinerja tinggi untuk jangkauan
terluas platform komputer desktop mungkin, termasuk Apple Macintosh,
Linux, Microsoft Windows dan Sun Solaris. Kompatibel desktop, terutama di
environmemts heterogen, mewakili kenaikan produktivitas pengguna,
komunikasi, dan kolaborasi, serta biaya yang cukup besar dari-kepemilikan
tabungan. J ava desktop teknologi dapat digunakan untuk menciptakan
aplikasi-aplikasi client dan applet yang cepat, aman, dan portabel. Sebagian
besar teknologi dimasukkan sebagai bagian dari J ava SE (juga dikenal sebagai
J RE atau J ava Runtime Environment), yang merupakan pra-instal pada lebih
dari 90% dari semua sistem desktop pada berbagai sistem operasi. Lain
teknologi J ava Desktop tersedia sebagai salah satu ekstensi J awa didownload
terpisah, atau sebagai proyek sumber terbuka di java.net. Akhirnya, Netbeans
IDE dengan GUI terpadu pembangun membawa semuanya bersama-sama,
sehingga dapat dengan mudah membangun aplikasi desktop Anda.
(http://www.sun.com/java/about/)
2.4 iReport
iReport adalah aplikasi open source yang meyediakan kemampuan
untuk mendesain dan membuat laporan yang kompleks secara visual
20
b) Standardisasi, integrasi, konsistensi dan portabilitas
(Shneiderman, 1998, pp 13)
- Standardisasi: keseragaman sifat-sifat antarmuka user pada aplikasi
yang berbeda.
- Integrasi: kesatuan dari berbagai paket aplikasi dan software tools.
- Konsistensi: keragaman dalam suatu program aplikasi: urutan
perintah, istilah, satuan, warna dan sebagainya.
- Portabilitas: dimungkinkan data dikonversi dan dipindahkan dan
dimungkinkannya antar muka user dipakai di berbagai lingkungan
perangkat lunak dan perangkat keras.
c) Kehandalan, ketersediaan, keamanan dan integritas data
(Shneiderman, 1998, pp 12)
- Kehandalan: berfungsi sesuai dengan diinginkan, tampilan akurat.
- Ketersediaan: siap ketika hendak digunakan, jarang mengalami
masalah.
- Keamanan: terlindung dari akses yang tidak diinginkan dan
kerusakan yang disengaja.
- Integritas data: keutuhan data terjamin, tidak mudah dirusak atau
diubah oleh orang yang berhak.
d) Penjadwalan dan anggaran (Shneiderman, 1998, pp 14)
- Adanya persaingan dengan vendor lain.
23
e) Kepuasan pribadi.
Bagaimana keinginan pemakai terhadap berbagai aspek pada sistem.
Selain itu Shneiderman juga mengutip pernyataan dari Donald A.
Norman yang mengusulkan sistem yang interaktif yakni :
Kondisi dan aksi alternatif harus dapat terlihat oleh pemakai.
Harus ada konseptual yang baik serta gambar sistem harus
konsisten.
Pemakai harus mendapat umpan balik yang terus menerus.
Antar muka yang dibuat harus memiliki pemetaan yang baik
mencakup hubungan tiap-tiap tingkat.
Konsistensi yang dimaksud oleh Shneiderman adalah urutan
aksi harus tersusun dengan urut, dapat diduga serta dijelaskan oleh
beberapa aturan sehingga pemakai dapat memahami sistem tersebut
serta lebih mudah dalam mengakses sistem sesuai yang mereka
inginkan. Namun kenyataannya tidak semua sistem harus konsisten
karena kadang-kadang ketidakkonsistenan sangat diperlukan dalam
suatu sistem.
2.5.4 Model Sistem Interaksi
Menurut Shneiderman (1992) ada lima model interaksi yang
sering dipakai yaitu:
a) Menu
b) Isian
25
c) Manipulasi langsung
d) Bahasa perintah
e) Bahasa natural
2.5.5 Motivasi Yang Dipengaruhi Faktor Manusia Dalam
Perancangan Sistem
a) Sistem yang krisis bagi kehidupan (Shneiderman, 1998, pp
16)
- Yang termasuk di dalam ini adalah pengendalian lalu-lintas udara,
reaktor nuklir, pembangkit lisrik, pesawat antariksa, operasi militer,
dan peralatan medis.
- Biaya mahal tidak menjadi masalah, namun diharapkan
menghasilkan efektivitas dan kehandalan yang tinggi
- Waktu pelatihan yang lama tidak menjadi masalah, namun kinerja
pemakai cepat dan bebas kesalahan walaupun pemakai sedang tertekan
atau stress .
- Kepuasan subjektif bukan merupakan masalah berarti, karena
pemakai bermotivasi tinggi.
26
berbagi dan membangun aplikasi open source visualisasi data ini agar menjadi
lebih baik seperti linux.
Dibanding dengan produk yang sudah ada seperti Oracle Businnes
Intelegence, memiliki licence yang mahal untuk digunakan terutama untuk
perusahaan menengah ke bawah. Maka pilihan untuk pembuatan aplikasi Open
Source sangatlah bagus. Berdasarkan data yang diperoleh dari harga lisensi dari
OBI (Oracle Business Inteligance) mencapai $11.500(20 januari 2010).
https://shop.oracle.com/pls/ostore/f?p=ostore:2:0:::2:PROD_HIER_ID:450988214
9421805720002
3.6.1 Definisi Open Source
Open Source adalah sistem pengembangan yang tidak dikoordinasi oleh
suatu individu / lembaga pusat, tetapi oleh para pelaku yang bekerja sama dengan
memanfaatkan kode sumber (source-code) yang tersebar dan tersedia bebas
(biasanya menggunakan fasilitas komunikasi internet). Pola pengembangan ini
mengambil model ala bazaar, sehingga pola Open Source ini memiliki ciri bagi
komunitasnya yaitu adanya dorongan yang bersumber dari budaya memberi, yang
artinya ketika suatu komunitas menggunakan sebuah program Open Source dan
telah menerima sebuah manfaat kemudian akan termotivasi untuk menimbulkan
sebuah pertanyaan apa yang bisa pengguna berikan balik kepada orang banyak.
30
7. Distribution of License
Hak-hak yang melekat pada program harus berlaku untuk semua
pengguna program ini dan disebarluaskan tanpa memerlukan lisensi tambahan dari
pihak-pihak lain.
8. License Must Not Be Specific to a Product
Aplikasi Open Source ini tidak boleh bergantung dengan aplikasi lain
yang terdistribusi dibawah program berlisensi(tidak gratis).
9. License Must Not Restrict Other Software
Lisensi harus tidak mempunyai batasan pada perangkat lunak lain yang
didistribusikan bersama dengan perangkat lunak berlisensi.. Sebagai contoh, lisensi
tidak boleh membatasi sebuah program lain yang didistribusikan pada media yang
sama , harus perangkat lunak open source.
10. License Must Be Technology-Neutral
Tidak ada ketentuan dari lisensi dapat didasarkan pada setiap individu
teknologi.
http://www.opensource.org/docs/osd