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.
11
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. Perubahanperubahan 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) :
Plaintext
Chipertext Enkripsi
Plaintext Dekripsi
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
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.
kunci plaintext
kunci ciphertext
Enkripsi
plaintext Dekripsi
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.
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
Tabel 1. Jumlah Putaran Pengoperasian AES Panjang AES-128 AES-192 AES-256
128 bit 192 bit 256 bit
Panjan 128 bit 128 bit 128 bit
Jumlah 10 12 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:
25
Putaran 1 Plaintext
- Penambahan Kunci
Putaran 2 - Subtitusi Byte - Pergeseran Baris - Percampuran Kolom - Penambahan Kunci
Putaran 3 - Subtitusi Byte - Pergeseran Baris - Percampuran Kolom - Penambahan Kunci
Putaran Terakhir - Subtitusi Byte
Chipertext
- Pergeseran Baris - Penambahan Kunci
Gambar 2.3 Proses Enkripsi pada AES
26
Putaran 1 Chipertext
- 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
Plaintext
- Inversi Percampuran Kolom - Penambahan Kunci
Gambar 2.4 Proses Dekripsi pada AES
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
Gambar 2.5 Satu Operasi MD5
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
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) :
Tabel 2.2 Simbol – simbol dalam Class Diagram Nama Class
Keterangan 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
Simbol
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 menampilkan
Composition
dan
juga
dapat
hukum-hukum
Jika sebuah class tidak bisa berdiri sendiri dan harus merupakan bagian dari class yang lain, maka class tersebut memiliki relasi Composition terhadap
Dependency
class tempat dia bergantung tersebut. Kadangkala sebuah class menggunakan class yang lain. Hal ini disebut dependency. Umumnya penggunaan dependency digunakan untuk
Aggregation
menunjukkanmengindikasikan operasi pada suatu class Aggregation 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) : Tabel 2.3 Simbol – simbol dalam Activity Diagram
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
35
tahap sebelumnya yaitu tahap requirement. Secara umum tahapan pada model Waterfall dapat dilihat pada gambar berikut (Pressman 2010 : 39 ):
Gambar 2.6 Waterfall Pressman
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.
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.