BAB II LANDASAN TEORI
2.1
Matriks Transformasi Linear Secara umum transformasi (pemetaan) didefinisikan darisuatu himpunan ke
himpunan lain. Pada bab ini transformasi dari suatu ruang vektor ke ruang vektor yang lain, sehingga operasi standar pada ruang vektor (penjumlahan dan perkalian dengan skalar) tetap berlaku. Dengankata lain, transformasi ini dapat dipandang sebagai fungsi bernilai vektor yang berasal dari peubah yang vektor juga. Jadi,domain dan kodomain fungsi ini adalah berupa vektor. MisalkanV dan W merupakan ruang vektor dan T menkaitkan vektor unikdi W dengan setiap vektor di V maka dapat kita katakan bahwa Tmemetakan V ke W. Selanjutnya, T dinamakan Transformasi dariV ke W.
Kita akan memfokuskan padaT yang
bersifat linear,sehingga T dinamakan transformasi linear (Anton, 1990: 229). Transformasi linear dari Rn ke Rm merupakan transformasi matriks. Jika F:V W adalah sebuah fungsi dari ruang vektor V kedalam ruang vektor W, maka F disebut transformasi linier, jika : (i)
F(u+v) = F(u) + F(v), untuk semua vector u dan v di V
(ii)
F(ku) = kF(u) untuk semua vector u didalam V dan semua skalar k
Misalkan F:R2 R3 adalah sebuah fungsi yang didefinisikan oleh : F(v) = (x, x+y, x-y) Jika u=(x1, y1) dan v=(x2, y2) maka u + v = (x1 + x2 ,y1 + y2) Sehingga , F(u + v)= (x1 + x2, [x1 + x2]+[ y1 + y2], [x1 + x2]-[ y1 + y2]) = (x1, x1 + y1, x1 - y1) + (x2, x2 + y2, x2 – y2) = F(u) + F(v)
5
6
Demikian juga jika k adalah sebuah skalar, ku = (kx1, ky1) sehingga F(ku) = (kx1, kx1 + ky1, kx1 - ky1) = k(x1, x1 + y1, x1 - y1) = k F(u) Jadi F adalah sebuah transformasi linier Transformasi Linier dari Rn Rm Misalkan e1, e2, . . . , en adalah basis baku untuk Rn dan misalkan A adalah sebuah matrik m x n yang mempunyai T(e1), T(e2), . . . , T(en) sebagai vektor– vektor kolomnya. Misal jika T:R2 R2 diberikan oleh :
Maka
x x1 2 x2 T 1 x2 x1 x2
1 1 T(e1) = T= 1 0
2 0 dan T(e2) = T = 1 1
Jadi A = 1 2 adalah matrik baku untuk T di atas. 1 1
2.1.1
Jenis – JenisTransformasi Linier bidang
Terdapat empat jenis transformasi linier bidang yang mempunyai makna khusus : Rotasi ( perputaran ), Refleksi, Ekspansi dan Kompresi, Pergeseran. 1. Rotasi ( perputaran ) Jika T: R2 R2untukmasing-masing titik dalam bidang terhadap titik asal atau O (0,0) melalui sudut , kita dapatkan bahwa matrik baku untuk T adalah
cos sin
sin cos
Rotasi : objek dirotasi (diputar) terhadap titik tertentu tanpa mengubah bentuk dan ukurannya.
6
7
Tabel 2.1.1-1 Matriks Rotasi
2. Refleksi Refleksi terhadap sebuah garis l adalah transformasi yang memetakan masing – masing titik pada bidang kedalam bayangan cerminnya terhadap garis l. Matriksbakuuntuk :
x x a. refleksi terhadap sumbu y ( yang mengubah menjadi ) adalah : y y 1 0 0 1 x x b. refleksi terhadap sumbu x ( yang mengubah menjadi ) adalah : y y 1 0 0 1
x y c. refleksi terhadap garis y = x ( yang mengubah menjadi ) adalah : y x 0 1 1 0
3. Ekspansi dan Kompresi Jika koordinat x dari masing – masing titik pada bidang dikalikan dengan konstanta k yang positif dimana k > 1, maka efeknya adalah memperluas gambar bidang dalam arah x. Jika 0 < k < 1 maka efeknya adalah mengkompresi gambar bidang dalam arah x. Disebut dengan ekspansi (kompresi) dalam arah x dengan faktor k.
8
Matriks baku untuk transformasi ini adalah :
k 0
0 1
Demikian juga, jika koordinat y dari masing – masing titik pada bidang dikalikan dengan konstanta k yang positif dimana k > 1, maka efeknya adalah memperluas gambar bidang dalam arah y. Jika 0 < k < 1 maka efeknya adalah mengkompresi gambar bidang dalam arah y. Disebut dengan ekspansi (kompresi) dalam arah y dengan faktor k. Matriks baku untuk transformasi ini adalah :
1 0
0 k
4. Pergeseran Sebuah geseran dalam arah x dengan faktor k adalah transformasi yang menggerakkan masing-masing titik (x,y) sejajar dengan sumbu x sebanyak ky menuju kedudukan yang baru (x + ky, y) Matriks baku untuk transformasi ini adalah :
1 0
k 1
Sebuah geseran dalam arah y dengan faktor k adalah transformasi yang menggerakkan masing – masing titik (x,y) sejajar dengan sumbu y sebanyak kx menuju kedudukan yang baru (x , y + kx) Matriks baku untuk transformasi ini adalah :
1 k
0 1
Jika dilakukan banyak sekali transformasi matrik dari Rn ke Rmsecara berturutan, maka hasil yang sama dapat dicapai dengan transformasi matrik tunggal. Jika transformasi–transformasi matrik T1(x) = A1x, T2(x) = A2x, , .... , Tn(x) = Anx, Dari Rn ke Rm dilakukan berurutan, maka hasil yang sama dapat dicapai dengan transformasi matrik tunggal T(x) = Ax, dimana A = Ak . . . A2 A1
9
2.2
Rekayasa Perangkat Lunak
Rekayasa Perangkat Lunak merupakan sebuah disiplin ilmu yang mempelajari semua aspek produksi dalam suatu proses perancangan perangkat lunak (Sommerville 2003:17). Metode waterfall merupakan salah satu paradigma dalam pengembangan perangkat
lunak
yang
sistematis,
dilakukan
secara
berututan
untuk
mengembangkan perangkat lunak yang dimulai dari analisis, perancangan, pengkodean, pengujian dan pemeliharaan (Pressman 2002:39). Metode Waterfall mencakup beberapa aktifitas sebagai berikut: a. Analisa Kebutuhan Proses pengumpulan kebutuhan perangkat lunak yang bertujuan untuk memahami karakteristik sistem yang akan dibangun. Analisa kebutuhan ini harus memahami tingkah laku sistem, informasi apa saja yang dibutuhkan serta interface yang dibutuhkan. b. Perancangan Proses perancangan/desain perangkat lunak yaitu proses yang dilakukan multi tasking yang di fokuskan pada struktur data, astitektur, representasi interface serta detail proseduralnya. Pada proses desain ini berfungsi menterjemahkan kebutuhan sistem kedalam gambaran perangkat lunak sebelum di mulai melakukan pengkodean dengan tujuan untuk melihat kualitas dari perangkat lunak yang akan dibangun.
c. Development / Pengkodean Semua desain yang dibuat diaplikasikan pada proses pengkodean sehingga sistem akan terbentuk dan dapat segera digunakan.
d. Pengujian / Testing Untuk mengetahui keberhasilan sebuah pembangunan sistem, maka dilakukan pengujian untuk melihat kualitas sistem yang dibuat, memastikan bahwa semua fungsional sistem berjalan lancar sehingga sistem yang dihasilkan dapat memberikan hasil yang diharapkan.
10
e. Pemeliharaan Setiap perangkat lunak yang dibuat pasti akan mengalami perkembangan, maka pada tahapan ini dibutuhkan pemeliharaan sistem agar kebutuhan user dapat terpenuhi dengan baik. Pemeliharaan perangkat lunak mengaplikasikan setiap interface program yang dibuat dan jika terjadi kesalahan pada interface tersebut bisa ditangani pada tahapan ini.
Android
2.3 2.3.1
PengertiandanFungsi Android
Android adalah sebuah sistem informasi untuk perangkat lunak mobile berbasis linux yang mencakup sistem informasi, middleware dan aplikasi.Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka (Safaat, 2011). Android memiliki empat karakteristik sebagai berikut : 1. Terbuka Android dibangun untuk benar-benar terbuka sehingga sebuah aplikasi dapat dibangun untuk memanggil salah satu inti ponsel seperti membuat panggilan, mengirim pesan teks, menggunakan kamere dan lain-lain.Android menggunakan sebuah mesin virtual yang dirancang khusus untuk mengoptimalkan sumber daya memori dan perangkat keras yang terdapat didalam perangkat.Android merupakan open source yang dapat secara bebas diperluas untuk memasukan teknologi baru yang lebih maju pada saat teknologi tersebut muncul.Platform ini akan terus berkembang untuk membangun aplikasi mobile yang inovatif. 2. Semua aplikasi dibuat sama Android tidak membedakan aplikasi utama pada telepon dengan aplikasi dari pihak ketiga (third-party application). Semua aplikasi dapat dibangun untuk memiliki akses yang sama terhadap kemampuan sebuah telepon dalam menyediakan layanan dan aplikasi yang luas terhadap pengguna. 3. Memecahkan hambatan pada aplikasi Android memecah hambatan untuk membangun sebuah aplikasi yang baru dan invovatif.Misalnya, aplikasi dapat dibangun dan dikembangkan dengan memiliki
11
hubungan langsung dengan informasi yang tersedia pada web seperti lokasi geografis dan lain-lain. 4. Pengembangan aplikasi yang cepat dan mudah Android menyediakan akses yang sangat luas terhadap pengguna untuk menggunakan library yang diperlukan dan tools yang sesuai untuk penggunaan aplikasi. Android memiliki sekumpulan tools yang dapat digunakan untuk para pengembang dalam memningkatkan kreativitas dan produktivitas aplikasi yang dibuat. Android bukan sekedarhanya untuk perangkat mobile saja, android merupakan sebuah sistem operasi yang dikemas sedemikian rupa sehingga dapat digunakan untuk berbagai perangkat yang menggunakan layar (Simmonds,2010). 2.3.2
Perkembangan Android
Android versi 1.0 dikeluarkan tanggal 23 September 2008. Versi 1.1 adalah versi yang pertama kali digunakan di mobile phone disusul versi 1.5 (Cupcake), 1.6 (Donut) dst. Versi Android terakhir adalah: 1. Android versi 1.1 Android memang diluncurkan pertama kali pada tahun 2007, namun sistem operasi ini mulai dirilis dan diterapkan ke berbagai gadget pada tanggal 9 Maret 2009 silam. Android versi 1.1 merupakan Android awal yang dimana versi ini baru memberikan sentuhan dibeberapa aplikasinya seperti sistem antar muka bagi pengguna (user interface) yang lebih baik, serta beberapa aplikasi yang lain. 2. Android versi 1.5 (Cupcake) Pada bulan Mei 2009 Android kembali mengalami perubahan versi.Android versi 1.1 kemudian disempurnakan dengan Android versi 1.5 atau yang dikenal sebagai Android Cupcake. 3. Android versi 1.6 (Donut) Donut (versi 1.6) diluncurkan dalam tempo kurang dari 4 bulan semenjak peluncuran perdana Android Cupcake, yaitu pada bulan September 2009. 4. Android versi 2.0/2.1 (Eclair)
12
Masih ditahun yang sama, Android kembali merilis operating sistem versi terbarunya, yaitu Android versi 2.0/2.1 Eclair. Android Eclair diluncurkan oleh Google 3 bulan setelah peluncuran. 5. Android versi 2.2 (Froyo: Frozen Yoghurt) Butuh 5 bulan bagi Google untuk melakukan regenerasi dari Android Eclair versi sebelumnya ke versi Froyo Frozen Yoghurt.Pada tanggal 20 Mei 2010, Android versi 2.2 alias Android Froyo ini dirilis. Froyo mempercepat kinerja dengan Just In Time compiler dan Chrome V8 JavaScript engine, Wi-Fi hotspot tethering dan suppport Adobe Flash. 6. Android versi 2.3 (Gingerbread) 7 bulan kemudian Android kembali melakukan gebrakan dengan merilis kembali Android versi 2.3 atau yang dikenal sebagai Android Gingerbread. Gingerbread memperbaiki user interface, soft keyboard, copy/paste features dan support Near Field Communication (NFC). 7. Android versi 3.0/3.1 (Honeycomb) Pada bulan Mei 2011 Android versi 3.0/3.1 atau Android Honeycom dirilis. Android Honeycomb merupakan sebuah sistem operasi Android yang tujuannya memang dikhususkan bagi penggunaan tablet berbasis Android. Diperuntukkan untuk tablet yang menggunakan layar lebih besar, multicore processors dan hardware acceleration untuk grafis. 8. Android versi 4.0 (ICS: Ice Cream Sandwich) Android ICS atau Ice Cream Sandwich juga dirilis pada tahun yang sama dengan Honeycomb, yaitu pada bulan Oktober 2011. Kombinasi Gingerbread and 3.0 Honeycomb. Integrasi antara platform untuk tablet dan smartphone. 9. Android versi 4.1 (Jelly Bean) Android Jelly Bean merupakan versi Android yang terbaru pada saat ini.Salah satu gadget yang menggunakan sistem operasi Jelly Bean adalah Google Nexus 7 yang diprakarsai oleh ASUS, vendor
13
asal Taiwan yang juga menjadi teman satu kampung halaman dengan Acer. User interface yang lebih halus (project butter). 10. Android versi 4.4 (Kit Kat) Kehadiran android kitkat merupakan pelucuran produk OS anyar yang dilucurkan pada 4 september 2013, sebelumnya banyak kabar beredar jikalau android akan meluncurkan OS baru yang bernama Android Key Lime Pie namun setelah di analalisa tidak sesuai dengan ejaan orang umum, sehingga namanya diganti dengan OS Android KitKat yang sebagian besar orang sudah familiar dengan itu . Kit Kat perbaikan kinerja. Adapun beberapa fitur pendukung android sebagai berikut : 1. Android Software Development Kit (Android SDK) Android SDK merupakan
tools
bagi
para
programmer
yang
ingin
mengembangkan aplikasi berbasis google android. Android SDK mencakup seperangkat alat pengembangan yang komprehensif. Android SDK terdiri dari debugger, libraries, handset emulator, dokumentasi, contoh kode dan tutorial. IDE yang didukung secara resmi adalah Eclipse 3.5 atau lebih dengan menggunakan plugin Android Development Tools (ADT), dengan ini pengembang dapat menggunakan teks editor untuk mengedit file Java dan XML serta menggunakan peralatan command line untuk menciptakan, membangun, melakukan debug aplikasi Android dan pengendalian perangkat Android. 2. Dalvik Debug Monitor Server (DDMS) DDMS
merupakan
tools
debugging
pada
Android
yang
menyediakan pengambilan gambar layar pada device, informasi thread dan heap pada device, logcat untuk melihat informasi tentang proses yang sedang berjalan, melihat pesan error yang dikirimkan, warning, proses, panggilan masuk dan SMS, data lokasi, dan lainnya. DDMS diintegrasikan kedalam Eclipse dan juga terdapat dalam direktori /tools/ pada Android SDK. 3. Android Development Tools (ADT)
14
ADT
adalah
plugin
untuk
Eclipse
yang
didesain
untuk
pengembangan aplikasi Android. ADT memungkinkan Eclipse untuk digunakan dalam membuat aplikasi Android baru, membuat User Interface, menambahkan komponen berdasarkan framework API Android, debug aplikasi, dan pemaketan aplikasi Android. 4. Eclipse Integrated Development Environment (Eclipse IDE) IDE adalah program komputer yang memiliki beberapa fasilitas yang diperlukan dalam pembangunan perangkat lunak.Tujuan dari IDE adalah untuk menyediakan semua utilitas yang diperlukan dalam membangun perangkat lunak. Eclipse adalah sebuah IDE untuk mengembangkan perangkat lunak dan dapat dijalankan di semua platform (platform-independent). Untuk mengembangkan aplikasi diAndroid, bahasa utama yang digunakan adalah Java, tetapi bukan dalam platform J2ME yang memiliki banyak keterbatasan.Platform yang digunakan di Android setara dengan J2SE, dan ini merupakan kelebihan utama Android. Fitur-fitur utama Android yang dapat dimanfaatkan oleh pengembang app sebagai berikut:
Database denganSQLite.
Menulis dan membaca file di SD card.
Integrated browser berbasis WebKit engine
2D graphics library; dan OpenGL ES 2.0 untuk 3D graphics
Lokasi dan sensor: GPS, compass, gyroscope, barometer, light sensor, accelerometer.
Renderscript untuk pemrosesan paralel memanfaatakan CPU dan GPU
Kamera, Audio capture, Jetplayer, Media support untuk MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF
GSM Telephony: fasilitas telepon dan SMS.
Connectivity: USB, Bluetooth, NFC, SIP (Session Initiation Protocol, internet telephony khusunya untuk video conference dan instant messaging) dan WiFi
15
2.3.3
Multitouch
Tools Pengembang Android (ECLIPSE)
Eclipse adalah sebuah IDE (Integrated Development Environment) untuk mengembangkan perangkat lunak dan dapat dijalankan di semua platform (platform-independent). Eclipse dikembangkan dengan bahasa pemrograman Java, akan tetapi Eclipse mendukung pengembangan aplikasi berbasis bahasa pemrograman lainnya, seperti C/C++, Cobol, Python, Perl, PHP, dan lain sebagainya. Selain sebagai IDE untuk pengembangan aplikasi, Eclipse pun bisa 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 open source, yang 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 komponen yang dinamakan plug-in. Elipse+AVR plugin, dengan tambahan plugin tersebut kita dapat memprogram mikrokontroler AVR menggunakan IDE ini, selain itu keuntungan menggunakan eclipse ialah dapat bekerja di berbagai sistem operasi seperti Microsoft Windows, Linux, Solaris, AIX, HP-UX dan Mac OS X. Nah sebelum menambahkan plugin ini kedalam eclipse temen2 perlu menginstal WINAVR dan AVR toolchain untuk mengaktifkan AVR GCC. Untuk mengembangkan aplikasi di Android, bahasa utama yang digunakan adalah Java, tetapi bukan dalam platform J2ME yang memiliki banyak keterbatasan. Platform yang digunakan di Android setara dengan J2SE, dan ini merupakan kelebihan utama Android.
2.4
Pembelajaran Belajar adalah proses perubahan perilaku secara aktif, proses mereaksi
terhadap semua situasi yang ada disekitar individu, proses yang diarahkan pada suatu tujuan, proses berbuat melalui berbagai pengalaman, proses melihat, mengamati, dan memahami sesuatu yang dipelajari. Dan pembelajaran yang
16
diindentikan dengan kata “Mengajar” berasal dari kata dasar “Ajar” yang berarti petunjuk yang diberikan kepada orang supaya diketahui (diturut) ditambah dengan awalan “pe” dan akhiran “an” menjadi “Pembelajaran”, yang berarti proses perbuatan, cara mengajar atau mengajarkan sehingga anak didik mau belajar. Pembelajaran adalah proses interaksi peserta didik dengan pendidik dan sumber belajar pada suatu lingkungan belajar. Pembelajaran merupakan bantuan yang diberikan pendidik agar dapat terjadi proses pemerolehan ilmu dan pengetahuan, penguasaan kemahiran dan tabiat, serta pembentukan sikap dan kepercayaan pada peserta didik. Dengan kata lain pembelajaran adalah proses untuk membantu peserta didk agar dapat belajar dengan baik. 2.4.1 Teori-Teori Pembelajaran a. Berhavioristik Pembelajaran selalu memberi stimulus kepada siswa agar menimbulkan respon yang tepat seperti yang kita inginkan. Hubungan Stimulus dan respon ini bila diulang akan menjadi sebuah kebiasaan. Selanjutnya, bila siswa menemukan kesulitan atau masalah, guru menyuruhnya untuk mencoba dan mencoba lagi (Trial and error ) sehingga akhirnya diperoleh hasil. b. Kognitivisme Pembelajaran adalah dengan mengaktifkan indra siswa agar memperoleh pemahaman sedangkan pengaktifan indra dapat dilaksanakan dengan jalan menggunakan media / alat bantu. Disamping itu penyampaian pengajaran dengan berbagai variasi artinya menggunakan banyak metode.
c. Humanistik Dalam pembelajaran ini guru sebagai pembimbing memberi pengarahan agar siswa dapat mengaktualisasikan dirinya sendiri sebagai manusai yang unik untuk mewujudkan potensi-potensi yang ada dalam dirinya sendiri. Dan siswa perlu melakukan sendiri berdasarkan inisiatif sendiri yang melibatkan pribadinya secara utuh (perasaan maupun intelektual) dalam proses belajar, agar dapat memperoleh hasil.
17
d. Sosial/ Pemerhatian/Pemodelan Proses pembelajaran melalui proses pemerhatian dan pemodelan Bandura mengenal pasti empat unsur utama dalam proses pembelajaran melalui pemerhatian atau pemodelan, yaitu pemerhatian (attention), mengingat (retention), reproduksi(reproduction), dan penangguhan (reinforcement), motivasi (motivion).
2.4.2 Ciri-Ciri Pembelajaran Ada enam ciri pembelajaran yang efektif, yaitu : 1. Siswa menjadi pengkaji yang aktif terhadap lingkungannya melalui mengobservasi, mambandingkan, menemukan kesamaan-kesamman dan perbedaan-perbedaan serta membentuk konsep dan generalisasi berdasarkan kesamaan-kesaamaan yang ditemukan. 2. Guru menyediakan materi sebagai focus berfikr dan berinteraksi dalam pelajaran. 3. Aktivitas-aktivitas siswa sepenuhnya didasarkan pada pengkajian. 4. Guru secara aktif terlibat dalam pemberian arahan dan tuntunan kepada siswa dalam menganalisis informasi. 5. Orientasi pembelajaran penguasaan isi pelajaran dan pengembangan keterampilan berpikir. Guru menggunakan teknik mengajar yang bervariasi sesuai dengan tujuan dan gaya mengajar guru.
2.5
Unified Modelling Language Unified Modelling Language (UML) adalah keluarga notasi grafis yang
didukung oleh meta-model tunggal, yang membantu pendeskripsian dan desain sistem perangkat lunak, khususnya system yang dibangun menggunakan pemrograman berorientasi objek (Fowler, 2005:1). Unified Modeling Language (UML) adalah sebuah “bahasa” yang telah menjadi
standar
dalam
industri
untuk
visualisasi,
merancang
dan
mendokumentasikan sistem perangkat lunak, baik untuk pemodelan bisnis
18
ataupun perangkat lunak yang lain.UML merupakan sebuah notasi pemodelan yang memiliki banyak aspek variasi dalam sebuah perangkat lunak (Grady Booch etal.2007:147). UML versi pertama kali yaitu versi 0.8 di release pada tahun 1995 dengan namaUnified Method. Sampai saat ini versi UML sudah mencapai versi 2.4.1 yang di release pada bulan agustus tahun 2011. Tipe diagram pada UML dibagi menjadi 2 kategoriyaitu : Structure Diagrams dan Behavior Diagrams. Structure Diagram menggambarkan aspek statis dari sistem yang kita buat. Behavior Diagrams menggambarkan aspek dinamis dari sistem yang kita buat. UML adalah sintaks umum untuk membuat model logika dari suatu sistem. Dan digunakan untuk menggambarkan sistem agar dapat dipahami selama fase analisis dan desain. Sintaks yang didesain bersifat independen dari bahasa target dan proses perangkat lunak/ tool, tapi cukup umum
fleksibel karena dapat
dimodifikasi dengan menggunakan definisi perluasan dan mengakomodasi hampir semua bahasa. Sintaks yang didefinisikan mudah dipahami, dan diaplikasikan ke dalam proyek. Ini memerlukan definisi himpunan simantik yang sesuai untuk proses arsitektur atau perangkat lunak. UML akan digunakan pada tahap analisa dan desain. Desain yang dihasilkan berupa diagram-diagram UML yang akan diterjemahkan menjadi kode program pada tahap implementasi. UML terdiri atas 13 jenis diagram resmi seperti tertulis dalam tabel 1(Munawar.2005).
Tabel 2.5.2 Jenis Diagram Resmi UML
No.
Diagram
Kegunaan
1.
Activity
Perilaku prosedural dan parallel
2.
Class
Class, Fitur, dan relasinya Interaksi diantara objek. Lebih menekankan
3.
Communication
ke link
4.
Component
Struktur dan koneksi dari komponen
5.
Composite Stucture
Dekomposisi sebuah class pada saat runtime
6.
Deployment
Penyebaran / instalasi ke klien
7.
Interaction Overview
Gabungan sequence dan activity diagram
19
8.
Object
Contoh konfigurasi dari contoh-contoh
9.
Package
Struktur hierarki saat kompilasi Inteksi antar objek. Lebih menekankan pada
10.
Sequence
urutan. Bagaimana event mengubah sebuah objek
11.
State machihne
selama aktif Interaksi diantara objek. Lebih menekankan
12.
Timing
waktu Bagaimana user berinteraksi dengan sebuah
13.
Use Case
sistem
Gambar 2.5.2 Diagram-diagram UML19
2.5.1
Use Case Diagram
Menurut Fowler (2003), Use case adalah teknik untuk menangkap persyaratan fungsional dari sebuah system. Use case diagram bekerja dengan menggambarkan interaksi khusus antara user dengan sistem, dan antar sistem itu sendiri. Use case diagram mengilustrasikan sekelompok use case sistem, aktor-aktor yang terlibat dan relasi antara use case dengan aktor tersebut (Larman,1998). Elemen-elemen penting dari sebuah use case diagram adalah: 1. Use case
20
Use case adalah serangkaian transaksi yang dilaksanakan oleh sistem dan mengasilkan keluaran yang bermanfaat bai aktor tertentu. 2. Aktor Aktor adalah sebuah entitas eksternal yang berperan dalam sebuah use case. Dimana aktor inilah yang berinteraksi sengan sistem. Tugas dari aktor antara lain : a. Memberikan informasi terhadap sistem. b. Menerima informasi dari sistem. 3. Hubungan (relationship) Hubungan antara use case dan aktor, hubungan terjadi karena ada interaksi. Use Case Diagram menggambarkan fungsionallitas dari sebuah sisitem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah Use Case Diagram mepresentasikan sebuah interaksi antara pengguna sistem dengan sistem. Use Case Diagram menggambarkan sebuah pekerjaan tertentu, misalnya login ke sistem, membuat sebuah daftar belanja, dan sebagainya. Aktor adalah sebuah entitas manusia atau sistem yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu. Notasi-notasi yang digunakan dalam pemodelan diagram use case dapat dilihat pada Tabel sebagai berikut: Tabel 3.5.1-1 Use Case Diagram
Notasi
Deskripsi Aktor, yang digunakan untuk menggambarkan pelaku atau pengguna. Pelaku inimeliputi manusia atau sistem komputer atau subsistem lain yang memiliki metode untuk malakukan sesuatu.
21
Use
Case,
digunakan
untuk
menggambarkan
spesifikasi pekerjaan ( job specification) dan deskripsi pekerjaan (job description), serta keterkaitan antar pekerjaan ( job). Aliran
yang
digunakan
untuk
menggambarkan
hubungan antara actor dengan use case. Aliran perpanjangan (extension ponit), digunakan untuk menggambarkan hubungan antara use case dengan use case yang diperpanjang (extended use case) maupun dengan use case yang dimasukkan (included use case). Aliran
proses
(relationship),
digunakan
untuk
menggambarkan hubungan antara use case dengan use case lainnya. <<extended>>
Kondisi yang mendeskripsikan apa yang terjadi antara use case dengan use case yang diperpanjang. Include adalah kondisi aliran proses langsung
<
>
(directed relationship) antara dua use case yang secara tak langsung menyatakan kelakuan (behaviour) dari use case yang dimasukkan.
<>
Adalah kondisi yang mendeskripsikan apa yang terjadi antara actor dengan use case.
Menurut Fowler (2003), Use case adalah teknik untuk menangkap persyaratan fungsional dari sebuah system. Use case diagram bekerja dengan menggambarkan interaksi khusus antara user dengan sistem, dan antar sistem itu sendiri. Use case diagram mengilustrasikan sekelompok use case sistem, aktor-aktor yang terlibat dan relasi antara use case dengan aktor tersebut (Larman,1998).
2.5.2
Activity Diagram
Menurut Fowler(2003), Activity diagram adalah teknik yang digunakan untuk menggambarkan logika prosedural, proses bisnis dan aliran proses. Menurut
22
Quatrani(1999), activity diagram memodelkan alur kerja sebuah sistem, yaitu menunjukkan aktivitas-aktivitas yang dilakukan dalam sistem tersebut. Activity diagram merupakan bagian dari model dinamis yang digunakan untuk menggambarkan work flow / proses sistem kita. Diagram ini menunjukkan bagaimana suatu proses dimulai, kemudian alur proses dari tiap keputusan yang ada hingga berakhirnya proses. Serta diagram ini juga memungkinkan untuk menampilkan proses yang terjadi secara pararel. Activity diagram memungkinkan siapapun yang melakukan proses untuk memilih urutan dalam melakukannya. Dengan kata lain, diagram hanya menyebutkan aturan-aturan rangkaian dasar yang harus kita ikuti. Hal ini penting untuk pemodelan bisnis karena proses-proses sering muncul secara paralel. Notasi-notasi yang digunakan dalam pemodelan diagram aktifitas dapat dilihat pada Tabel sebagai berikut: Tabel 2.5.2-1 Notasi Diagram Aktifitas
Notasi
Keterangan Titik awal digunakan untuk menggambarkan awal dari diagram aktifitas. Titik akhir (final action) untuk menggambarkan akhir dari diagram aktifitas. Activity/action digunakan untuk menggambarkan aktifitas dalam diagram aktifitas. Node keputusan (decision node), digunakan untuk menggambarkan kelakuan pada kondisi tertentu. Fork dan Join digunakan untuk menunjukan kegiatan
yang dilakukan secara paralel dan
digabungkan kembali.
Activity diagrammenggambarkan proses bisnis dan urutan aktivitas dalam sebuah proses. Dipakai pada business modeling untuk memperlihatkan urutan aktifitas proses bisnis. Struktur diagram ini mirip flowchart atau Data Flow Diagram pada perancangan terstruktur. Sangat bermanfaat apabila kita membuat diagram ini
23
terlebih dahulu dalam memodelkan sebuah proses untuk membantu memahami proses secara keseluruhan.
Gambar 2.5.2-1 Contoh Activity Diagram
2.5.3
Class Diagram
Menurut Grady Booch, James Rumbaugh dan Ivar Jacobson (2005, chap.8), “A class diagram is a diagram that shows a set of classes, interfaces, and collaborations and their relationships”, yang artinya class diagram adalah sebuah diagram yang
menampilkan kumpulan dari template suatu objek, operasiyang digunakan untukmenentukanlayanandariobjek tersebut, cara objek tersebut bekerjasama dan hubungan antar objek tersebut. Class Diagram adalah diagram yang menunjukan class-class yang ada dari sebuah sistem dan hubungannya secara logika. Class diagram menggambarkan struktur statis dari sebuah sistem. Karena itu class diagram merupakan tulang
24
punggung atau kekuatan dasar dari hampir setiap metode berorientasi objek termasuk UML (Henderi, 2008). Sementara menurut (Whitten L. Jeffery et al 2004:432) class diagram adalah gambar grafis mengenai struktur objek statis dari suatu sistem, menunjukan class-class objek yang menyusun sebuah sistem dan juga hubungan antara class objek tersebut.Elemen-eleman class diagram dalam pemodelan UML terdiri dari: Class-class, struktur class, sifat class (class behavior),
perkumpulan/gabungan
(association),
pengumpulan/kesatuan
(agregation), ketergantungan (dependency), relasi-relasi turunannya, keberagaman dan indikator navigasi, dan role name (peranan/tugas nama): 1. Class: Class adalah blok - blok pembangun pada pemrograman berorientasi obyek. Sebuah class digambarkan sebagai sebuah kotak yang terbagi atas 3 bagian. Bagian atas adalah bagian nama dari class. Bagian tengah mendefinisikan property/atribut class. Bagian akhir mendefinisikan metode-metode dari sebuah class. 2. 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 multiplisitas pada sebuah relationship. (Contoh: One-to-one, one-to-many,many-tomany). 3. 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. Sebuah relationship composition digambarkan sebagai garis dengan ujung berbentuk jajaran genjang berisi/solid. 4. Dependency : Kadangkala sebuah class menggunakan class yang lain. Hal ini disebut dependency. Umumnya penggunaan dependency digunakan untuk menunjukkan operasi pada suatu class yang menggunakan class yang lain. Sebuah dependency dilambangkan sebagai sebuah panah bertitik-titik. 5. Aggregation
:Aggregation
mengindikasikan
relationship dan biasanya disebut sebagai relasi.
keseluruhan
bagian
25
Gambar 2.5.3-1 Contoh Class Diagram
[Sumber: Grady Booch, James Rumbaugh dan Ivar Jacobson. 2005:chap 8] 2.5.4 Sequence Diagram Sebuah diagram sequence secara khusus menjabarkan aktifitas sebuah skenario tunggal. Diagram tersebut menunjukkan sebuah objek contoh dari pesan-pesan yang melewati objek-objek di dalam use case diagram (Fowler, 2005:81). Diagram sequence menggambarkan interaksi dengan menampilkan setiap partisipasi dengan garisalir secara vertikal dan pengurutan dari atas ke bawah. Diagram sequence biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respon dari sebuah kejadian (event) untuk menghasilkan output tertentu. Di awali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dari output apa yang dihasilkan. Masing-masing objek, termasuk aktor memiliki
26
lifeline vertikal. Pesan digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Notasi-notasi yang digunakan dalam pemodelan sequence diagram terlihat dalam Tabel sebagai berikut: Tabel 2.5.5-1 Sequence Diagram
No.
Simbol
1.
Keterangan Menggambarkan seseorang atau sesuatu (seperti perangkat,sistem lain) yang berinteraksi dengan sistem. Aktor merupakan sebuah pesan yang
Actor.
dimainkan seseorang pengguna dalam kaitannya dengan sistem.
2.
Menggambarkan interaksi antara satu atau lebih actor dengansistem, memodelkan bagian dari Boundary.
sistem
yang
bergantung
pada
pihak
lain
disekitarnya dan merupakan pembatas sistem dengan dunia luar. Menggambarkan
3.
“perilaku
mengatur”,
mengkoordi-nasikanperilaku sistem dan dinamika dari suatu sistem, menangani tugas utama dan Control. 4.
mengontrol alur kerja suatu sistem. Menggambarkan informasi yang harus disimpan oleh sistem (struktur data dari sebuah sistem).
Entity. 5.
Menggambarkan pesan/hubungan antar objek, yang menunjukan urutan kejadian yang terjadi. Object Message.
27
6.
Menggambarkan pesan/hubungan objek itu sendiri, yang menunjukan urutan kejadian yang terjadi. Message to Self.
7.
Menggambarkan abstraksi dari sebuah entitas nyata/tidak
nyata
yang
informasinya
harus
disimpan. Menggambarkan bahwa hasilnya objek Lifeline
terhadap waktu.
Gambar 2.5.4-1 Contoh Sequence Diagram
28
2.6
Metode Pengujian Perangkat Lunak
Menurut Deutsch (1979:329) bahwa “pengujian perangkat lunak sangat penting untuk dilakukan sebagai jaminan kualitas aplikasi yang dibuat”.Sebelum melakukan pengujian terhadap perangkat lunak yang kita buat, kita harus memahami terlebih dahulu dasar-dasar pengujiannya, yaitu sebagai berikut:
a. Sasaran pengujian Menurut (2005:234) ada beberapa hal yang menjadi aturan yang berfungsi sebagai sasaran pengujian: 1. Pengujian yaitu proses eksekusi suatu program dengan maksud menemukan kesalahan. 2. Test Case yang baik yaitu test case yang memiliki probabilitas yang tinggi untuk menemukan kesalahan yang belum ditemukan sebelumnya. 3. Pengujian yang sukses yaitu pengujian yang mengungkapkan semua kesalahan yang belum pernah ditemukan sebelumnya.
b. Prinsip pengujian Ada beberapa hal yang menjadi prinsip dalam pengujian yaitu sebagai berikut: 1. Pengujian harus dimulai dari kasus yang kecil dan berkembang ke kasus yang lebih besar. 2. Pengujian harus direncanakan. 3. Prinsip pareto harus diterapkan dalam proses pengujian (prinsip pareto yaitu prinsip yang mengimplikasikan bahwa 80% dari semua kesalahan di temukan selama pengujian dan ditemukan 20% dari modul program). 4. Semua pengujian harus disampaikan kepada user. 5. Lakukan pengujian oleh pihak ketiga supaya proses pengujian lebih efektif.
c. Testabilitas Secara sederhana testabilitas perangkat lunak yaitu seberapa mudah sebuah program atau aplikasi komputer dapat kita uji. Ada beberapa metode pengujian yang dapat dilakukan yaitu :
29
1. Pengujian White Box Proses pengujian ini berfokus pada struktur control program, test case dilakukan untuk memastikan bahwa semua statemen pada program telah di eksekusi paling tidak sekali selama pengujian.
2. Pengujian Black Box Teknik ini didesain untuk menangkap kesalahan pada persyaratan fungsional tanpa mengabaikan kerja internal dari suatu program. Teknik ini berfocus pada domain informasi dari perangkat lunak, dengan melakukan test case dengan mempartisi domain input dan output dari suatu program.
3. Pengujian Basis Path Teknik ini merupakan teknik pengujian white box yang menggunakan grafik program atau matriks untuk melakukan serangkaian pengujian yang independen.
4. Pengujian Struktur Kontrol Pengujian ini merupakan pengembangan dari white box yang menggunakan logika program.
5. Pengujian Untuk Aplikasi dan Lingkungan Khusus Pengujian yang terspesialisasi meliputi sejumlah kemampuan perangkat lunak dan lingkungannya diantaranya yaitu pada client/server, system real-time, graphical user interface, dokumentasi serta kelengkapan fasilitas help.
Metode black-box ini didesain untuk menangkap kesalahan pada persyaratan fungsional tanpa mengabaikan kerja internal dari suatu program. Metode ini berfocus pada domain informasi dari perangkat lunak, dengan melakukan test case dengan mempartisi domain input dan output dari suatu program.Pengujian yang dilakukan hanyamengamati hasil eksekusi melalui data uji dan memeriksa fungsional dari perangkat lunak.
30
Jadi dianalogikan seperti kita melihat suatu kotak hitam, kita hanya bias melihat penampilan luarnya saja, tanpa tahu ada apa dibalik bungkus hitamnya. Sama seperti pengujian black box, mengevaluasi hanya dari tampilan luarnya (interface) fungsionalitasnya tanpa mengetahui apa sesungguhnya yang terjadi dalam proses detailnya. Keunggulan black box :
Bisa memilih subset test secara efektif dan efisien
Dapat menemukan cacat
Memaksimalkan testing invesmen
Kelemahan :
2.7
Tester tidak pernah yakin apakah PL tersebut benar-benar lolos uji.
Metodologi Waterfall Waterfall Model adalah sebuah metode pengembangan software yang bersifat
sekuensial. Metode ini dikenalkan oleh Royce pada tahun 1970 dan pada saat itu disebut sebagai isi klus klasik dan sekarang ini lebih dikenal dengan sekuensial linier.Selain itu Model ini merupakan model yang paling banyak dipakai oleh para pengembang software.Inti dari metodewaterfall adalah pengerjaan dari suatu system dilakukan secara berurutan atau secara linear.Jadi jika langkah satu belum dikerjakan maka 3 tidak akan bisa melakukan pengerjaan langkah 2, 3 dan seterusnya. Secara otomatis tahapan ke-3 akan bisa dilakukan jika tahap ke-1 dan ke-2 sudah dilakukan. Ada dua gambaran dari Waterfall Model, biarpun berbeda dalam menggunakan fase tapi intinya sama. Menurut Pressman (2010), model waterfall adalah model klasik yang bersifat sistematis, berurutan dalam membangun software. Nama model ini sebenarnya adalah “Linear Sequential Model”. Model ini sering disebut dengan “classic life cycle” atau model waterfall. Model ini termasuk kedalam model generic pada rekayasa perangkat lunak dan pertama kali diperkenalkan oleh Winston Royce sekitar tahun 1970 sehingga sering dianggap kuno, tetapi merupakan model yang paling banyak dipakai didalam Software Engineering (SE). Model ini melakukan pendekatan secara sistematis dan berurutan. Disebut dengan waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan.Waterfall adalah suatu metodologi pengembangan perangkat lunak yang mengusulkan pendekatan kepada perangkat lunak sistematik dan
31
sekuensial yang mulai pada tingkat kemajuan sistem pada seluruh analisis, design, kode, pengujian dan pemeliharaan.
Gambar 2.7.1 Metodologi Waterfall
[Sumber: Pressman, Roger.S. 1997:29] Keterkaitandan pengaruh antar tahap ini ada karena output sebuah tahap dalam Waterfall Model merupakan input bagi tahap berikutnya, dengan demikian ketidak sempurnaan hasil pelaksanaan tahap sebelumnya adalah awal ketidak sempurnaan tahap berikutnya. Memperhatikan karakteristik ini, sangat penting bagi tim pengembang dan perusahaan untuk secara bersama-sama melakukan analisa kebutuhan dan desain system sesempurna mungkin sebelum masuk kedalam tahap penulisan kode program. Secara garis besar,berikut penjelasan mengenai fase fase dalam waterfall: 1. Analisa kebutuhan (Requirement Analysis)/(Requirements analysis and definition) Langkah ini merupakan analisa terhadap kebutuhan sistem.Pengumpulan data dalam tahap ini bisa malakukan sebuah penelitian, wawancara atau study literatur.Seorang system analis akan menggali informasi sebanyak-banyaknya dari user sehingga akan tercipta sebuah system komputer yang bisa melakukan tugastugas yang diinginkan oleh user tersebut. Tahapan ini akan menghasilkan dokumen user requirement atau bisa dikatakan sebagai data yang berhubungan dengan keinginan user dalam pembuatan sistem. Dokumen inilah yang akan menjadi acuan system analis untuk menterjemahkan kedalam bahasa pemprogram.
32
2. Design sistem (System Design) Proses desain akan menerjemahkan syarat kebutuhan kesebuah perancangan perangkat lunak yang dapat diperkirakan sebelum dibuat coding. Proses ini berfokus pada :struktur data, arsitektur perangkat lunak, representasi interface, dan detail (algoritma) prosedural. Tahapan ini akan menghasilkan dokumen yang disebut software requirment. Dokumen inilah yang akan digunakan programmer untuk melakukan aktivitas pembuatan sistemnya. 3. Coding / penulisankode Program (Implementation) Coding merupakan penerjemahan design dalam bahasa yang bisa dikenali oleh komputer.Dilakukan oleh programmer yang akan meterjemahkan transaksi yang diminta olehuser. Tahapan inilah yang merupakan tahapan secara nyata dalam mengerjakan
suatu
sistem.Dalam
artian
penggunaan
computer
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 dan kemudian bisa diperbaiki. 4. Penerapan / pengujian program (Integration & Testing) Tahapan ini bisa dikatakan final dalam pembuatan sebuah sistem. Setelah melakukan analisa, design dan pengkodean maka sistem yang sudah jadiakan digunakan oleh user.
KeuntunganMetode Waterfall
Kualitas dari sistem yang dihasilkan akan baik. Ini dikarenakan oleh pelaksanaannya secara bertahap. Sehingga tidak terfokus pada tahapan tertentu.
Dokumen pengembangan sistem sangat terorganisir, karena setiap fase harus terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya. Jadi setiap fase atau tahapan akan mempunyai dokumen tertentu.
33
Metode ini masih lebih baik digunakan walaupun sudah tergolong kuno, daripada menggunakan pendekatan asal-asalan. Selain itu, metode ini juga masih masuk akal jika kebutuhan sudah diketahui dengan baik.
Kelemahan waterfall
Diperlukan majemen yang baik, karena proses pengembangan tidak dapat dilakukan secara berulang sebelum terjadinya suatu produk.
Kesalahan kecil akan menjadi masalah besar jika tidak diketahui sejak awal pengembangan yang berakibat pada tahapan selanjutnya.
Pelanggan sulit menyatakan kebutuhan secara eksplisit sehingga tidak dapat mengakomodasi ketidakpastian pada saat awal pengembangan.
Pelanggan harus sabar, karena pembuatan perangkat lunak akan dimulai ketika tahap desain sudah selesai. Sedangkan pada tahap sebelum desain bisa memakan waktu yang lama.
Pada kenyataannya, jarang mengikuti urutan sekuensial seperti pada teori. Iterasi sering terjadi menyebabkan masalah baru.