BAB 2. LANDASAN TEORI Landasan teori dan dasar pengetahuan penelitian ini adalah metoda-metoda terkait dengan: Location Based Advertising, Bluetooth Low Energy, iBeacon, Rekayasa Perangkat Lunak, Paradigma Berorientasi Objek, Basis Data, PHP dan Android. 2.1. Location Based Advertising Location Based Advertising adalah bentuk baru dari iklan melalui smartphone yang bertujuan untuk menghapus hambatan geografis dan informasi antara konsumen dan penjual barang atau jasa dengan menjangkau pembeli ketika mereka berada dilokasi pengiklan (Banerjee, 2008). 2.2. Bluetooth Low Energy Bluetooth Low Energy (BLE) adalah teknologi Bluetooth versi terbaru dengan keunggulan utama yaitu hemat energi yang resmi diadopsi oleh Bluetooth Special Interest Group (SIG) pada tahun 2010. Teknologi nirkabel baru ini dapat digunakan berbagai perangkat dengan konsumsi energi yang rendah, berbeda dengan spesifikasi Bluetooth sebelumnya. Bluetooth 4.0 memiliki spesifikasi konsumsi hemat energi untuk dapat mentransfer data dalam jarak yang cukup dekat. Teknologi ini merupakan penyempurnaan kapabilitas Bluetooth 3.0, generasi Bluetooth pedahulunya, yang diluncurkan bulan April 2009. Bluetooth 4.0 dianggap sebagai teknologi yang paling cocok untuk digunakan sebagai media transfer jaringan komunikasi jarak dekat. Bluetooth Low Energy memancarkan sinyal pada frekuensi 2,4 GHz dan bisa melemah pancaranya oleh berbagai benda fisik seperti dinding, pintu atau struktur fisik lainnya. Kekuatan sinyal pada Frekuensi 2,4 GHz juga dapat dipengaruhi oleh air, yang berarti tubuh manusia juga akan mempengaruhi sinyal. Hal ini penting untuk diperhatikan karena ketika sinyal Bluetooth lemah atau berkurang, sangat mempengaruhi kekuatan sinyal yang diterima oleh perangkat (Apple, 2014). Bluetooth Low Energy sangat hemat daya. Dampak dari Beacon pada kedua smartphone baik iPhone atau Android, Hanya mengurangi baterai telepon kurang dari 1% karena Beacon berada di dekatnya (Aislelabs, 2015).
6 http://digilib.mercubuana.ac.id/
2.3. iBeacon iBeacon diluncurkan ketika The Apple Worldwide Developers Conference pada Juni 2013. Bersamaan dengan iOS7 diluncurkan. Ratusan perusahaan terlibat dalam penggunaan yang berbeda diekosistem iBeacon (Beacosystem). Perusahaan tersebut membuat hardware Beacon, menawarkan platform software proximity atau iBeacon, menciptakan platform marketing, menggunakan Beacon untuk memberikan sinyal sebagai analisis lokasi dan solusi mobile marketing, menyediakan layanan lokasi dalam ruangan, dan banyak lagi (Sean, 2015). Cara Apple mengumumkan teknologi iBeacon untuk membantu smartphone mengidentifikasi posisi mereka dan lokasi di ruangan tertutup. Teknologi ini didasarkan pada protokol standar Bluetooth Low Energy (BLE), dan didukung pada semua smartphone utama termasuk Android dan iPhone. iBeacon mengacu pada perangkat bertenaga baterai rendah yang memancarkan sinyal Bluetooth Low Energy. iBeacon, atau hanya Beacon, mengirimkan sinyal yang unik beberapa kali setiap detik yang dapat diterima oleh ponsel dalam radius beberapa meter. Ponsel secara akurat dapat memposisikan diri dengan menerima sinyal dari semua Beacon terdekat. Mekanisme ini sangat mirip dengan bagaimana kapal menggunakan mercusuar – mercusuar yang memancarkan cahaya, kemudian dijadikan patokan oleh kapal. Tidak seperti GPS, Beacon dapat digunakan untuk penentuan posisi yang akurat di dalam ruangan. Berbagai aplikasi telah muncul, termasuk navigasi dalam ruangan, pemasaran berbasis lokasi, layanan pelanggan berbasis lokasi, dan bantuan pribadi. Karena Beacon menggunakan standar Bluetooth Low Energy, didukung dengan baik pada kedua system operasi baik Android atau iOS (Aislelabs, 2015). Hardware Beacon terdiri dari mikrokontroler dengan chip radio Bluetooth Low Energy dan baterai. chip radio baru yang dioptimalkan untuk Bluetooth Low Energy, sedangkan versi yang dirancang untuk Bluetooth klasik yang memiliki konsumsi daya yang lebih tinggi. Chip radio umumnya diproduksi oleh dua perusahaan besar yaitu Texas Instruments dan Semiconductor Nordic. Perusahaan seperti BlueGiga dan Gimbal menggunakan hardware dari Texas Instruments, tetapi dengan firmware kustom dari mereka sebelum dijual ke vendor. Baterai sel koin adalah pilihan yang paling populer bagi sebagian besar Beacon. Baterai ini adalah sel Lithium Ion padat dan menyediakan daya sampai 1.000 mAh. Power disimpan dalam bentuk yang sangat kecil. Umumnya ukuran sel yang tersedia koin 240 mAh (CR2032, ukuran kecil), 620 mAh (CR2450, ukuran sedang) dan 1.000 mAh 7 http://digilib.mercubuana.ac.id/
(CR2477, ukuran besar). Baterai sel koin yang dinyatakan umum digunakan dalam FOBS kunci dan jam tangan digital. Beberapa Beacon juga menggunakan baterai Alkaline AA, yang biasa digunakan dalam kamera digital dan remote TV. Sebuah baterai AA biasanya menyediakan daya sekitar mAh 2.000 tetapi ukuran secara signifikan lebih besar dari baterai sel koin. Beberapa Beacon dapat menyala dengan power eksternal, Beacon dapat dipasang di dengan power listrik atau power USB. Beacon tidak perlu penggantian baterai dan dapat ekonomis dalam situasi tertentu. Ketersediaan arus listrik, tanpa menambah kabel baru, di tempat yang tepat di mana Beacon diletakan mungkin tidak selalu layak. Setiap Beacon memiliki firmware tertentu, yang merupakan logika (program code) yang memungkinkan perangkat keras Beacon untuk beroperasi. firmware dapat mengontrol beberapa karakteristik yang mempengaruhi masa pakai baterai: Transmit daya (power tx): Perangkat Beacon mengirimkan sinyal dengan power tetap, yang dikenal sebagai kekuatan tx. Sebagai sinyal yang berjalan di udara, kekuatan sinyal yang diterima berbanding lurus dengan jarak dari Beacon. Daya tx lebih tinggi berarti, sinyal dapat menjangkau jarak yang lebih jauh. berarti lebih rendah daya tx, konsumsi baterai lebih sedikit tetapi jarak jangkauan yang lebih dekat. Iklan Interval: Tingkat (frekuensi) Beacon memancarkan sinyal adalah antara 100ms. Sinyal dipancarkan setiap 100 milidetik (atau 10 kali dalam satu detik). Interval yang lebih tinggi dari 500 ms berarti sinyal yang dipancarkan hanya dua kali per detik, yang berarti lebih sedikit menguras baterai untuk Beacon. Jika interval iklan meningkat, Pemakaian daya baterai dari Beacon juga meningkat, tetapi respon dari telepon menurun. Tidak ada pilihan yang optimal dari interval iklan, dan aplikasi yang membutuhkan latency rendah harus memilih interval iklan yang lebih rendah, dan mereka yang membutuhkan daya tahan baterai yang lebih tinggi harus meningkatkan interval iklan. Spesifikasi resmi Apple untuk protokol iBeacon menentukan selang iklan dari 100ms. Sebagian besar vendor Beacon memilih interval iklan yang lebih tinggi namun tetap mengikuti semua aspek lain dari protokol. Selang iklan yang jauh lebih tinggi dari 100ms lebih dari cukup untuk pengalaman pengguna yang baik (Aislelabs, 2015). Setiap Beacon memberikan cara sendiri mengkonfigurasi hardware dan parameter yang terkait (power tx dan interval iklan). Beberapa Beacon, seperti Kontakt, Estimote, RadBeacon dan BlueSense Networks, memberikan aplikasi iPhone milik mereka sendiri untuk mengkonfigurasi Beacon. Beacon lain, seperti Minew, menyediakan antarmuka terbuka melalui setiap klien GATT (seperti aplikasi LightBlue iPhone atau gattool di 8 http://digilib.mercubuana.ac.id/
Linux). Keuntungan utama dari Beacon mendukung metode GATT adalah bahwa ratusan Beacon dapat dikonfigurasi sekaligus. Beberapa hardware Beacon, seperti Gimbal, juga mendukung mode Beacon milik mereka sendiri selain protokol iBeacon Apple.
Gambar 2-1 Perbandingan tx power dan jarak pancar Beacon (Aislelabs, 2015)
Sinyal yang diterima dari perangkat dengan teknologi iBeacon, yang kekuatan sinyal umumnya berkorelasi dengan seberapa jauh perangkat dari Beacon. Dalam kondisi ideal dan bebas halangan antara antena perangkat dan Beacon, semakin dekat perangkat tersebut lebih akurat hasilnya (Apple, 2014).
Gambar 2-2 Perangkat dekat dengan Beacon (Apple, 2014)
Sebuah perangkat yang lebih dekat Beacon akan mendapatkan tingkat sinyal yang lebih tinggi selama Beacon memancarkan sinyal. Seperti kekuatan sinyal GPS bisa dikurangi dengan benda-benda fisik seperti gedung atau ditempatkan dalam tas ransel, dompet atau saku, sehingga dapat disimpulkan kekuatan sinyal Beacon ini tergantung sinyal redaman, atau hilangnya intensitas sinyal, dapat disebabkan oleh banyak faktor. 9 http://digilib.mercubuana.ac.id/
Gambar 2-3 Sinyal Beacon terhalang benda fisik (Apple, 2014)
Hal Ini dapat menyebabkan perangkat mengira bahwa Beacon lebih jauh dari jarak sebenarnya. Tubuh manusia sendiri adalah penurun sinyal (attenuator) Bluetooth yang cukup baik. Hanya menghadapkan punggung ke sebuah Beacon (misalnya di mana tubuh Anda diposisikan antara perangkat dan Beacon) akan mempengaruhi kekuatan sinyal dan dengan demikian menurunkan ketepatan.
Gambar 2-4 Sinyal Beacon terhalang tubuh manusia. (Apple, 2014)
2.4. Rekayasa Perangkat Lunak Rekayasa perangkat lunak (software engineering) merupakan pembangunan dengan menggunakan prinsip atau konsep rekayasa dengan tujuan menghasilkan perangkat lunak yang bernilai ekonomi yang dipercaya dan bekerja secara efisien menggunakan mesin (S & Shalahuddin, 2013). Perangkat lunak banyak dibuat dan pada akhirnya sering tidak digunakan karena tidak memenuhi kebutuhan pelanggan atau bahkan karena masalah nonteknis seperti keengganan pemakai perangkat lunak (user) untuk mengubah cara kerja dari manual ke otomatis. Oleh karena itu rekayasa perangkat lunak dibutuhkan agar perangkat lunak yang dibuat tidak hanya menjadi perangkat lunak yang tidak terpakai. 10 http://digilib.mercubuana.ac.id/
Rekayasa perangkat lunak lebih fokus pada praktik pengembangan perangkat lunak dan mengirimkan perangkat lunak yang bermanfaat kepada pelanggan. Adapun ilmu komputer lebih fokus pada teori dan konsep dasar perangkat komputer, rekayasa perangkat lunak lebih fokus pada bagaimana membuat perangkat lunak yang memenuhi kriteria berikut:
Dapat
terus
dipelihara
setelah
perangkat
lunak
selesai
dibuat
seiring
berkembangnya tekonologi dan lingkungan (maintainability).
Dapat diandalkan dengan proses bisnis yang dijalakan dan perubahan yang terjadi (dependentbility dan robust).
Efisien dari segi sumber daya dan penggunaan.
Kemampuan untuk dipakai sesuai dengan kebutuhan (usability). Dari kriteria diatas maka perangkat lunak yang baik adalah perangkat lunak yang dapat memenuhi kebutuh pelanggan (customer) atau pengguna (user) atau berorientasi pada pelanggan atau pemakai perangkat lunak, bukan berorientasi pada pembuat atau pengembang perangkat lunak.
2.4.1 Software Development Life Cycle SDLC atau Software Development Life Cycle adalah proses mengembangkan atau mengubah suatu sistem perangkat lunak dengan menggunakan model-model dan metodologi yang digunakan orang untuk mengembangkan sistem-sistem perangkat lunak sebelumnya (berdasarkan best practice atau cara-cara yang sudah teruji baik). Seperti halnya proses metamorfosis pada kupu-kupu, untuk menjadi kupu-kupu yang indah maka dibutuhkan beberapa tahap untuk dilalui, sama halnya dengan membuat perangkat lunak, memiliki daur tahapan yang dilalui agar menghasilkan perangkat lunak yang berkualitas (S & Shalahuddin, 2013). Tahapan-tahapan yang ada pada SDLC secara global adalah sebagi berikut: 1. Inisiasi (initiation) Tahapan ini biasasnya ditandai dengan pembuatan proposal proyek perangkat lunak. 2. Pengembangan konsep sistem (system concept development) Mendefinisikan lingkup konsep termasuk dokumen lingkup sistem, analisis manfaat biaya, manajemen rencana, dan pembelajaran kemudahan system. 3. Perencanaan (planning)
11 http://digilib.mercubuana.ac.id/
Mengembangkan rencana manajemen proyek dan dokumen perencanaan lainnya. Menyediakan dasar untuk mendapatkan sumber daya (resources) yang dibutuhkan untuk memperoleh solusi. 4. Analisis kebutuhan (requirement analysis) Menganalisis kebutuhan pemakai sistem perangkat lunak (user) dan mengembangkan kebutuhan user. Membuat dokumen kebutuhan fungsional. 5. Desain (design) Mentransformasikan kebutuhan detail menjadi kebutuhan yang sudah lengkap, dokumen desain sistem fokus pada bagaimana dapat memenuhi fungsi-fungsi yang dibutuhkan. 6. Pengembangan (development) Mengkonversi desain ke sistem informasi yang lengkap termasuk bagaimana memperoleh dan melakukan instalasi lingkungan sistem yang dibutuhkan, membuat basis data dan mempersiapkan prosedur kasus pengujian, mempersiapkan berkas atau file pengujian, pengkodean, pengkompilasian, memperbaiki, membersihkan program, dan peninjauan pengujian. 7. Integrasi dan pengujian (integration dan test) Mendemonstrasikan sistem perangkat lunak bahwa telah memenuhi kebutuhan yang dispesifikasikan pada dokumen kebutuhan fungsional. Dengan diarahkan oleh staf penjamin kualitas (quality assurance) dan user. Menghasilkan laporan analisis pengujian. 8. Implementasi (implementation) Termasuk pada persiapan implementasi, implementasi perangkat lunak pada lingkungan produksi (lingkungan pada user) dan menjalankan resolusi dari permasalahan yang teridentifikasi dari fase integrasi dan pengujian. 9. Operasi dan pemeliharaan (operations and maintenance) Mendeskripsikan pekerjaan untuk mengoperasikan dan memlihara sistem informasi pada lingkungan produksi (lingkungan pada user), termasuk implementasi akhir dan masuk pada proses peninjauan. 10. Disposisi (disposition) Mendeskripsikan aktifikas akhir dari pengembangan sistem dan membangun data yang sebenarnya sesuai dengan aktivitas user.
12 http://digilib.mercubuana.ac.id/
2.4.2 Model Waterfall Model SDLC air terjun (waterfall) sering juga disebut sebagai model sekuensial linier (sequential linear) atau alur hidup klasik (classic life cycle). Model air terjun menyediakan pendekatan alur hidup perangkat lunak secara sekuensial atau terurut dimulai dari analisis, desain, pengodean, pengujian, dan tahap pendukung (support) (S & Shalahuddin, 2013). Berikut adalah gambar dari model Waterfall:
Gambar 2-5 Illustrasi Model Waterfall
Analisa kebutuhan perangkat lunak Proses pengumpulan kebutuhan dilakukan scara intensif untuk menspesifikasikan kebutuhan perangkat lunak agar dapat dipahami perangkat lunak seperti apa yang dibutuhkan oleh user. Spesifikasi kebutuhan perangkat lunak pada tahap ini perlu untuk didokumentasikan.
Desain Desain perangkat lunak adalah proses multi langkah yang fokus pada desain pembuatan program perangkat lunak termasuk struktur data, arsitektur perangkat lunak, representasi antarmuka, dan prosedur pengodean. Tahap ini mentranslasikan kebutuhan perangkat lunak dari tahap analisis menjadi representasi desain agar dapat diimplementasikan mejadi program pada tahap selanjutnya. Desain perangkat lunak yang dihasilkan pada tahap ini juga perlu untuk didokumentasikan. 13 http://digilib.mercubuana.ac.id/
Pembuatan kode program Desain harus ditranslasikan ke dalam program perangkat lunak. Hasil dari tahap ini adalah program komputer sesuai dengan desain yang telah dibuat pada tahap desain.
Pengujian Pengujian fokus pada perangkat lunak secara logika dan fungsional dan memastikan bahwa semua bagian sudah diuji. Hal ini dilakukan untuk meminimalisir kesalahan (error) dan memastikan keluaran yang dihasilkan sesuai dengan yang diinginkan.
Pendukung atau Pemeliharaan Sebuah perangkat lunak dapat mengalami perubahan ketika sudah dikirimkan ke user. Perubahan bisa terjadi karena adanya kesalahan yang muncul dan tidak terdeteksi saat pengujian atau terjadi karena perangkat lunak harus beradaptasi dengan lingkungan baru. Tahap pendukung atau pemeliharaan dapat mengulangi proses pengembangan mulai dari analisis spesifikasi untuk perbuahan perangkat lunak yang sudah ada, tapi tidak untuk membuat perangkat lunak baru.
2.4.3 Pengujian Perangkat Lunak Perangkat lunak sering mendapatkan kesalahan (error) pada proses-proses tertentu pada saat perangkat lunak sudah berada di tangan user. Kesalahan pada perangkat lunak ini sering disebut dengan “bug”. Untuk menghindari banyaknya bug maka diperlukan adanya pengujian perangkat lunak sebelum perangkat lunak diberikan ke pelanggan atau selama perangkat lunak masih terus dikembangkan. Adanya bug adalah suatu yang biasa, bahkan di sebuah perangkat lunak yang sudah besar dan terkenal pun biasanyan masih terdapat bug. Oleh karena itu tidak perlu merasa tersinggung atau bersedih jika masih ditemukan bug pada perangkat lunak yang dikembangkan. Hal yang bisa dilakukan pengembang perangkat lunak adalah meminimalisir bug dengan melakukan pengujian. Kelakuan perangkat lunak yang tidak sesuai dengan spesifikasi yang dibutuhkan bisa dianggap sebagai bug. Pengujian adalah salah satu set aktivitas yang direncanakan dan sistematis untuk menguji atau mengevaluasi kebenaran yang diinginkan (S & Shalahuddin, 2013). Aktivitas pengujian terdiri dati satu set atau sekumpulan langkah dimana dapat menempatkan desain kasus uji yang spesifik dan metode pengujian. Secara umum pola pengujian pada perangkat lunak adalah sebagi berikut :
14 http://digilib.mercubuana.ac.id/
Pengujian dimulai dari level komponen hingga integrasi antar komponen menjadi sebuah sistem.
Teknik pengujian berbeda-beda sesuai dengan berbagai sisi atau unit uji dalam waktu yang berbeda-beda pula, bergantung pada pengujian pada bagian mana yang dibutuhkan.
Pengujian dilakukan oleh pengembang perangkat lunak, jika untuk proyek besar, pengujian bisa dilakukan oleh tim uji yang tidak terkait dengan tim pengembang perangkat lunak (Independent Test Group). Pengujian perangkat lunak adalah sebuah elemen sebuah topik yang memiliki
cakupan luas dan sering dikaitkan dengan verifikasi (verification) dan validasi (validation) (S & Shalahuddin, 2013). Verifikasi mengacu pada sekumpulan aktivitas yang menjamin bahwa perangkat lunak mengimplementasikan dengan benar sebuah fungsi yang spesifik. Validasi mengacu pada sekumpulan aktivitas yang berbeda, yang menjamin bahwa perangkat lunak yang dibangun dapat ditelusuri sesuai dengan kebutuhan pelanggan (customer). Dapat juga dikatakan sebagai berikut :
Verifikasi : “Apakah produk yang dibangun dengan benar?” atau “apakah proses pengembangan produk sudah benar dan telah mengimplementasikan fungsi yang benar?”.
Validasi : “Apakah sudah membangun produk yang benar?” atau “Apakah hasil produk sudah sesuai dengan yang diinginkan?”.
2.4.4 Verifikasi Pengujian Pengujian untuk verifikasi memiliki tahapan sebagai berikut:
Gambar 2-6 Pengujian perangkat lunak (S & Shalahuddin, 2013).
Pengujian diawali dari pengujian unit. Unit disini bisa berupa kumpulan fungsi atau prosedur yang memiliki keterkaitan pada pemrograman terstruktur atau class pada pemrograman berorientasi objek. Unit juga dapat berupa modul atau dikenal juga sebagai package. Setelah unit-unit selesai diuji maka dilakukan pengujian integrasi. Pengujian 15 http://digilib.mercubuana.ac.id/
integrasi sebaiknya dilakukan secara bertahap, tidak dilakukan secara satu tahap langsung di akhir untuk menghindari kesulitan penelusuran jika terjadi kesalahan (error). Pengujian integrasi lebih pada pengujian penggabungan dari dua atau lebih unit pada perangkat lunak. Setelah pengujian integrasi maka dilakukan pengujian sistem, yang dimana unitunit proses yang sudah diintergrasikan akan diuji dengan antarmuka yang sudah dibuat sehingga pengujian ini dimaksudkan untuk menguji sistem perangkat lunak secara keseluruhan dan diuji secara satu sistem. Setelah pengujian sistem selesai maka dapat dilakukan pengujian penerimaan perangkat lunak oleh pelanggan (customer) atau pengguna (user). Pengujian penerimaan digunakan untuk mengetahui kepuasan pelanggan atau user terhadap perangkat lunak yang sudah dibuat. Jika pelanggan sudah puas dengan perangkat lunaknya, maka perangkat lunak tersebut dapat diserahkan kepada pelanggan (customer). 2.4.5 Validasi Pengujian Pengujian untuk validasi memiliki beberapa pendekatan sebagai berikut :
Black-Box Testing (pengujian kotak hitam) Pengujian kotak hitam menguji perangkat lunak dari segi spesifikasi fungsional tanpa menguji desain dan kode program (S & Shalahuddin, 2013). Pengujian dimaksudkan untuk mengetahui apakah fungsi-fungsi, masukan dan keluaran dari perangkat lunak tersebut sudah sesuai dengan spesifikasi yang dibutuhkan. Pengujian kotak hitam dilakukan dengan membuat kasus uji yang bersifat mencoba semua fungsi dengan memakai perangkat lunak sesuai dengan spesifikasi yang dibutuhkan. Kasus uji yang dibuat untuk melakukan pengujian kotak hitam harus dibuat dengan kasus benar dan kasus salah.
White-Box Testing (pengujian kotak putih) Pengujian kotak putih menguji perangkat lunak dari segi desain dan kode program, apakah mampu menghasilkan fungsi-fungsi, masukan dan keluaran dari perangkat lunak tersebut sudah sesuai dengan spesifikasi yang dibutuhkan (S & Shalahuddin, 2013). Pengujian kotak putih dilakukan dengan memeriksa logika dari kode program. Pembuatan kasus uji bisa mengikuti standar pengujian dari standar pemrograman yang seharusnya.
16 http://digilib.mercubuana.ac.id/
2.5. Paradigma Berorientasi Objek Berorientasi objek atau object oriented merupakan paradigma baru dalam rekayasa perangkat lunak. Paradigma ini memandang sistem sebagai kumpulan objekobjek diskrit yang saling berinteraksi satu sama lain. Berorientasi objek bisa juga bermakna kegiatan mengorganisasikan perangkat lunak sebagai kumpulan objek-objek diskrit yang bekerja sama antara informasi (atau struktur data) dan perilaku (behavior) yang mengaturnya. Pada paradigm berorientasi objek, setiap objek mempunyai dua pengenal, yaitu informasi tentang objek itu dan perilaku yang pengaturnya. Informasi tentang objek dapat disebut juga attribute, sedangkan operasi-operasi pengatur objek bisa disebut juga dengan method. Objek-objek yang mempunyai attribute dan operasi yang sama dapat dikelompokkan dalam sebuah kategori. Sebuah kategori untuk beberapa objek disebut kelas atau class. Paradigma berorientasi objek mempunyai bidang aplikasi yang sangat luas dalam bidang rekayasa perangkat lunakm antara lain : pemrograman, pemodelan sistem informasi, manajemen proyek, perangkat keras, dan pengujian (testing) perangkat lunak (Robandi & Sholiq, 2010). 2.5.1 Pemodelan UML (Unified Modeling Language) Pada perkembangan teknik pemrograman berorientasi objek, munculah sebuah standarisasi bahasa pemodelan untuk pembangunan perangkat lunak yang dibangun dengen menggunakan teknik pemrograman berorientasi objek, yaitu Unified Modeling Language (UML). UML muncul karena adanya kebutuhan pemodelan visual untuk menspesifikasikan, menggambarkan, membangun dan dokumentasi dari sistem perangkat lunak (S & Shalahuddin, 2013). UML merupakan bahasa visual untuk pemodelan dan komunikasi mengenai sebuah sistem dengan menggunakan diagram dan teks-teks pendukung. Pada UML versi 2.3 terdapat 13 macam diagram yang dikelompokan menjadi 3 kategori. Pembagian kategori dan macam-macam diagram tersebut dapat dilihat pada gambar dibawah.
17 http://digilib.mercubuana.ac.id/
Gambar 2-7 Diagram UML 2.3
Berikut ini penjelasan singkat dari pembagian kategori tersebut.
Structure
diagrams
yaitu
kumpulan
diagram
yang
digunakan
untuk
menggambarkan suatu struktur statis dari sistem yang dimodelkan.
Behaviour
diagrams
yaitu
kumpulan
diagram
yang
digunakan
untk
menggambarkan kelakuan sistem atau rangkaian perubahan yang terjadi pada sebuah sistem.
Interaction
diagrams
yaitu
kumpulan
diagram
yang digunakan
untuk
menggambarkan interaksi sistem dengan sistem lain maupun interaksi antar subsistem pada suatu sistem. 2.5.1.1 Use Case Diagram Diagram use case merupakan pemodelan untuk kelakuan (behavior) sistem informasi yang akan dibuat (S & Shalahuddin, 2013). Diagram use case mendeskripsikan sebuah interkasi antara satu atau lebih aktor dengan sistem informasi yang akan dibuat. Secara kasar, diagram use case digunakan untuk mengetahui fungsi apa saja yang ada di dalam sebuah sistem informasi dan siapa saja yang berhak menggunakan fungsi-fungsi tersebut.
18 http://digilib.mercubuana.ac.id/
Mendapatkan Promo Iklan
Melihat List Promo Iklan
Detail Promo Iklan
<< include >>
<< include >>
User
Menyimpan Promo Iklan
Mengelola Promo Iklan
<< include >>
Login
Admin
Mengelola Beacon
<< include >>
Gambar 2-8 Contoh Use Case Diagram Tabel 2-1 Notasi Pada Use case Diagram (S & Shalahuddin, 2013, p. 156)
NO
SIMBOL
NAMA
KETERANGAN Orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat di luar sistem informasi yang
1
Actor
akan dibuat itu sendiri, sehingga walaupun simbol dari aktor itu adalah menyerupai gambar orang, tetapi aktor tersebut belum tentu merupakan orang. Fungsionalitas
yang
disediakan
sistem
sebagai unit-unit yang saling bertukar pesan 2
Use Case
antar unit atau aktor. Biasanya dinyatakan dengan menggunakan kata kerja di awal frase nama use case. Hubungan
3
Generalization
generalisasi
dan
spesialisasi
(umum – khusus) antara dua buah use case dimana fungsi yang satu adalah fungsi yang lebih umum dari yang lainnya. 19
http://digilib.mercubuana.ac.id/
Relasi use case tambahan ke sebuah use case dimana use case yang ditambahkan 4
Include
memerlukan use case ini untuk menjalankan fungsinya
atau
sebagai
syarat
untuk
menjalankan use case tersebut. Relasi use case tambahan ke sebuah use case dimana use case yang ditambah tersebut dapat berdiri sendiri walau tanpa 5
Extend
use case tambahan tersebut. Seperti pada prinsip
inheritance
berorientasi
objek,
pada
pemrograman
biasanya
use
case
tambahan memiliki nama depan yang sama dengan use case yang ditambah. Komunikasi antara aktor yang berpatisipasi 6
Association
pada use case atau use case memiliki interaksi dengan aktor
2.5.1.2 Sequence Diagram Diagram sekuen menggambarkan kelalukan objek pada use case dengan mendeskripsikan waktu hidup objek dan pesan yang dikirimkan dan diterima antar objek. Oleh karena itu untuk menggambarkan diagram sekuen maka harus diketahui objek-objek yang dimiliki kelas yang menjadi objek tersebut. Membuat diagram sekuen diperlukan untuk mengiktui skenario yang ada pada diagram use case (S & Shalahuddin, 2013). Jumlah diagram yang harus digambar adalah minimal sebanyak pendefinisan use case yang memiliki proses sendiri atau yang penting semua use case yang telah didefinisikan interaksi jalannya pesan sudah dicakup pada diagram sekuen sehingga semakin banyak use case yang didefinisikan maka diagram sekuen yang harus dibuat juga semakin banyak.
20 http://digilib.mercubuana.ac.id/
Admin
Menu Utama
Login
Promo Iklan Controller
Promo Iklan
Database
login() login berhasil buka halaman Promo Iklan tambah Promo Iklan create()
insert
error error edit Promo update()
modify
error kembali ke menu utama logout()
delete destroy()
delete
error
Gambar 2-9 Contoh Sequence Diagram Tabel 2-2 Notasi Pada Sequence Diagram (S & Shalahuddin, 2013, p. 156)
NO
SIMBOL
NAMA
KETERANGAN Orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat di luar sistem informasi yang
Actor
1
akan dibuat itu sendiri, sehingga walaupun simbol dari aktor itu adalah menyerupai gambar orang, tetapi aktor tersebut belum tentu merupakan orang.
LifeLine
2
2
:Object
Object
Menyatakan kehidupan suatu objek.
Menyatakan objek yang berinteraksi pesan. Spesifikasi dari komunikasi antar objek
3
Active
yang memuat informasi-informasi tentang aktifitas yang terjadi.
21 http://digilib.mercubuana.ac.id/
Menyatakan suatu objek membuat objek 4
<
>
Message Create Type
yang lain, arah panah mengarah pada objek yang dibuat. Menyatakan suatu objek memanggil operasi atau metode yang ada pada obejk lain atau dirinya sendiri. Arah panah mengarah pada
5 1: method()
Message Call Type
objek yang memilik operasi atau metode, sehingga metode yang dipanggil harus ada pada class diagram sesuai dengan kelas objek yang berinterkasi. Menyatakan bahwa suatu objek yang telah
<>
6
menjalankan suatu operasi atau metode Message Return Type
menghasilkan suatu pengembalian pada objek tertentu, arah panah mengarah pada objek yang menerima kembalian. Menyatakan suatu objek mengakhiri hidup
<<destroy>>
7
Message Destroy Type
objek yang lain, arah panah mengarah pada objek yang diakhiri, sebaiknya jika ada create maka ada destroy.
2.5.1.3 Activity Diagram Diagram aktivitas atau activity diagram menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem, proses bisnis atau menu yang ada pada perangkat lunak. Diagram aktivitas menggambarkan aktivitas sistem dan tidak menggambarkan apa yang dilakukan oleh aktor (S & Shalahuddin, 2013). Diagram aktivitas juga banyak digunakan untuk mendefinisikan hal-hal berikut:
Rancangan proses bisnis dimana setiap uturan aktivitas yang digambarkan merupakan proses bisnis sistem yang didefinisikan.
Urutan atau pengelompokan tampilan dari sistem atau user inteface dimana setiap aktivitas dianggap memiliki sebuah rancangan antarmuka tampilan.
Rancangan pengujian dimana setiap aktivitas dianggap memerlukan sebuah pengujian yang perlu didefinisikan kasus ujinya. 22 http://digilib.mercubuana.ac.id/
Rancangan menu yang ditampilkan pada perangkat lunak. User
System
Mulai Menampilkan Splash Screen kemudian Menu Utama
Membuka Android Apps
Klik Tombol Get Promo
Berada di sekitar beacon?
TIDAK
YA
Menampilkan List Promo
Melihat Promo
Selesai
Gambar 2-10 Contoh Activity Diagram Tabel 2-3 Notasi Pada Activity Diagram (S & Shalahuddin, 2013, p. 162)
NO 1
SIMBOL
NAMA
KETERANGAN Status awal aktivitas dari sebuah sistem.
Initial Node
Sebuah diagram aktivitas memiliki sebuah status awal. Aktivitas yang dilakukan oleh suatu sistem.
2
Activity
Penamaan aktivitas biasanya diawali dengan kata kerja
3
4
Condition
Fork Node
Asosiasi percabangan dimana jika ada pilihan aktivitas lebih dari satu.
Asosiasi penggabungan dimana lebih dari satu aktivitas digabungkan menjadi satu.
23 http://digilib.mercubuana.ac.id/
Actifity Final Node
5
Status akhir yang dilakukan sistem. Sebuah diagram aktivitas memiliki status akhir. Memisahkan
Swimline
6
organisasi
bisnis
yang
bertanggung jawab terhadap aktivitas yang terjadi.
2.5.1.4 Class Diagram Diagram kelas atau class diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Diagram kelas dibuat agar pembuat program atau programmer membuat kelas-kelas sesuai rancangan di dalam diagram kelas agar antara dokumentasi perancangan dan perangkat lunak sinkron (S & Shalahuddin, 2013).
Gambar 2-11 Contoh Class Diagram
Kelas memiliki apa yang disebut atribut dan metode.
Atribut merupakan variabel-variabel yang dimikili oleh suatu kelas.
Operasi atau metode adalah fungsi-fungsi yang dimiliki oleh suatu kelas.
Tabel 2-4 Notasi Pada Class Diagram (S & Shalahuddin, 2013, p. 146)
NO 1
SIMBOL
NAMA Class
KETERANGAN Kelas pada struktur sistem. Upaya
2
Interface
untuk
menghindari
asosiasi
dengan lebih dari 2 objek. 24
http://digilib.mercubuana.ac.id/
Relasi antarkelas dengan makna umum. Association
3
Asosiasi
biasanya
disertai
dengan
multiplicity. Relasi antar kelas dengan makna kelas Directed Association
4
yang satu digunakan oleh kelas yang lain. Asosiasi biasanya juga disertai dengan multiplicity. Relasi
5
extends
antar
Generalitation generalisasi khusus).
kelas –
dengan
spesialiasi
makna (umum
Deskripsi dari urutan aksi-aksi yang Collaboration
6
ditampilkan sistem yang menghasilkan suatu hasil yang terukur bagi suatu aktor.
7
Dependency
8
Aggregation
Relasi
antar
kelas
dengan
makna
kebergantungan antar kelas. Relasi antar kelas dengan makna semua – bagian (whole-part).
2.6. Basis Data Sistem basis data adalah sistem terkomputerisasi yang tujuan utamanya adalah memelihara data yang sudah diolah dan membuat informasi tersedia saat dibutuhkan (S & Shalahuddin, 2013). Pada intinya basis data adalah media untuk menyimpan data agar dapat diakses dengan mudah dan cepat. 2.6.1 MySQL MySQL adalah salah satu jenis database server yang sangat terkenal dan banyak digunakan untuk membangun aplikasi web yang menggunakan database sebagai sumber pengelolaan datanya (Arief, 2011). Kepopuleran MySQL anatara lain karena MySQL mengunakan SQL sebagai bahasa dasar untuk mengakses database-nya sehingga mudah untuk digunakan, kinerja query skala menengah-kecil. MySQL juga bersifat open-source dan free (tidak perlu membayar untuk menggunakannya) pada berbagai platform (kecuali pada Windows, yang bersifat shareware). MySQL didistribusikan dengan lisensi open 25 http://digilib.mercubuana.ac.id/
source GPL (General Public License) mulai versi 3.23, pada bulan juni 2000. MySQL merupakan database yang pertama kali didukung oleh bahasa pemrograman script untuk internet (PHP dan Perl). MySQL dan PHP dianggap sebagai pasangan software pengembangan aplikasi web yang ideal. MySQL lebih sering digunakan untuk membangun aplikasi berbasis web, umumnya pengembangan aplikasinya menggunakan bahasa pemrograman script PHP. 2.7. PHP PHP (PHP : Hypertext Preprocessor) adalah bahasa server-side scripting yang menyatu dengan HTML untuk membuat halaman web yang dinamis (Arief, 2011). Karena PHP merupakan server-side scripting maka sintaks dan perintah-perintah PHP akan dieksekusi di server kemudian hasilnya dikirimkan ke browser dalam format HTML. Dengan demikian kode program yang ditulis dalam php tidak akan terlihat user sehingga kemanan halaman web lebih terjamin. PHP dirancang untuk membentuk halaman web yang dinamis, yaitu halaman web yang dapat membentuk suatu tampilan berdasarkan permintaan terkini, seperti menampilkan isi basis data ke halaman web. PHP termasuk dalam Open Source Product, sehingga source code PHP dapat diubah dan didistribusikan secara bebas. PHP dapat berjalan dpada berbagai server seperti IIS (Internet Information Server), PWS (Personal Web Server), Apache, Xitami. PHP juga mampu lintas platform yang berarti PHP dapat berjalan di banyak sistem operasi yang beredar saat ini, diantaranya : Sistem Operasi Microsoft Windows (semua versi), Linux, Mac OS dan Solaris. PHP dapat dibangun sebagai modul pada web server Apache dan sebagai binary yang dapat berjalan sebagai CGI (Common Gateway Interface). PHP dapat mengirim HTTP header, dapat mengatur cookies, mengatur authentication dan redirect users. Salah satu keunggulan yang dimiliki oleh PHP adalah kemampuannya untuk melakukan koneksi ke berbagai macam software sistem manajemen basis data atau Database Management System (DBMS), sehingga dapat menciptakan suatu halaman web yang dinamis. PHP mempunyai koneksitas yang baik dengan beberapa DBMS antara lain Oracle, Sybase, mSQL, MySQL, Microsoft SQL Server, Solid, PostgreSQL, Adabas, FilePro, Velocis, dBase, Unix dbm dan tak terkecuali semua database yang berinterface ODBC. PHP juga memiliki integrasi dengan beberapa library eksternal yang dapat membuat kita dapat melakukan segalanya dari dokumen PDF hingga mem-parse XML. PHP mendukung komunikasi dengan layanan lain melalui protokol IMAP, SNMP, NNTP, POP3, atau bahkan HTTP. Bila PHP berada dalam halaman web, maka tidak lagi 26 http://digilib.mercubuana.ac.id/
dibutuhkan pengembangan lingkungan khusus atau direktori khusus. Hampir seluruh aplikasi berbasis web dapat dibuat dengan PHP. Namun kekutanan utama adalah konektivitas basis data dengan web. Dengan kemampuan ini kita akan mempunyai suatu sistem basis data yang dapat diakses dari web. 2.8. Android Android adalah sebuah sistem operasi untuk perangkat mobile berbasis linux yang mencakup sistem operasi, middleware, dan aplikasi. Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi sesuai dengan yang mereka harapkan. Selain itu Android juga merupakan platform mobile pertama yang bersifat lengkap, terbuka dan bebas (H, 2012). Untuk lebih lengkapnya akan dijelaskan dibawah berikut :
Lengkap (Complete Platform) : Para desainer dapat melakukan pendekatan yang komprehensif ketika mereka sendan mengembangkan platform Android. Android merupakan sistem operasi yang aman dan banyak menyediakan tools dalam membangun software dan memungkinkan untuk peluang pengembangan aplikasi.
Terbuka (Open Source Platform) : Platform Android disediakan melalui lisensi open source. Pengembang dapat dengan bebas untuk mengembangkan aplikasi. Android sendiri menggunakan Linux Kernel 2.6.
Bebas (Free Platform) : Android adalah platform atau aplikasi yang bebas untuk kita kembangkan. Tidak ada lisensi atau biaya royalti untuk dikembangkan pada platform Android.
27 http://digilib.mercubuana.ac.id/