BAB 2 LANDASAN TEORI 2.1
Aplikasi Sistem Pemesanan 2.1.1 Aplikasi Aplikasi merupakan suatu bagian dari perangkat lunak yang dapat digunakan untuk menyelesaikan masalah-masalah yang khusus yang dihadapi user dengan menggunakan kemampuan komputer. Aplikasi digunakan oleh pemakai ahir dan merupakan program pemrosesan langsung di dalam suatu komputer. O’Brien (2006, p37). Sedangkan menurut Pressman (2002, p10) suatu program dapat dikatakan aplikasi jika terdapat tiga hal berikut : 1. Perintah (program komputer) yang bila dieksekusi memberikan fungsi dan unjuk kerja seperti yang diinginkan. 2. Struktur data yang memungkinkan program memanipulasi formasi secara professional. 3. Dokumen yang menggambarkan operasi dan kegunaan program. Banyak contoh dari aplikasi dalam suatu komputer, beberapa contoh aplikasi tersebut yaitu : aplikasi penjualan, aplikasi penggajian dan aplikasi pengolah kata (Microsoft Word). 2.1.2 Sistem Berdasarkan teori O’Brien (2006, p9) definisi sistem secara umum sebagai berikut :
7
8 1. Kumpulan dari elemen-elemen yang saling berhubungan atau saling berinteraksi membentuk satu keseluruhan. 2. Sekelompok komponen-komponen yang saling berhubungan, bekerja untuk mencapai satu tujuan dengan menerima input dan menghasilkan output dalam suatu proses transformasi yang terorganisasi. 3. Kumpulan dari metode-metode, prosedur-prosedur, atau teknikteknik yang disatukan oleh keterhubungan yang teregulasi untuk membentuk keseluruhan yang terorganisasi. 4. Kumpulan dari orang-orang, mesin-mesin dan metode-metode yang terorgansisasi yang diperlukan untuk menyelesaikan satu set fungsi yang khusus. Sedangkan dalam kaitannya sistem pada bidang teknologi dapat didefinisikan sebagai kumpulan dari berbagai komponen seperti hardware, software,
teknologi
jaringan
telekomunikasi
dan
manajemen
yang
membentuk suatu satu kesatuan. Selain itu Pressman (2002, p276) juga berpendapat bahwa sistem yang berbasiskan komputer didefinisikan sebagai serangkaian atau tatanan elemen-elemen dari software dan hardware yang diatur untuk mencapai tujuan yang ditentukan sebelumnya melalui pemrosesan informasi. Konsep sistem akan semakin berguna jika terdapat 2 komponen tambahan yaitu umpan balik (Feedback) dan pengendalian. Sistem yang memiliki komponen umpan balik disebut sebagai sistem cybernetic, yaitu sistem yang mengawasi dan mengatur dirinya sendiri. Umpan balik adalah data mengenai kinerja sistem contohnya data mengenai kinerja penjualan
9 adalah umpan balik bagi manajer penjualan. Pengendalian melibatkan pengawasan dan pengevaluasian umpan balik untuk menetapkan apakah sistem bergerak menuju pencapaian tujuan atau tidak. 2.1.3 Pemesanan Dalam kamus besar bahasa Indonesia (ed. 3) pemesanan adalah proses perbuatan, cara memesan atau memesankan. Pemesanan merupakan salah satu aktifitas dalam sebuah restoran, pemesanan dilakukan oleh konsumen, adanya pemesanan membantu penjual menentukan jumlah persediaan barang. Kemajuan teknologi sekarang ini memungkinkan pemesanan tidak hanya dapat dilakukan jika konsumen dan penjual bertatap langsung, tetapi dapat dilakukan dari jarak jauh sekalipun, misalnya sistem pemesanan barang lewat internet ataupun melalui media-media komunikasi lainnya. 2.1.4 Aplikasi Sistem Pemesan Berdasarkan pengertian – pengertian di atas dapat disimpulkan bahwa aplikasi sistem pemesanan adalah suatu rangkaian program yang saling berinteraksi antara elemen – elemennya seperti perangkat keras dan perangkat lunaknya melalui jaringan komputer dimana terdapat pengguna yang lebih dari satu orang sehingga membentuk proses kerja untuk tercapai suatu tujuan yaitu kegiatan pemesanan.
2.2
Rekayasa Perangkat Lunak (RPL) Rekayasa Perangkat Lunak merupakan suatu disiplin ilmu dalam pembuatan
dan penggunaan prinsip-prinsip keahlian teknik untuk mendapatkan piranti lunak yang ekonomis, handal, dan bekerja secara efisien pada mesin nyata.
10 Ada 2 bagian yang di kemukakan oleh Sommeville (2001, p7) yang menjadi kunci di dalam rekayasa perangkat lunak yaitu : 1. Ilmu Rekayasa (Engineering Discipline) yaitu membuat segala sesuatu berfungsi, dan mengaplikasikan teori, metode dan alat yang sesuai dan menggunakannya secara selektif untuk mencari dan menemukan solusi dari setiap akar masalah. 2. Aspek-aspek dalam produksi perangkat lunak, dalam perekayasaan perangkat lunak tidak hanya mementingkan teknikal dalam pembuatan perangkat lunak tetapi juga memperhatikan setiap aktivitas dari manajemen proyek, alat pengembang (development tools), metode, dan teori yang mendukung produksi perangkat lunak Berdasarkan pengertian diatas dapat disimpulkan bahwa Rekayasa Perangkat Lunak adalah suatu proses membangun perangkat lunak menggunakan prinsipprinsip keahlian teknik untuk menghasilkan perangkat lunak yang ekonomis, handal, dan efisien pada mesin. Di dalam suatu perancangan perangkat lunak terdapat suatu bagian yaitu proses perangkat lunak dimana di dalalmnya terdapat beberapa aktivitas mendasar yang biasa dilakukan dalam setiap proses perangkat lunak yaitu : 1. Spesifikasi Perangkat Lunak (Software Spesification). Setiap fungsi dari perangkat lunak harus didefinisikan secara jelas. 2. Pembuatan Perangkat Lunak (Software Development). Setiap spesifikasi yang telah ditetapkan harus dibuat sesuai dengan spesifikasi perangkat lunak.
11 3. Validasi Perangkat Lunak (Software Validation). Setiap perangkat lunak harus memiliki validasi untuk menghindari terjadinya error dan pengguna hanya dapat mengakses sesuai hak aksesnya. 4. Perubahan Perangkat Lunak (Software Evolution).Perangkat lunak harus dapat berubah sesuai perubahan kebutuhan pengguna. 2.2.1 Lapisan dalam RPL Secara umum Rekayasa Perangkat Lunak dapat dibagi menjadi tiga layer, Pressman (2002, p28) antara lain : 1.
Process Model adalah fondasi dari RPL yang mendefinisikan sebuah framework untuk sekumpulan key process area yang harus dibangun demi keefektifan penyampaian teknologi pengembangan RPL.
2.
Methods menyediakan
secara
teknis bagaimana untuk
membangun suatu perangkat lunak 3.
Tools menyediakan dukungan otomatis dan semi otomatis untuk process model dan methods.
4.
Quality focus merupakan batu landasan yang menopang tools, methods, dan process dalam RPL
Gambar 2.1 Lapisan Rekayasa Perangkat Lunak
12 (Sumber Gambar : http://dl2yourpcstory.blogspot.com/2011/03/pengertian-rekayasa-perangkatlunak.html) 2.2.2 Model Proses Software Model rekayasa piranti lunak yang diuraikan oleh Pressman (2002, p36) salah satunya adalah waterfall model. Model ini memberikan pendekatan-pendekatan sistematis dan berurutan bagi pengembangan piranti lunak. Berikut adalah gambar pengembangan sistem perangkat lunak dengan proses SDLC (System Development Life Cycle) dengan model waterfall.
Gambar 2.2 SDLC Model Waterfall Penjelasan dari tahap-tahap waterfall model adalah sebagai berikut: i.
Rekayasa Sistem (System Enginering) Perancangan sistem sangat diperlukan, karena piranti lunak biasanya merupakan bagian dari suatu sistem yang lebih besar. Pembuatan sebuah piranti lunak dapat dimulai dengan melihat dan mencari apa yang dibutuhkan oleh sistem. Dari kebutuhan sistem tersebut akan diterapkan kedalam piranti lunak yang dibuat.
ii.
Analisa Kebutuhan Piranti Lunak (Software Requirement Analysis) Merupakan proses pengumpulan kebutuhan piranti
13 lunak. Untuk memahami dasar dari program yang akan dibuat, seorang analisis harus mengetahui ruang lingkup informasi, fungsi-fungsi yang dibutuhkan, kemampuan kinerja yang ingin dihasilkan dan perancangan antarmuka pemakai piranti lunak tersebut. iii.
Perancangan (Design) Perancangan piranti lunak merupakan proses bertahap yang memfokuskan pada empat bagian penting, yaitu: Struktur data, arsitektur piranti lunak, detil prosedur, dan karakteristik antar muka pemakai.
iv.
Pengkodean (Coding) Pengkodean piranti lunak merupakan proses penulisan bahasa program agar piranti lunak tersebut dapat dijalankan oleh mesin.
v.
Pengujian (Testing) Proses ini akan menguji kode program yang telah dibuat dengan memfokuskan pada bagian dalam piranti lunak. Tujuannya untuk memastikan bahwa semua pernyataan telah diuji dan memastikan juga bahwa input yang digunakan akan menghasilkan output yang sesuai. Pada tahap ini pengujian ini dibagi menjadi dua bagian, pengujian internal dan pengujian eksternal. Pengujian internal bertujuan menggambarkan bahwa semua
statement
sudah
dilakukan
pengujian,
sedangkan
pengujian eksternal bertujuan untuk menemukan kesalahan serta memastikan output yang dihasilkan sesuai dengan yang diharapkan. vi.
Pemeliharaan (Maintenance) Proses ini dilakukan setelah piranti lunak telah digunakan oleh pemakai atau konsumen. Perubahan
14 akan dilakukan jika terdapat kesalahan, oleh karena itu piranti lunak harus disesuaikan lagi untuk menampung perubahan kebutuhan yang diinginkan konsumen. Selain model waterfall juga terdapat model proses perangkat lunak yang lain yaitu model Spiral Development. Model proses ini pertama kali dikemukakan oleh Boehm (1988), merupakan model proses yang dilakukan secara berurutan dan dapat melakukan pengulangan (backtracking) ke satu aktivitas ke yang lainnya dimana bentuk kegiatan tersebut menyerupai bentuk spiral. Setiap perulangan dalam spiral menggambarkan satu bagian dalam proses perangkat lunak. Perulangan dalam bentuk spiral ini terdapat 4 bagian yaitu : i. Pembuatan
Tujuan
(Objective
Setting).
Penentuan
tujuan,
hambatan dalam proses ataupun produk serta resiko-resiko proyek. Rencana rinci manajemen juga ditulis lengkap serta pembuatan strategi-strategi alternative sesuai dengan resiko yang ada. ii. Perkiraan dan Pengurangan Resiko (Risk Assessment and Reduction). Membuat rincian analisis untuk setiap resiko yang telah diidentifikasi kemudian diambil langkah-langkah untuk mengurangi resiko, contohnya jika ada resiko bahwa persyaratanpersyaratan tidak tepat maka sebuah model contoh mungkin dapat dikembangkan. iii. Pengembangan dan Validasi (Development and Validation). Setelah evaluasi resiko, sebuah model pengembangan untuk sistem dipilih misalnya jika resiko interface pengguna yang
15 dominan, maka model pengembangan yang tepat mungkin pengembangan model contoh (prototype). Jika resiko keselamatan yang diutamakan, model pengembangan yang sesuai adalah model transformasi formal. Model waterfall tepat jika yang diutamakan integrasi. iv. Perencanaan (Planning). Jika diputuskan untuk melanjutkan pada loop spiral berikutnya maka nproyek dibicarakan kembali dan rencana dibuat untuk tahap selanjutnya. Dari pembahasan beberapa model rekayasa perangkat lunak antara model waterfall dan model spiral maka dapat ditemukan perbandingan antara model rekayasa perangkat lunak tersebut. Berikut ini adalah perbandingan model waterfall dan spiral serta faktor pembandingnya : Tabel 2.1 Perbandingan Model Waterfall dan Spiral Faktor
Waterfall
Spiral
Proyek dengan ukuran resiko
Kecil
Sedang
Ukuran Software
Kecil
Besar
Jenis aplikasi
Sedang
Sedang
Fleksibel terhadap perubahan (waktu)
Rendah
Perubahan awal
Keterlibatan konsumen
Rendah
Sedang
Kelebihan Model Waterfall: •
Bisa digunakan jika suatu persyaratan untuk membuat suatu software sudah dipahami dengan baik dan sudah lengkap semua persyaratan yang ada.
16 Kekurangan Model Waterfall: •
Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen harus dilakukan pada tahap awal proses.
•
Hal ini mengakibatkan sulitnya untuk merespon perubahan kebutuhan pengguna (user).
•
Model air terjun harus digunakan hanya ketika persyaratan dipahami dengan baik.
Kelebihan Model Spiral : •
Dapat disesuaikan agar perangkat lunak bisa dipakai selama hidup perangkat lunak komputer.
•
Lebih cocok untuk pengembangan sistem dan perangkat lunak skala besar.
•
Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap resiko setiap
tingkat evolusi karena perangkat lunak terus
bekerja selama proses . Kelemahan model Spiral: •
Sulit untuk menyakinkan pelanggan bahwa pendekatan evolusioner ini bisa dikontrol.
•
Memerlukan penaksiran resiko yang masuk akal dan akan menjadi masalah yang serius jika resiko mayor tidak ditemukan dan diatur.
•
Butuh waktu lama untuk menerapkan paradigma ini menuju kepastian yang absolute
17 2.3
Interaksi Manusia dengan Komputer Interaksi manusia dan komputer adalah disiplin ilmu yang berhubungan
dengan perancangan, evaluasi dan implementasi sistem komputer interaktif untuk digunakan oleh manusia, serta studi fenomena-fenomena besar yang berhubungan dengannya. Ilmu ini secara khusus menitikberatkan pada perancangan dan evaluasi antar pemakai (user interface). 2.3.1 Eight Golden Rules User Interface Design Menurut Shneiderman (1998, p.74-75), ada delapan aturan emas perancangan antarmuka yang harus diperhatikan dalam perancangan dialog. Delapan aturan emas (Eight Golden Rules) tersebut adalah: 1. Berusaha untuk konsisten. Dalam hal merancang tampilan harus selalu berusaha untuk konsisten. 2. Memungkinkan frequent users menggunakan shortcuts. Pengguna
yang
sudah
sering
menggunakan
aplikasi
lebih
menginginkan kecepatan dalam mengakses fungsi-fungsi yang diinginkan. Sehingga disediakan tombol-tombol spesial penyingkat untuk memudahkan user langsung berinteraksi dengan fungsi yang diinginkannya. 3. Memberikan umpan balik yang informative. Umpan balik harus diberikan untuk memberikan informasi kepada user sesuai dengan aksi yang dilakukan, sehingga user mengetahui aksi apa yang telah dan akan dilakukan dengan adanya umpan balik ini. Umpan balik dapat berupa konfirmasi atau informasi atas suatu aksi.
18 4. Merancang dialog yang memberikan penutupan (keadaan akhir). Umpan balik atas akhir dari suatu proses-proses dan aksi sangat membantu dan juga pengguna mendapat signal untuk melanjutkan aksi lainnya. 5. Memberikan pencegahan kesalahan dan penanganan kesalahan yang sederhana. Sistem dirancang sedemikian rupa sehingga dapat mencegah pengguna dalam buat kesalahan. Bila terjadi kesalahan, sistem harus dapat memberikan instruksi sederhana, konstruktif dan spesifik untuk perbaikan. 6. Memungkinkan pembalikan aksi yang mudah. User kadang tidak sengaja melakukan aksi yang tidak diinginkan, untuk itu user ingin melakukan pembatalan. Sistem harus dapat memberikan fungsi pembatalan ini sehingga user akan merasa lebih aman dan tidak takut dalam mencoba dan memakai sistem tersebut. 7. Mendukung internal locus of control. User yang berpengalaman sangat menginginkan kontrol yang kuat pada sistem sehingga user merasa menguasai sistem tersebut. Sistem yang tidak terduga dan sulit melakukan aksi, akan menyulitkan user. 8. Mengurangi beban ingatan jangka pendek. Keterbatasan memori pada manusia harus mampu diatasi oleh sistem sehingga tidak banyak membuat user melakukan proses penyimpanan memori.
19 2.4
Unified Modelling Language (UML) Lethbridge (2004, p169) menjelaskan Unified Modelling Language (UML)
merupakan bahasa grafis standar untuk permodelan software berorientasi objek. Satu model menangkap set informasi mengenai sistem, satu diagram hanya member satu sudut pandang suatu informasi. Jika menghapus sebuah elemen dari diagram maka tetap tersimpan dalam model, jika menghapus elemen dari model maka akan menghilang dari seluruh diagram. Sebuah model dapat menggiring software engineer untuk memiliki wawasan tentang sistem, mereka dapat menganalisis model (manual maupun menggunakan alat) untuk menemukan masalah yang lainnya. Diagram sederhana yang dihasilkan dari model juga dapat membantu komunikasi dengan klien dan pengguna. UML merupakan suatu bahasa yang terdiri dari kata-kata, dan memiliki aturan untuk menggabungkan kata-kata tersebut sehingga tercipta komunikasi, Booch (2005). Sebuah pemodelan bahasa merupakan suatu bahasa dimana kata-kata dan aturannya berfokus pada penggambaran sistem secara konseptual dan fisik. Sebuah pemodelan bahasa UML telah menjadi bahasa standar untuk merencanakan suatu aplikasi. Hasilnya didapatkan pengertian dari sistem tersebut. Berikut beberapa model dalam UML yang akan digunakan pada perancangan sistem. 2.4.1 Use-Case Diagram Pemodelan use-case mengidentifikasi dan menggambarkan fungsifungsi sistem dengan menggunakan alat yang disebut use-case. Use-case adalah urutan langkah-langkah yang secara tindakan saling terkait (skenario), baik terotomatisasi maupun secara manual untuk tujuan melengkapi satu
20 tugas bisnis tunggal. Dalam bukunya Whitten (2004, p257), “Use-Case Diagram adalah diagram yang menggambarkan interaksi antara sistem dengan sistem eksternal dan pengguna”. Ambler (2004, p113) use-case menggambarkan fungsi-fungsi sistem dari sudut pandang pengguna eksternal dalam sebuah cara dan terminologi yang mereka pahami. Selain itu use-case merupakan hasil penyusunan kembali
lingkup
fungsionalitas
sistem
menjadi
banyak
pernyataan
fungsionalitas sistem yang lebih kecil. Use-case disajikan secara grafis dengan elips horizontal dengan nama use-case muncul diatas, dibawah, atau didalam elips tersebut. Sebuah use-case mempresentasikan satu tujuan tunggal dari sistem dan menggambarkan satu rangkaian kegiatan dan interaksi pengguna untuk mencapai tujuan. Pembuatan use-case terbukti menjadi teknik yang sangat bagus untuk memahami dan mendokumentasi persyaratan sistem dengan lebih baik. Use-case sendiri bukan merupakan persyaratan fungsional tetapi skenario yang disampaikan oleh use-case terdiri dari beberapa persyaratan. Tabel 2.2 Bagian-Bagian Use-Case Diagram No
1
Gambar
Nama
Keterangan
Actor
Menspesifikasikan himpunan peran yang pengguna mainkan ketika berinteraksi dengan use case
3
Generalization
4
Include
Hubungan dimana objek anak (descendent) berbagi perilaku dan struktur data dari objek yang ada di atasnya objek induk (ancestor)
Menspesifikasikan bahwa use case sumber secara eksplisit
21
5
Extend
6
Association
7
System
8
Use Case
Menspesifikasikan bahwa use case target memperluas perilaku dari use case sumber pada suatu titik yang diberikan Apa yang menghubungkan antara objek yang satu dengan objek lainnya
Menspesifikasikan paket menampilkan sistem secara terbatas
yang
Deskripsi dari urutan aksi–aksi yang ditampilkan sistem yang menghasilkan suatu hasil yang terukur bagi suatu aktor
Berikut ini adalah contoh use-case diagram dalam sistem pemesanan menu makanan.
Gambar 2.3 Use-Case Diagram Sistem Pemesanan
22 2.4.2 Activity Diagram Menurut Whitten(2004, p428),
Activity Diagram adalah sebuah
diagram yang dapat digunakan unutk menggambarkan secara grafis aliran proses bisnis, langkah-langkah sebuah use case atau logika behavior (metode) objek. Diagram aktivitas UML menurut Ambler (2004, p113) digunakan untuk : •
Mengeksplorasi logika.
•
Operasi yang kompleks
•
Aturan bisnis yang kompleks
•
Satu use-case
•
Beberapa use-case
•
Proses bisnis
•
Proses bersamaan
•
Proses software
Activity Diagram
digunakan untuk memodelkan langkah-langkah
proses atau kegiatan dan menggambarkan kasus yang kompleks sebagai sarana untuk menggambarkan perilaku kompleks dalam objek dan menggambarkan secara rinci aliran dalam operasi. Diagram ini serupa dengan flow chart dimana secara grafis diagram ini menggambarkan aliran sekuensial dari kegiatan proses bisnis atau sebuah use-case, tetapi diagram ini berbeda dari flow chart dimana diagram ini menyediakan sebuah mekanisme untuk menggambarkan kegiatan yang tampak secara pararel.
23 Tabel 2.3 Bagian-Bagian Activity Diagram No
Gambar
Nama
Keterangan
1
Activity
Memperlihatkan bagaimana masingmasing kelas antarmuka saling berinteraksi satu sama lain
2
Action
State dari sistem yang mencerminkan eksekusi dari suatu aksi
3
Start State
Bagaimana diawali
objek
dibentuk
atau
4
End State
Bagaimana objek dihancurkan
dibentuk
dan
5
State Transitio
6 Fork
7
Join
8
Decision
9
Flow Final
State transition menunjukan kegiatan apa berikutnya setelah suatu kegiatan
Percabangan yang menunjukan aliran pada Activity Diagram
Penggabungan yang menjadi arah aliran pada Activity Diagram
Pilihan untuk mengambil keputusan
Aliran akhir
Berikut ini adalah contoh activity diagram dalam proses payment.
24 act Payment
Start
View Cashier Menu
Select Payment
View Payment
Confirm
Fi nal
Gambar 2.4 Activity Diagram Proses Payment 2.4.3 Class Diagram Class Diagram menggambarkan struktur objek sistem, dimana diagram ini menunjukkan kelas objek yang menyusun sistem dan juga hubungan antara kelas objek tersebut. Menurut Ambler (2004, p 47), UML class diagram menunjukkan kelas pada sistem, hubungannya, dan operasi serta atribut dari kelas. Class Diagram digunakan untuk: •
Mengeksplorasi konsep domain dalam bentuk model domain.
•
Menganalisis persyaratan dalam bentuk analisis / model konseptual.
25 •
Menggambarkan desain rinci berorientasi objek atau object-based software.
Sebuah model kelas terdiri dari diagram kelas satu atau lebih dan mendukung spesifikasi yang menggambarkan elemen model, termasuk kelas, hubungan antara kelas, dan interface. Tabel 2.4 Pilihan Visibilitas dalam UML Class Diagram Visibility Public
Symbol +
Protected
#
Private
-
Package
~
Accessible to Semua objek yang terdapat pada sistem dan dapat diakses di semua class Dapat diakses oleh class itu sendiri dan class turunannya Hanya dapat diakses oleh class itu sendiri Class yang yang terdapat dalam satu paket
Pada tabel 2.4, mengindikasikan visibilitas hanya pada model desain. Visibilitas operasi atau atribut mendefinisikan tingkat mengakses objek, dan UML mendukung empat jenis visibilitas.Visibilitas adalah permasalahan desain yang penting. Tabel 2.5 UML Multiplicity Indicators Indicator 0..1 1 0..* 1..* N * 0..n 1..n n..m n..*
Meaning Zero or one One only Zero or more One or more Only n (where n > 1) Many Zero to n (where n > 1) One to n (where n > 1) Where n and m both > 1 N or more, where n > 1
26 Pada tabel 2.5, untuk setiap kelas yang terlibat dalam suatu hubungan, selalu ada akan multiplicity. Hal ini dapat dilakukan pada semua jenis hubungan baik dalam asosiasi maupun agregasi. Tabel 2.6 Bagian-Bagian Class Diagram No
Gambar
Nama
Keterangan
1
Association
Apa yang menghubungkan antara objek yang satu dengan objek lainnya.
2
Aggregation
Upaya untuk menghindari asosiasi dengan lebih dari 2 objek.
3 Composite
4
Class
7
Dependency
Composite adalah varian yang lebih kuat dari “memiliki” atau hubungan asosiasi; composite lebih spesifik dari agregasi.
Himpunan dari objek-objek yang berbagi atribut serta operasi yang sama.
Hubungan dimana perubahan yang terjadi pada suatu elemen mandiri (independent).
2.4.4 Sequence Diagram Berdasarkan teori yang dikemukakan oleh 2 ahli, sequence diagram memiliki pengertian sebagai berikut: 1. Diagram sekuensi secara grafis menggambarkan bagaimana objek berinteraksi dengan satu sama lain melalui pesan pada eksekusi
27 sebuah use case atau operasi. Diagram ini mengilustrasikan bagaimana proses terkirim dan diterima di antara objek dan dalam sekuensi apa. Whitten (2004, p419). 2. Teknik
pemodelan
komunikasi
yang
dinamis
seperti
UML
diagram
yamg digunakan untuk memberi gambaran suatu
logika dan skenario sistem. Ambler (2004, p80). Fungsi UML diagram sekuensi adalah biasanya digunakan untuk kegiatan kegiatan sebagai berikut : •
Validasi
dan
menyempurnakan
logika
dan
kelengkapan
penggunaan suatu skenario. Menunjukkan deskripsi cara bahwa sistem anda bisa digunakan. •
Menjelajahi desain karena menyediakan jalan secara langkah visual melalui permintaan dari operasi yang didefinisikan dari kelas.
•
Memberikan nuansa kelas mana dalam aplikasi yang akan menjadi kompleks.
•
Mendeteksi hambatan dalam desain berorientasi obyek, melihat pesan apa yang sedang dikirim ke objek, dan dengan melihat kirakira berapa lama waktu yang dibutuhkan untuk menjalankan metode, serta memahami tentang di mana perlu mengubah desain untuk mempermudah jalannya sistem.
Berikut ini adalah contoh model sequence diagram dalam sistem pemesanan menu makanan.
28 sd Payment UITampilanKasir
System::TampilanKasir
System::Meja
System::Form_Bayar
Cashier
Selec Table to Payment() requestTable() cekTable() getTable()
cekPayment()
getPayment()
Display Payment() Confirm Payment() confirm()
setEmpty()
Table Has Been Clear ()
Gambar 2.5 Sequence Diagram Proses Payment 2.5
Jaringan (Network) Leinwan (1996, p4) jaringan adalah kumpulan dari device dan sirkuit untuk
melakukan transfer data dari satu komputer ke komputer lain. Dimana memungkinkan user melakukan sharing data sumber computer dari tempat yang berbeda. Sofana (2012, p107), jaringan komputer berawal dari time-sharing networks, yaitu “rangkaian” terminal yang terhubung dengan komputer sentral yang disebut mainframe. Norton (1999, p5), jaringan komputer adalah sebuah sistem dimana terdiri dari komputer dan beberapa perangkat jaringan lainnya yang bekerja secara
29 bersama-sama untuk mencapai tujuan yang sama. Tujuan dari pembuatan sebuah jaringan komputer adalah : 1.
Dapat menghemat perangkat keras (hardware) seperti pemakaian printer, scanner, CPU.
2.
Dapat melakukan
komunikasi dengan
murah
seperti instant
messanging, chatting dan surat elektronik. 3.
Mendapat akses informasi lebih cepat seperti web browsing.
4.
Dapat melakukan perpindahan data (Transferring data).
2.5.1 LAN (Local Area Network) Lukas (2006, p12), Local Area Network adalah jaringan yang menyediakan hubungan komunikasi berbagai peralatan sehingga peralatan yang ada dalam jaringan mampu member dan menerima informasi dari peralatan lainnya yang ada di dalam satu jaringan lokal area. Jaringan LAN memiliki karakteristik yaitu : 1. Jangkauan yang kecil, khususnya untuk satu gedung atau satu area. 2. LAN dimiliki oleh organisasi yang sama dimana dapat menghubungkan satu peralatan ke peralatan yang lain. 3. Tingkat kepadatan data pada LAN sangat besar. 4. Konsep komunikasi pada LAN menggunakan cara broadcast. Dengan demikian LAN dapat di
artikan sebagai jaringan yang
meliputi suatu area geografis yang relative kecil (1 lantai, gedung kecil). LAN mengirimkan dan menerima data pada kecepatan yang lebih cepat dari pada kecepatan yang ada pada aliran kabel telepon, yakni kecepatan transfer rate data 10, 100 atau 100 Mbit/s pada basis teknologi IEEE 802.3 Ethernet
30 yang menggunakan perangkat switch. Selain itu LAN memiliki karakteristik dimana tingkat error yang lebih rendah dibandingkan WAN. LAN digunakan untuk menghubungkan workstation, perangkat jaringan, terminal, dan perangkat lain dalam area yang terbatas. Standar LAN menentukan perkabelan dan pensinyalan pada layer fisik dan layer data link dalam model OSI. Ethernet, FDDI dan Token Ring menggunakan teknologi LAN.
Gambar 2.6 Topologi LAN Sederhana 2.5.2 Wireless LAN Wireless LAN adalah metode menggabungkan dua atau lebih komputer menjadi satu jaringan, tanpa menggunakan kabel. WLAN menggunakan teknologi spread-spectrum berdasarkan pada gelombang radio untuk melakukan komunikasi antar device pada ruang yang terbatas. WLAN mengizinkan pengguna melakukan aktivitas mobilitas dalam jangkauan area nirkabel. Gambar tabel berikut menunjukan perbedaan standar IEEE 802.11x yang digunakan WLAN (CISCO Sytems, 2008a).
31
Gambar 2.7 Perbandingan Standar IEEE 802.11x Sumber Gambar : http://cnap.binus.ac.id/ccna/protdoc/Exploration3/theme/cheetah.html?cid=1300000000&l1=en&l2=none&chapter=7 IEEE adalah badan internasional yang mendokumentasikan riset-riset teknologi oleh para ahli yang kemudian dijadikan standar internasional. Dalam kerjanya IEEE mengeluarkan salah satu standar internasional untuk LAN. IEEE mendefinisikan satu standar LAN dengan meluncurkan proyek 802. Proyek 802 membuat standar jaringan untuk komponen fisik dari jaringan yang terletak pada lapis fisik dan data link pada model OSI. Standar ini disebut spesifikasi 802, yang mendefinisikan bagaimana kartu jaringan dapat mengakses dan mentransfer data melalui media fisik, termasuk didalamnya proses pembuatan koneksi dan memutuskan koneksi. IEEE 802 terbagi menjadi 12 kategori sebagai berikut: 1. 802.1 Internetworking 2. 802.2 Logical Link Control 3. 802.3 Carrier Sense Multiple Access with Collision Detection CSMA/CD 4. 802.4 Token Bus LAN 5. 802.5 Token Ring LAN
32 6. 802.6 Metropolitan Area Network (MAN) 7. 802.7 Broadband Technical Advisory 8. 802.8 Fiber-Optic Technical Advisory 9. 802.9 Integrated Data/Voice Network 10. 802.10 Network Security 11. 802.11 Wireless LAN 12. 802.12 Demand Priority Access LAN, 100 Base VG-any LAN Standar IEEE 802.11 mengkhususkan pengembangan teknologi lapisan fisik dan datalink wireless LAN (lapisan 1 dan 2 OSI). 2.5.3 Wi – Fi Berdasarkan Kamus Lengkap Jaringan Komputer (2004) Wi-Fi merupakan kependekan dari Wireless Fidelity dan merupakan aliansi industri yang mempromosikan penggunaan jaringan nirkabel (Wireless LAN/WLAN) untuk jaringan yang didasari pada spesifikasi IEEE 802.11. 2.5.3.1 Spesifikasi Wi-Fi Saat ini terdapat empat variasi dari 802.11, yaitu 802.11a, 802.11b, 802.11g dan 802.11n. Berikut detail dari masing-masing variasi tersebut : Tabel 2.7 Variasi 802.11
802.11b 802.11a 802.11g 802.11n
Kecepatan 11 Mbps 54 Mbps 54 Mbps 100 Mbps
Frekuensi Band 2.4 GHz 5 GHz 2.4 GHz 2.4 GHz
Sesuai Spesifikasi B A b, g b,g,n
33 Sofana (2012, p447) dalam pengembangan teknologi Wi – fi terbaru berdasarkan spesifikasi Pre-802.11n terdapat teknologi yang disebut MIMO (Multiple Input Multiple Output) yang dapat meningkatkan throughput, reliabilitas serta jumlah client yang terkoneksi. Selain itu daya tembus terhadap penghalang lebih baik, jangkauan lebih luas dan menghasilkan kecepatan transfer data yang lebih besar. Secara teknis operasional, Wi-Fi merupakan salah satu varian teknologi komunikasi dan informasi yang bekerja pada jaringan dan perangkat WLAN (Wireless Local Area Network). Dengan kata lain, Wi-Fi adalah sertifikasi merek dagang yang diberikan pabrikan kepada perangkat telekomunikasi (Internet) yang bekerja di jaringan WLAN dan sudah memenuhi kualitas kapasitas interoperasi yang dipersyaratkan sehingga produk yang telah mendapat persetujuan dari aliansi tersebut menerima sertifikat segel interoperabilitas Wi-Fi. 2.5.4
Access Point (AP) Access point adalah peralatan yang digunakan wireless LAN. AP
bertugas mengatur dan menghubungkan koneksi beberapa peralatan Wi – Fi. AP dapat dianalogikan dengan hub, hanya saja digunakan pada wireless LAN. AP juga dapat menghubungkan wireless LAN dengan wired LAN. 2.5.4.1 SSID Di dalam peralatan wi-fi terdapat SSID (Service Set Identifier) merupakan network ID atau nama untuk jaringan wireless. Beberapa
34 vendor menyebut SSID sebagai Domain ID. Setiap jaringan wi-fi harus memiliki SSID yang unik serta channel yang sama agar antar device dapat saling berkomunikasi. 2.5.4.2 Otentikasi dan Enkripsi Wireless Di dalam jaringan wireless terdapat beberapa metode otentikasi dan enkripsi. Yaitu : •
WEP (Wired Equivalent Privacy) Fitur keamanan standar untuk peralatan wireless. Dalam WEP menggunakan 64bit dan 128bit. Ada dua cara untuk memasukkan WEP key, disetkan sendiri atau generate menggunakan passphrase. Passphrase akan generate automatic WEP key untuk masukkan abjad. WEP hanya boleh memasukkan 0-9 dan A-F(hexadecimal). Kepanjangan key bergantung jenis securiy, jika 64bit memasukkan 10key, dan untuk 128bit memasukkan 26key. Tak boleh kurang dan lebih.
•
WPA - PSK (Wi-Fi Protected Access – Pre Shared Key) WPA-PSK adalah securiti yang lebih update dari WEP. WPA-PSK mempunyai decryption yang ada pada WEP. Serta menambahkan security yang lebih pada wireless yaitu dengan menggunakan key yang akan diubah secara otomatis dan diotentikasi secara teratur. WPA-PSK masih bisa dicrack atau disadap, tetapi mengambil masa lebih lama dari WEP. Panjang key adalah 8-63, anda boleh memasukkan sama ada 64 hexadecimal atau ASCII(seperti biasa).
35 •
WPA2 - PSK(Wi-Fi Protected Access 2) Dalam WPA2-PSK beberapa teknisnya hampir sama dengan WPA namun pada enkripsinya yang dipakai adalah Advanced Encryption Standard (AES) yaitu suatu enkripsi dengan menggunakan algoritma Rijndael. Dalam proses enkripsi input, diperlukanlah empat macam operasi yang dilakukan berulang-ulang dalam beberapa putaran dan menggunakan kunci cipher.
2.5.4.3 Metode Koneksi Access Point Terdapat 2 metode koneksi pada access point, yaitu: 1. Ad-hoc Sistem ad-hoc adalah sistem peer-to-peer, dalam arti satu komputer dihubungkan dengan satu komputer lain secara langsung tanpa menggunakan Access Point. Pada sistem adhoc tidak lagi mengenal sistem central (yang biasanya difungsikan pada Access Point). Sistem ad-hoc hanya memerlukan satu buah komputer yang memiliki nama SSID (Service Set Identifier) atau sederhananya nama sebuah network pada sebuah card / komputer. 2. Infrastruktur Sistem infrastruktur menggunakan Access Point untuk menghubungkan komputer-komputer ke dalam suatu jaringan. Jadi setiap komputer yang hendak berhubungan satu sama lain
36 harus melewati Access Point terlebih dahulu, baru kemudian dapat menggunakan sumber daya yang ada pada jaringan.
2.6
Socket Programming Socket Programming adalah protokol yang mempunyai metode untuk membuat koneksi antar perangkat dalam jaringan yang dibuat dengan bahasa pemrograman. Berikut ini adalah istilah istilah
yang ada dalam socket
programming. 2.6.1 Socket Socket adalah mekanisme komunikasi yang memungkinkan terjadinya pertukaran data antar program atau proses, baik dalam satu mesin maupun antar mesin. Gaya pemrograman socket sendiri berawal dari sistem Unix BSD yang terkenal dengan kepeloporannya pada bidang penanganan jaringan, sehingga sering disebut BSD Socket. Socket pertama kali diperkenalkan di sistem Unix BSD versi 4.2 tahun 1983 sebagai kelanjutan dari implementasi protokol TCP/IP yang muncul pertama kali pada sistem Unix BSD 4.1 pada akhir 1981. Hampir setiap variant Unix dan Linux mengadopsi BSD Socket. Pada lingkungan Unix, socket memberikan keleluasaan pemrograman gaya Unix yang terkenal dengan ideologinya. Komunikasi antar program dapat berlangsung lewat penggunaan deskriptor file standar Unix dengan bantuan socket. Keunggulan dari penggunaan socket adalah dapat melakukan komunikasi antar proses/program melalui jaringan berbasis yang TCP/IP tentunya, bahkan dengan program lain yang berjalan pada platform non-unix
37 seperti Microsoft Windows, sepanjang program tersebut berbicara dalam protokol transfer yang sama. Fasilitas-fasilitas yang disediakan oleh mesin unix seperti rlogin, ssh, ftp, dan lain-lain menggunakan socket sebagai sarana komunikasi mereka. Socket dibentuk dan digunakan dengan cara yang berbeda. Komunikasi socket terutama diciptakan untuk tujuan menjembatani komunikasi antara dua buah program yang dijalankan pada mesin yang berbeda. Kelebihan lain dari komunikasi socket adalah mampu menangani banyak klien sekaligus. 2.6.2 Port Aplikasi Internet cukup banyak, agar tidak “bentrok” satu sama lain maka masing-masing aplikasi telah diberi jalur khusus yang disebut i. Port dapat dianalogikan dengan “virtual slot” di dalam “stack” TCP/UDP. Port digunakan untuk memetakan koneksi antara 2 host, antara layer TCP/UDP dan aplikasi aktual yang berjalan pada host. Sofana (2012, p268). Port diberi nomor 0 s.d 65535. Port dengan range 0-1023 dinamai “reserved” atau “privileged” port. Artinya port-port di wilayah tersebut sudah digunakan untuk berbagai aplikasi yang khas. Seperti telnet, email, web, ftp dan sebagainya. Sedangkan sisanya (1024 s.d 65535) disebut sebagai “dynamic” atau “unprivileged” port. Port 0 s.d 1023 hampir selalu digunakan sebagai port untuk aplikasi server yang sudah umum. Sebagai contoh, server FTP menggunakan port 21/20, SMTP menggunakan port 25, HTTP menggunakan port 80, dan seterusnya. Port dengan range 1024 s.d 65535 biasanya bersifat dinamis. Sebagai contoh, ketika client melakukan koneksi ke server maka port yang digunakan oleh client adalah port dinamis.
38 Dalam pemrograman socket terdapat dua tipe socket yang paling sering digunakan yaitu “Stream Socket” dan “Datagram Socket” yang lebih dikenal dengan “SOCK_STREAM” dan “SOCK_DGRAM”. Datagram Socket disebut dengan “Connectionless socket” (menggunakan protocol UDP) sedangkan Stream Socket (menggunakan protocol TCP) lebih reliable dibandingkan Datagram Socket karena terciptanya komunikasi dua arah yang memungkinkan kecilnya data error pada saat transmisi data. 2.6.2.1 TCP TCP (Transmision Control Protocol) yaitu Protokol yang bertanggung jawab untuk pengiriman data dari sumber ke tujuan dengan benar. TCP dapat mendeteksi kesalahan atau hilangnya data dan melakukan pengiriman kembali sampai data diterima dengan lengkap. TCP selalu meminta konfirmasi setiap kali data dikirim, untuk memastikan apakah data telah sampai di tempat tujuan. Kemudian TCP akan mengirimkan data berikutnya atau melakukan retransmisi (pengiriman ulang) apabila data sebelumnya tidak sampai atau rusak. Data yang dikirim dan diterima kemudian di atur berdasarkan nomor urut Tugas dari TCP adalah menerima pesan elektronik dengan panjang sembarang dan membaginya ke dalam bagian – bagian berukuran 64 kb. Dengan adanya pembagian pesan tersebut, perangkat lunak yang mengontrol komunikasi jaringan dapat mengirim tiap bagian dan menyerahkan prosedur pemeriksaaan bagian demi bagian. Sukmaaji (2008, p22). Protokol TCP memliki karakteristik sebagai berikut:
39 1. Connection oriented 2. Reliable 3. Byte stream service TCP merupakan protocol yang bersifat connection oriented, artinya sebelum proses transmisi data terjadi, dua aplikasi TCP harus melakukan pertukaran control informasi (handshaking) TCP juga bersifat reliable karena menerapkan fitur deteksi kesalahan dan retransmisi apabila ada data yang rusak. Sehingga keutuhan data dapat terjamin.. Jika terjadi kerusakan selama transmisi maka program pengirim hanya perlu mengulang transmisi bagian itu dan tidak perlu mengulang dari awal. Sedangkan byte stream service artinya
paket
akan
dikirimkan
ke
tujuan
secara
berurutan
(sequencing). Untuk
mengetahui
tujuan
tersebut
(sequencing,
error
checksum, dan retransmission) pada header protocol TCP telah disediakan field khusus. Perhtikan bagan segmen TCP berikut ini. Segmen TCP terdiri atas header dan data. Kita bisa melihat ada field khusus untuk Sequence, Checksum, Acknowledgement. Sofana(2012, p249-250).
Gambar 2.8 Bagan Segmen TCP
40 Keterangan: 1. Source port (16 bits), Berisi informasi port pengirim. 2. Destination port (16 bits), Berisi informasi port penerima. 3. Sequence number (32 bits), Berupa sequence number yang terdiri atas dua kondisi berikut: a) Jika flag SYN di-set (yang ada di bagian field Flags), maka field ini berisi awal (inisial) dari sequence number. b) Jika flag SYN tidak di-set, maka nilai pada field ini merupakan sequence number. 4. Acknowledgement atau ACK (32 bits), Jika flag ACK diset, maka nilai pada field ini adalah nilai sequence number berikutnya di-“harapkan” oleh penerima. 5. Data offset (4 bits), Menunjukan ukuran TCP header. Total header sepanjang 32-bit words. Ukuran minimum header adalah 5 words. Data offset juga merupakan awal dari data. 6. Reserved (4 bits), Untuk keperluan tertentu di masa yang akan datang. Nilai pada field ini semestinya adalah zero (nol). 7. Flags (8 bits), Field untuk control bit (masing - masing 1bit), yaitu: a) CWR (Congestion Window Reduced) b) ECE (ECN-Echo) c) URG (URGent)
41 d) ACK (ACKnowledgement) e) PSH (Push Function) f) RST (Reset) g) SYN (Synchronize) h) FIN (Finish) 8. Window (16 bits), Menunjukan ukuran window penerima (receive window). Agar data dapat diterima dengan baik maka di perlukan pengaturan ukuran jumlah byte optimal yang ditentukan oleh field ini. 9. Checksum (16 bits), Digunakan untuk error-checking dari header dan data. 10. Urgent pointer (16 bits), Digunakan untuk sequence number yang menandakan urgent data byte terakhir. 11. Options (Variable bits), Berisi berbagai opsi berupa angka sebagai berikut: o 0 – End of option list o 1 – No operation (NOP, Padding) o 2 – Maximum segment size o 3 – Window scale o 4 – Selective Acknowledgement o 5, 6, 7 o 8 - Timestamp 12. Data, Berisi data yang dikirim.
42 Jadi dapat disimpulkan bahwa TCP menyediakan layanan transfer yang dapat diandalkan dengan mengirimkan paket datagrams per kelompok antar server dan client dengan pemeriksaan. Keuntungan TCP: -
Mampu menangani paket yang hilang
-
Mampu menangani kedatangan paket ganda.
-
Dapat mengatasi penerimaan paket secara beriringan.
-
Menyediakan alur penerimaan paket.
-
Data yang diterima dapat diepercaya dan diandalkan.
Kelemahan TCP : -
Waktu lebih lama.
-
Paket yang dikirim besar.
Alur program TCP pada pemrograman socket :
43
Gambar 2.9 Alur Program Socket TCP Fungsi socket protocol TCP 1.
socket(AF_INET, SOCK_STREAM, 0), berfungsi untuk membuat socket dan parameter family yang digunakan adalah AF_INET yaitu internet protocol dan socket yang digunakan adalah SOCK_STREAM yang berfungsi untuk membuka socket pada TCP.
2.
htonl(), meng-convert unsigned integer ke network byte order.
3.
inet_ntoa(), ntoa singkatan 'network to ascii', nilai return-nya berupa string dari alamat yang dilewatkan.
4.
inet_addr(), meng-convert string menjadi network byte order.
44 5.
bind(), digunakan pada pihak server, untuk membuka 'port' komunikasi.
6.
write(), send(), bertugas mengirimkan data.
7.
read(), recv(), bertugas menerima data.
8.
connect(), digunakan pada pihak client, untuk mengadakan koneksi ke server.
9.
listen(), menunggu koneksi socket.
10. accept(), menerima koneksi socket. 11. close() dan shutdown(), digunakan untuk menutup atau mengakhiri koneksi. 2.6.3 Arsitektur Jaringan Sistem operasi jaringan sangat menentukan bentuk arsitektur jaringan yang dibangun. Ada dua macam arsitektur jaringan, yaitu peer to peer dan client-server. 2.6.3.1 Peer to Peer Dalam beberapa hal, komunikasi peer to peer diterapkan dengan member masing-masing titik komunikasi kemampuan sebagai klien maupun server. Dengan demikian, masing-masing titik dapat menjadi server sekaligus klien. Setiap komputer dapat menerima dan memberikan access dari/ke komputer lain. Peer to peer banyak diimplementasikan pada LAN. Walaupun dapat juga diimplementasikan pada MAN, WAN, atau Internet, namun hal ini kurang lazim. Salah satu alasannya adalah masalah manajemen security. Cukup sulit mengawasi security pada
45 jaringan peer to peer manakala pengguna jaringan komputer sudah banyak. Contoh aplikasi yang menggunakan metode peer to peer adalah winpopup dan Netmeeting pada windows.Untuk melakukan komunikasi tidak memerlukan server untuk menjembataninya. Arifin (2005, p8), Jaringan peer to peer memiliki beberapa keuntungan dan kekurangan. Beberapa keuntungan dari jaringan peer to peer yaitu : o Mudah diinstal dan dikonfigurasi. o Komputer tidak bergantung pada server. o User dapat mengontrol resource yang akan dibagikan ke user lain. o Lebih relative murah dibandingkan client-server. o Tidak memerlukan administrator khusus. o Tidak membutuhkan software sistem operasi tambahan (sistem operasi yang secara khusus bertindak sebagai server seperti Windows 2000 server, Windows NT 4.0, dsb). o Lebih efektif karena jumlah pengguna hanya 10. Dan ada beberapa kekurangannya diantaranya : o Hanya menggunakan sekuritas jaringan untuk sebuah resource pada suatu saat. o User harus mengingat beberapa password untuk beberapa resource.
46 o User harus melakukan backup pada masing-masing komputer untuk melindungi data yang tersimpan pada masing-masing komputer. o Performa computer yang memiliki resource akan menurun ketika resource tersebut diakses. o Penyimpanan data tidak terpusat pada satu komputer, karena tersebar pada masing-masing komputer. 2.6.3.2 Client Server Client server adalah jaringan komputer yang salah satu (boleh lebih) komputernya difungsikan sebagai server untuk melayani komputer lain. Komputer yang dilayani oleh server disebut client. Layanan yang diberikan bisa berupa akses web, e-mail, file, atau yang lain. Client server banyak dipakai oleh Internet dan Intranet. Didalam suatu jaringan, hubungan klien server menyediakan suatu
layanan
untuk
menghubungkan
program-program
yang
terdistribusi pada lokasi yang berjauhan. Sebagai contoh ketika mengakses halaman web di internet maka browser akan mengirimkan permintaan ke web server dan web server yang menerima permintaan akan mencari halaman yang diminta, setelah web server menemukan halaman tersebut maka akan di kirim kembali ke browser. Arifin (2005, p8), Jaringan client-server memiliki beberapa keuntungan dan kekurangan. Beberapa keuntungan dari jaringan client-server yaitu :
47 o Menyediakan user account, sistem keamanan dan access control secara terpusat. o Adanya penyediaan alat yang powerfull akan berakibat efisiensi pengaksesan resource jaringan menjadi lebih baik. o User hanya perlu satu password untuk mengakses beberapa resource yang tersedia. Dan ada beberapa kekurangannya diantaranya : o Jika server mengalami kerusakan maka jaringan tidak dapat digunakan. o Dibutuhkan user yang memiliki kemampuan untuk mengelola server. o Biaya yang dibutuhkan lebih besar dari jaringan peer to peer.
2.7
Java Java adalah bahasa pemrograman yang dikembangkan oleh Sun Microsistem
di California pada tahun 1991, yang dipimpin oleh James Gosling, yang menyediakan animasi dan interaksi World Wide Web. Secara umum nama Java adalah sekelompok software tool yang digunakan untuk menciptakan dan menerapkan executable content menggunakan bahasa pemrograman Java. Bahasa pemrograman Java adalah bahasa pemrograman berbasis object oriented yang modern. Java memiliki sintaks yang mirip dengan bahasa C dan C++, tetapi Java menghilangkan banyak kelebihan C dan C++ yang menjadikan C dan C++ menjadi kompleks, membingungkan dan tidak aman, December (1995, p.8). Java platform dikembangkan untuk mengakomodasikan masalah pembangunan
48 piranti lunak untuk media yang terhubung ke jaringan. Java dirancang untuk mendukung arsitektur komputer yang berbeda-beda. Untuk mencapai kebutuhan tersebut, sebuah program yang telah dikompilasi harus dapat dipindahkan di dalam jaringan, bekerja di client dan menjamin keamanan client yang memakainya. Java merupakan salah satu bahasa pemrograman yang multi-platform, maksudnya bahasa pemrograman ini dapat dijalankan pada sistem operasi yang berbeda-beda. Namun untuk dapat menjalankan program Java, sistem operasi tersebut harus memiliki Java Virtual Machine (JVM) yang sudah ter-install di dalamnya. Banyak software yang membantu untuk membuat program dalam bahasa pemrograman Java, salah satu software yang menggunakan bahasa pemrograman Java yaitu eclipse. 2.7.1 Eclipse Eclipse adalah sebuah IDE (Integrated Development Environment) untuk mengembangkan perangkat lunak dan dapat dijalankan di semua platform (platform-independent). Berikut ini adalah sifat dari eclipse: 1. Multi-Platform Target sistem operasi Eclipse adalah Microsoft Windows, Linux, Solaris, AIX, HP-UXdan Mac OS X. 2. Mulit-Language Eclipse dikembangkan dengan bahasa pemrograman Java, akan tetapi eclipse mendukung pengembangan aplikasi berbasis bahasa pemrograman lain seperti C/C++, Cobol, Python, Perl, PHP, dan lain sebagainya. 3. Multi-Role Selain sebagai IDE untuk pengembangan aplikasi. Eclipse pun bisa digunakan untuk aktivitas dalam siklus pengembangan perangkat lunak
49 seperti dokumentasi, pengujian perangkat lunak, pengembangan web, dan lain sebagainya. Pada saat ini, eclipse merupakan salah satu IDE favorit karena gratis dan open source.
Open Source berarti setiap orang boleh melihat kode
pemrograman perangkat lunak ini. Selain itu, kelebihan dari eclipse yang membuatnya populer adalah kemampuannya untuk dapat dikembangkan oleh pengguna dengan membuat komponen yang disebut plug-in. Didalam eclipse juga terdapat plug-in yang dimana digunakan untuk menguji fungsionalitas dari sebuah coding, nama plug-in tersebut adalah CodePro Anlytix. 2.7.1.1 CodePro Analytic Testing yang dilakukan dengan mengukur metric yang terdiri dari beberapa kategori termasuk basics, complexity, dependency dan inheritance. Setiap metric yang nilainya sudah melebihi batas yang ditentukan akan diberi warna yang berbeda. Hasil yang ditampilkan berikut merupakan ukuran metric secara keseluruhan dalam satu program. 1. Average Block Depth Average Block Depth adalah rata-rata panjang baris kode pada suatu fungsi yang didefinisikan dalam elemen target / class. 2. Average Cyclomatic Complexity Average kompleksitas
Cyclomatic
siklomatik
dari
Complexity
adalah
masing-masing
rata-rata
fungsi
yang
didefinisikan dalam elemen target/class. Kompleksitas cyclomatic dari fungsi tunggal adalah sebuah ukuran angka dari jalur yang berbeda pada saat fungsi dipanggil. Hal ini diukur dengan
50 menambahkan satu jalur untuk fungsi dengan masing-masing jalur yang dibuat oleh pernyataan bersyarat (seperti "if" dan "for") dan operator (?:). 3. Average Lines Of Code Per Method Average Lines Of Code Per Method adalah rata-rata jumlah baris kode dalam setiap fungsi yang didefinisikan dalam elemen target.Metrik ini mencakup rincian tentang jumlah minimum dan maksimum dari baris kode dalam salah satu fungsi. 4. Average Number of Constructors Per Type Average Number of Constructors Per Type adalah rata-rata jumlah konstruktor yang ditetapkan untuk setiap tipe yang didefinisikan dalam elemen target. Metrik ini mencakup rincian tentang
jumlah
minimum
dan
maksimum
konstruktor
didefinisikan oleh tipe. 5. Average Number of Fields Per Type Average Number of Fields Per Type adalah rata-rata jumlah field yang yang didefinisikan untuk setiap jenis tipe didalam elemen target.Metrik ini mencakup rincian tentang jumlah minimum dan maksimum dari field yang didefinisikan oleh tipe. 6. Average Number of Methods Per Type Average Number of Methods Per Type adalah rata-rata jumlah metode yang didefinisikan untuk setiap jenis tipe dalam elemen target.Metrik ini mencakup rincian tentang jumlah minimum dan maksimum dari fungsi yang didefinisikan oleh tipe.
51 7. Average Number of Parameters Average Number of Parameters adalah rata-rata jumlah parameter yang ditetapkan untuk fungsi (tetapi bukan konstruktor) didefinisikan dalam elemen target.Metrik ini mencakup rincian tentang jumlah minimum dan maksimum dari parameter yang didefinisikan oleh fungsi. Hal ini juga memberikan rincian tentang jumlah fungsi dari masing-masing ukuran tertentu. 8. Comments Ratio Comments Ratio adalah rasio dari jumlah baris kode. Secara khusus, itu dihitung sebagai berikut: [Number of Comments] / [Lines of Code] 9. Efferent Couplings Efferent Couplings adalah jumlah tipe dalam elemen target / class yang bergantung pada tipe luar elemen target / class. 10. Lines of Code Lines of Code adalah jumlah baris dalam elemen target yang berisi karakter selain spasi dan komentar. 11. Number of Characters Number of Characters adalah hitungan sederhana jumlah karakter dari sumberkode yang terkait dengan unsur-unsur target. Sumber kodeyang berhubungan dengan elemen meliputi setiap comment Javadoc yang mungkin mendahului elemen. 12. Number of Comments Number of Comments adalah jumlah komentar. Ini bukan hitungan jumlah baris yang berisi komentar, multi-baris komentar
52 dihitung sebagai satu baris tidak pentingseberapa banyak baris yang mereka tempati.Metrik ini mencakup rincian berdasarkan jenis komentar: end-of-line, multi-line, dan Javadoc. 13. Number of Constructors Number of Constructors adalah jumlah konstruktor didefinisikan dalam elemen target.Metrik ini termasuk gangguan berdasarkan visibilitas konstruktor(public, package, protected or private). 14. Number of Fields Number of Fields adalah jumlah bidang yang didefinisikan dalam elemen target.Metrik ini termasuk gangguan didasarkan pada kedua lingkup dari lapangan (static or instance) dan visibilitas dari lapangan (public, package, protected or private). 15. Number of Lines Number of Lines adalah hitungan sederhana jumlah baris dalam elemen target, termasuk baris kosong. 16. Number of Methods Number
of
Methods
adalah
jumlah
fungsi
yang
didefinisikan dalam elemen target.Metrik ini termasuk gangguan didasarkan pada kedua lingkup fungsi(static or instance)dan visibilitas dari fungsi (public, package, protected or private). 17. Number of Packages Number
of
Packages
didefinisikan dalam elemen target.
adalah
jumlah
paket
yang
53 18. Number of Semicolons Number of Semicolons adalah hitungan sederhana jumlah titik koma dalam sumber kode yang terkait dengan unsur-unsur target. Titik koma yang terjadi di dalamcomment tidak dihitung, tetapi titik koma yang berada pada akhir deklarasi paket dan impor dihitung. 19. Number of Types Number of Types adalah jumlah jenis tipe didefinisikan dalam elemen target.Metrik ini mencakup rincian berdasarkan apakah jenisnya adalah kelas atau interface. 20. Weighted Methods Weighted Methodsadalah jumlah kompleksitas siklomatik dari masing-masing fungsi yang didefinisikan dalam elemen target.Kompleksitas cyclomatic dari fungsi tunggal adalah sebuah ukuran angka dari jalur yang berbeda pada saat fungsi dipanggil. Hal ini diukur dengan menambahkan satu jalur untuk fungsi dengan masing-masing jalur yang dibuat oleh pernyataan bersyarat (seperti "if" dan "for") dan operator (such? :).
2.8
Android Safaat (2012, p1) Android adalah sebuah sistem operasi untuk perangkat
mobile berbasis linux yang mencakup sistem operasi, middleware dan aplikasi. Android merupakan sistem operasi pertama yang memiliki platform mobile lengkap, terbuka dan bebas. Berikut ini adaalah penjelasan platform pada android :
54 1. Complete Platform (Lengkap) : para desainer dapat melakukan pendekatan yang komprehensif ketika sedang mengembangkan platform android. Android merupakan sistem operasi yang aman dan banyak menyediakan tools dalam membangun software dan memungkinkan untuk peluang pengembangan aplikasi 2. Open Source Platform (Terbuka) : platform android di sediakan melalui lisensi
open
source
pengembang
dapat
dengan
bebas
untuk
mengembangkan aplikasi. Andoid sendiri menggunakan Linux Kernel 2.6. 3. Free Platform (Bebas) : android adalah platform atau aplikasi yang bebas untuk develop. Tidak ada lisensi atau biaya royalti untuk dikembangkan pada platform android. Tidak ada biaya keanggotaan yang diperlukan. Tidak diperlukan biaya pengujian. Tidak ada kontrak yang diperlukan. Aplikasi untuk android dapat didistribusikan dan diperdagangkan dalam bentuk apapun. Beberapa fitur – fitur android yang paling penting adalah : 1. Framework aplikasi yang mendukung penggantian komponen dan reuseable. 2. Mesin virtual dalvik dioptimalkan untuk perangkat mobile. 3. Integrated browser berdasarkan engine open source webkit. 4. Grafis yang dioptimalkan dan didukung oleh libraries grafis 2D, grafis 3D berdasarkan spesifikasi opengl ES 1,0 (optional akselerasi hardware). 5. SQLite untuk penyimapanan data.
55 6. Media support yang mendukung audio, video dan gambar (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF), GSM telephony (tergantung hardware). 7. Bluetooth, EDGE, 3G dan Wi-Fi (tergantung hardware). 8. Kamera, GPS, kompas, dan accelerometer (tergantung hardware). 9. Lingkungan development yang lengkap dan kaya termasuk perangkat emulator, tools untuk debugging, profil dan kinerja memori dan plug-in untuk IDE Eclipse. 2.8.1 Arsitektur Android Secara garis besar arsitektur android berfungsi mempermudah penggunaan kembali komponen yang sudah digunakan sebelumnay. Dan dapat dijelaskan dan digambarkan sebagai berikut : 1. Applications and Widgets adalah layer dimana developer dapat berhubungan dengan aplikasi saja. Di layer ini terdapat aplikasi inti termasuk client email, program sms, kalender, peta, browser, contact dan lain-lain. Semua aplikasi ditulis menggunakan bahasa pemrograman Java. 2. Applications Frameworks adalah fitur pada android yang menawarkan bagi developer atau memberi kemampuan pada developer untuk membangun aplikasi yang inovatif dan bagus. Pengembang dapat mengakses perangkat keras, informasi resource, menjalankan service background, mengatur alarm dan menambahkan status notification. Pengembang memiliki akses penuh menuju API framework seperti yang dilakukan oleh aplikasi yang kategori inti. Komponen yang termasuk dalam
56 applications frameworks adalah views, content provider, resource manager, notification manager dan activity manager. 3. Libraries adalah layer dimana fitur-fitur android berada, biasanya para pembuat aplikasi mengakses libraries untuk menjalankan aplikasinya. Berjalan diatas kernel, layer ini meliputi berbagai library C / C++ inti seperti Libc dan SSL, serta : a) Libraries media untuk pemutaran media audio dan video. b) Libraries untuk manajemen tampilan. c) Libraries graphics mencakup SGL dan OpenGl untuk grafis 2D dan 3D. d) Libraries SQLite untuk dukungan database. e) Libraries SSL dan Webkit terintegrasi dengan web browser dan security. f) Libraries LiveWebcore mencakup modern web browser dengan engine embedded web view. g) Libraries 3D yang mencakup implementasi opengl ES 1,0 API’s. 4. Android Run Time adalah layer yang membuat aplikasi android dapat
dijalankan
dimana
dalam
prosesnya
menggunakan
implementasi linux. Dalvik Virtual Maachine (DVM) merupakan mesin yang membentuk dasar kerangka aplikasi android. Di dalam android run time dibagi menjadi 2 bagian yaitu Core Libraries berfungsi sebagai penerjemah bahasa Java / C dan DVM yang
57 berfungsi sebagai virtual machine berbasis register yang dioptimalkan fungsi-fungsi secara efisien. 5. Linux Kernel adalah layer dimana inti dari operating system dari android itu berada. Berisi file-file sistem yang mengatur sistem processing, memory, resource, drivers, dan sistem-sistem operasi android lainnya. Linux kernel yang digunakan adalah linux kernel release 2.6. 2.8.2 Komponen Aplikasi Android Dalam bukunya Murphy(2011,p5) terdapat komponen penting dalam android bahwa satu aplikasi dapat menggunakan elemen dari aplikasi lain (untuk aplikasi yang memungkinkan). Sebagai contoh,sebuah aplikasi memerlukan fitur scroller dan aplikasi lain telah mengembangkan fitur scroller yang baik dan memungkinkan aplikasi lain menggunakannya. Maka pengembang tidak perlu lagi mengembangkan hal serupa untuk aplikasinya, cukup menggunakan scroller yang telah ada. Agar fitur tersebut dapat bekerja, sistem harus dapat menjalankan aplikasi ketika setiap bagian aplikasi itu dibutuhkan, dan pemanggilan objek java untuk bagian itu. Oleh karenanya Android berbeda dari sistem-sistem lain, Android tidak memiliki satu tampilan utama program seperti fungsi main() pada aplikasi lain. Sebaliknya, aplikasi memiliki komponen penting yang memungkinkan sistem untuk memanggil dan menjalankan ketika dibutuhkan. 1. Activities
58 Activity merupakan bagian yang paling penting dalam sebuah aplikasi,karena Activity menyajikan tampilan visual program yang sedang digunakan olehpengguna. Setiap Activity dideklarasikan dalam sebuah kelas yang bertugas untuk menampilkan antarmuka pengguna yang terdiri dari Views dan respon terhadap Event . Ketika activity diambil dan disimpan dalam tumpukkan activity terdapat 4 kemungkinan kondisi transisi yang akan terjadi 4: •
Active, setiap activity yang berada ditumpukan paling atas, maka dia akanterlihat, terfokus, dan menerima masukkan dari pengguna.
•
Paused, dalam beberapa kasus activity akan terlihat tapi tidak terfokus pada kondisi inilah disebut paused. Keadaan ini terjadi jika activity transparan dan tidak fullscreen pada layar. Ketika activity dalam keadaan paused , dia terlihat active namun tidak dapat menerima masukkan dari pengguna.
•
Stopped, ketika sebuah activity tidak terlihat, maka itulah yang disebut stopped Activity akan tetap berada dalam memori dengan semua keadaandan informasi yang ada. Namun akan menjadi kandidat utama untuk dieksekusi oleh sistem ketika membutuhkan sumberdaya lebih.
•
Inactive, kondisi ketika activity telah dihentikan dan sebelum dijalankan. Inactive activity telah ditiadakan dari tumpukan activity sehingga perlu restart ulang agar dapat tampil dan digunakan kembali.
59 2. Services Suatu service tidak memiliki tampilan antarmuka, melainkan berjalan di background untuk waktu yang tidak terbatas. Komponen service diproses tidak terlihat, memperbarui sumber data dan menampilkan notifikasi. Service digunakan untuk melakukan pengolahan data yang perlu terus diproses, bahkan ketika Activity tidak aktif atau tidak tampak. 3. Content Providers Content Providers digunakan untuk mengelola dan berbagi database. Data dapat disimpan dalam file sistem, dalam database SQLite, atau dengan cara lain yang pada prinsipnya sama. Dengan adanya Content Provider memungkinkan antar aplikasi untuk saling berbagi data. 4. Intents Intens merupakan sebuah mekanisme untuk menggambarkan tindakan tertentu, seperti memilih foto, menampilkan halaman web, dan lain sebagainya. Intents tidak selalu dimulai dengan menjalankan aplikasi, namun juga digunakan oleh sistem untuk memberitahukan ke aplikasi bila terjadi suatu hal, misal pesan masuk.
2.9
Database Pengertian database menurut para ahli : 1. O’Brien (2006, p213), database adalah kumpulan terintegrasi dari elemen data yang berelasi secara logika. Sebuah database menyatukan banyak
60 record yang telah disimpan sebelumnya, agar supaya sekumpulan data yang umum dapat dignakan untuk banyak aplikasi. 2. Connolly (2005, p15), database adalah suatu kumpulan data logika yang berhubungan satu sama lain, dan didesain dari sebuah informasi untuk memenuhi yang dibutuhkan dari satu perusahaan. Database dapat diartikan sebagai kumpulan data yang terdiri atas satu atau lebih tabel yang mempunyai kaitan satu dengan lainnya dimana tabel yang ada saling menunjang dalam menyajikan informasi yang dibutuhkan oleh pengguna atau pengolah data tersebut bagi pengguna dan perusahaan. Database mempunyai peranan yang sangat penting dalam menunjang sistem yang ada, sekaligus merupakan salah satu indikasi keberhasilan suatu sistem dalam menyajikan informasi yang akurat dan relevan. Tujuan utama pengunaan konsep database (McLeod, 2001, p182) : 1. Mengurangi data redundancy Data redundancy adalah duplikasi dari data, maksudnya adalah data yang sama disimpan berulang-ulang pada banyak file. 2. Meningkatkan data independence Data independence adalah kemampuan untuk merubah struktur data tanpa harus mengubah aplikasi yang memproses data tersebut. Database disusun berdasarkan tabel-tabel dan tabel-tabel disusun berdasarkan record-record yang ada. Tabel berfungsi untuk menyimpan data dan merupakan suatu kumpulan data yang berhubungan dengan topik tertentu. Misalnya daftar mahasiswa atau daftar barang. Database terdiri dari beberapa objek antara lain yaitu : 1. Field
61 Field adalah kumpulan dari beberapa karakteristik dari objek – objek yang ada. 2. Record Record adalah kumpulan dari field yang berhubungan satu sama lain. Contohnya: nama, alamat, nomor karyawan, nomor telepon, dan sebagainya. 3. File File atau berkas adalah kumpulan dari beberapa record yang berhubungan membentuk saling ketergantungan satu dengan yang lain. Contohnya: transaksi pada perusahaan yang recordnya tercatat tanggal, kode, barang dan harga. 4. Entity Entity adalah satu kesatuan yang terdiri dari informasi yang disimpan. Contohnya: pelanggan, karyawan, barang, dan sebagainya. 5. Attribute Atribut adalah nama dari suatu kolom relasi yang menjelaskan suatu entity. Contohnya nama, nomor karyawan, nomor telepon, dan sebagainya. 6. Primary Key Primary Key adalah sebuah field yang mempunyai nilai unik yan tidak memiliki kesamaan antara record yang satu dengan record yang lain. 7. Foreign Key Foreign key adalah satu atribut atau kumpulan atribut dalam satu relasi yang berguna untuk menghubungkan primary key lain yang berada dalam tabel lain.