BAB 2 TINJAUAN PUSTAKA 2.1
Teknologi Bluetooth Menurut http://www.bluetooth.com/Pages/Basic.aspx, 03-10-2013. Bluetooth
merupakan teknologi komunikasi nirkabel jarak pendek yang menggunakan gelombang radio dalam melakukan pertukaran data. Bluetooth dikenal dengan karakteristiknya yang simple, hemat energi dan tingkat keamanannya yang tinggi. Sampai dengan hari ini, walaupun sudah termasuk teknologi kuno, bluetooth masih ada hampir disemua alat komunikasi modern. Ketika pertama kali diciptakan oleh Ericsson pada tahun 1994 bluetooth hanyalah sebagai alternative wireless dari kabel RS-232. Kini bluetooth dapat kita gunakan untuk bertukar data yang lebih kompleks seperti musik, video dan gambar. Untuk dapat saling berkomunikasi pertama-tama 2 device yang ingin berkomunikasi harus menyalakan bluetooth lalu melakukan pairing satu sama lain. Ketika
sudah
terhubung(melakukan
pairing)
maka
sudah
dapat
terjadi
komunikasi/pertukaran data, 2 device yang saling terhubung ini juga akan menciptakan suatu jaringan komputer yang disebut dengan istilah PAN(Personal Area Network). Untuk jarak yang dapat dijangkau oleh bluetooth sendiri cukup bervariasi, mulai dari 1 meter sampai dengan 100 meter, tergantung dari jenis gelombang radio yang digunakan. Seperti semua teknologi yang diciptakan, bluetooth juga selalu dikembangkan dan mempunyai versi/generasi dari hasil pengembangannya tersebut. Mulai dari generasi The Bluetooth 1.0 yang diluncurkan pada tahun 1999, sampai yang terbaru Bluetooth v4.0. Untuk protocol stack dari bluetooth akan ditunjukkan pada gambar 2.1.
5
6
Gambar 2.1 Bluetooth Protocol Stack (http://www.cems.uwe.ac.uk/~pcsmarti/embeddedjava/bluestack.gif, 08-10-2013)
Keterangan: 1. Layer radio Layer ini adalah layer physical yang berperan menerjemahkan sinyal-sinyal listrik ke sinyal digital. Menggunakan frekuensi 2.4GHz-2.48GHz. 2. Layer Baseband Layer ini juga masih merupakan layer physical, berperan untuk memisahkan channel dan link physical yang ada dari servis-servis yang lain, seperti error correction, data whitening, hop selection dan bluetooth security. 3. Layer LMP(Link Manager Protocol) Layer ini yang bertanggung jawab dalam menjaga dan memelihara koneksi yang terjadi. 4. Layer HCI(Host Controller Interface) Layer ini bersifat sebagai interface antara perangkat lunak dan perangkat keras dari sistem.
7
5. Layer L2CAP(Logical link Control and Adaptation Protocol) Layer ini melakukan segmentasi package data, menggabungkan package yang telah disegmentasi(reassembly) dan juga berhubungan dengan QoS(Quality of Service). 6. Layer RFCOMM(Radio Frequency Communication Protocol) Layer ini berperan untuk menyediakan channel komunikasi diatas layer L2CAP. Bluetooth juga memiliki API(Application Programming Interface) sehingga para developer dapat mengembangkan aplikasi yang menggunakan terknologi bluetooth. API yang digunakan berbasis Java. Untuk arsitektur dari API bluetooth akan ditunjukkan pada gambar 2.2.
Gambar 2.2 Arsitektur API Bluetooth (http://www.cems.uwe.ac.uk/~pcsmarti/embeddedjava/bluetooth.htm, 08-10-2013)
8
2.2
Smartphone Menurut http://cellphones.about.com, 08-10-2013 smartphone adalah telepon
genggam yang menyediakan fungsi-fungsi dasar dari sebuah telepon genggam yaitu menelepon dan mengirimkan pesan singkat namun juga ditambahkan fungsi-fungsi lain dimana pada masa lalu fungsi-fungsi yang ada di smartphone hanya dapat ditemukan pada komputer pribadi dan Personal Digital Assistant. Sebelum smartphone muncul, device komunikasi yang ada dan yang paling popular adalah telepon genggam dan Personal Digital Assitant(PDA) . Dimana telepon genggam pada masa lalu hanya dapat digunakan untuk menelepon dan mengirimkan pesan singkat, PDA dapat melakukan tugas yang lebih rumit seperti mengirim email, tersinkronisasi dengan komputer dan melakukan browsing. Seiring perkembangan waktu pabrikan telepon genggam mulai menambahkan fungsi-fungsi yang ada pada PDA dan bahkan juga fungsi-fungsi yang ada pada komputer. Dari penambahan fungsi-fungsi pada telepon genggam tersebutlah smartphone lahir. Beberapa fitur atau fungsi yang dapat mengindikasikan suatu device komunikasi itu smartphone atau bukan adalah: 1.
Sistem operasi Smartphone dibangun dengan sistem operasi yang lebih kompleks dibanding dengan telepon genggam pada masa lalu dan memungkinkan smartphone untuk menjalankan aplikasi yang juga lebih kompleks dan membutuhkan sumber daya yang cukup besar.
2.
Aplikasi Aplikasi yang ada pada smartphone pada masa lalu hanya dapat ditemui di komputer pribadi ataupun PDA, misalnya: Microsoft Office, mengirimkan e-mail.
3.
Akses Internet Smartphone masa kini dapat mengakses internet dengan kecepatan tinggi. Karena rata-rata smartphone sudah dilengkapi dengan metode komunikasi 3G ataupun 4G.
4.
Keyboard QWERTY Tidak seperti telepon genggam tradisional, dimana huruf-huruf diurutkan secara alfabetik dan dikelompokkan didalam tombol-tombol nomor,
9
smartphone mempunyai keyboard dengan sistem QWERTY seperti yang ada di komputer pribadi pada umumnya 5.
Pesan/Messaging Semua telepon genggam dapat melakukan pengiriman pesan teks, namun smartphone mempunyai fungsi yang lebih advance. Pesan jika dikaitkan dengan smartphone bukan hanya lagi berupa SMS, namun juga menyangkut e-mail dan bahkan melakukan chatting. Smartphone juga mensupport lebih dari satu jenis akun e-mail yang ada.
2.3
Client-Server Menurut
http://en.kioskea.net/contents/151-networking-3-tier-client-server-
architecture, 08-10-2013, Pada dasarnya client-server adalah 2 hal yang terpisah. Client adalah pihak yang sifatnya melakukan request atau meminta informasi, setelah mendapatkan respon dari request yang dilakukan(misalnya didapatkan data), maka client akan melakukan proses yang akan mengolah informasi yang telah didapat. Sedangkan server adalah pihak yang menangani request yang dikirimkan oleh client, setelah mendapatkan request maka server akan melakukan proses untuk mengumpulkan informasi yang dibutuhkan oleh client, lalu informasi tersebut akan dikirimkan ke client yang meminta/melakukan request atas informasi tersebut. Untuk arsitekturnya sendiri ada 2 jenis arsitektur client-server: 1. Two tier architecture Pada arsitektur ini client berinteraksi secara langsung dengan server(tanpa ada mekanisme perantara). Merujuk dari cara interaksi antara client-server yang terjadi maka arsitektur tipe ini mempunyai kelemahan dalam performa dan keamanannya. 2. Three tier architecture Pada arsitektur ini client tidak berinteraksi secara langsung dengan server, namun ada software perantara yang diletakkan diantara client dan server, software ini dinamakan middleware software. Middleware software digunakan untuk melakukan pengecekan terhadap keamanan dan juga melakukan load-balancing jika terjadi pengiriman data dalam jumlah yang besar. Middleware akan mengambil semua request dari client dan akan
10
melakukan autentikasi terhadap request yang ada, setelah autentikasi selesai barulah middleware mengirimkan request ke server. Hal yang sama juga terjadi ketika server akan mengirimkan respond terhadap request dari client. Untuk interaksi yang terjadi antara client dan server akan ditunjukkan pada gambar 2.3.
Gambar 2.3 Interaksi Client-Server (http://www.tutorialspoint.com/ images/socket_client_server.gif, 08-10-2013)
2.4
Interaksi Manusia dan Komputer (IMK) Menurut
http://harga1.com/materi-interaksi-manusia-dan-komputer-modul-
lengkap/, 08-10-2013. Interaksi Manusia dan Komputer atau yang biasa disingkat IMK adalah suatu studi yang mempelajari hubungan interaksi antara manusia dan komputer, beserta tugas dari komputer tersebut. Atau dapat disimpulkan dengan bagaimana manusia dan komputer dapat bekerja sama secara interaktif dalam menyelesaikan suatu tugas atau instruksi, serta bagaimana suatu sistem yang bekerja secara interaktif tersebut dapat dibuat. Dalam Interaksi Manusia dan Komputer dikenal istilah user interface, yaitu sesuatu yang pengguna/user lihat. Hal ini meliputi konsep kebutuhan apa saja yang dibutuhkan untuk mengetahui tentang sistem komputer yang ada dan bagaimana
11
sistem tersebut nantinya dapat dipakai untuk menyelesaikan tugas – tugas yang berbeda. Sedangkan yang dimaksud dengan interaksi adalah kumpulan dialog berisi instruksi yang diberikan pada program dalam komputer oleh user. Dalam Interaksi Manusia dan Komputer juga dikenal dengan sebutan 8 (Eight) Golden Rules of Interface Design, istilah ini ditemukan oleh Ben Shneiderman (http://faculty.washington.edu/jtenenbg/courses/360/f04/sessions/schneidermanGold enRules.html, 08-10-2013). Rules atau panduan ini merupakan petunjuk dalam membuat user interface. Adapun aturan – aturan tersebut antara lain : 1. Konsistensi Dalam mendesain sebuah user interface harus selalu berusaha konsisten. 2. Memungkinkan frequent users untuk menggunakan shortcuts Dengan semakin seringnya seorang user menggunakan aplikasi / sistem yang sama setiap harinya, maka salah satu keinginan dari user tersebut adalah mengurangi interaksi – interaksi yang kurang penting agar dapat mempercepat proses interaksi yang ada. Oleh karena itu, diperlukan sebuah perintah yang singkat untuk mendukung hal tersebut, perintah tersebut dapat berupa macros. 3. Memberikan umpan balik (feedback) yang positif Umpan balik (feedback) diperlukan untuk memberikan informasi kepada user sesuai dengan intruksi yang dilakukan, sehingga user tersebut dapat mengetahui instruksi yang sudah dilakukan. Umpan balik ini dapat berupa konfirmasi ataupun penolakan jika user melakukan kesalahan dalam memberikan instruksi. 4. Memiliki dialog yang memberikan penutupan Umpan balik (feedback) juga dapat diberikan pada akhir dari suatu instruksi. Dengan adanya dialog penutupan, user yang telah selesai dalam memberikan suatu instruksi dapat melanjutkan ke instruksi yang lainnya. 5. Memiliki pencegahan dan penanganan kesalahan yang sederhana
12
Sistem yang sudah ada dirancang agar dapat mencegah user dalam melakukan kesalahan, namun bila user tetap melakukan kesalahan, sistem
yang
ada
harus
memberikan
peringatan
(warning)/pemberitahuan (notice) maupun panduan (guide) agar user dapat memperbaiki kesalahan yang telah dibuat. 6. Memungkinkan user untuk membatalkan suatu instruksi Pada proses pemakaian suatu sistem, terkadang user salah dalam memasukkan sebuah instruksi. Sistem yang baik dapat memberikan pembatalan terhadap instruksi yang sudah dilakukan sebelumnya. 7. Memiliki internal locus of control User yang handal dalam menggunakan sistem terkadang ingin menjalakan sistem yang ada secara maksimal dan mudah, sehinggan seakan – akan hanya satu user menguasai sistem. Sistem dengan pengoperasian yang rumit, sulit dimengerti akan membuat user menjadi tidak nyaman dalam penggunaannya. 8. Dapat mengurangi beban ingatan jangka pendek Terkadang users memilisi kesulitan dalam ingkatan jangka pendeknya (short term memory) sehingga tampilan sistem dapat dibuat sesederhana mungkin, halaman – halaman (page) yang ditampilkan secara beruntun harus diperhitungkan kembali, sehingga user tidak banyak mengingat.
2.5
Android Menurut
http://engineeringtown.com/kids/index.php/teknologi-
komunikasi/286-mengenal-sistem-operasi-android, 08-10-2013 Android merupakan sistem operasi yang berbasiskan Linux untuk telepon seluler (handphone) seperti telepon pintar (smartphone) dan komputer tablet (tablet pc). Android sendiri merupakan sistem operasi smartphone pertama dengan platform mobile yang lengkap, terbuka (open source) dan bebas.
•
Lengkap (Complete Platform) Para pengembang (developer) dapat melakukan pendekatan yang komprehensif ketika sedang melakukan pengembangan pada platform
13
android. Android juga merupakan sistem operasi yang aman dan banyak menyediakan tools dalam membangun dan mengembangkan software berbasis android, serta hal ini memungkinkan peluang untuk mengembangkan aplikasi. •
Terbuka (Open Source Platform) Android disediakan melalui open source license. Para developer dapat mengembangkan aplikasi secara bebas dan gratis. Android sendiri menggunakan Kernel Linux 2.6.
•
Bebas (Free Platform) Seperti
penjelasan
sebelumnya
bahwa
pengembang
dapat
mengembangkan aplikasi pada android secara bebas tanpa ada biaya royalti, tidak ada biaya kontrak, serta tidak ada biaya pengujian. Aplikasi yang ada juga dapat didistribusikan dan diperdagangkan melalui bentuk apapun. Android SDK (Software Development Kit) adalah tools API (Application Programming Interface) yang digunakan untuk mengembangkan aplikasi berbasis android, dengan menggunakan bahasa pemrograman Java. Berikut adalah beberapa fitur dalam Android : •
Framework Aplikasi yang mendukung pergantian komponen
•
Integrated Browser didasarkan pada Engine Open Source WebKit
•
Grafis lebih optimal dengan didukung oleh beberapa libraries seperti grafis 2D dan grafis 3D berdasarkan spesifikasi OpenGL ES 1.0
•
Media Support yang mendukung audio, video dan picture seperti MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF
•
Lingkungan Development yang lengkap dan kaya, termasuk diantaranya perangkat emulator, tools untuk debugging, profil dan kinerja memori, serta plugin untuk Eclipse IDE.
Sampai sekarang ini, android sendiri sudah memiliki beberapa versi yakni : •
Android 1.0 beta
14
Pertama kali dirilis pada tanggal 5 November 2007 serta pada tanggal 12 November 2007 dirilis versi SDK (Software Development Kit) versi beta. •
Android 1.0 Merupakan versi software android komersial yang pertama, dirilis pada tanggal 23 September 2008. Dan ponsel yang memperkenalkan dan membawa Android 1.0 didalamnya adalah ponsel HTC Dream (G1).
•
Android 1.1 Dirilis pada tanggal 9 Februari 2009 untuk menyelesaikan masalah (bug), merubah API serta menambah beberapa fitur dibanding versi android pendahulunya. Beberapa fitur tambahannya seperti kemampuan merekam dan menonton video, sudah didukung Bluetooth A2DP.
•
Android 1.5 (Cupcake) Dirilis pada tanggal 30 April 2009 android versi ini diberi nama Cupcake. Berbasiskan Linux Kernel 2.6.27, update ini membawa fitur baru dan perubahan pada user interface.
•
Android 1.6 (Donut) Dirilis pada tanggal 15 September 2009 dengan nama Donut. Berbasiskan Linux Kernel 2.6.29 dan kembali membawa fitur baru seperti dapat memilih foto yang akan dihapus, CDMA/EVDO 802.1x, VPN.
•
Android 2.0/2.0.1/2.1 (Eclair) Dirilis pada tanggal 26 Oktober 2009 dengan nama Eclair. Berbasiskan Linux Kernel 2.6.29. Perubahannya antara lain, adanya sinkronisasi akun yang diperluas memungkikan user melakukan penambahan beberapa akun sekaligus, dukungan Bluetooth 2.1, optimalisasi hardware.
•
Android 2.2x (Froyo : Frozen Yoghurt) Dirilis pada tanggal 20 Mei 2010 dengan basis Linux Kernel 2.6.32. Perubahan umumnya antara lain dukungan Adobe Flash 10.1, optimalisasi USB dan tethering.
•
Android 2.3.x (Gingerbread)
15
Dirilis pada tanggal 6 Desember 2010 dengan Linux Kernel 2.6.35. Perubahan umumnya antara lain mendesain ulang user interface, dukungan NFC (Near Field Communication). Perangkat yang hadir dengan Gingerbread adalah Google Nexux S. •
Android 3.x (Honeycomb) Dirilis pada tanggal 22 Februari 2011 dengan Linux Kernel 2.6.36. Merupakan versi android pertama yang digunakan untuk perangkat tablet. Perubahan umumnya antara lain user interface disesuaikan dengan perangkat tablet, optimalisasi hardware. Perangkat yang menggunakan Honeycomb ialah Motorola Xoom (24 Februari 2011).
•
Android 4.0.x (Ice Cream Sandwich) Dirilis 19 Oktober 2011 dengan Linux Kernel 3.0.1. Membawa fitur dasar dari Android Honeycomb serta menambah fitur baru seperti face detector, membagi informasi melalui NFC. Namun versi ini baru tersedia secara publik pada 14 November 2011.
•
Android 4.1.x – 4.3.x (Jelly Bean) Dirilis pada tanggal 9 Juli 2012 dengan Linux Kernel 3.0.31. Beberapa perubahan umumnya seperti optimalisasi input keyboard, optimalisasi voice search.
•
Android 4.4.x (KitKat) Diperkirakan rilis pada bulan Oktober. Nama sebelumnya adalah Key Lime Pie.
2.5.1 Arsitektur Android Menurut http://www.vedcmalang.com/pppptkboemlg/index.php/artikel-coba2/teknologi-informasi/825-arsitektur-sistem-operasi-android,
08-10-2013,
arsitektur android dibagi menjadi : •
Linux Kernel Merupakan inti dari android operating system dimana didalamnya
terdapat
keamanan,
manajemen
memori,
manajemen proses, jaringan dan driver. Kernel Linux juga
16
menyediakan kamera, keypad, WiFi, Flash Memory, audio serta IPC (Interprocess Communication) untuk mengatur aplikasi dan keamanan. •
Libraries Android menggunakan beberapa paket pustaka yang terdapat pada C/C++ dengan standart BSD (Berkeley Software Distribution) namun hanya setengah dari asliya untuk tertanam pada Linux Kernel. Beberapa diantaranya : i.
Media Library untuk memutar dan merekam audio serta video.
ii.
Surface Manager untuk mengatur hak akses layar dari aplikasi.
iii.
Grapich Library termasuk SGL dan OpenGL, untuk tampilan 2D dan 3D.
•
iv.
SQLite untuk mengatur relasi database pada aplikasi.
v.
SSI dan WebKit untuk browser serta keamanan internet.
Android Runtime Pada bagian ini terdapat dua bagian utama, yaitu : i.
Pustaka inti Android
dikembangkan
menggunakan
bahasa
pemrograman Java, namun Android Runtime bukanlah mesin virtual Java. Pada bagian ini menyediakan hampir semua fungsi yang ada pada Java. ii.
Mesin Virtual Dalvik Dengan mesin ini, dapat mengoptimalkan efisiensi penyimpanan dan pengalamatan memori pada file yang dijalankan. Dalvik berjalan di atas Linux Kernel 2.6 dengan fungsi dasar seperti threading dan manajemen memori tak terbatas.
•
Application Framework Bagian terpenting dari bagian ini adalah : a. Activity Manager Untuk mengontrol siklus hidup aplikasi.
17
b. Content Providers Untuk merangkum data yang mungkin digunakan oleh aplikasi lainnya. c. Resource Manager Untuk mengatur sumber daya yang ada dalam sebuah program. Serta menyediakan akses sumber daya diluar kode program seperti karakter, grafik, dan file layout. d. Location Manager Untuk memberikan informasi detail mengenai lokasi perangkat android berada. e. Notification Manager Untuk berbagai macam peringatan, seperti pesan masuk, appointment. •
Application Layer Merupakan puncak dari arsitektur android, yaitu lapisan aplikasi dan widget. Lapisan aplikasi merupakan lapisan yang tampak ketika user menjalankan program.
2.6
Bahasa Pemrograman Menurut http://archa.students.uii.ac.id/2011/11/22/hello-world/, 08-10-2013,
Bahasa Pemrograman adalah bahasa mesin yang digunakan dalam suatu komputer yang
berisikan
perintah–perintah
untuk
menyelesaikan
masalah.
Bahasa
Pemrograman yang sudah jadi bisa di sebutkan suatu program \/software untuk mengerjakan suatu perintah–perintah untuk mendapatkan suatu hasil atau output yang diinginkan. Perintah–perintah yang tergabung menjadi suatu program atau sering disebut dengan istilah code memiliki beberapa kelompok bahasa sesuai dengan perkembangan generasi : •
Bahasa Mesin (generasi pertama) adalah bahasa internal komputer yang mengeksekusi secara langsung tanpa translation. Bahasa ini paling awal, di kembangkan tahun 1940 sampai 1950-an. Bentuk bahasa mesin ini masih memiliki banyak kelemahan diantaranya menyita waktu dan
18
bersifat kondusif untuk membuat sebuah kesalahan dan sangat bergantung kepada jenis komputer, karena akan memiliki perbedaan hasil pada setiap komputer. •
Bahasa Assembly (Generasi kedua) menyerupai bahasa mesin, sehingga untuk menjadi seorang programmer bahasa assembly yang bagus harus memahami bagaimana cara mesin memproses data. Layaknya bahasa mesin, bahasa assembly masih tergantung pada komputer, karena masih terdapat perbedaan pada tiap-tiap komputer.
•
Bahasa tingkat tinggi (Generasi ketiga) disebut bahasa tingkat tinggi karena mudah untuk dipelajari, dan sebuah program tingkat tinggi ini mermerlukan proses penerjemahan oleh komputer yang sangat rumit, sering disebut dengan compiler, yaitu proses pengemasan program secara keseluruhan agar lebih mudah digabung pada sebuah sistem komputer. Contoh untuk bahasa tingkat tinggi seperti Pascal, Cobol dan Fortran. Generasi keempat cirinya adalah mudah untuk dipelajari dan dipahami, tepat untuk pengaksesan database, fokus pada maksimalis produk
manusia,
nonprocedural,
bukan
tersedia
pada dalam
minimalis software
waktu paket
komputer, dan
dapat
mengembangkan aplikasi yang diinginkan contohnya seperti, MySQL (Structured Query Language), QBE (QueryByExample) dan Report Generator. Generasi kelima sering digunakan untuk akses Database atau sistem pakar dan juga Knowledge Based System yang ditujukan untuk bahasa alami hampir menyerupai hubungan kemanusiaan, contohnya LISP dan Prolog. Dalam menterjemahkan bahasa program dikenal dua program yaitu Compiller dan Interpreter. Compiller adalah pengemasan
bahasa
program
secara
keseluruhan,
dengan
menterjemahkan bahasa program tersebut kedalam bahasa objek, sehingga akan dengan mudah dihubungkan dengan sistem operasi dan diterima oleh Hardware. Interpreter adalah proses terjemah yang hanya menganalisa dan mengekskusi setiap baris tanpa melihat keseluruhan isi program, namun demikian Interpreter memiliki kelebihan yaitu eksekusi dapat silakukan dengan segera tanpa adanya proses kompilasi,
19
karena itu Interpreter sering digunakan untuk pembuatan program berskala besar. Dari pengelompokan bahasa pemrograman di atas terdapat jenis–jenis bahasa pemrograman yang dipakai, yaitu :
2.7
Java Menurut http://bpptik.kominfo.go.id/index.php/id/artikel/142-sejarah-singkat-
java, 08-10-2013, Java dikembangkan pada tahun 1990 oleh insinyur Sun. James Gosling sebagai yang pertama menulis program dengan C++, dia merasa kurang puas dengan hasil yang dia peroleh, sehingga dia mengasingkan diri di kantornya untuk membuat bahasa pemrograman yang baru agar lebih sesuai dengan kebutuhannya. Gosling menamakan bahasa pemrograman barunya Oak, nama sebuah pohon dekat jendela kantor, kemudian dia ganti menjadi Green lalu Java. Bahasa pemrograman Java adalah bahasa pemrograman berbasis object oriented. Sintaks di Java hampir sama dengan bahasa C dan C++. Java platform dikembangkan untuk mengakomodasikan pembangunan piranti lunak untuk media yang terhubung ke jaringan. Java dirancang agar dapat mendukung arsitektur komputer yang berbedabeda. Untuk mencapai hal tersebut, program yang telah dikompilasi harus dapat dipindahkan didalam jaringan, bekerja di client dan harus bisa menjamin keamanan client yang memakainya. Java bersifat multi-platform dengan kata lain bisa dioperasikan di sistem operasi yang berbeda–beda. Untuk menjalankan Java, sistem operasi apapun harus menggunakan Java Virtual Machine (JVM) yang sudah terinstall terlebih dahulu. Banyak juga software–software sekarang yang mendukung programmer menggunakan bahasa pemrograman Java, salah satu software tersebut adalah Eclipse. •
Eclipse Eclipse adalah sebuah Integrated Development Environment (IDE) untuk mengembangkan perangkat lunak dan dapat dijalankan di semua platform (platform-independent). Berikut ini adalah sifat dari Eclipse: 1.
Multi-Platform
20
Target sistem operasi Eclipse adalah Microsoft Windows, Linux, Solaris, AIX, HP-UX dan Mac OS X. 2.
Multi-Language Eclipse dikembangkan dengan bahasa pemrograman Java, akan
tetapi dapat mendukung aplikasi yang menggunakan bahasa pemrograman lain seperti C, C++, Cobol, Phyton, PHP, Perl dan lain sebagainya. 3.
Multi-Role Selain fungsi Eclipse sebagai Integrated Development
Environment (IDE), Eclipse pun dapat digunakan untuk aktivitas dalam siklus pengembangan perangkat lunak seperti dokumentasi, pengujian perangkat lunak, pengembangan web, dan lain sebagainya. Saat ini, Eclipse merupakan salah satu Integrated Development Environment (IDE) favorit programmer karena gratis dan bersifat open source. Open source adalah suatu istilah dimana perangkat lunak yang sudah jadi bisa dilihat kode pemrogramannya oleh programmer lain. Selain itu, kelebihan Eclipse yang membuatnya popular adalah kemampuannya yang dapat dikembangkan oleh pengguna dengan membuat komponen yang disebut plug-in. Di Eclipse juga terdapat plug-in yang digunakan untuk menguji fungsionalitas coding, nama plug-in itu adalah CodePro Analytic.
2.8
Rekayasa Piranti Lunak Pengertian dari rekayasa piranti lunak adalah suatu disiplin ilmu
yang membahas bagaimana mendapatkan atau menghasilkan piranti lunak yang handal, ekonomis dan bekerja secara efisien. Ada 2 bagian yang menjadi kunci didalam rekayasa periranti lunak(Sommerville, 2001 : 7) yaitu : 1.
Ilmu Rekayasa (Engineering Discipline) adalah ilmu yang membuat segala sesuatu berfungsi, mengaplikasikan teori, metode dan alat yang sesuai untuk menemukan solusi dari setiap akar masalah.
2. Aspek dalam produksi perangkat lunak, dalam pembuatan/perekayasaan piranti lunak bukan hanya mementingkan aspek teknikal saja,
21
melainkan memperhatikan setiap aktivitas dari manajemen projek, development tools (alat pengembang), metode dan teori yang mendukung produksi piranti lunak. Didalam suatu perancangan piranti lunak terdapat suatu bagian yaitu proses piranti lunak dimana terdapat beberapa aktivitas mendasar dalam setiap proses piranti lunak yaitu: 1. Spesifikasi Perangkat Lunak (Software Specification) Setiap fungsi dari perangkat lunak harus didefinisikan secara jelas. 2. Pembuatan Perangkat Lunak (Software Development) Setiap spesifikasi yang telah ditetapkan harus dibuat sesuai dengan spesifikasi perangkat lunak. 3. Validasi Perangkat Lunak (Software Validation) Setiap perangkat lunak harus memiliki validasi untuk memastikan agar tidak terjadinya error dan pengguna hanya dapat mengakses sesuai hak aksesnya. 4. Perubahan Perangkat Lunak (Software Evolution) Perangkat lunak harus dapat berubah / berkembang sesuai dengan kebutuhan pengguna.
2.8.1 Lapisan dalam Rekayasa Perangkat Lunak Didalam Rekayasa piranti lunak terdapat 3 lapisan pendekatan utama yaitu(Pressman, 2001 : 53-54) : 1. Process Layer Fondasi dari rekayasa piranti lunak yang mendefinisikan sebuah kerangka kerja untuk sekumpulan key process yang harus dibangun
demi
keefektifan
penyampaian
teknologi
pengembangan rekayasa piranti lunak. 2. Methods Layer Secara teknis menjelaskan bagaimana membangun suatu piranti lunak. 3. Tools Layer
22
Tools yang menyediakan dukungan otomatis dan semi otomatis process dan methods. Layer – layer diatas didukung oleh sebuah layer pendukung yang berfungsi sebagai landasan paling penting yang menopang ketiga layer diatas.
Gambar 2.4 Lapisan Rekayasa Piranti Lunak (http://kuliahso.wordpress.com/2012/03/13/software-layer-lapisan-perangkat-lunak/, 08-10-2013)
2.8.2 Model Proses Software Model rekayasa piranti lunak salah satunya adalah Waterfall model(Pressman, 2010 : 36). Model Waterfall yang terkadang disebut sebagai classic lifecycle ini menyarankan pendekatan – pendekatan sistematis dan berurutan bagi pengembangan piranti lunak. Berikut adalah gambar pengembangan sistem perangkat lunak dengan proses SDLC (System Development Life Cycle) dengan model Waterfall.
23
Gambar 2.5 System Development Life Cycle (https://encryptedtbn0.gstatic.com/images?q=tbn:ANd9GcTwpVcPvsC5cbeGWD3kFIR2PcTYekqRF gL-n1EH9lF86T4Z_YbD4Q, 08-10-2013)
Penjelasan dari tahap–tahap Waterfall model adalah : 1.
Rekayasa Sistem (System Engineering) Perancangan dalam suatu sistem perlu dilakukan, karena piranti lunak merupakan bagian dari sistem yang lebih besar. Pembuatannya dapat dimulai dengan melihat dan mencari apa yang dibutuhkan oleh sistem lalu diterapkan ke dalam piranti lunak yang dibuat.
2.
Analisa
Kebutuhan
Piranti
Lunak
(Software
Requirement
Analysis) Merupakan proses pengumpulan sumber–sumber yang diperlukan dalam pembuatan piranti lunak. Seorang analisis harus memahami dasar dari program yang akan dibuat agar dapat mengetahui ruang lingkup informasi, fungsi–fungsi yang dibutuhkan, kemampuan kinerja yang ingin dihasilkan dan perancangan antarmuka (User Interface) pemakai piranti lunak tersebut. 3.
Perancangan (Design) Perancangan piranti lunak merupakan proses bertahap yang memfokuskan 4 hal/bagian penting, yaitu: struktur data, arsitektur piranti lunak, detil prosedur dan karakteristik user interface.
24
4.
Kode (Coding) Merupakan proses penulisan bahasa pemrograman agar piranti lunak yang akan dibuat dapat dijalankan oleh mesin.
5.
Uji Coba (Testing) Merupakan proses uji coba kode program yang telah dibuat. Tujuan dari proses ini untuk memastikan bahwa semua pernyataan telah diuji dan semua input dapat menghasilkan output yang sesuai. Proses ini dibagi menjadi 2 bagian, pengujian internal dan pengujian external. Pengujian internal bertujuan memvisualisasikan semua statement sudah dilakukan uji coba atau belum, sedangkan pengujian external bertujuan untuk menemukan kesalahan serta memastikan output yang dihasilkan sesuai dengan yang diharapkan.
6.
Pemeliharaan (Maintenance) Proses ini dilakukan setelah piranti lunak telah jadi dan sudah digunakan oleh pemakai atau user. Perubahan akan dilakukan jika terjadi kesalahan (error) dan akan diperbaiki sesuai dengan kebutuhan yang diinginkan konsumen. Kelebihan Waterfall Model: (Pressman, 2010 : 41) •
Bisa menggunakan waterfall model jika suatu persyaratan atau kebutuhan software yang akan dibuat sudah lengkap dan telah dipahami dengan baik.
Kekurangan Waterfall Mode (Pressman, 2010 : 41-42): •
Pembagian proyek menjadi tahap–tahap yang tidak fleksibel, karena komitmen harus dilakukan pada proses tahap awal.
•
Sulit untuk menentukan seluruh requirements yang dibutuhkan pada tahap awal pembuatan sebuah proyek.
•
Waterfall model hanya bisa dilakukan jika persyaratan sudah lengkap dan dipahami dengan baik.