BAB II LANDASAN TEORI
2.1
REKAYASA PERANGKAT LUNAK
Kata “Rekayasa Perangkat Lunak” atau Software Engineering dalam Bahasa Inggris terdiri dari kata “Rekayasa” dan “Perangkat Lunak”. Kata rekayasa menurut kamus Bahasa Indonesia adalah penerapan kaidah-kaidah ilmu dalam pelaksanaan (seperti perancangan, pembuatan kontstruksi, serta pengoperasian kerangka,
peralatan,
dan
system
yang
ekonomis
dan
efisien).
(kamusbahasaindonesia.org). Sedangkan perangkat lunak menurut definisi yang ditulis Pressman (2012:14)
mengutip Fritz Bauer adalah pembuatan dan penggunaan prinsip-
prinsip penting rekayasa supaya pengguna bisa memperoleh perangkat lunak secara murah yang dapat diandalkan dan bekerja secara efisien pada mesin-mesin yang sesungguhnya. Definisi Rekayasa Perangkat Lunak dari berbagai literatur adalah: “Suatu disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal requirement capturing (analisa kebutuhan pengguna), specification (menentukan spesifikasi dari kebutuhan pengguna), desain, coding, testing sampai pemeliharaan sistem setelah digunakan.” Pressman (2012: 15) mengatakan bahwa: IEEE telah mengembangkan suatu definisi yang lebih komprehensif yaitu: Rekayasa perangkat lunak pada dasarnya merupakan: (1) aplikasi dari suatu pendekatan yang sistematik, disiplin, dan dapat diukur pada pengembangannya, operasi, dan perawatan perangkat 6 http://digilib.mercubuana.ac.id/
7
lunak; yaitu, penerapan rekayasa pada perangkat lunak. (2) Studi pendekatan-pendekatan seperti pada (1). Namun untuk membangun suatu perangkat lunak, dibutuhkan suatu “pendekatan, disiplin, dan dapat diukur” yang diterapkan oleh tim pengembang perangkat lunak.
2.1.1
Model Air Terjun
Model rekayasa perangkat lunak yang klasik dan tertua digunakan adalah Model Air Terjun (The Waterfall Model), dimana dalam merekayasa suatu perangkat lunak melalui pendekatan yang sistematis dan berurutan. (Pressman 2012: 46) Tahapan-tahapan pengembangan perangkat lunak dengan permodelan air terjun adalah: 1.
Komunikasi Meliputi langkah-langkah: inisialisasi proyek dan pengumpulan spesifikasi kebutuhan dari user. Tujuannya untuk menentukan spesifikasi
kebutuhan dan bagaimana sistem dapat membantu
menyelesaikan permasalahan. 2.
Perencanaan Meliputi langkah-langkah: estimasi, penjadwalan, dan pelacakan. Tujuannya untuk membuat rencana untuk penjadwalan pengembangan aplikasi, mulai dari pembagian tugas teknis, resiko, sumber daya yang dibutuhkan, dan jadwal rencana kerja.
http://digilib.mercubuana.ac.id/
8
3.
Permodelan Meliputi langkah-langkah: Analisa dan Desain. Tujuannya untuk mendapatkan dan menstrukturkan kebutuhan sistem secara keseluruhan. Mengembangkan
permodelan
yang
dapat
dipahami
baik
oleh
pengembang (developer) maupun pengguna (user). 4.
Konstruksi Meliputi langkah-langkah: penulisan kode-kode
program dan
pengujian (testing). 5.
Penyerahan sistem / perangkat lunak ke pelanggan / pengguna Meliputi langkah-langkah: instalasi dan percobaan (testing) unjuk kerja aplikasi untuk dievaluasi dan diberikan umpan balik dari pengguna.
Komunikasi Perencanaan Permodelan Konstruksi
Penyerahan sistem/perangkat lunak ke pelanggan/pengguna
Gambar 2.1 model air terjun
2.2
PEMODELAN SPESIFIKASI KEBUTUHAN PERANGKAT LUNAK
Pada tahap awal rekayasa perangkat lunak. Pekerjaan dimulai dengan melakukan pemodelan yang menunjukan
spesifikasi-spesifikasi kebutuhan
8 http://digilib.mercubuana.ac.id/
9
perangkat lunak dan representasi perancangan perangkat lunak yang akan dikembangkan. Pressman (2012: 179) menyatakan bahwa: Pemodelan spesifikasi-spesifikasi kebutuhan menggunakan gabungan dari bentuk-bentuk teks dan diagram-diagram untuk menjelaskan spesifikasi-spesifikasi kebutuhan sebuah perangkat lunak computer yang relatif mudah untuk dipahami, dan yang lebih penting, padanya dapat langsung dilakukan penilaian untuk menentukan kebenarannya, kelengkapannya, serta konsistensinya.
2.2.1 Analisis Kebutuhan
Tujuan
analisis
spesifikasi
kebutuhan
adalah
untuk
menghasilkan
spesifikasi-spesifikasi dari karakterisktik-karakteristik operasional yang akan dimiliki oleh perangkat lunak yang akan dikembangkan. Pressman (2012: 180) menyatakan, bahwa analisis spesifikasi kebutuhan memberikan manfaat bagi analis atau pemodel sistem untuk menetapkan spesifikasi-spesifikasi
dasar
perangkat
lunak
selama
pekerjaan-pekerjaan
inception, elicitation serta negotiation yang merupakan bagian dari rekayasa kebutuhan perangkat lunak. Jenis pemodelan spefisikasi-spesifikasi kebutuhan yang semakin populer di kalangan komunitas rekayasawan menurut Pressman (2012: 181)
yaitu
pemodelan berbasis skenario. Pemodelan berbasis Skenario yaitu pemodelan yang menggambarkan spesifikasi kebutuhan perangkat lunak dari berbagai sudut pandang “aktor” system/perangkat lunak. Pola-pola analisis sering terjadi berulang-ulang dalam
berbagai jenis
aplikasi yang ada di ranah bisnis. Untuk dapat mendefinisikan
pola-pola
perancangan dan komponen-komponen perangkat lunak dalam sebuah kelompok
http://digilib.mercubuana.ac.id/
10
yang dapat memungkinkan rekayasawan dapat menerapkan pola-pola dan komponen-komponen tersebut dalam sebuah model analisis. Sehingga dapat mempercepat kecepatan perangkat lunak masuk ke pasar dan akan mengurangi biaya-biaya pengembangan system/perangkat lunak. Jawaban permasalahan mengenai pola-pola diatas terdapat dalam Analisis Ranah atau Domain Analysis. Pressman (2012: 184) mengutip Firesmith menyatakan bahwa: Analisis Ranah adalah proses mengidentifikasi, menganalisis, dan menspesifikasi kebutuhan-kebutuhan umum dari suatu ranah aplikasi yang sifatnya spesifik, biasanya agar suatu saat dapat digunakan pada berbagai proyek lain yang ada apa ranah aplikasi yang sama…[Analisa ranah berorientasi objek] merupakan identifikasi, analisis, dan spesifikasi kemampuan-kemampuan yang bersifat umum dan dapat digunakan-ulang di dalam ranah aplikasi yang bersifat spesifik, dalam arti kata objek-objek, kelas-kelas, bagian-bagian, dan kerangka-kerangka kerja yang bersifat umum dari suatu aplikasi yang spesifik.
2.2.2 Model-Model Unified Modeling Language (UML)
Salah-satu tahapan awal dalam rekayasa perangkat lunak atau aplikasi adalah tahapan permodelan yang berisi tentang rancangan yang menggambarkan proses-proses yang terjadi dalam dunia nyata atau proses bisnis. Permodelan yang digunakan oleh pengembang adalah dengan melakukan permodelan-permodelan secara visual. Permodelan Visual adalah proses penggambaran informasi-informasi secara grafis dengan notasi-notasi baku yang telah disepakati sebelumnya. Notasi-notasi baku yang lazim digunakan oleh pengembang yaitu notasi UML. Unified Modeling Language (UML)
menurut definisi dari Object
Management Group (OMG) (2012:9) adalah:
10 http://digilib.mercubuana.ac.id/
11
“Bahasa grafis untuk memvisualisasikan, menentukan, membangun, dan mendokumentasikan artefak dari sistem perangkat lunak-intensif. UML menawarkan cara standar untuk menulis cetak biru sistem, termasuk hal-hal konseptual seperti proses bisnis dan fungsi sistem serta hal-hal konkret seperti laporan bahasa pemrograman, skema database, dan komponen perangkat lunak dapat digunakan kembali.” UML berorientasi
dikembangkan objek
oleh
sebagai Grady
suatu
alat
untuk analisis dan
Booch,
Jim
Rumbaugh,
dan
desain Ivar
Jacobson. Namun demikian UML dapat digunakan untuk memahami dan mendokumentasikan dalam industri terus
setiap
sistem
meningkat. Ini
informasi. Penggunaan
merupakan
standar
terbuka
UML yang
menjadikannya sebagai bahasa pemodelan yang umum dalam industri peranti lunak dan pengembangan sistem. Ada total 9 jenis diagram yang dapat dikelompokkan berdasarkan sifatnya – statis atau dinamis. a)
Statis : Class Diagram, Object Diagram, Use-Case Diagram.
b)
Dinamis : Sequence diagram, Collaboration Diagram, Statechart Diagram, Activity Diagram, Component Diagram, dan Deployment Diagram.
1)
Diagram Kelas (Class Diagram) Diagram ini memperlihatkan himpunan kelas-kelas, antarmuka-
antarmuka, kolaborasi-kolaborasi, serta relasi-relasi. Diagram ini selalu ada di permodelan sistem berorientasi objek.
http://digilib.mercubuana.ac.id/
12
Gambar 2.2 Contoh Class Diagram
Berbagai jenis hubungan (relationship) mungkin ada antara kelas pada diagram kelas yaitu : TABEL 2.1 RELASI DIAGRAM KELAS
Jenis Hubungan
Asosiasi
Generalisasi/ Spesilisasi
Notasi
Pengemudi
Mobil
Sedan
Mobil
Pool Taxi
Taxi
Mobil
Rangka
Agregrasi
Komposisi
Keterangan
12 http://digilib.mercubuana.ac.id/
Asosiasi adalah bentuk hubungan yang paling umum, digambar dengan garis yang menghubungkan dua kelas Generalisasi/Spesialis asi adalah bentuk hubungan pewarisan super class (parent) kepada sub class (child) Agregasi menunjukkan "Has a" asosiasi, dimana bagian memiliki independen ksistensi. Komposisi merupakan "Owned a" asosiasi di mana bagian-bagian yang harus dimiliki dan ada
13
2)
Use Case Diagram Diagram ini memperlihatkan himpunan use case dan aktor-aktor
(suatu jenis khusus dari kelas). Aktor merupakan representasi orang yang akan berinteraksi dengan sistem aplikasi. Sedangkan Use case merupakan representasi dari operasi-operasi yang dilakukan oleh aktor.
Gambar 2.3 Contoh Use Case Diagram
3)
Activity Diagram Diagram
ini
adalah
tipe
khusus
dari
diagram
state
yang
memperlihatkan aliran dari suatu aktifitas ke aktifitas lainnya dalam suatu sistem. Diagram ini terutama penting dalam permodelan fungsi-fungsi dalam suatu system dan member tekanan oada aliran kendali antarobjek.
Gambar 2.4 Contoh Activity Diagram
http://digilib.mercubuana.ac.id/
14
4)
Sequence Diagram Diagram urutan adalah diagram interaksi yang menekankan pada
pengiriman pesan (message) dalam suatu waktu tertentu. Sequence diagram bermanfaat untuk memperlihatkan bagaimana event-event yang terjadi bisa mengakibatkan transisi dari suatu objek ke objek lainnya.
Gambar 2.5 Contoh Sequence Diagram
5)
State Machine Diagram Diagram State Machine mendefinisikan seperangkat konsep yang
dapat digunakan untuk memodelkan perilaku diskrit melalui sistem transisi state yang terbatas. Selain mengungkapkan perilaku suatu bagian dari sistem, mesin negara juga dapat digunakan untuk mengungkapkan protokol penggunaan bagian dari sistem. State machine terdiri dari behavior state machine dan protocol state machine.
14 http://digilib.mercubuana.ac.id/
15
Gambar 2.6 Contoh State Machine Diagram
6)
Deployment Diagram Diagram ini memperlihatkan konfigurasi fisik software dan hardware
dan hubungan antara komponen hardware dan software pada saat aplikasi dijalankan.
Gambar 2.7 Contoh Deployment Diagram
2.2.3 Pemodelan Data
Apabila kebutuhan-kebutuhan perangkat lunak mencakup di dalamnya kebutuhan untuk menggunakan basis data, maka perlu dibuat model data sebagai bagian dari kebutuhan pemodelan/perangkat lunak secara keseluruhan.
http://digilib.mercubuana.ac.id/
16
Menurut Ponniah (2007: 5) sebuah model data adalah perangkat yang membantu pengguna atau pemangku kepentingan memahami dengan jelas sistem database yang sedang dilaksanakan berdasarkan kebutuhan informasi dari suatu organisasi, dan memungkinkan praktisi database untuk menerapkan sistem database persis sesuai dengan kebutuhan informasi. Pemodelan data adalah teknik untuk menjelajahi struktur data yang diperlukan untuk mendukung sebuah organisasi. Sebuah model data harus merekam dan menunjukkan konten, bentuk, ukuran, dan aturan dari elemen data yang digunakan di seluruh lingkup proses bisnis berbagai organisasi. Ini akan menjadi representasi konseptual atau replika dari struktur data yang dibutuhkan dalam sistem database.
2.2.3.1 Klasifikasi Tingkat Informasi
Ponniah (2007:11) mengatakan pada dasarnya, ada empat tingkat informasi, dan data model yang dibuat di masing-masing empat tingkat yang menunjukkan tingkat informasi dan karakteristik mereka.
TABEL 2.2 LEVEL INFORMASI PERMODELAN DATA
Level Informasi Konseptual
Karakteristik 1. Konten informasi – ide umum 2. Konsep manusia tentang ranah aplikasi 3. Sistem data yang dimengerti oleh user
Ekternal
1. Koleksi fragmentasi informasi 2. Setiap fragmen berkaitan dengan satu grup pengguna
16 http://digilib.mercubuana.ac.id/
17
TABEL 2.2 LEVEL INFORMASI PERMODELAN DATA (LANJUTAN)
Level Informasi
Karakteristik 3. Segmentasi level konseptual
Logik
1. Detail dari seluruh isi informasi 2. Referensi aplikasi database yang spesifik 3. Tidak ada detail mengenai perangkat keras / media penyimpanan
Fisik
1. Detail sampai level penyimpanan data internal 2. Liku-liku database yang spesifik 3. Detail implementasi fisik
2.2.3.2 Permodelan Data Dengan UML
UML dapat digunakan untuk pemodelan data. Kekuatannya terletak pada kemampuan untuk mewakili fungsi aplikasi juga. UML mengkonsolidasikan teknik untuk pemodelan data dan proses ke dalam satu bahasa terpadu untuk siklus hidup pengembangan sistem keseluruhan. Asosiasi UML setara dengan hubungan antar entitas. Selain kemampuan untuk mewakili entitas dalam diagram kelas, UML juga bisa menggambarkan perilaku setiap objek.
http://digilib.mercubuana.ac.id/
18
Gambar 2.8 Permodelan Data dengan Class Diagram
Keterangan Kardinalitas Hubungan Indikator
Arti
0 .. 1
Nol atau satu
1
satu-satunya
0 .. *
Nol atau lebih
1 .. *
Satu atau lebih
n
Hanya n (dimana n> 1)
0 .. n
Nol sampai n (dimana n> 1)
1 .. n
Satu sampai n (dimana n> 1)
2.2.4 Pemodelan Aplikasi Web
Menurut Pressman (2012: 247), sesungguhnya ada 5 jenis model yang utama untuk aplikasi web, yaitu: 1)
Model Isi, mencakup elemen-elemen struktural dan objek-objek isi suatu aplikasi web
18 http://digilib.mercubuana.ac.id/
19
2)
Model Interaksi, mendeskripsikan fungsionalitas aplikasi yang memungkinkan terjadinya interaksi antara pengguna dan aplikasi web.
3)
Model
Fungsional,
mencakup
fungsi-fungsi
yang
bersifat
komputasional dan manipulatif yang berhubungan dengan isi dan rincian-rincian pemrosesan. 4)
Model
Navigasi,
mendefinisikan
bagaimana
pengguna
akan
melakukan penelusuran / navigasi dari suatu elemen objek isi suatu aplikasi web. 5)
Model Konfigurasi, menggambarkan kompleksitas konfigurasi suatu aplikasi
web
yang
mungkin
berimbas
pada
analisis
dan
perancangannya.
2.3
PERANCANGAN PERANGKAT LUNAK
Pressman (2012: 257) menyatakan, bahwa perancangan perangkat lunak merupakan tempat dimana aturan-aturan kreativitas dimana kebutuhan-kebutuhan Stakeholder, kebutuhan bisnis, dan pertimbangan-pertimbangan teknis semuanya secara
bersamaan
disatukan
untuk
membentuk
sebuah
produk
atau
sistem/perangkat lunak yang berkualitas. Sasaran perancangan perangkat lunak pada dasarnya adalah untuk menghasilkan
suatu
model
atau
representasi
perangkat
lunak
yang
memperlihatkan kekuatan, komoditi, serta kenyamanan. Konsep-konsep perancangan menurut Pressman (2012: 268)
yang bisa
digunakan baik untuk pengembangan perangkat lunak yang bersifat trandisional maupun yang bersifat’berorientasi objek’ yaitu:
http://digilib.mercubuana.ac.id/
20
2.3.1 Abstraksi (Abstract)
Terdiri dari abstraksi procedural (procedural abstraction) dan abstraksi data (data abstraction). Abstraksi procedural merujuk pada urutan dari perintahperintah yang memiliki fungsi yang sifatnya spesifik dan terbatas. Abstraksi data merupakan kumpulan data yang mendeskripsikan sebuah objek data.
2.3.2 Arsitektur (Architecture)
Arsitektur perangkat lunak merupakan struktur atau oraganisasi dari komponen-komponen program (modul-modul) yang menjelaskan bagaimana komponen-komponen itu berinteraksi dan juga menjelaskan struktur data yang digunakan oleh komponen-komponen itu.
2.3.3 Pola-Pola (Patterns)
Pola perancangan perangkat lunak sesungguhnya mendeskripsikan suatu struktur perancangan yang menyelesaikan suatu permasalahan perancanngan yang ada di dalam suatu konteks tertentu dan memiliki imbas yang serupa pada pada perancangan saat ini seperti dengan diterapkan pola yang bersangkutan di masamasa sebelumnya
2.3.4 Modularitas (Modularity)
Modularitas perangkat lunak adalah manifestasi yang paling umum dari pemisahan perhatian dengan membagi perangkat lunak menjadi komponenkomponen yang dapat diselesaikan secara mandiri (seringkali dinamakan modul-
20 http://digilib.mercubuana.ac.id/
21
modul), yang kemudian diintegrasikan untuk menyelesaikan kebutuhan-kebutuhan permasalahan yang telah didefinisikan sebelumnya.
2.3.5 Penyembunyian Informasi (Information Hiding)
Modul-modul perangkat lunak seharusnya dispesifikasi
dan dirancang
sedemikian rupa sehingga informasi-informasi (algoritma-algoritma dan data) uang ada di dalam modul perangkat lunak tersebut tidak dapat diakses oleh modul-modul lainnya yang tidak memerlukan informasi-informasi itu.
2.3.6 Kemandirian Fungsional (Functional Independence)
Konsep kemandirian fungsional merupakan hasil langsung dari konsepkonsep pemisahan perhatian, modularitas perangkat lunak, dan konsep-konsep abstraksi dan penyembunyian informasi. Kemandirian fungsional dapat tercapai dengan cara mengembangkan modul-modul perangkat lunak yang masing-masing memiliki fungsi tunggal dan masing-masing memiliki interaksi tertutup dengan modul-modul perangkat lunak lainnya.
2.3.7 Penghalusan (Refinement)
Penghalusan langkah demi langkah adalah strategi perancangan dari atas ke bawah (top-to-down). Penghalusan sesungguhnya merupakan proses elaborasi. Abstraksi dan penghalusan sesungguhnya merupakan konsep yang saling melengkapi.
Kedua
konsep
tersebut
memungkinkan
rekayasawan
mengembangkan perancangan lengkap saat proses perancangan perangkat lunak berlangsung.
http://digilib.mercubuana.ac.id/
22
2.3.8 Refaktorisasi (Refactoring)
Refaktorisasi merupakan suatu teknik pengorganisasian-ulang perancangan perangkat lunak dengan cara sedemikian rupa sehingga prilaku kode [rancangan] secara eksternal tidak berubah, meskipun struktur internalnya dapat saja mengalami perbaikan-perbaikan tertentu. Fowler (2012: www.refactoring.com) menyatakan bahwa: Refactoring adalah teknik disiplin untuk restrukturisasi badan yang ada kode, mengubah struktur internal tanpa mengubah perilaku eksternal. Intinya adalah serangkaian perilaku kecil melestarikan transformasi. Setiap transformasi (disebut 'refactoring') tidak sedikit, namun urutan transformasi dapat menghasilkan restrukturisasi yang signifikan. Karena refactoring setiap kecil, itu kurang mungkin untuk pergi salah. Sistem ini juga disimpan sepenuhnya bekerja setelah setiap refactoring kecil, mengurangi kemungkinan bahwa sistem bisa serius rusak selama restrukturisasi.
2.4
PERANCANGAN ARSITEKTURAL
Pressman (2012: 291) menyatakan, bahwa perancangan arsitektural merepresentasikan struktur data dan komponen-komponen program yang diperlukan untuk mengembangkan sistem-sistem berbasis computer.
2.4.1 Arsitektur Sistem
Pressman (2012: 293) mengutip Bass, Clements, dan Kazman mengatakan bahwa Arsitektur Sistem/Perangkat Lunak pada dasarnya adalah struktur (atau struktur-struktur) sistem/perangkat lunak, yang menggabungkan komponenkomponen perangkat lunak, menggabungkan properti-properti yang tampak dari komponen-komponen itu, serta mendeskripsikan hubungan antar komponen itu.
22 http://digilib.mercubuana.ac.id/
23
2.4.2 Arsitektur Berorientasi Objek
Komponen-komponen suatu sistem membungkus di dalamnya data serta operasi yang harus diterapkan untuk melakukan manipulasi data. Komunikasi dan koordinasi antar komponen dilakukan menggunakan perngiriman pesan. (Pressman 2012: 304)
Data1
pesan Data2
Operasi1()
Operasi2()
pesan Data3
pesan
Operasi3()
Gambar 2. 9 Arsitektur Berorientasi Objek
2.5
PERANCANGAN PADA PERINGKAT KOMPONEN
Perancangan pada peringkat komponen mendefiniskan struktur-struktur data, algoritma-algoritma, karakteristik-karakteristik antarmuka-antarmuka, dan mekanisme-mekanisme komunikasi dialokasikan untuk masing-masing komponen perangkat lunak. (Pressman 2012: 333)
2.5.1 Pengertian Komponen
Unified Modeling Language Spesification yang dikeluarkan oleh OMG (2012: 149) mendefinisikan komponen:
http://digilib.mercubuana.ac.id/
24
Sebuah komponen merupakan bagian dari sistem modular yang mengenkapsulisasi isinya dan yang bentuk manifestasinya dapat diganti sesuai dengan lingkungannya. Sebuah komponen dapat membentuk abstraksi untuk satu set classifier yang menyadari perilakunya. Selain itu, karena Kelas itu sendiri adalah subtipe dari suatu classifier yang di enkapsulisasi, Komponen yang opsional dapat memiliki struktur internal dan memiliki satu set Ports yang memformalisasi poin interaksinya. Gabriela, B (2000, 40) mengatakan sebuah komponen adalah abstraksi dari struktur perangkat lunak yang dapat digunakan untuk membangun sistem yang lebih besar , sementara menyembunyikan rincian implementasi dari struktur yang lebih kecil. Sebuah komponen dalam arsitektur mungkin sekecil satu (Prosedur) atau sebagai besar sebagai seluruh aplikasi. Ini mungkin memerlukan data sendiri atau eksekusi ruang, atau mungkin berbagi dengan komponen lainnya.
2.5.2 Rekayasa Ranah (Domain Engineering)
Pressman (2012: 364) mengatakan bahwa: Sasaran dari rekayasa ranah (domain engineering) adalah untuk mengidentifikasi, mengkonstruksi, melakukan pembuatan catalog, dan menyebarkan sejumlah komponen perangkat lunak yang dapat diterapkan pada perangkat lunak yang ada saat ini dan dapat diterapkan pada perangkat lunak yang akan datang di dalam suatu ranah aplikasi. Langkah-langkah dalam proses pendekatan keseluruhan pada analisis ranah adalah: 1)
Mendefinisikan ranah yang akan diteliti.
2)
Melakukan penggolongan atas item-item yang diekstraksi dari ranah.
3)
Mengumpulkan contoh-contoh aplikasi yang representative dari ranah.
24 http://digilib.mercubuana.ac.id/
25
4)
Melakukan analisis masing-masing aplikasi yang ada pada contoh dan mendefinisi kelas-kelas analisis.
5)
2.6
Mengembangkan model kebutuhan untuk kelas-kelas analisis.
PERANCANGAN ANTARMUKA PENGGUNA
Pressman (2012: 375) menyatakan bahwa: Perancangan antarmuka pengguna menciptakan media komunikasi yang efektif di antara manusia dan computer. Mengikuti sejumlah prinsip perancangan antarmuka, perancangan antarmuka pengguna bekerja dengan cara mengidentifikasi objek-objek antarmuka dan aksiaksi dan kemudian membuat tata letak layar yang membentuk basis untuk pembuatan suatu prototype antarmuka pengguna. Pressman (2012: 377 ) mengutip Theo Mandel menekankan 3 aturan emas yang
bisa
diterapkan
saat
perancangan
antarmuka
pengguna
untuk
sistem/perangkat lunak. 1) Tempatkan pengguna sebagai pengendali 2) Kurangi beban memori di komputer pengguna 3) Buat antarmuka sedemikian rupa sehingga bersifat konsisten.
2.6.1 Langkah-Langkah Perancangan Antarmuka
Model perancangan antarmuka pengguna yang berbeda-beda, namun pada dasarnya semua menyarankan gabungan dari langkah-langkah berikut ini. 1)
Menggunakan informasi yang dikembangkan selama analisis antarmuka pengguna, definisikan objek-objek, dan tindakan-tindakan (operasi-operasi).
http://digilib.mercubuana.ac.id/
26
2)
Definisikan
event-event
(tindakan-tindakan
pengguna)
yang
akan
menyebabkan keadaan (state) antarmuka pengguna berubah. 3)
Perlihatkan masing-masing keadaan (state) antarmuka pengguna seperti yang akan waktunya nanti akan dilihat oleh para pengguna.
4)
Perkirakan bagaimana para pengguna akan menafsirkan keadaan (state) sistem dari informasi-informasi yang disediakan melalui antarmuka pengguna.
2.6.2 Perancangan Antarmuka Aplikasi Web
Pressman (2012: 406) mengutip Tognozzi, mengidentifikasi prinsip-prinsip dalam perancangan antarmuka aplikasi Web yaitu: 1) Antisipasi 2) Komunikasi 3) Konsistensi 4) Otonomi terkendali 5) Efisiensi 6) Fleksibilitas 7) Fokus 8) Hukum Fitt 9) Objek-objek antarmuka manusia 10) Pengurangan waktu pemrosesan 11) Kemudahan untuk dipelajari 12) Metafora-metafora
26 http://digilib.mercubuana.ac.id/
27
13) Memelihara integritas produk kerja 14) Kemudahan dibaca 15) Melacak keadaan pengguna 16) Navigasi yang tampak
2.6.3 Aliran Kerja Perancangan Antarmuka Aplikasi Web
Aliran kerja yang secara garis besar dapat digunakan sebagai basis untuk melakukan perancangan antarmuka-antarmuka pengguna untuk aplikasi Web menurut Pressman (2012: 412) yaitu: 1)
Lakukan peninjauan terhadap informasi-informasi yang ada di dalam modelmodel kebutuhan dan jika diperlukan lakukan penghalusan-penghalusan padanya.
2)
Kembangkan sebuah sketsa kasar tentang tata letak antarmuka aplikasi web.
3)
Petakan sasaran-sasaran pengguna ke dalam aksi-aksi antarmuka secara spesifik.
4)
Definisikan himpunan pekerjaan para pengguna yang berhubungan dengan masing-masing aksi.
5)
Buat gambaran layar untuk masing-masing aksi pada antarmuaka pengguna.
6)
Lakukan penghalusan pada tata letak antarmuka pengguna dan gambarangambaran layar menggunakan pertimbangan-pertimbangan estetika.
7)
Identifikasi objek-objek antarmuka pengguna yang diperlukan untuk mengimplementasikan antarmuka pengguna.
8)
Kembangkan sebuah representasi procedural interaksi pengguna dengan antarmuka pengguna.
http://digilib.mercubuana.ac.id/
28
9)
Kembangkan sebuah representasi perilaku untuk antarmuka pengguna.
10)
Deskripsikan tata letak antarmuka pengguna untuk masing-masing keadaan (state).
11)
Perhalus dan tinjau model perancangan antarmuka pengguna.
2.7
PERANCANGAN BERBASIS POLA
Gamma et.al (1995: 17) mengutip perkataan Christopher Alexander mengatakan bahwa: "Setiap pola menggambarkan masalah yang terjadi berulang-ulang di lingkungan kita, dan kemudian menggambarkan inti dari solusi untuk masalah itu, sedemikian rupa sehingga Anda dapat menggunakan solusi ini satu juta kali lebih, tanpa pernah melakukan dengan cara yang sama dua kali " Perancangan berbasis pola menurut Pressman (2012: 421) adalah suatu teknik untuk membuat aplikasi yang baru dengan menemukan sejumlah solusisolusi
permasalahan
yang
telah
terbukti
berhasil
untuk
kemudian
menggunakannya secara berhasil menyelesaikan permasalahan-permasalahan yang ada saat ini. Penciptaan desain pola mengabstraki proses Instansiasi. Mereka membantu membuat sistem independen dari bagaimana objek yang diciptakan, terdiri, dan mewakili. Pola penciptaan kelas menggunakan warisan untuk beragam kelas yang terinstansiasi, sedangkan pola penciptaan objek akan mendelegasikan instansiasi ke obyek lain. Gamma, et.al
(1995:77) menyebutkan sejumlah pola perancangan
dikelompokkan pada kategori-kategori sebagai berikut, penyusun hanya membahas pola yang digunakan untuk pengembangan aplikasi:
28 http://digilib.mercubuana.ac.id/
29
2.7.1 Pola Pembuatan - Abstract Factory
Menyediakan antarmuka untuk menciptakan keluarga dari objek yang terkait dan yang tergantung tanpa menentukan kelas konkritnya. Menggunakan pola Abstract Factory ketika: •
Sistem harus independen dari bagaimana produk tersebut dibuat, tersusun, dan memainkan perannya.
•
Sistem harus dikonfigurasi dengan satu dari beberapa macam produk.
•
Keluarga dari obyek produk terkait dirancang untuk digunakan bersama-sama, dan Anda perlu untuk menegakkan pembatas ini.
•
Anda ingin menyediakan perpustakaan kelas produk, dan Anda ingin mengungkapkan hanya interface mereka, tanpa implementasinya.
Gambar 2.10 Struktur Abstract Factory
2.7.2 Pola Struktural - Façade
Menyediakan antarmuka yang seragam untuk satu set antarmuka dalam subsistem. Facade mendefinisikan antarmuka tingkat yang lebih tinggi yang membuat subsistem dapat lebih mudah digunakan.
http://digilib.mercubuana.ac.id/
30
Gunakan pola Facade ketika: •
Jika ingin menyediakan antarmuka sederhana untuk subsistem yang kompleks. Subsistem sering menjadi lebih kompleks karena mereka berevolusi. Kebanyakan pola, bila diterapkan, menghasilkan kelas lebih banyak dan lebih kecil. Hal ini membuat subsistem yang lebih dapat digunakan kembali dan mudah untuk menyesuaikan, tetapi juga menjadi lebih sulit untuk digunakan untuk klien yang tidak perlu menyesuaikannya. Sebuah fasad dapat memberikan tampilan default sederhana dari subsistem yang cukup baik untuk kebanyakan klien.
•
ada banyak dependensi antara klien dan kelas implementasi dari sebuah abstraksi. Menggunakan fasad untuk memisahkan subsistem dari klien dan subsistem lainnya, sehingga meningkatkan kemandirian subsistem dan portabilitas.
•
Jika ingin membuat lapisan. Gunakan fasad untuk menentukan titik masuk untuk masing-masing tingkat subsistem. Jika subsistem itu memiliki ketergantungan, maka Anda dapat menyederhanakan ketergantungan
di
antara
mereka
dengan
membuat
berkomunikasi satu sama lain hanya melalui fasad mereka.
30 http://digilib.mercubuana.ac.id/
mereka
31
Gambar 2.11 Struktur Facade
2.8
PERANCANGAN APLIKASI WEB
Pressman (2012: 453) menyatakan bahwa : Perancangan untuk aplikasi Web pada dasarnya memerlukan aktivitasaktifitas teknis dan non teknis yang didalamnya mencakup beberapa hal yang penting yaitu: Penetapan tampilan aplikasi Web, pembuatan rancangan estetika antarmuka pengguna, pendefinisian struktur arsitektur aplikasi Web secara keseluruhan, pengembangan isi dan fungsionalitas uamg Nerada dalam arsitektur aplikasi Web, dan perencanaan navigas yang ada di dalam suatu aplikasi Web. Kualitas perancangan suatu aplikasi Web dapat dinilai melalui sebuah kriteria yang dikembangkan oleh Olsina dan rekan-rekan yang dikutip Pressman (2012: 456) yatu: 1) Kemudahan penggunaan 2) Fungsionalitas 3) Keandalan 4) Efisiensi 5) Kemudahan pemeliharaan Diperluas oleh Offcut dengan menambah atribut-atribut sebagai berikut: 6) Keamanan
http://digilib.mercubuana.ac.id/
32
7) Ketersediaan 8) Skalabilitas 9) Waktu untuk masuk kepasar
Sasaran perancangan aplikasi Web yang disarankan oleh Jean Kaiser yang dikuti oleh Pressman (2012: 458) yaitu: 1) Kesederhanaan 2) Konsistensi 3) Identitas 4) Ketangguhan 5) Kemudahan untuk melakukan navigasi dalam aplikasi Web 6) Daya tarik visual 7) Kompatibilitas
2.8.1 Arsitektur Aplikasi Web
Arsitektur aplikasi web pada dasarnya mendekripsikan suatu infrastruktur yang memungkinkan sistem atau aplikasi berbasis web untuk mencapai sasaransasaran bisnisnya. Aplikasi web seharusnya dikembangkan dengan lapisan-lapisan (layer) yang masing-masing memberikan perhatian-perhatian yang berbeda-beda. (Pressman 2012: 469) Menurut Gamma et.al (1995: 19) bahwa arsitektur Model / View / Controller (MVC) tiga serangkai kelas
digunakan untuk membangun user
interface di Smalltalk-80. Melihat pola desain dalam MVC akan membantu Anda melihat apa yang kita maksud dengan istilah "pola."
32 http://digilib.mercubuana.ac.id/
33
MVC terdiri dari tiga macam objek. Model ini adalah objek aplikasi, View adalah layar presentasi, dan Controller mendefinisikan cara user interface bereaksi terhadap input pengguna. Sebelum MVC, pengguna desain antarmuka cenderung menggumpalkan obyek-objek secara bersamaan. MVC memisahkan mereka untuk meningkatkan fleksibilitas dan reuse. Arsitektur MVC merupakan satu dari sejumlah model infrastruktur aplikasi web yang disarankan, yang melakukan pemisahan antarmuka-antarmuka pengguna dari fungsionalitas-fungsionalitas aplikasi Web dan memisahkan juga dengan isi-isi yang bersifat informasional. Penerapan MVC dapat diadosi untuk merancang aplikasi berbasis web. Menurut Oracle Inc (2012: www.oracle.com) dengan menerapkan Model-ViewController (MVC) arsitektur untuk Platform Java
TM
2, Enterprise Edition
(J2EETM) pada aplikasi bisnis, dengan memisahkan model inti bisnis terpisah dari logika presentasi dan kontrol yang menggunakan fungsi ini. Pemisahan tersebut memungkinkan beberapa pandangan untuk berbagi model data enterprise yang sama, yang membuat dukungan multiple klien lebih mudah untuk diterapkan, diuji, dan dipelihara.
http://digilib.mercubuana.ac.id/
34
Gambar 2.112 Arsitektu ur MVC darri Java
2.9
APL LIKASI MULTI-T TIER TER RDISTRIIBUSI
2.9.1 Teori Sistem Terdistribusi
Taneenbaum (22006:2) meengatakan,
“sebuah sistem terddistribusi adalah a
kumpulann komputer independenn yang terlihat kepadaa penggunaa sebagai seebuah sistem kooheren tungggal.” Definnisi ini memiliki bebeerapa aspekk penting. Yang pertama adalah bahhwa sebuaah sistem terdistribussi terdiri dari komp ponen (misalnya, komputer)) yang otonnom. Aspek k kedua adaalah bahwaa pengguna (baik itu orang atau progrram) berpikkir merekaa berhadapaan dengan satu sistem m. Ini berarti baahwa salahh satu caara atau yang y lain komponen otonom perlu berkolaborasi. Bagaaimana meembangun kolaborasi ini terletak di jan ntung mengembaangkan sisteem terdistriibusi. Karaakteristik penting p darri sistem terdistribusi adalah baahwa perbeedaan antara berrbagai kompputer dan cara-cara di mana mereeka berkomuunikasi seb bagian
34 http://digilib.mercubuana.ac.id/
35
besar tersembunyi dari pengguna. Karakteristik lain yang penting adalah bahwa pengguna dan aplikasi dapat berinteraksi dengan sistem terdistribusi dengan cara yang konsisten dan seragam, terlepas dari mana dan kapan interaksi berlangsung. Tujuan dari sistem terdistribusi menurut Tanenbaum (2006: 3) yaitu: 1) Membuat sumber daya-sumber daya dapat dengan mudah diakses. 2) Transparasi distribusi, untuk menyembunyikan fakta bahwa prosesproses dan sumber daya secara fisik didistribusikan di beberapa komputer. 3) Keterbukaan, sebuah sistem terdistribusi terbuka adalah sistem yang menawarkan layanan sesuai dengan aturan standar yang menggambarkan sintaks dan semantik dari layanan tersebut. 4) Skalabilitas, mudah untuk ditambahkan pengguna dan sumber daya lainnya, dapat dengan mudah untuk dikelola bahkan jika itu meliputi organisasi administratif independen yang banyak.
2.9.2 Arsitektur Aplikasi Multi-Tier
Tanenbaum (2006: 34) menyatakan bahwa salah satu gaya arsitektur dari sistem terdistribusi yang menformulasikan bagaimana komponen-komponen saling terhubung satu sama lain, pertukaran data antar komponen dan akhirnya bagaimana elemen ini bersama-sama dikonfigurasi ke dalam sistem yaitu arsitektur berlapis (layered). Prinsip kerja dari arsitektur berlapis yaitu setiap komponen diatur dalam lapisan-lapisan, dimana komponen pada layer atas (L) mengirimkan request ke komponen pada layer (Li) dibawahnya, kemudian layer Li memberikan respon kembali ke layer L.
http://digilib.mercubuana.ac.id/
36
Arsitektur aplikasi multi-tier atau n-tier mengadopsi gaya arsitektur berlapis dimana aplikasi multi-tier merupakan model klien server yang memisahkan 3 level logika, yaitu: 1)
Layer Presentasi, level antar muka pengguna, level ini yang memungkinkan interaksi antara pengguna dan sistem.
2)
Level Pemrosesan, level aplikasi yang berisi logika dan kode-kode program.
3)
Level Data, level yang menangani data aktual yang digunakan.
Arsitektur aplikasi n-tier menyediakan model dimana pengembang dapat membuat aplikasi yang fleksibel dan dapat digunakan kembali. Dengan memisahkan aplikasi ke dalam tingkatan, pengembang mendapatkan pilihan untuk memodifikasi atau menambahkan lapisan tertentu, bukan pengerjaan ulang seluruh aplikasi.
2.10 TEKNOLOGI JAVA
Menurut tutorial Java oleh Oracle Inc (2012: www.oracle.com) Teknologi Java adalah bahasa pemrograman dan platform. Bahasa pemrograman Java adalah bahasa tingkat tinggi yang dapat dicirikan oleh semua istilah-istilah berikut: •
Sederhana
•
Berorientasi Obyek
•
Terdistribusi
•
multithreaded
36 http://digilib.mercubuana.ac.id/
37
•
Dinamis
•
Arsitektur yang netral
•
Portabel
•
Performa tinggi
•
Kuat
•
Aman
Dalam bahasa pemrograman Java, semua kode sumber pertama kali ditulis dalam file teks biasa berakhir dengan ekstensi java.. Mereka file sumber tersebut kemudian disusun ke dalam file kelas. Oleh compiler javac. . Sebuah file kelas tidak berisi kode yang asli prosesor Anda, itu bukan berisi bytecode - bahasa mesin dari Java Virtual Machine (Java VM). Alat peluncur java kemudian menjalankan aplikasi Anda dengan sebuah instance dari Java Virtual Machine.
Gambar 2.13 Proses pengembangan software dalam Java (docs.oracle.com)
Sebuah platform adalah lingkungan perangkat lunak atau perangkat keras di mana program berjalan. Kebanyakan platform dapat digambarkan sebagai kombinasi dari sistem operasi dan perangkat keras yang mendasarinya. Platform Java berbeda dari kebanyakan platform lain dalam bahwa itu adalah platform
http://digilib.mercubuana.ac.id/
38
perangkat lunak-satunya yang berjalan di atas lainnya berbasis hardware platform. Platform Java memiliki dua komponen: • Java Virtual Machine • The Java Application Programming Interface (API) JVM seperti dibahas sebelumnya adalah dasar untuk platform Java dan di porting ke berbagai platform hardware. API adalah koleksi besar siap pakai komponen software yang menyediakan kemampuan yang berguna. Hal ini dikelompokkan ke dalam perpustakaan kelas terkait dan interface, perpustakaan ini dikenal sebagai paket. Sebagai lingkungan platform-independen, platform Java dapat menjadi sedikit lebih lambat dari kode asli. Namun, kemajuan dalam compiler dan teknologi mesin virtual membawa kinerja dekat dengan yang kode asli tanpa mengancam portabilitas.
2.10.1 Java2 Enterprise Edition (J2EE)
Menurut tutorial Java EE oleh Oracle Inc (2012: 40),
Java Platform
Enterprise Edition (Java EE) adalah standar industri untuk komputasi enterprise Java. Memanfaatkan Profil Web
Java EE 6 yang ringan untuk menciptakan
generasi aplikasi Web, dan kekuatan penuh dari platform Java EE 6 untuk aplikasi enterprise. Keuntungan bagi pengembang dengan peningkatan produktivitas dengan penjelasan lebih, lebih banyak POJO’s (Plain Old Java Object ), kemasan disederhanakan, dan konfigurasi XML yang lebih sedikit.
38 http://digilib.mercubuana.ac.id/
39
Platform Java EE menggunakan model aplikasi multitier terdistribusi untuk aplikasi enterprise. Logika aplikasi dibagi menjadi komponen-komponen sesuai dengan fungsinya, dan komponen aplikasi yang membentuk sebuah aplikasi Java EE yang diinstal pada berbagai mesin, tergantung pada tier di lingkungan multitier Java EE yang menjadi milik komponen aplikasi tersebut. Tingkatan-tingkatan dari arsitektur Java EE yaitu: •
Klien-tier, komponen dijalankan pada mesin klien.
•
Web-tier, komponen berjalan di server Java EE.
•
Bisnis-tier, komponen berjalan di server Java EE.
•
Sstem Informasi Enterprise atau Enterprise Information System (EIS)tier software berjalan pada server EIS.
Gambar 2.14 Arsitektur Multi-Tier J2EE
http://digilib.mercubuana.ac.id/
40
2.10.1.1 Pengemasan (Packaging) Java EE
Berdasarkan dokumentasi tutorial Java EE oleh Oracle Inc (2012: 53), sebuah aplikasi Java EE dideliver dalam sebuah file Java Archive (JAR), sebuah Web Archive (WAR) file, atau Enterprise Archive (EAR) file. A WAR atau file EAR adalah JAR standar (. Jar) file dengan .war atau .ear. Dengan menggunakan modul JAR, WAR, EAR memungkinkan untuk merakit beberapa aplikasi Java EE yang berbeda menggunakan beberapa komponen yang sama. Tidak dibutuhkan koding ekstra, melainkan hanya soal perakitan (atau kemasan) berbagai Java EE modul ke Java EE JAR, WAR, atau file EAR Modul-modul Java EE adalah sebagai berikut: ■
EJB modul, yang berisi file kelas enterprise beans dan penyebaran deskripsi penyebaran EJB. Modul EJB dikemas sebagai file JAR dengan ekstensi .Jar.
■
Modul-modul Web, yang berisi file kelas servlet, file web, file kelas pendukung, GIF, dan HTML file, dan deskriptor penyebaran aplikasi web Modul web yang dikemas sebagai JAR file dengan ekstensi .war (web archive)
■
Modul aplikasi client, yang berisi file kelas dan deskriptor penyebaran aplikasi client. Modul aplikasi klien dikemas sebagai file JAR dengan ekstensi. Jar.
■
Modul adaptor Sumber Daya, yang berisi semua antarmuka Java, kelas, perpustakaan asli, dan lainnya dokumentasi, bersama dengan sumber daya descriptor deployment adaptor.
40 http://digilib.mercubuana.ac.id/
41
2.10.2
Teknologi Enterprise Java Beans (EJB)
Berdasarkan dokumentasi tutorial Java EE oleh Oracle Inc (2012: 439), sebuah komponen Enterprise JavaBeans (EJB) atau enterprise bean, adalah sebuah body of code yang memiliki field dan metode untuk mengimplementasikan modul logika bisnis. Suatu enterprise bean seperti sebuah blok bangunan yang dapat digunakan sendiri atau dengan enterprise bean lain untuk mengeksekusi logika bisnis pada server Java EE. Enterpise bean terdiri atas Session Bean dan Message Driven Bean. 1) Session Bean merangkum logika bisnis yang dapat dipanggil oleh klien melalui pemrograman layanan lokal, jarak jauh, atau web client. Untuk mengakses aplikasi yang digunakan pada server, klien memanggil metode session bean. Session bean melakukan pekerjaan untuk
kliennya,
melindungi
klien
dari
kompleksitas
dengan
menjalankan tugas-tugas bisnis di dalam server. Tipe-tipe dari Session bean yaitu: Statefull, Stateless, dan Singleton 2) Message Driven Bean menggabungkan fitur dari Session Bean dan pendengar pesan, yang memungkinkan komponen bisnis untuk menerima pesan asynchronous. Umumnya, ini adalah pesan Java Message Service (JMS).
2.10.3 Servlet
Menurut dokumentasi tutorial Java EE oleh Oracle Inc (2012: 61) teknologi Java Servlet memungkinkan Anda menentukan kelas spesifik HTTP servlet.
http://digilib.mercubuana.ac.id/
42
Sebuah kelas servlet yang memperluas kemampuan server yang diakses oleh aplikasi host cara model pemrograman request-respon. Meskipun servlet dapat menanggapi setiap jenis permintaan, mereka biasanya digunakan untuk memperpanjang aplikasi yang dikelola oleh server web. Dalam platform Java EE 6, baru Java Servlet fitur teknologi meliputi: •
dukungan anotasi
•
dukungan Asynchronous
•
kemudahan konfigurasi
•
perangkat tambahan untuk API yang ada
•
Pluggability
2.10.4 Teknologi Javaserver Faces (JSF)
Menurut dokumentasi tutorial Java EE oleh Oracle Inc (2012: 105), JavaServer Faces adalah kerangka kerja (framework) komponen server-side untuk membangun aplikasi web berbasis teknologi Java. Teknologi JavaServer Faces terdiri dari: •
Sebuah API untuk mewakili komponen dan mengelola state mereka, penanganan
event,
validasi
server-side,
dan
konversi
data,
mendefinisikan navigasi halaman, mendukung internasionalisasi dan aksesibilitas, dan menyediakan extensibility untuk semua fitur tersebut. •
Tag perpustakaan untuk menambahkan komponen ke halaman web dan untuk menghubungkan komponen untuk objek server-side.
42 http://digilib.mercubuana.ac.id/
43
Fungsionalitas yang disediakan oleh aplikasi JavaServer Faces adalah mirip dengan aplikasi web Java lainnya. Sebuah aplikasi JavaServer memiliki bagianbagian berikut: •
Satu set halaman web tempat di mana komponen-komponen ditata
•
Satu set tag untuk menambahkan komponen ke halaman web
•
Satu set manage bean, yang merupakan kontainer objek (POJOs) yang terkelola dengan persyaratan minimal. Mereka mendukung satu set kecil layanan dasar, seperti injeksi sumber daya, pemanggilan kembali siklus hidup dan pencegat.
•
Sebuah deployment descriptor web (file web.xml)
•
Opsional, satu atau lebih aplikasi file konfigurasi sumber daya, seperti faces-config.xml file, yang dapat digunakan untuk mendefinisikan aturan navigasi halaman dan mengkonfigurasi beans, dan objek-objek lainnya, seperti custom component.
•
Opsional, satu set custom objek , yang dapat mencakup custom component, validator, konverter, atau listener, dibuat oleh pengembang aplikasi
•
Satu set custom tag untuk mewakili custom object pada halaman
http://digilib.mercubuana.ac.id/
44
TABEL 2.3 TAG-TAG JSF
Perpustakaan Tag JSF Facelet
Tag JSF HTML
Prefix ui:
h:
Contoh
Isi
ui:component
Tag untuk membuat
ui: insert
template
h:head
tag komponen JSF
h:body
untuk semua objek
h:outputText
antarmuka pengguna
h:inputText Tag Inti JSF
f:
JSTL (JavaServer Pages Standard
c:
f:actionlistener
Tag untuk aksi JSF
f:view
yang independen dari
f:attribute
RenderKit tertentu
c:forEach
Tag inti JSTL 1.2
c:catch
Tag Library)
2.10.4.1 XHTML
Menurut dokumen spesifikasi w3c (2012: 5), XHTML adalah sebuah jenis dokumen yang standar untuk saat ini dan masa depan dan modul-modul yang mereproduksi, subset, dan memperpanjang HTML 4. Jenis keluarga dokumen XHTML yang berbasis XML, dan akhirnya dirancang untuk bekerja bersama dengan agen pengguna berbasis XML. XHTML 1.0 adalah jenis dokumen pertama dalam keluarga XHTML. Ini adalah reformulasi dari tiga jenis dokumen HTML 4 sebagai aplikasi XML 1.0.
44 http://digilib.mercubuana.ac.id/
45
XHTML dimaksudkan untuk digunakan sebagai bahasa untuk konten yang sesuai baik XML dan beroperasi di user pengguna HTML 4 yang sesuai. Manfaat menggunakan XHTML 1.0 sebagai berikut: •
Dokumen XHTML bersesuaian dengan XML . Dengan demikian, mereka dapat segera dilihat, diedit, dan divalidasi dengan alat XML standar.
•
Dokumen XHTML dapat ditulis untuk beroperasi sebagai baik atau lebih baik daripada yang mereka lakukan sebelumnya di HTML 4
•
Dokumen XHTML dapat memanfaatkan aplikasi-aplikasi (misalnya script dan applet) yang bergantung baik pada Dokumen HTML Model Objek atau Dokumen XML Object Model.
•
Sejalan dengan berkembangnya keluarga XHTML, dokumen yang sesuai dengan XHTML 1.0 akan lebih mungkin untuk beroperasi di dalam dan di antara berbagai lingkungan XHTML. Berikut contoh sebuah dokumen XHTML standar yang didalamnya terdapat
skrip XML :
Virtual Library Moved to example.org.
2.10.4.2 Membuat Halaman Web Dengan Facelet
http://digilib.mercubuana.ac.id/
46
Menurut tutorial Java EE oleh Oracle Inc (2012: 113), Facelets adalah bahasa deklarasi halaman web yang kuat namun ringan yang digunakan untuk membangun tampilan halaman JavaServer Faces menggunakan template gaya HTML dan membangun pohon komponen. Fitur-fitur Facelets meliputi: •
Penggunaan XHTML untuk membuat halaman web.
•
Dukungan untuk perpustakaan tag Facelets selain JavaServer Faces dan perpustakaan tag JSTL.
•
Dukungan untuk Bahasa Expression atau expression language (EL).
•
Template untuk komponen dan halaman. Dalam aplikasi standar Facelets, halaman web yang dibuat dalam .XHTML.
Contoh halaman web, beanhello.xhtml, adalah sebuah halaman XHTML sederhana yang memiliki konten berikut:
Facelets Hello World #{hello.world}
2.11 PENGENALAN NETBEANS
NetBeans menurut Oracle Inc (2012: www.oracle.com) merupakan sebuah proyek kode terbuka yang sukses dengan pengguna yang sangat luas, komunitas yang terus tumbuh, dan memiliki hampir 100 mitra (dan terus bertambah!). Sun Microsystems mendirikan proyek kode terbuka NetBeans pada bulan Juni 2000
46 http://digilib.mercubuana.ac.id/
47
dan terus menjadi sponsor utama. Saat ini terdapat dua produk : NetBeans IDE dan NetBeans Platform. The NetBeans IDE adalah sebuah lingkungan pengembangan - sebuah kakas untuk pemrogram menulis, mengompilasi, mencari kesalahan dan menyebarkan program. Netbeans IDE ditulis dalam Java - namun dapat mendukung bahasa pemrograman lain. Terdapat banyak modul untuk memperluas Netbeans IDE. Netbeans IDE adalah sebuah produk bebas dengan tanpa batasan bagaimana digunakan. Tersedia juga NetBeans Platform; sebuah fondasi yang modular dan dapat diperluas yang dapat digunakan sebagai perangkat lunak dasar untuk membuat aplikasi desktop yang besar. Mitra ISV menyediakan plug-in bernilai tambah yang dapat dengan mudah diintegrasikan ke dalam Platform dan dapat juga digunakan untuk membuat kakas dan solusi sendiri. Kedua produk adalah kode terbuka (open source) dan bebas (free) untuk penggunaan komersial dan non komersial. Kode sumber tersedia untuk guna ulang dengan lisensi Common Development and Distribution License (CDDL).
http://digilib.mercubuana.ac.id/
48
Gaambar 2.15 IDE Netbeeans
2.12 DAT TA BASE MANAGEM M MENT SYSTEM (DB BMS)
Dataabase menuurut Teorey (2006: 4) adalah a bentuuk yang lebiih komplek ks dari suatu Objjek, yang merupakan m kumpulan saling disiimpan dataa yang mellayani kebutuhann beberapa pengguna dalam satu u atau lebihh organisassi, yaitu ko oleksi saling terkkait dari beerbagai jennis tabel. Motivasi M unttuk mengguunakan database bukan file termasukk ketersediaaan yang lebih besarr untuk saatu set berragam pengguna,, integrasi data untukk akses yan ng lebih mudah m ke daan memperrbarui transaksi yang y komplleks, dan reddundansi ku urang data. Mennurut Peter (2006: ( 7) seebuah Sisttem Manajeemen Basiss Data atau Data Base Man nagement System S (DB BMS) adalaah kumpulaan program yang meng gelola struktur database d dann mengontrrol akses kee data yangg disimpan dalam dataabase.
48 http://digilib.mercubuana.ac.id/
49
DBMS memungkinkan untuk berbagi data dalam database antara beberapa aplikasi atau pengguna. Generalisasi perangkat lunak DBMS yang umum digunakan untuk menyimpan dan memanipulasi database. Contoh termasuk Oracle, IBM DB2, Microsoft SQL Server, atau Access, dan MySQL. Sebuah DBMS mendukung pandangan logis (skema, subschema), tampilan fisik (metode akses, clustering data), data bahasa definisi, bahasa manipulasi data, dan utilitas penting, seperti manajemen transaksi dan kontrol konkurensi, integritas data, pemulihan data, dan keamanan.
2.12.1 MySQL
Menurut
Oracle Inc (2012: www.mysql.com),
MYSQL adalah yang
perangkat lunak database open source paling populer di dunia, dengan lebih dari 100 juta kopi dari software yang didownload atau didistribusikan sepanjang sejarah itu. Dengan kecepatan superior, kehandalan, dan kemudahan penggunaan, MySQL telah menjadi pilihan utama untuk Web, Web 2.0, SaaS, ISV, perusahaan Telecom dan IT Managers dari perusahaan-perusahaan berpikiran maju karena menghilangkan masalah utama yang terkait dengan downtime, pemeliharaan dan administrasi untuk modern, aplikasi online. Banyak
organisasi
terbesar
di
dunia
dan
pertumbuhan
tercepat
menggunakan MySQL untuk menghemat waktu dan uang powering volume tinggi situs Web mereka, sistem bisnis penting, dan perangkat lunak dikemas - termasuk pemimpin industri seperti Yahoo!, Alcatel-Lucent, Google, Nokia, YouTube , Wikipedia, dan Booking.com.
http://digilib.mercubuana.ac.id/
50
Produk unggulan MySQL adalah MySQL Enterprise, seperangkat produksi software yang komprehensif, alat monitoring proaktif, dan layanan dukungan premium tersedia dalam berlangganan tahunan yang terjangkau. MySQL adalah bagian penting dari LAMP (Linux, Apache, MySQL, PHP / Perl / Python), software open souce enterprise yang telah berkembang cepat. Semakin banyak perusahaan yang menggunakan LAMP sebagai perangkat lunak berbayar alternatif arena biaya yang lebih rendah dan kebebasan dari platform lock-in. Alasan menggunakan MySQL adalah : •
Kemudahan penggunaan - Proses dari download sampai dengan instalasi dalam waktu kurang dari 15 menit.
•
Total Cost of Ownership (TCO) yang rendah - Deploy MySQL untuk misi aplikasi yang kritikal dengan penghematan biaya yang signifikan atas Microsoft SQL Server.
•
Skalabilitas dan kinerja-Memenuhi persyaratan skalabilitas dan kinerja dari situs web yang paling banyak diakses dan aplikasi yang paling diminati.
•
Produksi dukungan- Dukungan Premier dari Oracle membantu menurunkan total biaya dan risiko memiliki solusi-solusi MySQL.
2.13 LAYANAN IT SUPPORT
IT Support atau dukungan teknis TI mengacu pada berbagai layanan di mana perusahaan memberikan bantuan kepada pengguna produk teknologi
50 http://digilib.mercubuana.ac.id/
51
meliputi: instalasi, maintenance, dan perbaikan komputer, perangkat lunak, perangkat keras, dan perangkat jaringan dan komunikasi. Umumnya setiap perusahaan vendor IT memiliki Service Level Manajemen yaitu proses untuk memastikan bahwa Service Level Agreements (SLA) antara perusahaan dan pelanggan didokumentasikan. Hal ini pada tingkat ini bahwa sebenarnya disediakan layanan dimonitor dan disampaikan dalam sesuai dengan kesepakatan tingkat pelayanan (SLA). Secara umum, layanan dukungan teknis mencoba untuk membantu pengguna memecahkan masalah yang spesifik dengan memberikan pelatihan, kustomisasi, atau layanan pendukung lainnya. Dukungan teknis dapat disampaikan melalui telepon atau online melalui e-mail atau situs web atau alat di mana pengguna dapat log panggilan / insiden. Layanan Dukungan (Service Support): Fokus pada proses yang terkait dengan dukungan sehari-hari dan kegiatan pemeliharaan yang meliputi memastikan semua pengguna layanan IT memiliki akses ke alat yang tepat untuk mendukung fungsi bisnis. Organisasi yang lebih besar sering memiliki dukungan teknis internal yang tersedia untuk staf mereka untuk masalah terkait komputer. Internet juga merupakan sumber yang baik untuk dukungan teknis tersedia secara bebas, di mana pengguna yang telah berpengalaman dapat memberikan nasihat dan bantuan teknis.
http://digilib.mercubuana.ac.id/