BAB 2 LANDASAN TEORI
Bab ini berisikan teori-teori pendukung yang digunakan dalam pembuatan aplikasi ini, berikut teori-teori yang digunakan: 2.1 Teori Umum 2.1.1 Internet 2.1.1.1 Pengertian Internet Internet
yang
merupakan
singkatan
dari
Interconnected
Networks dan kadang hanya disebut sebagai “Net”. Menurut Maryono dan Istiana (2008, p.3) internet adalah “Kumpulan jaringan-jaringan komputer (network) sedunia yang saling berhubungan satu sama lain dengan menggunakan identitas yang disebut TCP/IP.” Menurut Oz (2002, p.4) mendefinisikan internet sebagai berikut, “The Internet is a loose association of thousands of networks. Each of these networks is made up o fat least one computer, called a server or host, that is connected directly to the Internet's backbone and of several computers that are connected to that server. The Internet's backbone is physically made up of its main communication lines, which carry the bulk of traffic”, sedangkan menurut
Coupey (2001, p.10) “Internet
adalah gabungan 2 kata, International dan Network; jaringan antar komputer yang saling terhubung satu sama lain diseluruh dunia, yang menyediakan transmisi data yang cepat dari satu titik ke titik lain.” Jadi, Internet merupakan bentuk jaringan yang menghubungkan 8
9 satu komputer ke komputer lain yang terletak di seluruh dunia. Jaringan ini membuat komputer-komputer tersebut dapat berkomunikasi satu sama lain dalam bentuk pengiriman data atau penerimaan data.
2.1.1.2
Sejarah Internet Pada bulan Februari tahun 1958, Departemen Pertahanan Amerika Serikat menciptakan sebuah badan bernama Advanced Research Projects Agency (ARPA) yang ditujukan untuk membantu Amerika Serikat mengembangkan teknologi-teknologi militer mereka. Pada tahun 1968, ARPA menciptakan packet switching dengan tujuan utama untuk membuat suatu komunikasi tidak mudah terputus dan dapat dilakukan dalam jarak yang tidak terhingga melalui saluran telepon. Pada tahun 1969, ARPA menciptakan suatu jaringan dari packet switching yang telah mereka buat sebelumnya, jaringan ini disebut
ARPANET.
Tujuan
dibuatnya
ARPANET,
untuk
menghubungkan komputer-komputer di daerah-daerah perang dan juga untuk menghindari informasi yang disimpan secara terpusat. Pada awalnya, ARPANET hanya menghubungkan 4 situs saja di Amerika Serikat, namun kemudian ARPANET terus berkembang hingga kepelosok-pelosok daerah. Pada bulan Oktober 1972, ARPANET diperkenalkan kepada umum secara resmi dan semua universitas di Amerika ingin menggunakannya. Hal ini membuat ARPA kesulitan untuk mengatur penggunaannya karena memang pada awalnya ARPANET diperuntukkan untuk keperluan militer bukan untuk
10 keperluan umum, oleh karena itu, ARPA memecahnya menjadi dua, MILNET untuk keperluan militer dan ARPANET untuk keperluan diluar militer. Gabungan kedua jaringan tersebut dikenal sebagai DARPA Internet atau lebih dikenal dengan nama Internet. Oz (2002) melihat awal mula internet dari kejadian berikut, Internet lahir ketika satu komputer berkomunikasi dengan komputer lain untuk pertama kalinya pada tanggal 26 Oktober 1969. Beberapa minggu sebelumnya pada tanggal 2 September 1969, komputer dapat berkomunikasi dengan router, atau switch. Charlie Kline, lulusan dari UCLA adalah orang pertama yang menggunakan komputer untuk login ke komputer lain. Pada tahun 1971 teknisi ARPANET yang bernama Ray Tomlison mengirimkan pesan elektronik pertama kali berisi 'testing one two three'.
2.1.2
World Wide Web Menurut Oz (2002, pp. 6-7) World Wide Web atau sering disebut sebagai web adalah tata cara kita menggunakan jaringan. Web dapat diakses dengan protokol yang disebut HTTP (HyperText Transport Protocol) yang mengijinkan transmisi dan penerimaan informasi pada bentuk yang berbeda seperti teks, gambar, animasi dan suara,” sedangkan menurut Yuhefizar (2008, p.159), “World Wide Web, yang sering disingkat menjadi WWW atau web adalah suatu metode untuk menampilkan infomasi di Internet, baik berupa teks, gambar, suara maupun video yang interaktif dan mempunyai kelebihan untuk menghubungkan satu dokumen dengan dokumen lainya
11 yang dapat diakses melalui sebuah browser.” Standar penyajian informasi dalam web adalah menggunakan bahasa HTML (HyperText Markup Languange). Seiring dengan perkembangan teknologi, standar penyajian informasi di web tidak hanya menggunakan bahasa HTML tetapi juga menggunakan bahasa scripting lain seperti ASP.NET. Hal ini terjadi karena sifat bahasa HTML yang statis.
2.1.3
Delapan Aturan Emas dalam Perancangan Antarmuka Delapan aturan emas digunakan sebagai salah satu pedoman dalam merancang tampilan dari sebuah aplikasi atau website. Menurut Shneiderman dan Plaisant (2010, pp.88-89) 8 Golden Rules adalah: 1. Berusaha untuk konsisten Aksi yang konsisten diperlukan dalam situasi dan kondisi yang mirip ataumemiliki kesamaan. Konsistensi diperlukan agar pengguna dapat lebih mudah dan terbiasa dalam menggunakan aplikasi. 2. Menyediakan kemudahan penggunaan yang universal Mengenali kebutuhan berbagai pengguna yang berbeda dan memfasilitasi perubahan dari isi. Perbedaan antara pemula dengan ahli, perbedaan usia pemakai, user yang abnormal, dan perbedaan teknologi dapat mempengaruhi kebutuhan dalam melakukan desain. 3. Memberikan umpan balik yang informatif Untuk setiap aksi pengguna, harus ada umpan balik kepada pengguna.
12 4. Berikan dialog untuk memberikan penutupan (keadaan akhir) Serangkaian aksi harus disusun menjadi kelompok, dengan awal, pertengahan dan akhir. Umpan balik yang informatif diberikan saat suatu rangkaian aksi telah selesai. 5. Memberikan penanganan kesalahan yang sederhana Sebisa mungkin, harus merancang sistem sehingga pengguna tidak dapat melakukan kesalahan yang serius. Jika pengguna melakukan kesalahan, antarmuka harus mendeteksi kesalahan, dan menawarkan penanganan kesalahan yang sederhana. 6. Memungkinkan pembalikan aksi yang mudah Sebisa mungkin, aksi yang dilakukan harus dapat reversible untuk menghilangkan kegelisahan karena pengguna mengetahui bahwa jika terjadi kesalahan dapat dilakukan pembalikan aksi. 7. Mendukung pusat kendali internal/internal locus of control Pengguna mahir/ahli menginginkan perasaan bahwa mereka mempunyai kontrol pada sistem dan sistemlah yang merespon sesuai dengan aksi mereka. Buatlah pengguna merasa mereka sebagai pihak yang memulai aksi bukan sebagai perespon. 8. Mengurangi beban ingatan jangka pendek Keterbatasan kapasitas manusia untuk memproses informasi dalam ingatan jangka pendek mengharuskan designer menghindari antarmuka yang membuat pengguna harus mengingat informasi dari satu layar dan menggunakan informasi tersebut pada layar lainnya.
13 2.1.4
Teori Penjualan
2.1.4.1 Pengertian Menurut Mulyadi (2001, p.202), kegiatan penjualan adalah transaksi penjualan barang atau jasa, yang ditinjau dari cara pembayarannya (secara tunai atau kredit). Sedangkan menurut Kotler ( 2010, p.528) penjualan merupakan sebuah proses dimana kebutuhan pembeli dan kebutuhan penjual terpenuhi, melalui antar pertukan informasi dan kepentingan.
2.1.4.2 Kategori Penjualan Menurut Mulyadi (2001, p.248), penjualan barang dan jasa perusahaan dikategorikan menjadi dua, yaitu : 1. Penjualan Tunai Penjualan tunai mewajibkan pembeli melakukan pembayaran sesuai dengan harga barang terlebih dahulu sebelum barang diserahkan kepada pembeli oleh perusahaan. Setelah pembayaran dilakukan, barang diserahkan kepada pembeli dan transaksi penjualan tunai kemudian dicatat oleh perusahaan. 2. Penjualan Kredit Penjualan kredit memberi kesempatan kepada para pembeli membelanjakan sekarang penghasilan yang akan diterima mereka di masa yang akan datang. Dalam sistem penjualan kredit, perusahaan menyeleksi pelanggan yang secara keuangan dapat diberi hak untuk melakukan pembelian secara kredit kepada perusahaan. Pembelian yang dilakukan
14 oleh pelanggan selama jangka waktu tertentu dicacat sebagai piutang. Pada saat waktu yang ditentukan bagi pelanggan untuk membayar, perusahaan akan menagih kepada pelanggan yang bersangkutan. Penjualan secara kredit dapat menanamkan kesetiaan pelanggan terhadap perusahaan.
2.1.4.3 Fungsi yang Terkait Penjualan Menurut Mulyadi(2001, pp. 204-205), fungsi-fungsi yang terkait dalam sistem penjualan kredit adalah sebagai berikut: a. Fungsi Penjualan Fungsi ini bertanggung jawab untuk menerima surat order dari pelanggan untuk menambahkan informasi yang belum ada pada surat order tersebut, meminta otorisasi kredit, menentukan tanggal pengiriman dan dari gudang mana barang akan dikirim dan mengisi surat order pada saat diketahui tidak tersedianya persediaan untuk memenuhi order dari pelanggan. b. Fungsi Kredit Fungsi ini bertanggung jawab untuk meneliti status kredit pelanggan dan pembelian kredit kepada pelanggan. c. Fungsi Gudang Fungsi ini bertanggung jawab untuk menyimpan barang dan menyiapkan barang yang akan dipesan untuk pelanggan serta menyerahkan barang ke fungsi pengiriman. d. Fungsi Pengiriman
15 Fungsi ini bertanggung jawab untuk menyerahkan barang atas dasar surat order pengiriman yang diterimanya dari fungsi penjualan dan menjamin bahwa tidak ada barang yang keluar dari perusahaan tanpa ada otorisasi dari yang berwenang. e. Fungsi Penagihan Fungsi ini bertanggung jawab untuk membuat dan mengirimkan faktur penjualan kepada pelanggan serta menyediakan salinan faktur bagi kepentingan pencatatan transaksi penjualan oleh fungsi akuntansi. f. Fungsi Akuntansi Fungsi ini bertanggung jawab untuk mencatat piutang yang timbul dari transaksi penjualan kredit dan membuat laporan penjualan serta mencatat harga pokok persediaan yang dijual ke dalam kartu persediaan. Adapun tujuan dilakukannya penjualan yaitu: a. Untuk mencapai volume penjualan maksimal. b. Untuk mendukung laba maksimal. c. Untuk mendukung pertumbuhan perusahaan.
2.1.5
Teori Pembelian
2.1.5.1 Pengertian Menurut Mulyadi (2001, p.299), pembelian digunakan dalam perusahaan untuk pengadaan barang yang diperlukan perusahaan. Transaksi pembelian dapat digolongkan menjadi dua yaitu : pembelian lokal dan impor. Pembelian lokal adalah pembelian dari pemasok dalam negeri, sedangkan impor adalah pembelian dari pemasok luar negeri.
16
2.1.5.2 Fungsi yang Terkait Pembelian Menurut Mulyadi(2001, p.302), fungsi terkait dalam sistem pembelian adalah : 1. Fungsi gudang Bertanggung jawab untuk mengajukan permintaan pembelian sesuai dengan posisi persediaan yang ada di dalam gudang dan untuk menyimpan barang yang telah diterima oleh fungsi penerimaan. 2. Fungsi Pembelian Bertanggung jawab untuk memperoleh informasi mengenai harga barang, menentukan supplier yang dipilih dalam pengadaan barang dan mengerluarkan order pembelian kepada supplier yang terpilih. 3. Fungsi Penerimaan Bertanggung jawab untuk melakukan pemeriksaan terhadap jenis, mutu, dan kualitas barang yang diterima dari supplier guna menentukan dapat atau tidaknya barang tersebut diterima oleh perusahaan. Fungsi ini juga bertanggung jawab untuk menerima barang yang berasal dari transaksi return penjualan. 4. Fungsi Akutansi Dalam Transaksi pembelian fungsi akuntansi yang terkait adalah fungsi pencatat hutang dan fungsi pencatat persediaan. Fungsi pencatat hutang bertanggung jawab untuk mencatat transaksi pembelian ke dalam register bukti kas keluar dan untuk menyelenggarakan arsip bukti kas keluar yang berfungsi sebagai catatan hutang atau menyelenggarakan kartu hutang
17 sebagai buku pembantu hutang. Fungsi pencatat persediaan bertanggung jawab untuk mencatat harga pokok persediaan barang yang dibeli ke dalam kartu persediaan.
2.2 Teori Khusus 2.2.1 ASP.NET MVC 2 2.2.1.1 ASP.NET Menurut Microsoft (2011), “ASP.NET is a free web framework for building great Web sites and Web applications using HTML, CSS and JavaScript.” Menurut Walther (2004) ASP.Net adalah salah satu bahasa pemograman yang terkenal untuk membangun website yang interaktif dengan trafik web yang tinggi, contoh umumnya The Home Shopping Network, MSN, dan situs Microsoft itu sendiri. ASP.NET menggunakan kode yang telah disusun dalam Common Languange Runtime languanges seperti Visual Basic dan C#.
2.2.1.2 MVC Menurut Galloway, Haack, Hanselman, Guthrie, dan Conery (2010, pp.167 -
168), Model-View-Controller (MVC) adalah pola
arsitektur yang digunakan untuk memisahkan sebuah aplikasi ke dalam 3 aspek utama: 1. Model Sebuah kumpulan class yang mendeskripsikan data yang sedang
18 dikerjakan serta bagaimana data diubah atau dimanipulasi sesuai dengan aturan bisnis. 2. View Tampilan antarmuka aplikasi. 3. Controller Sebuah kumpulan class yang menangani komunikasi dari pengguna, semua aliran aplikasi, dan logika khusus dari setiap aplikasi. Kini pola ini digunakan secara berkala di dalam pemograman web, dengan ASP.NET MVC, ini diterjemahkan menjadi: 1. Model adalah class yang mewakili domain yang dipakai di dalam pemograman. 2. View adalah halaman yang dihasilkan secara dinamis. Di dalam ASP.net
MVC,
view
System.Web.Mvc.Viewpage
diimplementasikan yang
melalui
diturunkan
class dari
System.Web.UI.Page. 3. Controller adalah class khusus yang mengatur hubungan antara view dan model. Controller menanggapi masukan dari pengguna, komunikasi ke model dan memutuskan kemana view harus ditampilkan.
2.2.2 Web Service Pengertian web service menurut Basiura, et al. (2001, p.18) adalah, “A Web service is application logic accessible to programs via standard web protocols in a platform-independent way”. Menurut Sahai dan Graupner
19 (2005) web service didefinisikan sebagai layanan terdistribusi yang dapat diakses via web melalui Uniform Resource Locators (URLs). Sehingga setiap objek yang dapat dipanggil dengan protokol internet termasuk sebagai web service. Menurut Walther (2004) web service dapat dipakai untuk mengakses methods dan properties dan mengirimkan data dari database melalui internet.
2.2.3 E-Commerce Menurut Greenstein dan Vasarhelyi (2004,p.2) electronic commerce didefinisikan sebagai penggunaan perantara transmisi elektronik untuk melakukan pertukaran, termasuk pembelian dan penjualan dari produk atau jasa yang membutuhkan transportasi baik secara fisik maupun digital dari satu lokasi ke lokasi lainnya. Menurut Jaworski dan Rayport (2003, p.4) mendefiniskan e-commerce sebagai pertukaran antar bagian yang dihubungkan dengan teknologi (baik individual atau organisasi) juga pada aktivitas dalam atau antar organisasi berbasiskan elektronik yang mendukung pertukaran antar bagian tersebut. Menurut O’Brien (2003,p.23) e-commerce adalah proses pembelian dan penjualan serta pemasaran dan pelayanan dari produk, service, dan informasi melalui jaringan komputer yang beragam. Menurut Turban dan Warner (2001,p.3) e-commerce menggambarkan proses pembelian, penjualan, pentransferan, atau pertukaran produk, jasa, dan informasi melalui jaringan komputer, termasuk internet.
20 Jadi, dari teori-teori di atas, electronic commerce atau e-commerce adalah penyebaran, pembelian, penjualan, pemasaran barang, dan jasa melalui sistem elektronik seperti melalui internet.
2.2.3.1 Kategori E-commerce Menurut Jaworski dan Rayport (2003, p.4) ada 4 kategori dari ecommerce yaitu: 1. Business to Business (B2B) Business to Business (B2B), aktivitas mengarah kepandangan penuh pada E-commerce yang dimana dapat terjadi antara dua (2) Organisasi. Diantara aktivitas lainnya, ini termasuk pembelian, penyediaan barang, supplier management, inventory management, sales activities, payment management dan services and support. 2. Business to Consumer (B2C) Business to Customer (B2C) adalah E-commerce yang mengarah pada pertukaran antara bisnis dan konsumen, seperti yang dilakukan oleh Amazon, Yahoo dan Charles Schwab & Co. Transaksi B2C dapat berupa pertukaran dari fisik atau produk digital atau pelayanan dan biasanya lebih kecil daripada transaksi yang dilakukan pada model B2B. 3. Peer to peer (P2P) Peer to Peer (P2P) adalah pertukaran yang terjadi antara konsumen dengan konsumen. Pertukaran dapat melibatkan pihak ketiga seperti pada kasus pelelangan di website eBay. Beberapa contoh lainnya
21 yang mendukung P2P adalah owners.com, Craigslist (Classified ads), Gnutella (Music), monster (jobs), dan Lavalife (personal services). 4. Consumer to Business (C2B) Konsumen dapat bersatu bersama untuk menampilkan mereka sebagai grup pembeli dalam hubungan C2B. Termasuk dalam kategori ini adalah perorangan yang menjual produk atau layanan ke organisasi, dan perorangan yang mencari penjual, berinteraksi dengan mereka dan mensepakati suatu transaksi.
2.2.4
Android Android adalah sistem operasi berbasiskan kernel linux yang dirancang khusus oleh Google untuk perangkat mobile. Android bersifat open source sehingga para developer bisa mengembangkan aplikasi-aplikasi untuk Android secara bebas tanpa terkendala lisensi tertentu. Google pun memberikan akses yang luas kepada pada developer untuk menggunakan tools dan library yang dapat digunakan untuk mengembangkan aplikasiaplikasi di dalam Android. Tidak hanya memberikan kebebasan kepada para pengembang, Google juga memberikan kebebasan kepada para pabrikan perangkat mobile yang ingin menggunakan sistem ini secara bebas pada perangkat buatan mereka.
2.2.4.1 Sejarah Android Awal mula kelahiran Android dimulai ketika Google membeli sebuah perusahaan bernama Android Inc. pada tanggal 17 Agustus 2005.
22 Android Inc. adalah sebuah perusahaan kecil yang bergerak di bidang pengembangan perangkat lunak, mereka adalah inisiator untuk membuat sistem operasi yang bernama sama dengan perusahaan mereka. Tokohtokoh utama pada pada Android Inc. adalah Andy Rubin, Rich Miner, Nick Sears, dan Chris White. Pada tanggal 5 November 2007, Google membentuk Open Handset Alliance yaitu aliansi perusahaan-perusahaan software, hardware dan telekomunikasi yang bertujuan untuk memberikan kontribusi yang lebih besar pada pengembangan Android baik itu pada pengembangan sistem maupun pada pengembangan hardware yang mendukung
sistem Android
tersebut. Aliansi
ini
kini
sudah
beranggotakan 84 perusahaan mobile dan teknologi. Aliansi tersebut juga bertujuan untuk meraup keuntungan dari penjualan perangkat mobile dan aplikasi-aplikasi yang berbasiskan Android. Pada tanggal 12 November 2007, Google merilis Software Development Kit (SDK) pertama untuk Android dan membebaskan para pengembang untuk memberikan feed back kepada Google mengenai SDK ini. “Android SDK membiarkan para pengembang untuk membuat aplikasi native yang dapat berjalan pada perangkat apa saja yang berjalan pada Android platform. Dengan menggunakan SDK Android, para pengembang dapat membuat aplikasi dalam bahasa C/C++ atau menggunakan Java Virtual Machine yang sudah ada di dalam OS tersebut sehingga bisa menggunakan bahasa Java yang lebih umum digunakan dalam ekosistem mobile” (Brian Fling, 2009, p.24) .
23 Pada september 2008, smartphone pertama berbasis Android muncul yaitu T-Mobile G1 buatan perusahaan telekomunikasi T-Mobile. Pada akhir tahun 2008, Google meluncurkan Android Dev Phone 1 yaitu sebuah perangkat mobile yang dapat menjalankan aplikasi Android tanpa terikat dengan provider telekomunikasi manapun. Hal ini dimaksudkan agar para developer dapat langsung mencoba aplikasi buatan mereka di dalam perangkat yang sebenarnya tanpa terikat dengan kontrak apapun. Pada tanggal 9 Maret 2009, Google merilis update pertama yaitu Android 1.1 dengan perubahan pada segi tampilan. Hingga kini Android telah mencapai versi 3.0 yang didesain khusus untuk perangkat computer tablet. Google memberikan panggilan yang unik untuk setiap versi Android yang diluncurkan yakni dengan menggunakan nama-nama makanan. Seperti Android 1.6 yang diberi nama Donut. Versi-versi Android yang telah diluncurkan oleh Google: Android memiliki sejumlah pembaharuan semenjak rilis aslinya. Pembaharuan ini dilakukan untuk memperbaiki bug dan menambah fitur-fitur yang baru. Berikut merupakan versi-versi yang dimiliki Android sampai saat ini: 1. Android versi 1.1 Pada tanggal 9 Februari 2009, Google merilis Android versi 1.1 yang dilengkapi dengan pembaruan estetis pada aplikasi, jam alarm, pencarian suara, pengiriman pesan dengan Gmail, dan pemberitahuan email.
24 2. Android versi 1.5 (Cupcake) Pada tanggal 30 April 2009 Android versi 1.5 sudah dirilis. Android versi ini didasarkan pada Linux Kernel 2.6.27 dan terdapat beberapa pembaharuan antar muka pengguna serta penambahan beberapa fitur dalam Android versi 1.5. Pembaharuan yang dilakukan antara lain sebagai berikut: a. Kemampuan untuk merekam dan menonton video dengan modus kamera b. Mengunggah video ke YouTube dan gambar ke Picasa langsung dari telepon c. Dukungan Bluetooth Advanced Audio Distribution Profile (A2DP) dan Audio/Video Remote Control Profile (AVRCP) d. Kemampuan terhubung secara otomatis ke headset Bluetooth dalam jarak tertentu e. Widgets dan folder yang baru yang dapat ditambahkan ke dalam layar utama f. Transisi animasi layar dan keyboard pada layar yang dapat disesuaikan dengan sistem 3. Android versi 1.6 (Donut) Pada tanggal 15 September 2009 Android versi 1.6 sudah dirilis. Android versi ini didasarkan pada Linux Kernel 2.6.29. Pembaharuan yang dilakukan adalah sebagai berikut: a. Android Market yang sudah diimprovisasi b. Kamera, perekam video, dan antarmuka galeri yang terintegrasi
25 c. Galeri memungkinkan pengguna untuk memilih banyak gambar yang akan dihapus d. Voice Search yang sudah diperbaharui e. Fasilitas
pencarian
yang
sudah
diperbaharui,
yang
memungkinkan pencarian bookmark, history, dan web dari layar utama f. Teknologi
yang
mendukung
Code
Division
Multiple
Access/Evolution Data Only (CDMA/EVDO), 802.1x, Virtual Private Network (VPN), text-to-speech engine serta kemampuan dial contact g. Dukungan resolusi layar Wide Video Graphics Array (WVGA) i. Kecepatan pencarian yang meningkat. Peralatan pengembangan untuk gesture framework dan gesture builder 4. Android versi 2.0/2.1 (Éclair) Pada tanggal 26 Oktober 2009 Android versi 2.0 sudah dirilis. Android versi ini didasarkan pada Linux Kernel 2.6.29. Pembaharuan yang dilakukan adalah sebagai berikut: a. Pengoptimalan kecepatan perangkat keras b. Dukungan untuk resolusi dan ukuran layar c. Perubahan antar muka pengguna dengan browser baru dan dukungan HTML5 d. Tampilan daftar kontak yang telah diperbaharui e. Rasio latar belakang (hitam dan putih) yang lebih baik f. Peningkatan Google Maps 3.1.2
26 g. Microsoft exchange support h. Dukungan flash untuk kamera i. Digital zoom j. Bluetooth 2.1 k. Live wallpaper l. Kelas Motion Event ditambahkan untuk mendeteksi event yang digunakan di dalam Multi Touch 5. Android versi 2.2 (Froyo) Pada tanggal 20 Mei 2010 Android versi 2.2 sudah dirilis. Android
versi
ini
didasarkan
pada
Linux
Kernel
2.6.32.
Pembaharuan yang dilakukan adalah sebagai berikut: a. Optimisasi kecepatan sistem operasi Android, memori dan performa b. Perbaikan kecepatan aplikasi tambahan dalam implementasi Just In Time (JIT) c. Integrasi dari JavaScript V8 Chrome ke dalam aplikasi browser d. Peningkatan dukungan Microsoft Exchange seperti kebijakan keamanan, auto discovery dan sinkronisasi kalender e. Peningkatan penginstalan aplikasi yang memungkinkan adanya shortcut pada ponsel f. Fungsionalitas USB Tethering dan portable hotspot g. Penambahan pilihan untuk menonaktifkan akses data sepanjang jaringan ponsel h. Pembaharuan aplikasi Market dengan fitur pembaharuan secara
27 otomatis i. Waktu peralihan yang singkat antara autotext dan kamus yang dimilikinya j. Pengiriman kontak melalui Bluetooth k. Dukungan password numerik dan alpha numeric l. Dukungan untuk melakukan pengunggahan file pada aplikasi browser m. Dukungan Adobe Flash 10.1
2.2.4.2 Fitur-fitur Android 1. Mendukung Java Di dalam Android ada sebuah mesin virtual bernama Dalvik Virtual Machine yang melakukan compile dan menjalankan program Java. 2. Web browser Web browser yang digunakan adalah berdasarkan webkit engine yang digabungkan dengan Chrome v8 Javascript Engine. 3. SQLite Format penyimpanan di dalam Android menggunakan sistem SQLite sehingga bisa mendukung relasi database seperti halnya di dalam SQL. 4. Mendukung multitasking 5. Android Market Fasilitas khusus dimana para pengguna Android bisa mencari aplikasi yang ingin diinstal pada perangkat Android mereka.
28 6. Dukungan media untuk suara, video dan format gambar seperti Moving Picture Experts Group 4 (MPEG-4), MPEG-1 atau MPEG2, Audio Layer 3 (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR) audio codec, Joint Photographic Experts Group. 7. Lingkungan pengembangan yang lengkap, seperti emulator, peralatan untuk debugging, memori dan performance profiling, serta plug-in untuk Eclipse IDE
2.2.5 iOS iOS adalah sistem operasi mobile yang dibuat oleh Apple. iOS dikhususkan untuk perangkat mobile khusus buatan Apple seperti iPhone, iPod Touch dan iPad walaupun pada awal kemunculannya, iOS hanya dibuat untuk iPhone.
2.2.5.1 Sejarah iOS Awal kemunculan iOS, dimulai pada tanggal 9 Januari 2007, yaitu pada saat peluncuran iPhone untuk pertama kalinya. Pada awalnya, Apple tidak menyebut langsung bahwa iPhone memakai iOS tetapi hanya menyebutkan bahwa iPhone memakai OS X. Pada 6 Maret 2008, Apple merilis versi beta pertama dari Software Development Kit (SDK) untuk iPhone, disertai juga nama baru sistem operasi yang dipakai yaitu ‘iPhone OS’. Pada September 2008, Apple merilis iPod Touch yang memakai sistem operasi yang sama dengan yang dipakai
29 iPhone. Pada tanggal 27 Januari 2010, Apple merilis iPad, sebuah komputer tablet yang juga memakai sistem operasi yang sama dengan iPhone dan iPod Touch. Pada Juni 2010, Apple mengubah nama ‘iPhone OS’ menjadi iOS. Pemakaian nama ini sempat terkendala dengan masalah hak cipta karena kata iOS sudah dipakai terlebih dahulu oleh Cisco. Akhirnya, Apple pun membeli hak cipta nama iOS dari Cisco. Nama iOS pun dipakai hingga kini untuk penamaan sistem operasi yang dipakai dalam perangkat mobile buatan Apple.
Fitur-fitur yang terdapat dalam iOS: 1. Multitasking Keunikkan fitur multitasking pada iOS adalah ketika kita menjalankan satu aplikasi dan kemudian menjalankan aplikasi yang lain maka aplikasi yang pertama kita buka akan dihentikan sementara oleh sistem di dalam iOS. Tidak seperti fitur multitasking lainnya, yang tetap menjalankan fitur di dalam proses background. Hal ini sangat berpengaruh pada penggunaan baterai yang lebih irit. 2. Folder System iOS menggunakan sistem folder yang mirip dengan sistem operasi pada desktop. User bisa menggunakan fasilitas drag and drop untuk membuat suatu folder. 3. Game Centre: Jaringan sosial multi pemain yang dibuat khusus oleh Apple untuk dipakai di dalam iOS.
30
2.2.6 Appcelerator Titanium Appcelerator adalah platform untuk melalukan pengembangan aplikasi mobile, tablet atau desktop dengan menggunakan teknologi web. Appcelerator Titanium dikembangkan oleh Appcelerator Inc. dan diperkenalkan pada bulan Desember 2008. Pada bulan juni 2009, Appcelerator Titanium sudah bisa digunakan untuk pengembangan aplikasi berbasis iOS dan Android. Pada bulan April 2010, sudah bisa digunakan untuk mengembangkan aplikasi di iPad dan pada Juni 2010, sudah bisa digunakan untuk mengembangkan aplikasi berbasis Blackberry. Appcelerator Titanium adalah salah satu solusi kerangka kerja untuk web dan mobile yang memungkinkan para pengembang web untuk menggunakan kemampuan mereka dalam mengembangkan web dalam membuat aplikasi native untuk iOS dan Android. Kemampuan di bidang web itu adalah kemampuan dalam memakai sintaks-sintaks JavaScript. Sintakssintaks yang digunakan di dalam Appcelerator Titanium memang sintaks JavaScript dengan modifikasi pada bagian tertentu. Hal ini mempermudah para pengembang aplikasi untuk membuat aplikasi untuk iOS sekaligus Android tanpa harus belajar bahasa pemograman Objective C atau Java. Software yang digunakan adalah Appcelerator Titanium Studio, sekilas dari segi tampilan mirip dengan Eclipse, software untuk mengembangkan aplikasi Java.
31 2.2.7 Basis data Basis data adalah sekumpulan data yang saling berhubungan secara logical, dan keterangan dari data-data ini dibuat untuk memenuhi kebutuhan perusahaan (Connolly, 2005, p.17).
2.2.7.1 Database Management System (DBMS) DBMS adalah sebuah sistem perangkat lunak yang membuat pengguna dapat mendefinisikan, membuat, mengatur, dan mengontrol akses ke basis data (Connolly, 2005, p.16). Fasilitas-fasilitas yang disediakan oleh DBMS sebagai berikut: 1. Data Definition Language (DDL) Bahasa yang digunakan dalam mendefinisikan struktur atau kerangka dari basis data, di dalamnya termasuk record, elemen data, kunci elemen, dan relasinya. Perintah-perintah DDL adalah: 1. Create Table Create Table digunakan untuk membuat sebuah table di dalam database dengan mengidentifikasikan tipe data untuk setiap kolom 2. Alter Table Alter table digunakan untuk menambah atau membuang kolom dari konstrain 3. Drop Table Drop table digunakan untuk membuang atau menghapus tabel berserta semua data yang terkait didalamnya 2. Data Manipulation Language (DML)
32 Bahasa yang digunakan untuk menjabarkan pemrosesan dari basis data, fasilitas ini diperlukan untuk memasukkan, mengambil, mengubah data. DML dipakai untuk operasi terhadap isi basis data. DML dibedakan menjadi 2 jenis, yaitu: a. Procedural Procedural digunakan untuk mendefinisikan data yang diolah dan perintah yang akan dilaksanakan. b. Non Procedural Non Procedural digunakan untuk menjabarkan data yang diinginkan tanpa menyebutkan bagaimana cara pengambilannya. Perintah-perintah DML: 1) Penambahan data baru ke dalam basis data (Insert) 2) Modifikasi data yang disimpan dalam basis data (Update) 3) Pengambilan data yang terdapat dalam basis data (Select) 4) Penghapusan data dari basis data (Delete) 3. Menyediakan kontrol akses ke dalam database: a. Katalog yang dapat diakses pemakai Menyediakan sebuah katalog yang berisi deskripsi item data yang disimpan dan diakses oleh pemakai. b. Melayani recovery Menyediakan mekanisme untuk mengembalikan basis data ke keadaan sebelum terjadinya kerusakan pada basis data tersebut. c. Melayani autorisasi Sebuah DBMS harus menyediakan mekanisme untuk menjamin
33 bahwa hanya pemakai yang berwenang saja yang dapat mengakses basis data. d. Melayani kontrol concurrency Sebuah DBMS harus menyediakan mekanisme yang menjamin basis data ter-update secara benar pada saat beberapa pemakai melakukan perubahan terhadap basis data yang sama secara bersamaan. e. Melayani integrity Sebuah DBMS bertujuan untuk menjamin semua data dalam basis data dan setiap terjadi perubahan data harus sesuai dengan aturan yang berlaku
2.2.8 LINQ LINQ adalah singkatan dari Language Integrated Query, teknologi ini pertama kali dikenalkan oleh Anders Hejlsberg dalam Microsoft Professional Developers Conference (PDC) tahun 2005. Secara singkat LINQ dapat didefinisikan sebagai sebuah metode yang memudahkan dan menseragamkan cara pengaksesan data. Sehingga dengan menggunakan LINQ, developer hanya perlu menggunakan sebuah teknik pengaksesan data saja. Karena jika kita lihat dunia pemrograman saat ini maka umumnya developer perlu menguasai skill yang berbeda-beda untuk setiap media penyimpanan data. Sebagai contoh ketika sedang berurusan dengan basis data tentunya developer perlu memiliki kemampuan SQL yang mumpuni dan di lain waktu ketika harus berurusan dengan XML developer pun harus memiliki
34 pengetahuan yang cukup tentang cara pengaksesan XML yang tentunya sangat berbeda dengan basis data. Disini lah letak keunggulan LINQ, LINQ hadir untuk menyeragamkan cara pengaksesan data tersebut. Sehingga dengan menggunakan LINQ kita hanya cukup menguasai satu saja teknik pengaksesan data untuk berbagai media penyimpanan data (XML, basis data, dan lainnya).
2.2.9 Unified Modeling Language (UML) 2.2.9.1 Use case Diagram Menurut Booch, Maksimchuk., Engle, Young, Conallen, dan Houston (2007) use case diagram adalah sebuah diagram yang digunakan untuk menggambarkan konteks dari sebuah sistem yang akan dibuat dan menggambarkan fungsi-fungsi yang disediakan oleh sistem tersebut. Interaksi antar aktor tidak diperlihatkan dalam use case diagram. Interaksi yang diperlihatkan adalah antara aktor dengan sistem. Use case diagram terdiri dari: a. Use case Sebuah use case menjelaskan aksi yang menyediakan suatu nilai yang dapat dinilai kepada aktor dan digambar dengan bentuk oval secara horizontal.
35
Gambar 2.1 Use case (Sumber: Booch ,et al., 2007, p.177)
b. Aktor Aktor merupakan orang, organisasi, atau sistem luar yang memainkan peran dalam satu atau lebih interaksi dengan sistem.
Gambar 2.2 Aktor (Sumber: Booch ,et al., 2007, p.176)
c. Persegi batas lingkup sistem (optional) Sebuah persegi digambar mengelilingi Use case, yang dinamakan system boundary box, untuk mengindikasikan lingkup dari sistem. Semua yang berada dalam persegi menyatakan fungsi yang berada dalam lingkup sistem dan semua yang diluar persegi bukan merupakan bagian dari sistem. d. Include Relationship
36 Include relationship digunakan untuk menyatakan bahwa suatu use case tidak dapat dianggap selesai jika ada use case lain yang ada di dalam hubungan tersebut. Gambar 2.3 dibawah ini menurut Booch, et al. (2007),menjelaskan bahwa Update Crop Encyclopedia tidak dapat dianggap selesai tanpa
View Reports dijalankan terlebih
dahulu.
Gambar 2.3 Use case Diagram Showing Include Relationships (Sumber: Booch, et al., 2007, p.181)
37
e. Extend Relationship Pengertian extend relationship menurut Booch, et al. (2007) adalah aktivitas-aktivitas yang merupakan bagian dari use case lain tetapi tidak wajib untuk dijalankan.
Gambar 2.4 Use case Diagram Showing an Extend Relationship (Sumber: Booch, et al., 2007, p.182)
2.2.9.2 Activity Diagram
38 Menurut Booch, et al. (2005, p.267) “Activity diagrams provide visual depictions of the flow of activities, whether in asystem, business, workflow, or other process. These diagrams focus on the activitiesthat are performed and who (or what) is responsible for the performance of those activities.“ Activity Diagram menunjukkan urutan-urutan kegiatan yang dilakukan user pada setiap case pada use case diagram. Berikut notasi-notasi pada activity diagram: 1. Black Circle menyatakan awal dari diagram (inisiasi state)
Gambar 2.5 Black Circle
2. Rounded Rectangles menyatakan aktivitas
Gambar 2.6 Rounded Rectangles
39
3. Diamonds menyatakan keputusan
Gambar 2.7 Diamonds
4. Bars menyatakan awal (join) atau akhir (split) dari aktivitas yang terjadi bersamaan.
Gambar 2.8 Bars (join)
Gambar 2.9 Bars (split)
40
5. Encircled Black Circle menyatakan akhir dari diagram (final state)
Gambar 2.10 Encircled Black Circle
Gambar 2.11 Contoh Activity Diagram (Sumber: Booch et al, 2007, p.189 )
41
2.2.9.3 Class Diagram Menurut Booch, et al. (2007, p.593), Class Diagram merupakan bagian
dari
notasi
object
oriented
design,
digunakan
untuk
memperlihatkan class yang ada di dalam sistem dan hubungan class tersebut di dalam sistem. Class diagram merepresentasikan keseluruhan atau sebagian struktur class di dalam sistem. Secara singkatnya, class diagram menunjukkan kelas-kelas pada sebuah sistem lengkap dengan operasi dan atribut di dalam kelas tersebut. Class Diagram terdiri dari: 1. Nama class 2. Atribut, ditandai dengan tanda (-) 3. Operasi, ditandai dengan tanda (+) Atribut dan metode dapat memiliki salah satu sifat berikut: 1. Private (+) tidak dapat dipanggil dari luar class yang bersangkutan. 2. Protected (#) hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya 3. Public (-) dapat dipanggil oleh siapa saja
42
Gambar 2.12 Komponen Class Diagram
Gambar 2.13 Contoh Komponen Class Diagram (Sumber: Booch, et al., 2007, p.192)
2.2.9.3.1
Tipe Objek di dalam Class Diagram 1. Entity Class Menurut Whitten (2007) entity class adalah sebuah class yang berkorespondensi dengan itemdi dunia nyata.Setiap entity class mengandung informasi yang disebut dengan attribute. 2. Interface Class
43 Menurut Whitten (2007) interface class adalah bentuk implementasi komunikasi user dengan user interface didalam bentuk sebuah class. 3. Control Class Menurut Whitten (2007) control class adalah sebuah class yang mengimplementasikan logika bisnis di dalam sistem. Control class mengolah pesan dari interface class dan memberikan respon ke entity class.
2.2.9.3.2
Multiplicity Menurut Booch, et al. (2007, p.194) “The multiplicity adornment is applied to the target end of an association and denotes the number of links between each instance of the source class and instances of the target class.” Beberapa jenis multiplicity menurut Booch et al. (2007):
2.2.9.3.3
1. 1
Exactly one
2. *
Unlimited number (zero or more)
3. 0..*
Zero or more
4. 1..*
One or more
5. 0..1
Zero or one
6. 3..7
Specified range
Hubungan dalam Class Diagram 1. Association
44 Menurut Booch, et al. (2007, p.592) association adalah “A relationship denoting a semantic connection between two classes.” 2. Generalization Menurut Booch, et al. (2007, p.59) generalization dipakai untuk
menunjukkan,
“Inheritance
thus
implies
a
generalization/specialization hierarchy, wherein a subclass specializes the more general structure or behavior of its superclasses.” 3. Aggregation Menurut Booch, et al. (2007, p.592 ) aggregation adalah, “A whole/part relationship where one object is composed of one or more other objects, each of which is considered a part of the whole.” 4. Composition Menurut Booch, et al. (2007, p.593) composition adalah, “A whole/part relationship where one object is composed of one or more other objects, each of which is considered a part of the whole. This relationship is a strong form of aggregation in that the lifetimes of the whole and its parts are dependent.”
45
Gambar 2.14 Class Diagram Relationship (Sumber: Booech, et al., 2007, p.195)
2.2.9.4 Sequence Diagram Menurut Booch, et al. (2007) sequence diagram merupakan diagram yang menggambarkan skenario mengenai bagaimana antar objek terhubung dan pertukarang pesan yang terjadi diantara objek-objek tersebut. Berikut komponen sequence diagram: 1. Object dan Lifeline
46 Menurut Booch, et al. (2007, p.206), “In sequence diagrams, the entities of interest (which are the same as for object diagrams) are written horizontally across the top of the diagram. A dashed vertical line, called the lifeline, is drawn below each object. These indicate the existence of the object.”
Object3
Gambar 2.15 Object dan lifeline
Gambar 2.16 Timeline
2. Messages Menurut Booch, et al. (2007,pp.206-207), “Messages (which may denote events or the invocation of operations) are shownhorizontally.
47 The endpoints of the message icons connect with the vertical lines that connect with the entities at the top of the diagram. Messages are drawn from the sender to the receiver.”
Gambar 2.17 Message
Gambar 2.18 Return Message
Gambar 2.19 Self-call
3. Destruction Events Menurut Booch, et al. (2007,p.208), ”A destruction event indicates when an object is destroyed. It is shown as an X at the end of a lifeline”.
Gambar 2.20 Destruction Events
48
Gambar 2.21 Contoh Sequence Diagram (Sumber: Booch, et al,2007, p.207)
2.2.10 Metode Agile Software Development dan Extreme Programming 2.2.10.1 The Agile Manifesto Pada tahun 2001, banyak pencipta dari metodologi Agile Software Development berkumpul bersama-sama dengan orang lain yang juga menerapkan metode agile di lapangan untuk menciptakan sebuah Agile Manifesto untuk merangkum keyakinan mereka bahwa ada yang cara lebih baik untuk memproduksi perangkat lunak. Bahkan sampai
sekarang
ini
Agile
Software
Development
merupakan
metodologi yang sangat baik untuk mensintesis dan mendefinisikan keyakinan ini. “We are uncovering better ways of developing software by doing and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools, customer
49 collaboration over contract negotiation, working software over comprehensive documentation, responding to change over following a plan. That is, while there is value in the items on the right, we value the items on the left more.” (Agile Alliance, 2001)
2.2.10.2 Prinsip Agile Software Development Salah satu ciri dari Agile Software Development adalah tim yang tanggap terhadap perubahan. Karena perubahan adalah hal yang utama dalam pembangunan software, seperti contohnya perubahan kebutuhan software, perubahan anggota tim, perubahan teknologi dan lain-lain. Selain itu Agile Software Development juga melihat pentingnya komunikasi antara anggota tim, antara orang-orang teknis dan businessmen, antara developer dan manajernya. Ciri lain adalah klien menjadi bagian dari tim pembangun software. Ciri-ciri ini didukung oleh 12 prinsip yang ditetapkan oleh Agile Alliance. 12 prinsip ini digunakan untuk mendukung Agile Manifesto diatas yang berfungsi sebagai kerangka kerja umum untuk semua metodologi Agile Software Development. Menurut Agile Alliance (2001), 12 prinsip ini adalah bagi mereka yang ingin berhasil dalam penerapan Agile Software Development. Berikut 12 prinsip yang diterapkan dalam Agile Software Development: 1. Kepuasan klien adalah prioritas utama dengan menghasilkan produk lebih awal dan terus menerus 2. Menerima perubahan kebutuhan, sekalipun diakhir pengembangan
50 3. Penyerahan hasil/software dalam hitungan waktu dua minggu sampai dua bulan 4. Bagian bisnis dan pembangun kerja sama tiap hari selama proyek berlangsung 5. Membangun proyek di lingkungan orang-orang yang bermotivasi tinggi yang bekerja dalam lingkungan yang mendukung dan yang dipercaya untuk dapat menyelesaikan proyek 6. Komunikasi dengan berhadapan langsung adalah komunikasi yang efektif dan efisien 7. Software yang berfungsi adalah ukuran utama dari kemajuan proyek 8. Dukungan yang stabil dari sponsor, pembangun, dan pengguna diperlukan untuk menjaga perkembangan yang berkesinambungan 9. Perhatian kepada kehebatan teknis dan desain yang bagus meningkatkan sifat Agile 10. Kesederhanaan penting 11. Arsitektur, kebutuhan dan desain yang bagus muncul dari tim yang mengatur dirinya sendiri 12. Secara periodik tim melakukan evaluasi diri dan mencari cara yang lebih efektif dan segera melakukannya Kedua belas prinsip tersebut menjadi suatu dasar bagi modelmodel proses yang punya sifat Agile. Dengan prinsip-prinsip tersebut Agile Process Model berusaha untuk menyiasati 3 asumsi penting tentang proyek software pada umumnya:
51 1. Kebutuhan software sulit diprediksi dari awal dan selalu akan berubah. Selain itu, prioritas klien juga sering berubah seiring berjalannya proyek 2. Desain dan pembangunan sering tumpang tindih. Sulit diperkirakan seberapa jauh desain yang diperlukan sebelum pembangunan 3. Analisis, desain, pembangunan dan testing tidak dapat diperkirakan seperti yang diinginkan
2.2.10.3 Extreme Programming Menurut Pearman dan Goodwill (2006) extreme programming adalah salah satu dari metodologi yang dikembangkan dari inti, prinsip, dan praktek dari Agile Software development sehingga didapatkan suatu cara untuk untuk mengembangkan software dengan efektif dan efisien. Inti dari extreme programming adalah menangani setiap perubahan yang secara alami muncul ketika mengembangkan suatu software. Terdapat 4 aktivitas utama di dalam extreme programming: 1. Aktivitas Perencanaan Pada aktivitas ini terdapat proses pengumpulan user stories, kriteriakriteria, dari klien. 2. Aktivitas Desain Aktivitas desain berprinsip sederhana, membangun rancangan awal sistem bisa dalam bentuk diagram. Jika menemui kesulitan maka prototype dibangun. 3. Aktivitas Pengkodean
52 Aktivitas pengkodean menggunakan metode pair programming untuk real time program solving dan real time quality insurance. Menurut Williams dan Kessler (2003) pair programming adalah gaya pemograman dimana dua programmer atau lebih bekerja beriringan dan saling berkolaborasi pada desain, algoritma, kode, dan tes yang sama. 4. Aktivitas Pengujian Aktivitas pengujian menggunakan metode on going testing, melakukan pengetesan pada saat satu fungsi telah selesai dikerjakan atau menggunakan unit test tertentu.