Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
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 teknik-
teknik 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 prinsip-
prinsip 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-perangkat-
lunak.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 persyaratan-
persyaratan 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 fungsi-
fungsi 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 Gambar Nama Keterangan
1 ActorMenspesifikasikan himpunan peran yang pengguna mainkan ketika berinteraksi dengan use case
3 GeneralizationHubungan dimana objek anak (descendent) berbagi perilaku dan struktur data dari objek yang ada di atasnya objek induk (ancestor)
4 Include Menspesifikasikan bahwa use case sumber secara eksplisit
21
5 ExtendMenspesifikasikan bahwa use case target memperluas perilaku dari use case sumber pada suatu titik yang diberikan
6 Association Apa yang menghubungkan antara objek yang satu dengan objek lainnya
7 System Menspesifikasikan paket yang menampilkan sistem secara terbatas
8 Use CaseDeskripsi 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 masing-masing kelas antarmuka saling berinteraksi satu sama lain
2 Action State dari sistem yang mencerminkan eksekusi dari suatu aksi
3 Start State Bagaimana objek dibentuk atau diawali
4 End State Bagaimana objek dibentuk dan dihancurkan
5 State Transitio State transition menunjukan kegiatan apa berikutnya setelah suatu kegiatan
6Fork
Percabangan yang menunjukan aliran pada Activity Diagram
7 Join Penggabungan yang menjadi arah aliran pada Activity Diagram
8 Decision Pilihan untuk mengambil keputusan
9 Flow Final Aliran akhir
Berikut ini adalah contoh activity diagram dalam proses payment.
24
act Payment
Select Payment
View Cashier Menu
Final
Confirm
View Payment
Start
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 Symbol Accessible toPublic + Semua objek yang terdapat
pada sistem dan dapat diakses di semua class
Protected # Dapat diakses oleh class itu sendiri dan class
turunannyaPrivate - Hanya dapat diakses oleh
class itu sendiriPackage ~ 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 Meaning0..1 Zero or one1 One only0..* Zero or more1..* One or moreN Only n (where n > 1)* Many0..n Zero to n (where n > 1)1..n One to n (where n > 1)n..m Where n and m both > 1n..* 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.
3Composite
Composite adalah varian yang lebih kuat dari “memiliki” atau hubungan asosiasi; composite lebih spesifik dari agregasi.
4 ClassHimpunan dari objek-objek yang berbagi atribut serta operasi yang sama.
7 Dependency 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
sebuah use case atau operasi. Diagram ini mengilustrasikan
27
bagaimana proses terkirim dan diterima di antara objek dan dalam
sekuensi apa. Whitten (2004, p419).
2. Teknik pemodelan yang dinamis seperti UML diagram
komunikasi 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 kira-
kira 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
System::TampilanKasir System::Form_Bayar
Cashier
System::MejaUITampilanKasir
Selec Table toPayment()
requestTable()
cekTable()
getTable()
cekPayment()
getPayment()
Display Payment()
Confirm Payment()
confirm()
setEmpty()
Table Has BeenClear ()
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/prot-doc/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
32
5. 802.5 Token Ring LAN
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
Kecepatan Frekuensi Band Sesuai Spesifikasi802.11b 11 Mbps 2.4 GHz B802.11a 54 Mbps 5 GHz A802.11g 54 Mbps 2.4 GHz b, g802.11n 100 Mbps 2.4 GHz 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 ad-
hoc 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
harus melewati Access Point terlebih dahulu, baru kemudian
dapat menggunakan sumber daya yang ada pada jaringan.
36
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
seperti Microsoft Windows, sepanjang program tersebut berbicara dalam
protokol transfer yang sama. Fasilitas-fasilitas yang disediakan oleh mesin
37
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.
Dalam pemrograman socket terdapat dua tipe socket yang paling
sering digunakan yaitu “Stream Socket” dan “Datagram Socket” yang lebih
38
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:
1. Connection oriented
2. Reliable
39
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
Keterangan:
1. Source port (16 bits), Berisi informasi port pengirim.
40
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 di-
set, 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)
d) ACK (ACKnowledgement)
e) PSH (Push Function)
41
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.
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:
42
- 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 :
Gambar 2.9 Alur Program Socket TCP
Fungsi socket protocol TCP
43
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.
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
44
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
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
45
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.
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
46
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 :
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
47
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 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:
48
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
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
49
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 Cyclomatic Complexity adalah rata-rata
kompleksitas siklomatik dari masing-masing 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
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.
50
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.
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.
51
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
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
52
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 adalah jumlah paket yang
didefinisikan dalam elemen target.
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
53
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 :
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.
54
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.
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.
55
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
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.
56
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
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.
57
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
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.
58
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.
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
59
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
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.
60
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
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
61
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.