bab ii landasan teori - library & knowledge...
TRANSCRIPT
11
BAB II
LANDASAN TEORI
2.1 Teori Umum
Teori umum adalah teori – teori pokok yang dipakai sebagai landasan untuk teori – teori
lainnya
2.1.1 Android
Menurut Safaat (2012 : 1), Android adalah sistem operasi berbasis Linux bagi telepon
seluler seperti telepon pintar dan komputer tablet. Android juga menyediakan platform terbuka
bagi para pengembang untuk menciptakan aplikasi mereka sendiri yang akan digunakan untuk
berbagai macam piranti gerak. Awalnya, Google Inc. membeli Android Inc., pendatang baru
yang membuat piranti lunak untuk ponsel. kemudian dalam pengembangan Android, dibentuklah
Open Handset Alliance, konsorsium dari 34 perusahaan piranti keras, piranti lunak, dan
telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia.
Dalam sub bab ini, kami akan membahas mengenai berbagai macam hal mengenai
Android, serta tools apa saja yang akan digunakan untuk mengembangkan aplikasi yang kami
rancang ini.
12
2.1.1.2 Versi Android
Safaat (2012 : 10) memaparkan penjelasan berbagai macam versi Android seperti di
bawah ini :
1. Android versi 1.1
Pada 9 Maret 2009, Google merilis Android versi 1.1. Android versi ini dilengkapi
dengan pembaruan estetis pada aplikasi, jam alarm, voice search (pencarian suara), pengiriman
pesan dengan Gmail, dan pemberitahuan email.
2. Android versi 1.5 (Cupcake)
Pada pertengahan Mei 2009, Google kembali merilis telepon seluler dengan
menggunakan Android dan SDK (Software Development Kit) dengan versi 1.5 (Cupcake).
Terdapat beberapa pembaharuan untuk penambahan beberapa fitur dalam seluler versi ini yakni
kemampuan merekam dan menonton video dengan modus kamera, mengunggah video ke
Youtube dan gambar ke Picasa langsung dari telepon, dukungan Bluetooth A2DP, kemampuan
terhubung secara otomatis ke headset Bluetooth, animasi layar, dan keyboard pada layar yang
dapat disesuaikan dengan sistem.
3. Android versi 1.6 (Donut)
Donut (versi 1.6) dirilis pada September dengan menampilkan proses pencarian yang
lebih baik dibanding sebelumnya, penggunaan indikator baterai dan kontrol applet VPN. Fitur
lainnya adalah galeri yang memungkinkan pengguna untuk memilih foto yang akan dihapus;
13
kamera, camcorder dan galeri yang dintegrasikan; CDMA / EVDO, 802.1x, VPN, Gestures, dan
Text-to-speech engine; kemampuan dial kontak; teknologi text to change speech (tidak tersedia
pada semua ponsel; pengadaan resolusi VWGA.
4. Android versi 2.0/2.1 (Eclair)
Pada 3 Desember 2009 kembali diluncurkan ponsel Android dengan versi 2.0/2.1
(Eclair), perubahan yang dilakukan adalah pengoptimalan hardware, peningkatan Google Maps
3.1.2, perubahan UI dengan browser baru dan dukungan HTML5, daftar kontak yang baru,
dukungan flash untuk kamera 3,2 MP, digital Zoom, dan Bluetooth 2.1.
Agar dapat bergerak cepat dalam persaingan perangkat generasi yang berikutnya, Google
melakukan investasi dengan mengadakan kompetisi aplikasi mobile terbaik (killer apps - aplikasi
unggulan). Kompetisi ini berhadiah $25,000 bagi setiap pengembang aplikasi terpilih. Kompetisi
diadakan selama dua tahap yang tiap tahapnya dipilih 50 aplikasi terbaik.
Dengan semakin berkembangnya dan bertambahnya jumlah handset Android, semakin
banyak pihak ketiga yang berminat untuk menyalurkan aplikasi mereka dalam sistem operasi
Android. Aplikasi terkenal yang diubah ke dalam sistem operasi Android adalah Shazam,
Backgrounds, dan WeatherBug. Sistem operasi Android dalam situs Internet juga dianggap
penting untuk menciptakan aplikasi Android asli, contohnya oleh MySpace dan Facebook.
5. Android versi 2.2 (Froyo: Frozen Yoghurt)
Pada 20 Mei 2010, Android versi 2.2 (Froyo) diluncurkan. Perubahan-perubahan umum
terhadap versi – versi sebelumnya antara lain dukungan Adobe Flash 10.1, kecepatan kinerja
14
dan aplikasi 2 sampai 5 kali lebih cepat, intergrasi V8 JavaScript engine yang dipakai Google
Chrome yang mempercepat kemampuan rendering pada browser, pemasangan aplikasi dalam
SD Card, kemampuan WiFi Hotspot portabel, dan kemampuan auto update dalam aplikasi
Android Market.
6. Android versi 2.3 (Gingerbread)
Pada 6 Desember 2010, Android versi 2.3 (Gingerbread) diluncurkan. Perubahan-
perubahan umum yang didapat dari Android versi ini antara lain peningkatan kemampuan
permainan (gaming), peningkatan fungsi copy paste, layar antar muka (User Interface) yang
sudah didesain ulang, dukungan format video VP8 dan WebM, efek audio baru (reverb,
equalization, headphone virtualization, dan bass boost), dukungan kemampuan Near Field
Communication (NFC), dan dukungan jumlah kamera yang lebih dari satu.
7. Android versi 3.0/3.1 (Honeycomb)
Android Honeycomb dirancang khusus untuk tablet. Android versi ini mendukung ukuran
layar yang lebih besar. User Interface pada Honeycomb juga berbeda karena sudah didesain
untuk tablet. Honeycomb juga mendukung multi processor dan juga akselerasi perangkat keras
(hardware) untuk grafis. Tablet pertama kali yang dibuat dengan menjalankan Honeycomb
adalah Motorola Xoom. Perangkat tablet tersebut bernama Eee Pad Transformer yang
merupakan produk dari Asus yang masuk ke pasar Indonesia pada Mei 2011.
15
8. Android versi 4.0 (ICS: Ice Cream Sandwich)
Pada tanggal 19 Oktober 2011, diperkenalkannya Android versi 4.0 yang membawa fitur
Honeycomb untuk smartphone, menambahkan fitur baru termasuk membuka kunci dengan
pengenalan wajah, jaringan data pemantauan penggunaan dan kontrol, kontak jaringan sosial
terpadu, perangkat tambahan fotografi, pencarian email secara offline, dan berbagi informasi
dengan menggunakan NFC. Ponsel pertama yang menggunakan sistem operasi ini adalah
Samsung Galaxy Nexus.
9. Android versi 4.1 (Jelly Bean)
Android Jelly Bean yaang diluncurkan pada acara Google I/O membawa sejumlah
keunggulan dan fitur baru. Adapun penambahan fitur baru diantaranya yaitu meningkatkan input
keyboard, desain baru fitur pencarian, UI yang baru dan pencarian melalui Voice Search yang
lebih cepat.
Google Now yang juga menjadi bagian yang diperbarui pun tak ketinggalan. Google Now
memberikan informasi yang tepat pada waktu yang tepat pula. Salah satu kemampuannya adalah
dapat mengetahui informasi cuaca, lalu-lintas, ataupun hasil pertandingan olahraga. Sistem
operasi Android Jelly Bean 4.1 muncul pertama kali dalam produk tablet Asus, yakni Google
Nexus 7.
2.1.1.3 Fitur Android
Adapun beberapa fitur – fitur menurut Safaat (2012 : 5) yang tersedia di Android adalah
sebagai berikut ini :
16
• Kerangka aplikasi: memungkinkan penggunaan dan penghapusan komponen yang
tersedia.
• Dalvik mesin virtual: mesin virtual dioptimalkan untuk perangkat telepon seluler.
• Grafik: grafik di 2D dan grafis 3D berdasarkan pustaka OpenGL.
• SQLite: untuk penyimpanan data.
• Mendukung media: audio, video, dan berbagai format gambar (MPEG4, H.264, MP3,
AAC, AMR, JPG, PNG, GIF)
• GSM, Bluetooth, EDGE, 3G, 4G dan WiFi (tergantung piranti keras)
• Kamera, Global Positioning System (GPS), kompas, NFC dan accelerometer (tergantung
piranti keras)
2.1.1.4 Android SDK
Menurut Safaat (2012 : 5), Android SDK adalah tools API (Application Programming
Interface) yang diperlukan untuk mengembangkan aplikasi pada platform Android yang
menggunakan bahasa pemrograman Java. Android merupakan subset perangkat lunak untuk
ponsel yang meliputi sistem operasi, middleware dan aplikasi kunci yang di-release oleh Google.
Saat ini disediakan Android SDK (Software Development Kit) sebagai alat bantu dan API untuk
mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman Java.
Sebagai platform Android aplikasi – netral, Android memberi Anda kesempatan untuk membuat
Aplikasi yang kita butuhkan yang bukan merupakan aplikasi bawaan Handphone/Smartphone.
17
2.1.1.5 ADT (Android Development Tools)
Safaat (2012 : 6) juga memaparkan bahwa Android Development Tools (ADT) adalah
plug-in yang didesain untuk IDE Eclipse yang memberi kita kemudahan dalam mengembangkan
aplikasi Android dengan menggunakan IDE Eclipse. Dengan menggunakan ADT untuk Eclipse,
ini akan memudahkan kita dalam membuat aplikasi project Android, membuat GUI aplikasi, dan
menambahkan komponen – komponen yang lainnya. Selain itu kita juga dapat melakukan
running aplikasi menggunakan Android SDK melalui Eclipse. Dengan ADT kita juga dapat
melakukan pembuatan package Android (.apk) yang digunakan untuk distribusi aplikasi Android
yang kita rancang.
Mengembangkan aplikasi Android dengan menggunakan ADT di Eclipse sangat mudah
dan baik untuk memulai mengembangkan aplikasi Android. Semakin tinggi platform Android
yang kita gunakan, maka penggunaan ADT dianjurkan untuk memakai versi yang lebih baru,
karena munculnya platform baru diikuti oleh munculnya versi ADT yang terbaru. Versi ADT
yang kami gunakan untuk Eclipse dalam pembuatan aplikasi ini adalah versi terbaru ADT yang
telah dirilis, yaitu ADT 20.0.3 (Agustus 2012).
2.1.1.6 AVD (Android Virtual Device)
Menurut Safaat (2012 : 19), AVD merupakan emulator yang digunakan untuk
menjalankan program aplikasi Android yang telah dirancang. AVD dapat dikonfigurasi agar
dapat menjalankan berbagai macam versi Android yang telah diinstal. Dalam perancangan
aplikasi ini, kami menggunakan konfigurasi Android versi 4.0 (Ice Cream Sandwich)
18
2.1.2 IDE Eclipse
Menurut Fatimah (2011), Eclipse adalah sebuah IDE (Integrated Development
Environment) untuk mengembangkan perangkat lunak agar dapat dijalankan di semua platform
(platform-independent). Berikut ini adalah sifat dari Eclipse:
• Multi-platform: Target sistem operasi Eclipse adalah Microsoft Windows, Linux, Solaris,
AIX, HP-UX dan Mac OS X.
• Mulit-language: Eclipse dikembangkan dengan bahasa pemrograman Java, akan tetapi
Eclipse mendukung pengembangan aplikasi berbasis bahasa pemrograman lainnya,
seperti C/C++, Java, Cobol, Python, Perl, PHP, dan lain sebagainya.
• Multi-role: Selain sebagai IDE untuk pengembangan aplikasi, Eclipse pun dapat
digunakan untuk aktivitas dalam siklus pengembangan perangkat lunak, seperti
dokumentasi, test perangkat lunak, pengembangan web, dan lain sebagainya.
Eclipse pada saat ini merupakan salah satu IDE favorit dikarenakan gratis dan bersifat
open source, yang berarti setiap orang boleh melihat kode pemrograman perangkat lunak ini.
Selain itu, kelebihan dari Eclipse adalah kemampuannya untuk dapat dikembangkan oleh user
dengan komponen yang dinamakan plug-in. Eclipse yang kami gunakan untuk mengembangkan
aplikasi ini adalah Eclipse Classic 4.2.1
19
2.1.3 JDK (Java Development Kit)
Menurut DeCoster (2012), Java adalah sebuah teknologi yang diperkenalkan oleh Sun
Microsysytems pada pertengahan tahun 1990. Menurut definisi Sun, Java adalah nama untuk
sekumpulan teknologi untuk membuat dan menjalankan perangkat lunak pada
computer standalone ataupun pada lingkungan jaringan. Untuk membuat program Java
dibutuhkan kompiler dan interpreter untuk program Java berbentuk Java Development Kit (JDK)
yang diproduksi oleh Sun Microsystems. Sebelum memulai instalasi Android SDK, terlebih
dahulu kita harus melakukan instalasi JDK di komputer. JDK yang kami gunakan untuk dapat
mengompilasi aplikasi android yang kami rancang ini adalah Java SE Development Kit 7
2.1.4 Kriptografi
Menurut Sadikin (2012 : 9), suatu sistem kriptografi (kriptosistem) bekerja dengan cara
menyandikan suatu pesan menjadi suatu kode rahasia yang hanya dimengerti oleh pelaku sistem
informasi saja. Pada dasarnya mekanisme kerja semacam ini telah dikenal sejak jaman dahulu.
Bangsa Mesir kuno sekitar 4000 tahun yang lalu bahkan telah mempraktekkannya dengan cara
yang sangat primitif.
Namun pada pengertian modern, Kriptografi adalah ilmu yang bersandarkan pada teknik
matematika yang berkaitan dengan keamanan informasi seperti kerahasiaan, keutuhan data dan
otentikasi tentitas. Jadi pengertian kriptografi modern adalah tidak hanya berkaitan dengan
penyembunyian pesan namun lebih tertuju pada sekumpulan teknik yang menyediakan kemanan
informasi. Berikut ini diberikan beberapa istilah yang umum digunakan dalam pembahasan
kriptografi.
20
1. Plaintext
Plaintext (message) merupakan pesan asli yang ingin dikirimkan dan dijaga
keamanannya. Pesan ini tidak lain berupa dari informasi tersebut.
2. Chipertext
Chipertext merupakan pesan yang telah dikodekan (disandikan) sehingga siap untuk
dikirimkan.
3. Chiper
Chiper merupakan algoritma matematis yang digunakan untuk proses penyandian
plaintext menjadi ciphertext.
4. Enkripsi
Enkripsi (encryption) merupakan proses yang dilakukan untuk menyandikan plaintext
sehingga menjadi chipertext.
5. Dekripsi
Dekripsi (decryption) merupakan proses yang dilakukan untuk memperoleh kembali
plaintext dari chipertext.
21
Urutan-urutan proses kriptografi dapat digambarkan sebagai berikut (Sadikin, 2012) :
Gambar 2.1. Mekanisme Kriptografi
Pada dasarnya, prosesnya sangat sederhana. Sebuah plaintext (m) akan dilewatkan pada
proses enkripsi (E) sehingga menghasilkan suatu ciphertext (c). Kemudian untuk memperoleh
kembali plaintext, maka ciphertext (c) melalui proses dekripsi (D) yang akan menghasilkan
kembali plaintext (m). Secara matematis proses ini dapat dinyatakan sebagai berikut :
E(m) = c
D(c) = m
D(E(m)) = m
Kriptografi sederhana seperti ini menggunakan algoritma penyandian yang disebut
cipher. Keamanannya bergantung pada kerahasiaan algoritma penyandian tersebut, karena itu
algoritmanya harus dirahasiakan. Pada kelompok dengan jumlah besar dan anggota yang
senantiasa berubah, penggunaannya akan menimbulkan masalah. Jika ada anggota yang
meninggalkan kelompok, maka algoritma harus diganti karena anggota ini bisa saja
membocorkan algoritma.
Kriptografi modern selain memanfaatkan algoritma juga menggunakan kunci (key) untuk
memecahkan masalah tersebut. Proses enkripsi dan dekripsi dilakukan dengan menggunakan
Plaintext Chipertext Plaintext
Enkripsi Dekripsi
22
kunci ini. Setiap anggota masing-masing memiliki kunci yang digunakan untuk proses enkripsi
dan dekripsi yang akan dilakukannya. Dengan demikian ada sedikit perubahan yang harus
dilakukan pada mekanisme yang digambarkan pada gambar 2.1 menjadi seperti gambar 2.2
berikut ini.
Gambar 2.2 Kriptografi Berbasis Kunci
Mekanisme kriptografi seperti ini dinamakan kriptografi berbasis kunci. Dengan
demikian kriptosistemnya akan terdiri atas algoritma dan kunci, beserta segala plaintext dan
ciphertextnya.
Persamaan matematisnya menjadi seperti berikut,
Ee(m) = c
Dd(c) = m
Dd(Ee(m)) = m
Dengan : e = kunci enkripsi, d = kunci dekripsi.
kunci
plaintext ciphertext plaintext
Enkripsi Dekripsi
kunci
23
2.1.4.1 AES (Advanced Encryption Standard)
Menurut Adiwidya (2009), AES dipublikasikan oleh NIST (National Institute of
Standard and Technology) pada tahun 2001 yang digunakan untuk menggantikan algoritma
DES yang semakin lama semakin mudah untuk membobol kuncinya. AES diperoleh dari hasil
kompetisi yang diadakan NIST pada tahun 1997. Pada tahap pertama, 15 peserta dari 21 peserta
lolos ke tahap berikutnya berdasarkan penilaian tingkat keamanan, harga, algoritma, dan
karakteristik implementasi. Sepuluh dari 15 peserta tersebut gugur pada tahap berikutnya
karena dianggap kurang aman dan kurang efektif. Pada Agustus 1999 dipilih lima kandidat
untuk seleksi akhir, yaitu Mars (IBM, Amerika Serikat), RSA (RSA corp., Amerika Serikat),
Rijndael (Belgia), Serpent (Israel, Norwegia, dan Inggris), dan Twofish (Counterpane, Amerika
Serikat).
Pada tahap ini, NIST memberikan penilaian terhadap general security, implementasi
software, ruang lingkup, implementasi hardware, implementasi atas serangan, enkripsi dan
dekripsi, kemampuan kunci, kemampuan lain dan fleksibilitas, dan kepotensialan untuk tingkat
intruksi paralel. Akhirnya, pada tanggal 2 Oktober 2000 terpilihlah algoritma Rijndael, yang
dibuat oleh Dr. Vincent Rijment dan Dr. Joan Daemen, sebagai pemenang.
Dalam proses enkripsi input, diperlukanlah empat macam operasi yang dilakukan
berulang-ulang dalam beberapa putaran dan menggunakan kunci cipher. Jumlah putaran yang
digunakan algoritma ini ada tiga macam seperti pada tabel di bawah ini.
24
Panjang Panjan Jumlah
AES-128 128 bit 128 bit 10 AES-192 192 bit 128 bit 12 AES-256 256 bit 128 bit 14
� Operasi
Ada empat macam operasi yang dilakukan setiap putaran.
� Putaran
Seperti yang di ketahui sebelumnya pada Tabel 1.Jumlah putaran pengoperasian blok input
untuk setiap macam panjang blok berbeda-beda akan tetapi , jumlah putaran untuk proses
enkripsi dan dekripsi tetap sama .Proses enkripsi dan dekripsi dapat di gambarkan sebagai
berikut:
Tabel 1. Jumlah Putaran Pengoperasian AES
25
Putaran 1
- Penambahan Kunci
Gambar 2.3 Proses Enkripsi pada AES
Plaintext
Putaran 2
- Subtitusi Byte
- Pergeseran Baris
- Percampuran Kolom
- Penambahan Kunci
Putaran 3
- Subtitusi Byte
- Pergeseran Baris
- Percampuran Kolom
- Penambahan Kunci
Putaran Terakhir
- Subtitusi Byte
- Pergeseran Baris
- Penambahan Kunci
Chipertext
26
Gambar 2.4 Proses Dekripsi pada AES
Chipertext
Putaran 1
- Penambahan Kunci
Putaran 2
- Inversi Subtitusi Byte
- Inversi Pergeseran Baris
- Inversi Percampuran Kolom
- Penambahan Kunci
Putaran 3
- Inversi Subtitusi Byte
- Inversi Pergeseran Baris
- Inversi Percampuran Kolom
- Penambahan Kunci
Putaran Terakhir
- Inversi Subtitusi Byte
- Inversi Pergeseran Baris
- Inversi Percampuran Kolom
- Penambahan Kunci
Plaintext
27
2.1.4.2 MD5
Menurut Abrari (2010) ,dalam ilmu kriptografdi, MD5 (Message Digest Algorithm
Version 5) adalah salah satu hasil algoritma hash yang paling popular. Hash atau Hashing
merupakan proses perubahan suatu data menjadi data lain dengan panjang tertentu,sedemikian
sehingga data itu tidak dapat dipulihkan kembali.Teknik ini biasa digunakan dalam enkripsi
data,misalnya untuk menyimpan password agar tidak ada yang mengetahuinya meskipun dia
dapat melihat hash dari password itu.
Algoritma hash MD5 sendiri menerima input berupa data dengan panjang bebas, dan
menghasilkan output heksadesimal sepanjang 32 karakter.jadi seberapapun panjang data input,
output yang di hasilkan akan selalu sepanjang 32 karakter. Perubahan sedikit sajaj di input akan
mengubah output dengan drastis. Sebagai contoh :
Input: Test
Output: 0cbc6611f5540bd0809a388dc95a615b
Misalkan kita ubah input dengan huruf kecil:
Input: test
Output: 098f6bcd4621d373cade4e832627b4f6
28
Simbol s menunjukkan perputaran bit kiri oleh s; s bervariasi untuk tiap-tiap operasi.
menunjukkan tambahan modulo 232. MD5 memproses variasi panjnag pesan kedalam keluaran
128-bit dengan panjang yang tetap. Pesan masukan dipecah menjadi dua gumpalan blok 512-bit;
Pesan didata sehingga panang pesan dapat dibagi 512. Penataaan bekerja sebagai berikut: bit
tunggal pertama, 1, diletakkan pada akhir pedan. Proses ini di ikuti oleh serangkaian nol (0) yang
di perlukan agar panjang pesan lebih dari 64-bit dan kurang dari kelipatan 512. Bit-bit sisa diisi
dengan diisi 64-bit interger untuk menunjukkan panjang pesan yang asli. Sebuah pesan selalu
ditata setidaknya dengan 1-bit tunggal, seperti jika panjang pesan adalah kelipatan 512 dikurangi
64-bit untuk informasi panjang (panjang mod(512) = 448), sebuah blok baru dari 512-bit di
tambahkan dengan 1-bit diikuti dengan 447 bit-bit nol (0) diikuti dengan panjang 64-bit.
Algoratima MD5 yang utama beroperasi pada kondisi 128-bit, dibagi menjadi empat
word 32-bit, menunjukkan A,B,C, dan D.Operasi tersebut diinsialisasi dijaga untuk tetap
konstan. Algortima untuk kemudian beroperasi pada masing-masing blok pesan 512-bit, masing
– masing blok melakukan pengubahan terhadap kondisi.pemrosesan blok pesan terdiri atas empat
tahap,batasan putaran; tiap putusan membuat 16 operasi serupa berdasar pada fungsi non-linear
Gambar 2.5 Satu Operasi MD5
29
F, tambhan modular, dan rotasi ke kiri. Gambar 2.1 mengilustrasikan satu operasi dalam putaran.
Ada empat macam kemungkinan fungsi F,berbeda dari yang di gunakan pada tiap-tiap putaran:
menunjukkan operasi logikan XOR, AND, OR dan NOT.
2.2 Teori Khusus
Teori khusus adalah teori – teori yang berhubungan dengan topic yang dibahas dalam
skripsi ini
2.2.1 Unified Modeling Language (UML)
2.2.1.1 Use Case Diagram
Menurut Fowler dan Scot (2000 : 39), use – case diagaram adalah gambaran graphical
dari beberapa atau semua actor , use – case, dan interaksi antara komponen - komponen tersebut
yang memperkenalkan suatu system yang akan dibangun. Use – case diagram menjelaskan
manfaat suatu system jika dilihat menurut pandang orang yang berada di luar system. Diagram
ini menunjukkan fungsionalitas suatu system atau kelas dan bagaimana system tersebut
berinteraksi dengan dunia luar.
Use – case diagram dapat digunakan selamam proses analisi untuk menangkap
requirement sisem dan untuk memahami bagaimana system seharusnya bekerja. Selama tahap
30
desain. Use-case diagram berperan untuk menetapkan perilaku(behavior) sistem saat
diimplementasikan.
Dalam sebuah model mungkin terdapat satu atau beberapa use – case diagram.
Kebutuhan atau requirements system adalah fungsionalitas apa yang harus disediakan oleh
system kemudian didokumentasikan pada mdoel use-case yang menggambarkan fungsi system
yang diharapkan (use - case), dan mengelilinginya (actor), serta hubungan antara actor dengan
use-case (use – case diagram) itu sendiri.
2.2.1.1.1 Actor
Pada dasarnya actor bukanlah bagian dari use-case diagram, namun untuk dapat
terciptanya suatu use – case diagram diperlukan beberapa actor. Actor tersebut
mempresentasikan seseorang atau sesuatu (seperti perangkat, sistem lain) yang berinteraksi
dengan sistem. Sebuah actor mungkin hanya memberikan informasi inputan pada sistem, hanya
menerima informasi dari system atau keduannya menerima dan memberiinformasi pada sistem.
Actor hanya berinteraksi dengan use – case ,tetapi tidak memiliki control atas use –
case.Actor digambarkan dengan stick man.Actor dapat dapat digambarkan secara umu atau
spesifik,dimanan untuk membedakannya kita dapat menggunakan relationship.
Ada beberapa kemungkinan yang menyebakan actor tersebut terkait dengan sistem antara lain:
− Yang berkepentingan terhadap sistem dimana adanya arus informasi ,baik yang
diterimanya maupun yang dia inputkan ke sistem
− Orang atau pihak yang akan mengelola sistem tersebut
31
− External resource yang digunakan oleh sistem
− Sistem lain yang berinteraksi dengan sistem yang akan dibuat
2.2.1.1.2 Use-case
Use – case adalah gambaran fungsionalitas dari suatu sistem, pengguna sistem paham
dan mengerti mengenai kegunaan system yang akan dibangun. Use-case diagram adalah
penggambaran sistem dari sudut pandang pengguna sistem tersebut (users), sehingga pembuatan
use-case lebih dititikberatkan pada fungsionalitas yang ada pada sistem, bukan berdasarkan alur
atau urutan kejadian.
Berikut ini simbol – simbol yang digunakan oleh perancangan use-case diagram :
Tabel 2.1 Simbol – simbol dalam Class Diagram
32
2.2.1.2 Class Diagram
Menurut Fowler dan Scott (2003 : 53),Class diagram mendeskripsikan jenis – jenis
obyek dalam sistem dan berbagai macam hubungan statis yang terjadi.Class diagram juga
menunjukkan property dan operasi sebuah Class dan batasan yang terdapat dalam hubungan
dengan obyek,Class diagram merupakan alat terbaik dalam perancangan perangkat lunak. Class
diagram membantu pengembang mendapatkan struktur sistem dan menghasilkan rancangan
sistem yang baik.
Berikut ini simbol – simbol yang digunakan oleh perancangan Class diagram
(Booch,1999) :
Nama
Keterangan
Simbol Class Class adalah blok-blok pembangunan
pada pemograman berorientasi obyek.
Sebuah kotak yang terbagi atas 3
bagian.Bagian atas dalah bagian anama
dari class. Bagian tengah mendefenisikan
Tabel 2.2 Simbol – simbol dalam Class Diagram
33
Association Sebuah asosiasi merupakan sebuah
relationship paling umum antara 2 class
dan dilambangkan oleh sebuah garis
yang menghubungkan antara 2 class.
Garis ini bisa melambangkan tipe-tipe
relationship dan juga dapat
menampilkan hukum-hukum
Composition Jika sebuah class tidak bisa berdiri
sendiri dan harus merupakan bagian
dari class yang lain, maka class tersebut
memiliki relasi Composition terhadap
class tempat dia bergantung tersebut.
Dependency Kadangkala sebuah class menggunakan
class yang lain. Hal ini disebut
dependency. Umumnya penggunaan
dependency digunakan untuk
menunjukkan operasi pada suatu class
Aggregation Aggregation mengindikasikan
keseluruhan bagian relationship dan
biasanya disebut sebagai relasi
2.2.1.3 Activity Diagram
Menurut Fowler dan Scott (2000 : 129),Activity Diagram adalah representasigrafis dari
alur kerja tahapan aktivitas.Diagram ini mendukung pilihan tindakan, iterasi, dan
concurrency.Pada pemodelan UML activity diagram dapat digunakan untuk menjelaskan bisnis
34
dan alur kerja professional/secara step-by-step dari komponen suatu sistem. Activity diagram
menunjukkan keseluruhan dari aliran kontrol.
Berikut ini adalah symbol – symbol yang digunakan dalam perancangan Activity
Diagram (Booch, 1999) :
2.2.2 Waterfall Process Model
Nama model ini sebenarnya adalah “Linear Sequential Model”.Model ini sering di sebut
dengan “classic life cycle” atau model waterfall. Model ini adalah model yang muncul pertama
kali yaitu sekitar tahun 1970 sehingga sering dianggap kuno. Tetapi merupakan model yang
paling banyak di pakai di dalam Software Engineering (SE).
Model ini melakukan pendekatan secara sistematis dan urut mulai dari level kebutuhan
sistem lalu menuju ke tahap analisis,desain,coding,testing/verification dan maintenance. Disebut
dengan waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap
sebelumnya dan berjalan berurutan. Sebagai contoh tahap desain harus menunggu selesainya
Tabel 2.3 Simbol – simbol dalam Activity Diagram
35
tahap sebelumnya yaitu tahap requirement. Secara umum tahapan pada model Waterfall dapat
dilihat pada gambar berikut (Pressman 2010 : 39 ):
1. Communication
Langkah ini merupakan analisis terhadap kebutuhan software, dan tahap
mengadakan pengumpulan data dengan melakukan pertemuan dengan costumer, maupun
mengumpulkan data – data tambahan baik yang ada di jurnal, artikel, maupun dari
internet
2. Planning
Proses planning merupakan lanjutan dari proses communication (analysis
requirement). Tahapan ini akan menghasilkan dokumen user requirement atau bisa
dikatakan sebagai data yang berhubungan dengan keinginan user dalam pembuatan
software, termasuk rencana yang akan dilakukan.
Gambar 2.6 Waterfall Pressman
36
3. Modeling
Proses modeling ini akan menerjemahkan syarat kebutuhan ke sebuah
perancangan software yang dapat diperkirakan sebelum dibuat coding. Proses ini
berfokus pada rancangan struktur data, arsitektur data, arsitektur software, representasi
interface, dan detail (algoritma) procedural. Tahapan ini akan menghasilkan dokumen
yang disebut software requirement.
4. Construction
Construction merupakan proses membuat kode. Coding atau pengkodean
merupakan penerjemahan desain dalam bahasa yang bisa dikenali oleh komputer.
Programmer akan menerjemahkan transaksi yang diminta oleh user. Tahapan inilah yang
merupakan tahapan secara nyata dalam mengerjakan suatu software, artinya penggunaan
komputer akan dimaksimalkan dalam tahapan ini. Setelah pengkodean selesai maka akan
dilakukan testing terhadap sistem yang telah dibuat tadi. Tujuan testing adalah
menemukan kesalahan – kesalahan terhadap sistem tersebut untuk kemudian bisa
diperbaiki.
5. Deployment
Tahapan ini bisa dikatakan final dalam pembuatan sebuah software atau sistem.
Setelah melakukan analisis, desain dan pengkodean maka sistem yang sudah jadi akan
digunakan oleh user. Kemudian software yang telah dibuat harus dilakukan pemeliharaan
secara berkala.
37
2.2.3 Blackbox Testing
Menurut Pressman (2010) metode uji coba blackbox memfokuskan pada keperluan
fungsional dari software. Karena itu uji coba blackbox memungkinkan pengembang software
untuk membuat himpunan kondisi input yang akan melatih seluruh syarat – syarat fungsional
suatu program. Uji coba blackbox bukan merupakan alternatif dari uji coba whitebox, tetapi
merupakan pendekatan yang melengkapi untuk menemukan kesalahan lainnya, selain
menggunakan metode whitebox.
Uji coba blackbox berusaha untuk menemukan kesalahan dalam beberapa kategori, di
antaranya :
1. Fungsi – fungsi yang salah atau hilang
2. Kesalahan interface
3. Kesalahan dalam struktur data atau akses database eksternal
4. Kesalahan performa
5. Kesalahan inisialisasi dan terminasi
Tidak seperti metode whitebox yang dilaksanakan di awal proses, uji coba blackbox
diaplikasikan di beberapa tahapan berikutnya. Karena uji coba blackbox dengan sengaja
mengabaikan struktur kontrol, sehingga perhatiannya difokuskan pada informasi domain.
Uji coba blacbox didesain untuk dapat menjawab pertanyaan – pertanyaan berikut :
1. Bagaimana validitas fungsionalnya diuji?
2. Jenis input seperti apa yang akan menghasilkan kasus uji yang baik ?
38
3. Apakah sistem secara khusus sensitif terhadap nilai input tertentu ?
4. Bagaimana batasan – batasan kelas data diisolasi?
5. Berapa rasio data dan jumlah data yang dapat ditoleransi oleh sistem?
6. Apa akibat yang akan timbul dari kombinasi spesifik data pada operasi sistem?
Dengan mengaplikasikan uji coba blackbox, diharapkan dapat menghasilkan sekumpulan
kasus uji yang memenuhi kriteria berikut :
1. Kasus uji yang berkurang, jika jumlahnya lebih dari 1, maka jumlah dari uji kasus
tambahan harus didesain untuk mencapai uji coba yang cukup beralasan
2. Kasus uji yang memberitahukan sesuatu tentang keberadaan atau tidaknya suatu jenis
kesalahan, dari pada kesalahan yang terhubung hanya dengan suatu uji coba yang
spesifik.
Comparison Testing
Dalam beberapa situasi (seperti : aircraft avionic, nuclear power plant control) dimana
keandalan suatu software amat kritis, beberapa aplikasi sering menggunakan software dan
hardware ganda (redundant). Ketika software redundant dibuat, tim pengembangan software
lainnya membangun versi independen dari aplikasi dengan menggunakan spesifikasi yang sama.
Setiap versi dapat diuji dengan data uji yang sama untuk memastikan seluruhnya menyediakan
output yang sama. Kemudian seluruh versi dieksekusi secara paralel dengan perbandingan hasil
real-time untuk memastikan konsistensi.