BAB 2 LANDASAN TEORI
2.1
Perangkat Lunak 2.1.1
Pengertian Perangkat Lunak Menurut Pressman (2001, p10), perangkat lunak dapat diartikan sebagai berikut : 1. Perintah – perintah dalam suatu program komputer yang jika dijalankan akan memberikan fungsi dan hasil yang diinginkan. 2. Struktur
–
struktur
data
yang
membuat
program
dapat
memanipulasi data. 3. Dokumen yang menggambarkan operasi dan penggunaan program.
Dari pengertian diatas maka dapat diambil kesimpulan bahwa perangkat lunak atau sering disebut software adalah sekumpulan data elektronik yang disimpan oleh komputer, dapat berupa program atau instruksi untuk menjalankan suatu perintah. Perangkat lunak ini dibagi menjadi 3 tingkatan, yaitu : tingkatan program aplikasi, tingkatan sistem operasi, dan tingkatan bahasa pemrograman. Software
atau
perangkat
lunak
komputer
berdasarkan
distribusinya dibedakan menjadi beberapa macam, yaitu perangkat lunak berbayar, perangkat lunak gratis atau free ( Freeware, free software, shareware, adware) .
11
12
Pada perangkat lunak berbayar kita harus membayar untuk dapat menggunakan perangkat lunak tersebut. Sedangkan free software lebih mengarah pada bebas penggunaan tetapi tidak harus gratis. Freeware berarti “bebas” untuk mencoba perangkat lunak sumber terbuka (open source), program ini dapat sekali boleh digunakan, disalin, dimodifikasi, dan didistribusikan secara bebas. Jadi free software tidak mengarah kepada pembelian secara gratis, tetapi lebih pada penggunaan dan distribusi. Shareware merupakan perangkat lunak bebas tetapi untuk waktu tertentu, fitur tertentu, dan fungsi tertentu, dengan lisensi yang ditetapkan (misalnya 30 hari). Dengan demikian memberikan pengguna kesempatan untuk menguji produk sebelum membeli versi lengkap dari program. Sedangkan Adware merupakan perangkat lunak bebas sepenuhnya namun termasuk dalam program periklanan, karena memungkinkan penggunaan perangkat lunak bebas dalam pertukaran untuk masuk dengan cara iklan, add banner atau pop-up.
2.1.2
Macam – macam Perangkat Lunak Perangkat lunak aplikasi adalah suatu subkelas perangkat lunak komputer yang memanfaatkan kemampuan komputer langsung untuk melakukan suatu tugas yang diinginkan pengguna. Biasanya dibandingkan dengan perangkat lunak sistem yang mengintegrasikan berbagai
kemampuan
komputer,
tapi
tidak
secara
langsung
menerapkan kemampuan tersebut untuk mengerjakan suatu tugas yang
13
menguntungkan pengguna. Contoh utama perangkat lunak aplikasi adalah pengolah kata, lembar kerja, dan pemutar media. Aplikasi biasanya memiliki antarmuka pengguna sehingga memudahkan pengguna untuk mempelajari dan menggunakan aplikasi. Perangkat lunak sistem adalah perangkat lunak yang berfungsi memeberikan gambaran terhadap kontrol dan manajemen perangkat keras serta berbagai operasi dasar sistem yang dipakai oleh software aplikasi, program pengolah data dan browser web. Ia merupakan bagian esensial dari sistem komputer. Sistem operasi adalah suatu contoh yang jelas, sedangkan OpenGL atau pustaka basis data adalah contoh lainnya. Perangkat lunak jenis ini dibedakan dengan perangkat lunak aplikasi, yang merupakan program yang membantu pengguna melakukan tugas spesifik dan produktif, seperti pengolahan kata atau manipulasi gambar.
2.2
Interaksi Manusia dan Komputer 2.2.1
Pengertian Interaksi Manusia dan Komputer Ben Shneiderman seorang profesor Computer Science dari Maryland University mengusulkan istilah manipulasi pada tahun 1983. Menurut Shneiderman (2005, p214), manipulasi terdiri dari 3 elemen: penyajian visual dari obyek yang akan dimanipulasi, tindakan fisik sebagai pengganti teks masukan, dan reaksi langsung yang dapat dilihat.
14
Menurut Shneiderman (2005, p4), interaksi manusia komputer adalah disiplin ilmu yang berhubungan dengan perancangan dengan menggabungkan metode pengumpulan data dan kerangka intelektual eksperimental dengan alat yang berguna dan banyak digunakan, dikembangkan dari ilmu komputer.
Sistem yang baik hendaknya user-friendly, yaitu: 1. Mudah untuk dipelajari. 2. Kecepatan dalam penyajian informasi yang paling akurat. 3. Membantu pengguna untuk menghafal dengan cepat. 4. Tingkat kesalahan pengguna rendah. 5. Memberikan kepuasan kepada user atau pengguna.
2.2.2
Perancangan Antarmuka Menurut Shneiderman (2010, p74), ada delapan aturan emas (eight golden rules) dalam merancang antarmuka pemakai, yaitu :
1. Berusaha untuk konsisten, yaitu konsisten dalam penggunaan font, warna, simbol, bentuk tombol, dan tata letak. 2. Universal Usability, menambahkan fitur bagi pengguna pemula berupa penjelasan dan bagi pengguna berpengalaman berupa fitur shorcut, dan faster pacing. Sehingga memperkaya desain antarmuka dan kualitas sistem.
15
3. Dapat memberikan umpan balik (feedback) yang informatif, memberikan respon yang sesuai dengan aksi yang dilakukan pengguna sehingga membantu pengguna dalam mengerti sistem. 4. Merancang dialog untuk menghasilkan suatu penutupan, yaitu merancang aksi secara terogranisir yang terdiri dari suatu permulaan, tengah, akhir, sehingga pemakai dapat mengetahui kapan suatu kelompok aksi dapat beralih ke aksi berikutnya. 5. Memberikan pencegahan kesalahan, apabila pengguna melakukan kesalahan maka sistem harus dapat mendeteksi kesalahan serta memberikan instruksi sederhana dan spesifik agar pengguna tau dimana letak kesalahan mereka dan dapat dengan mudah melakukan perbaikan. 6. Memungkinkan pembalikan aksi (undo) dengan mudah, aksi harus bisa dibalik. Hal ini dapat mengurangi kekuatiran pengguna karena pengguna mengetahui kesalahan yang dilakukan dapat dibatalkan; sehingga pengguna tidak takut untuk mengekplorasi pilihan-pilihan lain yang belum biasa digunakan. 7. Mendukung pusat kendali internal (internal locus of control) Pengguna ingin menjadi pengontrol sistem dan sistem akan merespon tindakan yang dilakukan pengguna daripada pengguna merasa bahwa sistem mengontrol pengguna. Sebaiknya sistem dirancang sedemikan rupa sehingga pengguna menjadi inisiator daripada responden.
16
8. Mengurangi beban ingatan jangka pendek, keterbatasan ingatan manusia membutuhkan tampilan yang sederhana atau banyak tampilan halaman yang sebaiknya disatukan, serta diberikan cukup waktu pelatihan untuk kode, mnemonic, dan urutan tindakan.
2.2.3
Faktor Manusia Terukur Menurut Shneiderman (2005, p16), dalam merancang suatu sistem yang interaktif menurut harus memperhatikan lima faktor manusia terukur, yaitu:
1. Waktu
Belajar,
waktu
yang
dibutuhkan
seseorang
untuk
mempelajari tugas yang diberikan. 2. Kecepatan Kerja, waktu yang diberikan oleh seseorang untuk menyelesaikan tugas yang diberikan. 3. Tingkat Kesalahan Pengguna, berapa banyak kesalahan yang dilakukan pengguna dalam mengerjakan sebuah tugas tertentu. 4. Retensi dari waktu ke waktu, retensi berhubungan erat dengan kemampuan pengguna dalam menjaga pengetahuannya selama jangka waktu tertentu. 5. Kepuasan Objektif, standarisasi mengenai apakah pengguna memperoleh kepuasan terhadap berbagai aspek sistem.
17
2.3
Rekayasa Perangkat Lunak 2.3.1
Karakteristik Perangkat Lunak Perangkat lunak merupakan elemen sistem yang bersifat logic, beberapa karakteristiknya yaitu :
1. Perangkat lunak dapat dikembangkan dan direkayasa, bukan dirakit seperti perangkat keras. 2. Perangkat lunak tidak mudah rusak, berbeda dengan perangkat keras yang mempunyai tingkat kerusakan tinggi. Pada perangkat lunak untuk mencegah kerusakan dapat dilakukan dengan maintenance atau pemeliharaan perangkat lunak. Kesalahan pada perangkat lunak biasanya terpusat pada saat proses menerjemahkan program ke bahasa mesin atau pada saat merancang. 3. Pada dasarnya perancangan perangkat lunak dibuat sebagai komponen yang dapat disusun ulang.
2.3.2
Pengertian Rekayasa Perangkat Lunak Menurut Pressman (2001, p20), rekayasa perangkat lunak merupakan penerapan dan pemakaian prinsip rekayasa dalam rangka mendapatkan perangkat lunak ekonomis yang terpercaya dan bekerja secara efisien pada mesin komputer.
18
2.3.3
Elemen Utama Rekayasa Perangkat Lunak Rekayasa perangkat lunak mencangkup tiga elemen yang mampu mengontrol proses perkembangan perangkat lunak, yaitu :
1. Metode Metode merupakan cara – cara teknis membangun perangkat lunak yang terdiri dari perancangan proyek dan estimasi, analisis kebutuhan sistem dan perangkat lunak, perancangan struktur data, arsitektur program, prosedur algoritma, pengkodean, pengujian, dan pemograman. 2. Alat – alat bantu Alat – alat bantu menyediakan dukungan otomatis dan semi otomatis untuk metode – metode seperti Computer Aided Software Engineering (CASE) yang mengkombinasikan perangkat lunak dan perangkat keras dan Software Engineering Database, yaitu tempat penyimpanan yang mengandung informasi penting tentang analisis, perancangan, dan pembuatan program, serta pengujian. Untuk pengembangan perangkat lunak yang sejalan dengan Computer Aided Design/Engineering (CAD/E) untuk perangkat keras. 3. Prosedur – prosedur Prosedur – prosedur untuk menghubungkan alat – alat bantu dengan metode. Tujuan dari prosedur yaitu untuk mendapatkan perangkat lunak yang efisien, berguna, dan ekonomis.
19
2.3.4
Model Proses 2.3.4.1 Pengertian Proses Menurut Pressman (2001, p27), proses perangkat lunak sebagai sebuah kerangka kerja untuk tugas – tugas yang dibutuhkan untuk membangun perangkat lunak dengan kualitas tinggi. Proses memiliki beberapa karakteristik, yaitu sebagai berikut :
1. Understandability, sejauh mana proses secara eksplisit ditentukan dan bagaimana kemudahan definisi proses itu dimengerti. 2. Visibility, aktifitas – aktifitas proses mencapai titik akhir dalam hasil yang jelas sehingga kemajuan dari proses tersebut dapat terlihat jelas. 3. Supportability, sejauh
mana aktifitas proses dapat
didukung oleh Computer Aided Software Engineering (CASE). 4. Acceptability, proses yang telah ditentukan oleh insinyur dapat
diterima
dan
digunakan
dan
mampu
bertanggungjawab selama pembuatan produk perangkat lunak.
20
5. Reliability, proses didesain sedemikian rupa sehingga kesalahan proses dapat dihindari sebelum terjadi kesalahan produk. 6. Robustness, proses terus berjalan walaupun terjadi masalah yang tidak terduga. 7. Maintainability, proses berkembang untuk mengikuti kebutuhan atau perbaikan. 8. Rapidity, bagaimana kecepatan proses pengiriman sistem dapat secara lengkap memenuhi spesifikasi.
2.3.4.2 Waterfall Model Penulis menggunakan metode Waterfall Model (model air terjun) dalam merancang aplikasi. Tahapan – tahapan yang terdapat dalam metode ini yaitu :
1. Analisis dan rekayasa sistem (system engineering and modeling) Dalam tahap ini dilakukan penetapan kebutuhan – kebutuhan perangkat lunak untuk semua elemen sistem, dan
dilakukan
peninjauan
untuk
melihat
apakah
perangkat lunak dapat berinteraksi dengan elemen – elemen lainnya seperti perangkat keras, manusia, dan basis data.
21
2. Analisis
kebutuhan
perangkat
lunak
(software
requirements analysis) Dalam tahap ini dilakukan analisis kebutuhan agar dapat mengetahui seluruh informasi, fungsi, performa, dan antarmuka yang dibutuhkan agar dapat digunakan sebagai dasar sistem yang akan dibangun. 3. Perancangan (Design) Pada tahap ini perancangan terhadap perangkat lunak dilakukan. Terdiri atas beberapa langkah yang difokuskan pada
struktur
data,
arsitektur
perangkat
lunak,
representasi antar muka, dan prosedur yang detail. 4. Pembuatan Program (Coding) Pada tahap ini hasil perancangan diterjemahkan kedalam bahasa yang dapat dimengerti oleh mesin. 5. Pengujian (Testing) Pada tahap ini dilakukan pengujian program yang telah selesai. Proses pengujian difokuskan kepada logika dalam program dan perangkat lunak untuk memastikan bahwa semua kode program telah diuji dan berjalan dengan baik. 6. Pemeliharaan (Maintenance) Dalam tahap ini dilakukan pengecekan apakah ada kesalahan – kesalahan setelah sistem dijalankan, dan apabila ditemukan kesalahan akan langsung diperbaiki. Serta melakukan pengecekan apakah perangkat lunak
22
dapat beradaptasi dengan segala perubahan yang ada, baik dari segi kebutuhan sistem maupun pengaruh dari luar sistem. Pengecekan ini biasanya dilakukan secara berkala dan menyeluruh.
Gambar 2.1 Waterfall Model (Pressman,2001).
2.4
Unified Modeling Language (UML) 2.4.1
Definisi Unified Modelling Language (UML) Berikut merupakan definisi Unified Modeling Language (UML) menurut para ahli : 1. Menurut (Joomla dari http://soetrasoft.com : 2007). “Unified Modelling Language (UML) merupakan standard modelling language
yang
terdiri
dari
kumpulan-kumpulan
diagram
dikembangkan untuk membantu par pengembang sistem dan software agar bisa menyelesaikan tugas-tugas seperti : Spesifikasi,
23
Visualisai, Desain Arsitektur, Konstruksi, Simulasi dan testing serta Dokumentasi 2. Menurut Fowler (2004, p6), Unified Modeling Language (UML) adalah bahasa pemograman untuk momodelkan perilaku logic. Seorang developer menggunakan UML untuk membantu dalam mengkomunikasikan beberapa aspek dari sistem. Berdasarkan
beberapa
pendapat
itulah
dapat
ditarik
kesimpulan bahwa Unified Modeling Language (UML) secara garis besar
merupakan
bahasa
grafis
untuk
mendokumentasikan,
menspesifikasikan, dan membangun sistem perangkat lunak.
2.4.2
Macam Diagram Pada Unified Modelling Language (UML) Standar Unified Modeling Language (UML) didefinisikan sebagai diagram, ada 4 macam diagram yang digunakan dalam penulisan ini, yaitu sebagai berikut :
1. Use Case Diagram Menurut Bennett (2005, p145), Use Case Diagram digunakan untuk menunjukan bahwa secara fungsional sistem akan menyediakan dan menunjukan mana pengguna dan bagaimana berkomunikasi dengan sistem. Bagian – bagian dari use case diagram :
24
a. Use Case Use case digunakan
untuk menggambarkan deskripsi
fungsional dari sistem dari perspektif pengguna (user), yang berisi satu set perilaku terkait transaksi yang biasanya dilakukan bersama-sama untuk menghasilkan nilai bagi pengguna. b. Actor Actor mewakili peran orang, sistem lain, perangkat lain, ketika berkomunkasi dengan kasus penggunaan tertentu dalam sistem. c. Communication Association Merupakan contoh koneksi logis antara actor dengan use case. d. Subsystem Boundary Boundary
mendandakan
batasan,
pengklarifikasian
komponen atau subsistem pada use case. e. Extend and Include Relationship Extend digunakan ketika anda ingin menunjukan bahwa use case memberikan tambahan fungsional yang mungkin diperlukan dalam penggunaan use case lain.
Include digunakan ketika ada urutan perilaku (use case) yang digunakan
dalam
sejumlah
kasus,
dan
anda
ingin
menghindari menyalin deskripsi yang sama itu ke dalam
25
setiap use case yang digunakan. Atau bisa dikatakan bahwa include
menggambarkan
use
case
yang
dimasukkan
didalamnya perilaku dari use case lain.
Gambar 2.2 Use Case Diagram
2. Class Diagram Menurut Bennet (2005, p179) Class diagram merupakan UML struktur diagram yang menunjukan kelas dengan atribut dan menjalankan operasi, bersama dengan asosiasi antar kelas. Bagian – bagian dari class diagram :
26
a.
Class Class merupakan kumpulan objek yang secara logis sama dalam hal perilaku dan struktur data mereka.
b.
Attributes Atribut adalah struktur umum yang dapat member class ketahui, setiap objek akan memiliki atribut sendiri, mungkin unik. Bersama – sama dengan operasi untuk mendefinisikan kelas.
c.
Operations Merupakan apsek dari perilaku yang mendefinisikan sebuah kelas, untuk membuat spesifikasi dari unsur fungsionalitas sistem yang akan diimplementasikan sebagai metode objek.
Atribut dan operasi dapat memiliki salah satu dari sifat berikut : ¾
Private : tidak dapat dipanggil dari luar class yang
bersangkutan simbol (-). ¾
Protected : hanya dapat dipanggil oleh class yang
bersangkutan simbol (#). ¾
Public : dapat dipanggil oleh semua class simbol (+).
27
d.
Relation of Class Diagram 1.
Multiplicity
Multiplicity berguna untuk mengidentifikasikan berapa banyak objek dari suatu kelas terelasi ke objek lain. Notasi multiplicity adalah sebagai berikut :
Multiplicity
Pengertian
*
Banyak
0
Nol
1
Satu bisa ditulis bisa tidak
0..*
Antara Nol sampai banyak
1..*
Antara Satu sampai banyak
0..1
Nol atau Satu
1..1
Tepat Satu
Tabel 2.1 Tabel Multiplicity
2.
Association
Digunakan untuk menunjukan hubungan yang terjadi diantara kelas yang ada. Association memungkinkan suatu kelas untuk menggunakan atau mengetahui atribut atau operasi yang dimiliki oleh kelas lain.
28
Gambar 2.3 Contoh Association
3.
Depedency
Relasi ini menunjukan bahwa sebuah kelas mengacu pada kelas lainnya, perubahan pada kelas yang diacu akan sangat berpengaruh pada kelas yang mengacu.
Gambar 2.4 Contoh Depedency
4. Relasi
Aggregation ini
menggambarkan
bahwa
suatu
kelas
merupakan bagian dari kelas lain namun bersifat tidak wajib. Contohnya, buku pasti memiliki daftar pustaka,
29
tetapi bisa saja sebuah buku tidak memiliki daftar pustaka.
Gambar 2.5 Contoh Aggregation
5.
Composition
Relasi ini menunjukan bahwa suatu kelas merupakan bagian yang wajib dari kelas lain. Contohnya, sebuah buku pasti memiliki isi.
Gambar 2.6 Contoh Composition
6.
Realization
Relasi ini menunjukan penerapan terhadap suatu interface kepada sebuah kelas, digunakan untuk mewajibkan suatu kelas memiliki metode atau operasi yang sudah didefinisikan kerangkanya dalam suatu interface. Contohnya, pada kelas petugas dan anggota,
30
kedua kelas ini memiliki metode yang wajib dimiliki namun melakukan tugas yang berbeda seperti add dan update.
Gambar 2.7 Contoh Realization 7.
Generalization
Merupakan relasi pewarisan antara dua kelas, relasi jenis ini memungkinkan suatu subkelas mewarisi atribut dan operasi yang dimiliki parent kelas. Contohnya, bahwa anggota dan petugas mewarisi sifat dari kelas manusia.
Gambar 2.8 Contoh Generalization
31
3. Activity Diagram Menurut Bennet (2005, p114), Activity diagram digunakan untuk model proses tugas dalam permodelan bisnis, juga untuk mendeskripsikan fungsi sistem yang diwakili oleh use case, dan dalam spesifikasi operasi untuk menggambarkan logika operasi. Activity diagram terdiri dari state awal (initial state) dan state akhir (final state), state awal menggambarkan bagaimana aktivitas sistem dimulai dan state akhir menggambarkan bagaimana aktivitas sistem berakhir. Activity digambarkan dengan persegi panjang bulat, yang mencerminkan aktivitas yang terjadi dan bersifat fisik. Untuk menunjukan aliran kontrol dari suatu tindakan ke tindakan yang berikutnya menggunakan control flow, yang digambarkan dengan garis serta mata panah. Partition ditampilkan baik sebagai horizontal maupun vertikal, partisi digunakan untuk tindakan terpisah dalam suatu kegiatan. Decision didefinisikan sebagai node keputusan, kontrol arus datang dari node keputusan memiliki kondisi yang memungkinkan mengalir apabila kondisi tersebut terpenuhi. Digambarkan dengan bentuk berlian. Forks dan Join node memiliki notasi yang sama baik vertikal maupun horizontal, yang menunjukan awal dan akhir dari trit kontrol secara bersamaan.
32
Gambar 2.9 Contoh Activity Diagram
4. Sequence Diagram Menurut Bennet (2005, p329), Sequence diagram sering disebut sebagai diagram urutan, yang berfungsi untuk membantu menganalisa kebutuhan untuk mengidentifikasi pada tingkat rinci operasi
yang
dibutuhkan
untuk
mengimplementasikan
fungsionalitas dari use case. Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respon dari sebuah event untuk menghasilkan output tertentu, diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa saja yang dihasilkan.
33
Masing-masing objek atau aktor memiliki lifeline vertikal, message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Pada fase desain berikutnya, message akan dipetakan menjadi operasi/ metoda dari kelas. Activation bar menunjukan lamanya waktu eksekusi sebuah proses, biasanya diawali dengan diterimanya sebuah message.
Gambar 2.10 Contoh Sequence Diagram
2.5
Android 2.5.1
Pengenalan Android Menurut Burnette (2009, p12), Android merupakan toolkit perangkat lunak open source baru untuk perangkat mobile masa depan, android sendiri diciptakan oleh perusahaan Google yang bekerja sama dengan Open Handset Alliance.
34
2.5.2
Kelebihan dan Kekurangan Android Meski saat ini sudah banyak platform mobile di pasaran seperti : Symbian, IOS, Windows Mobile, Blackberry, Java Mobile Edition, Linux Mobile (LiMo), dsb, namun Android masih bisa menyaingi platform mobile tersebut. Beberapa fitur – fitur memang sudah ada pada platform sebelumnya, namun Android adalah yang pertama menggabungkan fitur – fitur sebagai berikut :
1. Merupakan pengembang platform bebas yang berbasis linux dan open source, bebas karena pengembang dapat menggunakan dan menyesuaikan platform tanpa harus membayar royalti. 2. Sebuah komponen berbasis arsitektur yang terinspirasi oleh mashup
internet.
Bagian
dikembangkan,
digantikan,
sesuai
versi
dengan
dari
satu
aplikasi
ditingkatkan
anda
sendiri.
dapat
komponennya
Sehingga
dapat
memunculkan berbagai kreativitas pada mobile application. 3. Memiliki layanan berbasis lokasi menggunakan GPS atau triangulasi menara sel untuk menyesuaikan dimana anda berada. 4. Memungkinkan
anda
untuk
memanfaatkan
kekuatan
penyimpanan lokal untuk berhubungan dengan komputasi dan sinkronisasi. Browser dan peta views dapat ditanamkan
35
langsung pada aplikasi anda, semua dapat ditingkatkan sambil menurunkan biaya pengembangan. 5. Android dioptimalkan untuk perangkat daya rendah dan rendah memori, yang pada platform sebelumnya tidak terpikirkan. 6. Mendukung grafis dan suara berkualitas tinggi, lebih halus. Grafik 2D dan vektor grafis serta animasi yang terinspirasi oleh flash yang menyatu dengan 3D dan dipercepat oleh grafis OpenGL untuk memungkinkan jenis baru dalam permainan dan aplikasi bisnis. 7. Memiliki portabilitas diberbagai perangkat keras saat ini dan masa depan. Serta memiliki dukungan untuk berbagai macam input termasuk metode keyboard, layar sentuh, dan trackball. 8. Program yang terisolasi dapat memberikan tingkat stabilitas sistem yang tidak terlihat sebelumnya pada ponsel pintar. 9. Android menawarkan berbagai cara untuk berinteraksi dengan mobile application bersama dengan dasar – dasar teknis untuk membuatnya. 10. Semakin berkembangnya membuat Android terlihat mudah, anda tidak membutuhkan akses ke ponsel Android saja, tapi cukup dengan komputer dimana anda dapat menginstall SDK Android dan emulator.
36
Android Software Development Kit (SDK) bekerja pada Windows, Linux, dan Mac OS X. Aplikasi yang anda buat dapat digunakan pada setiap perangkat Android, sebelum anda memulai membuat program anda perlu menginstall JAVA, IDE, dan SDK Android. Selain kelebihan – kelebihan tersebut ada beberapa kekurangan Tablet Android, diantaranya :
1. Handset Android dibuat oleh banyak vendor dengan ukuran layar yang berbeda, sebagian menggunakan keyboard fisik, sebagian lagi hanya menggunakan touch screen. Versi Android yang terpasang di handset juga berbeda berbeda, hal ini menyebabkan pengalaman memakai android tidak seragam, hal ini juga sekaligus menyulitkan Programmer dalam membuat program. Karena apabila versi OS tidak sama, program itu tidak bisa diinstal. 2. Android adalah produk open source dari Google dan Open Handset Aliance, itulah mengapa aplikasi yang ada di Android sangat menyatu dengan layanan Google, sebut saja Email menggunakan GMail, kalendar menggunakan Google Calendar, bahkan sampai Contact pun disimpan di Gmail Contact. Bagi penggemar Google ini merupakan keunggulan sendiri, namun bagi pengguna yang tidak familiar dengan produk Google (Misal orang yang baru pindah dari Windows
37
Mobile atau Symbian)
hal ini cukup merepotkan karena
mereka harus menyesuaikan kebiasaannya. 3. Android cukup aktif dikembangkan, hampir tiap tahun mereka merilis sistem operasi baru, pada tahun 2010 Google merilis froyo (2.2), Gingerbread (2.3) dan Honeycomb (3.0), tahun 2011 ini sudah merilis Ice cream sandwich (4.0). Namun dari sisi vendor atau operator, update ke user membutuhkan waktu berbulan bulan, sebagai contoh, froyo dirilis pada bulan mei 2010, namun pengguna android kebanyakan baru meng-update setelah bulan september.
2.6
Bahasa Pemograman Java 2.6.1
Sejarah Pemograman Java Bahasa pemograman Java pertama kali dibuat pada tahun 1991, oleh sekelompok insinyur SUN yang dipimpin oleh Patrick Naughton dan James Gosling. Awalnya mereka merancang bahasa pemograman untuk perangkat seperti cable TV yang tidak memiliki banyak memori, bahasa harus berukuran kecil dan mengandung kode yang liat. Proyek ini disebut “Green” dan mulanya bahasa itu diberi nama “Oak”, namun “Oak” sendiri merupakan nama bahasa pemograman yang sudah ada sebelumnya, kemudian SUN menggantinya dengan nama “Java”. Nama “Java” terinspirasi saat mereka sedang menikmati kopi di kedai kopi, kemudian salah satu dari mereka menyebut kata
38
“Java” yang artinya biji kopi. Sehingga akhirnya mereka sepakat untuk memberikan bahasa pemograman tersebut dengan nama “Java”. Semenjak itu bahasa pemograman Java langsung terkenal, pada saat yang sama implementasi WWW dan Internet sedang berkembang pesat. Dan anggota dari Green juga menyadari bahwa Java dapat digunakan
pada
pemograman
Internet,
sehingga
penerapan
selanjutnya mengarah menjadi teknologi yang berperan di web.
Gambar 2.11 Tabel Penerapan Java 2.6.2
Pengertian Java Menurut Gosling et al. (2005, p1), Java adalah bahasa yang konkuren, berbasis kelas, dan bahasa yang berorientasi objek, yang dirancang sederhana yang banyak programmer dapat mencapai kefasihan dalam bahasa.
39
Sebagai sebuah bahasa pemograman, Java dapat membuat seluruh bentuk aplikasi seperti desktop, web, dsb. Aplikasi dengan teknologi Java secara umum adalah aplikasi serba guna yang dapat dijalankan pada seluruh mesin yang memiliki Java Runtime Environment (JRE).
2.6.3
Keuntungan Java Berdasarkan white paper resmi dari SUN, Java memiliki karakteristik sebagai berikut :
1. Sederhana Bahasa pemograman Java menggunakan sintaks mirip dengan C++ namun sintaks pada Java telah banyak diperbaiki terutama menghilangkan penggunaan pointer yang rumit dan mutiple inheritance. 2. Berorientasi Objek (Object Oriented) Java menggunakan pemograman berorientasi objek yang membuat program dapat dibuat secara modular dan dapat dipergunakan kembali. Dengan berorientasi objek maka program dapat dengan mudah dipelihara, dimodifikasi, dan meningkatkan penggunaan kembali software. 3. Dapat didistribusi dengan mudah
40
Java dibuat untuk membuat aplikasi terdistribusi secara mudah dengan adanya libraries networking yang terintegrasi pada Java. 4. Interpreter Program Java dijalankan menggunakan Java Virtual Machine (JVM), hal ini menyebabkan source code Java yang telah dikompilasi menjadi bytecodes sehingga dapat dijalankan pada platform yang berbeda – beda. 5. Robust Java mempunyai reliabilitas yang tinggi. Compiler pada Java mempunyai kemampuan mendeteksi error secara lebih teliti dibandingkan dengan bahasa pemograman lain, serta mempunyai runtime-Exception handling untuk membantu mengatasi error pada pemograman. 6. Aman Sebagai bahasa pemograman untuk aplikasi internet dan terdistribusi, Java memiliki berbagai mekanisme keamanan untuk menjaga aplikasi untuk tidak merusak sistem komputer yang menjalankan aplikasi tersebut. 7. Architecture Neutral Program cukup mempunyai satu buah versi yang dapat dijalankan pada platform yang berbeda dengan Java Virtual Machine.
41
8. Portabel Source code maupun program Java dapat dengan mudah dibawa ke platform yang berbeda – beda tanpa harus dikompilasi ulang. 9. Performance Kemampuan Java sering dikatakan kurang tinggi, namun kemampuan
Java
dapat
ditingkatkan
menggunakan
kompilasi Java lain seperti buatan Inprise, Microsoft, ataupun Symantec yang menggunakan Just in Time Compilers (JIT). 10. Multithreaded Java mempunyai kemampuan untuk membuat suatu program yang dapat melakukan beberapa pekerjaan secara sekaligus dan simultan. 11. Dinamis Java didesain untuk dapat dijalankan pada lingkungan yang dinamis, perubahan pada suatu class dengan menambahkan properties
ataupun
method
dapat
dilakukan
tanpa
mengganggu program yang menggunakan class tersebut.
2.6.4
Java Server Pages 2.6.4.1 Pengertian Java Server Pages Java Server Pages pertama kali diperkenalkan pada tahun 1999 oleh SUN Microsystems. Menurut Chopra et al.
42
(2005, p34), Java Server Pages (JSP) sendiri adalah teknologi berbasis Java yang dijalankan pada server untuk memfasilitasi pemrosesan web berbasis request, untuk memformat dan menampilkan data yang ingin anda lihat. Semenjak itu mereka menyadari bahwa tag tambahan akan berguna dan JSP Standard Tag Library (JSTL) lahir. JSTL adalah koleksi perpustakaan tag kustom yang merangkum fungsionalitas
dari
banyak
standar
JSP,
sehingga
menghilangkan pengulangan dan membuat aplikasi lebih kompak.
2.6.4.2 Manfaat Java Server Pages Manfaat dari penggunaan JavaServer Pages adalah sebagai berikut :
1. Mekanisme template berbasis Java dimana logika dapat tertanam pada halaman Hypertext Markup Language (HTML). Tetapi meskipun tag JSP tertanam dalam file HTML, struktur umum halaman HTML masih sepenuhnya utuh. Sehingga sangat memungkinkan untuk memiliki halaman web dengan grafis profesional meskipun sedikit atau tidak memiliki keterampilan pemograman sama sekali, selain itu pada HTML biasa tidak mampu dalam
43
mengakses database, tapi dengan JSP kita dapat mengakses database didalam sebuah halaman HTML. HTML sendiri merupakan sebuah bahasa markup yang digunakan
untuk
menampilkan
membuat
berbagai
sebuah
informasi
halaman didalam
web, sebuah
penjelajah web internet dan formating hypertext sederhana yang ditulis kedalam berkas format ASCII agar dapat menghasilkan wujud yang terintegerasi, serta merupakan kumpulan beberapa instruksi yang dapat digunakan untuk mengubah – ubah format suatu naskah atau dokumen pada halaman web, dan menunjukan hubungan antar dokumen dengan naskah lainnya dengan melakukan link pada web browser. 2. Deteksi otomatis dan kompilasi ulang setiap kali JSP diubah. Sehingga tidak perlu menulis atau mengkompilasi kode dalam bahasa pemograman Java tetapi modifikasi JSP dapat dilihat segera karena JSP engine atau JSP runner secara otomatis akan mengkompilasi ulang JSP. JSP engine menggungkan program yang sering juga disebut Tomcat.
2.6.4.3 Java Server Pages Engine JavaServer Pages Engine adalah sebuah program untuk menjalankan JSP, untuk menjalankannya kita memerlukan
44
program “Tomcat”. Tomcat sering disebut sebagai server Tomcat, adalah sebuah open source servlet kontainer dan merupakan mesin JSP (JSP engine).
2.6.5
Java 2 Platform Micro Edition (J2ME) 2.6.5.1 Pengenalan J2ME Menurut Knudsen dan SingLi (2005, p1), Java 2 Platform Micro Edition atau biasa disebut J2ME adalah platform Java untuk perangkat kecil, seperti mobile device ataupun pager dua arah. J2ME merupakan revolusi kedua dari Java platform. Karena sekarang pada pasar perangkat kecil berkembang dengan pesat, sehingga Java menjadi sangat penting karena :
1. Developer dapat menulis kode dan memilikinya, serta menjalankannya pada puluhan perangkat kecil tanpa harus mengubahnya. 2. Java juga memiliki fitur keamanan penting untuk kode download.
J2ME bukanlah bagian tertentu dari perangkat lunak atau spesifikasi, tetapi lebih bisa dikatakan bahwa J2ME adalah Java tetapi untuk perangkat kecil. Perangkat kecil mulai dari pager, ponsel, personal digital assistant (PDA),
45
sampai ke hal – hal seperti set – topbox yang hanya menjadi PC desktop.
2.6.5.2 Bagian - bagian dari J2ME Menurut Knudsen dan SingLi (2005, p1), J2ME dibagi menjadi : konfigurasi, profil, dan API opsional, yang menyediakan informasi tentang API dan perangkatnya yang berbeda – beda. Masing – masing bagian akan dijelaskan sebagai berikut :
1. Konfigurasi Sebuah konfigurasi dirancang untuk jenis perangkat tertentu berdasarkan kendala memori dan kekuatan prosesor. Konfigurasi menentukan Java Virtual Machine (JVM) dan set API inti untuk sebuah perangkat khusus. Konfigurasi dan profil J2ME umumnya dijelaskan dalam hal kapasitas memori, jumlah minimum dari ROM dan RAM ditentukan. 2. Profil Profil lebih spesifik dari konfigurasi, profil adalah layer diatas konfigurasi yang menyediakan API tambahan, seperti antarmuka pengguna, penyimpanan persisten, dan apa – apa yang diperlukan untuk mengembangkan aplikasi yang berjalan pada perangkat.
46
3. Opsional API Opsional API adalah untuk mendefinisikan fungsionalitas tambahan tertentu yang mungkin masuk dalam konfigurasi tertentu. Pada seluruh konfigurasi, profil, dan opsional API yang diimplementasikan pada perangkat sering disebut sebagai stack, sebagai contoh perangkat stack masa depan seperti : CLDC / MIDP + Mobile Media API, serta Device Profile Mobile Information yang termasuk API untuk perangkat seperti ponsel dan pager dua arah.
2.7
Extensible Markup Language 2.7.1
Pengertian Extensible Markup Language (XML) Menurut Hunter et al. (2007, p3), Extensible Markup Language (XML) merupakan teknologi dengan aplikasi dunia nyata, khususnya untuk manajemen, tampilan, dan organisasi data. XML bekerja dengan tujuan markup dari setiap jenis data tetapi dengan kompleksitas yang di eliminasi, XML tidak benar – benar merupakan bahasa, tetapi lebih pada sintaks yang digunakan untuk menjelaskan markup lain. Secara sederhana XML adalah suatu bahasa yang digunakan untuk mendeskripsikan dan memanipulasi dokumen secara terstruktur, serta menyediakan format tertentu untuk dokumen – dokumen yang mempunyai data terstruktur.
47
2.7.2
Peran Markup Berikut merupakan peran – peran dari markup : 1. Markup dapat menambah maksud arti (semantic) dari suatu data. 2. Dapat memisahkan data. 3. Dapat mendefinisikan peran data. 4. Dapat mendefinisikan batasan data. 5. Dapat mendefinisikan keterhubungan data.
2.7.3
Keunggulan XML Keunggulan XML dapat diringkas sebagai berikut : 1. Pintar (Intelegence), XML dapat menangani berbagai level kompleksitas. 2. Dapat beradaptasi untuk membuat bahasa sendiri, seperti Mircrosoft membuat bahasa MSXML. 3. Mudah dalam pemeliharaan. 4. XML lebih sederhana jika dibandingkan bahasa markup lainnya seperti Standart Generalized Markup Language (SGML). Namun teknologi XML dikembangkan dengan mengadopsi bagian paling penting SGML dan dengan berpedoman pada pengembangan HTML. 5. XML dapat dengan mudah dipindah – pindahkan atau portabilitas. 6. XML dapat memungkinkan pertukaran informasi atau data antar perangkat (server, PCs, smart device, aplikasi, dan situs web). Data ini akan menjadi independen (unlocked) sehingga memudahkannya
48
untuk diorganisir, diprogram, dan diubah, dan ditukar antar situs web atau aplikasi apa saja. XML merubah cara kita berpikir untuk mengembangkan suatu software terutama aplikasi web.