BAB II LANDASAN TEORI 2.1 Pengiriman Pengiriman atau shipping adalah bagian penting dalam suatu rantai persediaan yang berfungsi untuk menyiapkan dan mengirimkan barang ke customer. Transportasi berhubungan dengan model transportasi apa yang dipakai agar efektif dan efisian, baik dari sisi biaya, kecepatan waktu pengiriman dan ketepatan waktu (Yunarto, 2006). Dalam distrubution channel, dikenal ada tiga komponen utama yaitu intermediary (perantara), agent (agen) dan facilitator (fasilitator). Intermediary adalah pihak-pihak seperti wholesaler (grosir/pedagang besar) dan retailer (pengecer) yang membeli barang, memilikinya dan menjual kembali barang tersebut. Agent adalah pihak-pihak seperti broker (pedagang perantara yang biasanya dibayar dengan imbalan komisi) dan sales agent (agen penjualan), broker dan sales agent akan mencari pembeli, bertindak di pihak penjual, negosiasi dengan pembeli, tetapi tidak memiliki barang yang diperdagangkan itu. Facilitator adalah pihak ketiga yang tidak terlibat proses jual-beli barang dan tidak memiliki barang yang diperdagangkan, tugas facilitator hanyalah untuk membantu dan kemudian ia dibayar atas bantuan yang diberikannya. 2.2 Konsep Pengiriman Barang Menurut Mulyadi (2001:201), sistem pengiriman barang merupakan suatu kegiatan mengirim barang dikarenakan adanya penjualan barang dagang. Penjualan terdiri dari transaksi penjualan barang atau jasa, baik secara tunai atau kredit. Secara umum pengirman barang merupakan mempersiapkan pengiriman fisik barang dari gudang ketempat tujuan yang disesuakan dengan dokumen pemesanan dan pengiriman serta dalam kondisi yang sesuai dengan persyaratan penanganan barangnya. 7 http://digilib.mercubuana.ac.id/ 8 2.2.1 Pengertian Barang Menurut Bambang (2003:12), barang merupakan suatu produk fisik (berwujud, tangible) yang dapat diberikan pada seorang pembeli dan melibatkan perpindahan kepemilikan dari penjual ke pelanggan 2.2.2 Pembagian Barang Barang merupakan sesuatu yang banyak sekali macamnya, menurut manfaatnya, barang dibagi menjadi dua, yaitu: 1. Barang Produksi Merupakan barang yang digunakan dalam proses produksi membuat barang baru yang lain dan berbeda dengan barang lainnya. 2. Barang Konsumsi Merupakan barang yang dapat langsung digunakan untuk memenuhi kebutuhan manusia atau konsumen. 2.3 Penelitian Sejenis A. Pembuatan Aplikasi Jasa Ekspedisi Berbasis Web Pada CV LIMA JAYA, Surabaya, Jawa Timur Sumber: Nova Prista La Adisamu Pada studi literatur pertama ini, fitur yang di tawarkan yaitu penggunaan website yang didukung database untuk melakukan kegiatan transaksinya. B. Aplikasi Tracking Paket Barang Ekspedisi Pada PT. BAHARI EKA NUSANTARA Palembang Sumber: Mustika Pada studi literatur yang kedua ini, fitur yang ditawarkan yaitu penggunaan Borland Delphi dan Microsoft acces 2007 untuk melakukan tracking. C. Sistem Informasi pengiriman Barang PT. LIMA PUTRI Timor –Leste Sumber: Leonor Faria Soares Pada studi literatur selanjutnya, fitur yang terdapat pada aplikasi ini hanya menggunakan aplikasi visual basic(VB) yang dihubungkan dengan database yang nantinya digunakan untuk melakukan transaksinya. http://digilib.mercubuana.ac.id/ 9 D. Aplikasi PMI Berbasis Android Dengan Sinkronisasi Menggunakan XML-RPC Web Service Di PMI DIY Sumber: Rakhmad Ikhsanudin Pada studi literatur selanjutnya, Penggunaan web service ditujukan untuk aplikasi android yang telah dihubungkan internet dan dimaksudkan untuk mempermudah penyampaian informasi mengenai PMI didaerah DIY. 2.4 Teori-teori Dasar Umum Sistem Informasi 2.4.1 Pengertian Sistem Menurut Kendall (2009, p711), “A collection of subsystems that are interrelated and interdependent, working together to accomplish predetermined goals and objectives. All systems have input, processes, output and feedback “, Dapat diterjemahkan sebagai sebuah kumpulan dari subsistem yang saling terkait dan yang saling bergantung sama lain, dan bekerja sama untuk mencapai tujuan dan sasaran yang telah ditentukan. Semua sistem memiliki masukan, proses, output dan umpan balik. Menurut James A. O’Brien (2009, p714), “Sekelompok komponen yang bekerja bersama menuju tujuan yang bersama dengan menerima input serta menghasilkan output dalam proses transformasi yang teratur “. Dari penjelasan diatas, dapat disimpulkan bahwa sistem merupakan sekelompok elemen yang saling berhubungan satu sama lain dan membentuk kesatuan untuk mencapai tujuan dan sasaran yang memiliki input, proses, dan output. 2.4.2 Pengertian Informasi Menurut Rainer, Turban, dan Potter (2009, p5), “Information refers to data that have been organized so that they have meaning and value to the recipient “, Dapat diterjemahkan sebagai Informasi yang mengacu pada data yang telah terorganisir sehingga mereka memiliki makna dan nilai kepada penerima. Menurut Whitten, Bentley, Dittman (2009, p27), “Information data that has been processed or reorganized into a more meaningful is formed from combinations of data that hopefully have meaning to the recipient “, dapat diterjemahkan sebagai data informasi yang telah diproses atau diorganisir kembali menjadi lebih bermakna yang terbentuk dari kombinasi data yang diharapkan memiliki arti bagi penerima. http://digilib.mercubuana.ac.id/ 10 Dari penjelasan diatas, dapat disimpulkan bahwa informasi merupakan kumpulan data yang telah diproses sehingga memiliki arti atau makna kepada pengguna. 2.4.3 Pengertian Sistem Informasi Menurut James A. O’Brien (2009, p703), “Sistem Informasi adalah rangkaian orang, prosedur dan sumber daya yang mengumpulkan, mengubah dan menyebarkan informasi dalam sebuah organisasi.” Menurut O’Brien / Marakas (2009, p4) Sistem Informasi dapat mengorganisasikan kombinasi dari individuinvidividu, hardware, software, komunikasi networks, data resource, kebijakan dan prosedur yang menyimpan, mendapatkan, merubah, menyebar luaskan informasi dalam organisasi. Menurut Whitten, Bentley, Dittman (2009, 764), “An arrangement of people, data, processes, and information technology that interact to collect, process, store, and provide as output the information needed to support an organization “, Dapat diterjemahkan sebagai kumpulan orang, data, proses, dan teknologi informasi yang berinteraksi untuk mengumpulkan, memproses, menyimpan, dan menyediakan sebagai output informasi yang dibutuhkan untuk mendukung sebuah organisasi. Dari penjelasan diatas dapat disimpulkan bahwa Sistem Informasi adalah sebuah sistem yang teridiri dari kumpulan orang, data, proses, dan teknologi informasi yang menerima data sebagai input dan memprosesnya menjadi informasi sebagai output. 2.4.4 Fungsi Sistem Informasi Fungsi Sistem Informasi menurut James A. O’Brien (2009, p26), adalah: a. Area fungsional utama dari bisnis yang penting dalam keberhasilan bisnis, seperti fungsi akuntansi, keuangan, manajemen operasional, pemasaran, dan manajemen sumber daya manusia. b. Kontributor penting dalam efisiensi operasional, produktivitas dan moral pegawai, serta layanan dan kepuasan pelanggan. c. Sumber utama informasi dan dukungan yang dibutuhkan untuk menyebarluaskan pengambilan keputusan yang efektif oleh para manajer dan praktisi bisnis. http://digilib.mercubuana.ac.id/ 11 d. Bahan yang sangat penting dalam mengembangkan produk dan jasa yang kompetitif, yang memberikan organisasi kelebihan strategis dalam pasar global. e. Peluang berkarir yang dinamis, memuaskan, serta menantang bagi jutaan pria dan wanita. f. Komponen penting dari sumber daya, infrastruktur, dan kemampuan took bisnis yang membentuk jaringan. 2.4.5 Komponen Sistem Informasi Menurut James A. O’Brien (2009, p35) empat konsep utama yang dapat diaplikasikan ke semua jenis Sistem Informasi, yakni: a. Manusia, hardware, software, data, dan jaringan adalah lima sumber daya dasar sistem informasi b. Sumber daya manusia meliputi pemakai akhir dan pakar SI, sumber daya hardware terdiri dari mesin dan media, sumber daya software meliputi baik program maupun prosedur, sumber daya data dapat meliputi dasar data dan pengetahuan, serta sumber daya jaringan yang meliputi media komunikasi dan jaringan. c. Sumber daya data diubah melalui aktivitas pemprosesan informasi menjadi berbagai produk informasi bagi pemakai akhir d. Pemrosesan informasi terdiri dari aktivitas input dalam sistem, pemrosesan, output, penyimpanan, dan pengendalian. 2.4.6 Jenis-jenis Sistem Informasi Menurut James A. O’Brien (2009, p16-19), katagori sistem informasi terbagi atas beberapa, yaitu: a. Sistem pemrosesan transaksi mencatat serta memporses data yang dihasilkan dari transaksi bisnis. b. Sistem pengendalian prosesmengawasi dan mengendalikan proses fisik. c. Sistem kerjasama toko meningkatkan komunikasi dan produktivitas tim serta kelompok kerja, dan meliputi aplikasi yang kadang kala disebut sebagai sistem otomatisasikantor. http://digilib.mercubuana.ac.id/ 12 d. Sistem pendukung manajemenmemberikan informasi dan dukungan untuk pengambilan keputusan semua jenis manajer serta semua praktisi bisnis. e. Sistem Informasi manajemenmemberikan informasi dalam bentuk laporan dan tampilan pada para manajer dan banyak praktisi bisnis. 2.5 Basis Data Basis Data terdiri dari 2 kata, yaitu Basis dan Data. Basis kurang lebih dapat diartikan sebagai markas atau gudang, tempat bersarang/berkumpul. Sedangkan Data adalah representasi fakta dunia nyata yang mewakili suatu objek seperti manusia (pegawai, siswa, pembeli pelanggan), barang, hewan, peristiwa, konsep, keadaan, dan sebagainya, yang diwujudkan dalam bentuk angka, huruf, simbol, teks, gambar, bunyi, atau kombinasinya. (Fathansyah, 2012:2) 2.5.1 Database Manajemen System (DBMS) DBMS atau dalam bahasa indonesia sering disebut sebagai Sistem Manajemen Basis Data adalah suatu sistem aplikasi yang digunakan untuk menyimpan, mengelola, dan menampilkan data. Suatu sistem aplikasi disebut DBMS jika memenuhi persyaratan minimal sebagai berikut 1. Menyediakan fasilitas untuk mengelola akses data 2. Mampu menangani integritas data 3. Mampu menangani akses data yang dilakukan secara 4. Mampu mennangani backup data Karena pentingnya data bagi suatu organisasi/perusahaan, maka hampir sebagian besar perusahaan memanfaatkan DBMS dalam mengelola data yang mereka miliki. (Rosa A.S-M. Shalahuddin, 2013:44). 2.5.2 Model Basis data Berorientasi Objek (OODBMS) Model Basis data berorientasi objek (OODBMS) menggunakan konsep konsep pendekatan berorientasi objek yang tidak hanya menyimpan data tapi juga operasioperasi terhadap data yang membentuk objek apa yang dapat dilakukan pada data yang di kandungnya. Pengembangan Basis data berorientasi objek dipengaruhi http://digilib.mercubuana.ac.id/ 13 peningkatan popularitas bahasa berorientasi objek dan realisasi untuk mengatasi keterbatasan basis data relasional. ODBMS adalah perluasan Bahasa pemograman menjadi bahasa versi persitens. Bahasa versi Persistens ini memungkinkan pemogram memanipulasi data secara langsung dari Bahasa pemograman tanpa perlu melalui bahasa memanipulasi data seperti SQL. Dengan cara ini maka terdapat integrasi lebih erat pada bahasa pemograman dengan basis data dibanding melalui embedded SQL. Perluasan ini berkehendak dapat memberi transparasi antara konsep-konsep kelas dan objek dibahasa pemograman tanpa mempedulikan keberadaan di memori atau di disket. 2.6 Definisi UML (Unified Modeling Language) 2.6.1 Sejarah UML Pendekatan berorientasi objek Unified Modeling Languange (UML.2.0) berawal dari Object Management Group (OMG) dan ditemukan oleh Grady Booch, James Rumbaugh, dan Ivar Jacobson. Pendekatan model-driven, analisis dimulai dengan menggunakan kasus dan scenario kemudian mendifinisikan kelas domain masalah yang terlibat pekerjaan pengguna. UML termasuk model persyaratan dengan diagram use case, deskripsi use case, diagram activity dan diagram sequence. (Satzinger, 2010) Pada 1996, Object Management Group (OMG) mengajukan proposal agar adanya standarisasi pemodelan berorientasi objek dan pada bulan September 1997 UML diakomodasi oleh OMG sehingga sampai saat ini UML telah memberikan kontribusinya yang cukup besar di dalam metodologi berorientasi objek dan hal hal yang terkait di dalamnya. Secara fisik, UML adalah sekumpulan spesifikasi yang dikeluarkan oleh OMG. UML terbaru adalah UML 2.3 yang terdiri dari 4 macam spesifikasi, yaitu Diagram Interchange Specification, UML Infrastructure, UML Superstructure, dan Object Constraint Language (OCL). (Shalahuddin,2013). 2.6.2 Pengertian Unified Modeling Language (UML) “UML is a standard set of diagramming techniques that provide a graphical representation rich enough to model any systems development project, from analysis through implementation. Typically, today most object-oriented analysis http://digilib.mercubuana.ac.id/ 14 and design approaches use the UML to depict an evolving system. As such, objectoriented analysis and design using UML allows the analyst to interact with the user, employing objects from the user’s environment instead of a set of separate processes and data.” (Satzinger, Robert, & Burd, 2011) UML adalah satu set standar teknik yang menyediakan gambaran grafis cukup kaya untuk model setiap proyek pengembangan sistem, dari analisis melalui implementasi diagram. Biasanya, saat ini sebagian besar analisis berorientasi objek dan desain pendekatan menggunakan UML untuk menggambarkan sistem berkembang. Dengan demikian, analisis berorientasi objek dan desain menggunakan UML memungkinkan analis untuk berinteraksi dengan pengguna, menggunakan benda-benda dari lingkungan pengguna bukannya serangkaian proses yang terpisah dan data. UML disebut sebagai bahasa pemodelan bukan metode. Bahasa pemodelan (sebagaian besar grafik) merupakan notasi dari metode yang digunakan untuk mendesain secara cepat. Bahasa pemodelan merupakan bagian terpenting dari metode. 2.6.3 Tujuan Penggunaan UML 1. Memberikan bahasa pemodelan yang bebas dari berbagai bahas pemrograman dan proses rekayasa. 2. Menyatukan praktek-praktek terbaik yang terdapat dalam pemodelan. 3. Memberikan model yang siap pakai, bahsa pemodelan visual yang ekspresif untuk mengembangkan dan saling menukar model dengan mudah dan dimengerti secara umum. 4. UML bisa juga berfungsi sebagai sebuah (blue print) cetak biru karena sangat lengkap dan detail. Dengan cetak biru ini maka akan bisa diketahui informasi secara detail tentang coding program atau bahkan membaca program dan menginterpretasikan kembali ke dalam bentuk diagram (reserve enginering). 2.6.4 Jenis – Jenis UML 2.6.4.1 Use Case Diagram Use Case Diagram adalah model diagram UML yang digunakan untuk menggambarkan requirement fungsional yang diharapkan dari sebuah sistem. Use Case Diagram lebih memfokuskan pada “siapa” melakukan “apa” dalam ruang lingkup sistem perangkat lunak yang akan dibangun. “Use cases are the primary http://digilib.mercubuana.ac.id/ 15 drivers for all of the UML diagramming techniques. The use case communicates at a high level what the system needs to do, and each of the UML diagramming techniques build upon this by presenting the functionality in different ways. In the early stages of analysis, the analyst first identifies one use case for each major part of the system and creates accompanying documentation, the use case report, to describe each function in detail.” (Dennis, Wixom, & Roth, 2012, hal. 517) Use Case merupakan driver utama untuk semua teknik diagram UML. Use case berkomunikasi pada tingkat tinggi sistem apa yang perlu dilakukan, dan masing-masing UML teknik diagram membangun ini menyajikan fungsi dalam cara yang berbeda, masing-masing pandangan memiliki tujuan yang berbeda. Pada tahap awal analisis, analis pertama mengidentifikasi satu use case untuk setiap utama bagian dari sistem dan menciptakan dokumentasi yang menyertainya, laporan kasus penggunaan untuk menjelaskan fungsi masing masing secara rinci. http://digilib.mercubuana.ac.id/ 16 Gambar 2.1 Simbol Use Case Diagram 2.6.4.2 Activity Diagram “Activity diagrams are used to model the behavior in a business process independent of objects. In many ways, activity diagrams can be viewed as sophisticated data flow diagrams that are used in conjunction with structured analysis. However, unlike data flow diagrams, activity diagrams include notation that addresses the modeling of parallel, concurrent activities and complex decision processes”. (Dennis, Wixom, & Roth, 2012) Activity Diagram digunakan untuk model perilaku dalam independen proses bisnis benda. Dalam banyak hal, diagram aktivitas dapat dipandang sebagai diagram aliran data yang canggih yang digunakan dalam hubungannya dengan analysis terstruktur. Namun, tidak seperti aliran data diagram, diagram aktivitas termasuk notasi yang membahas pemodelan paralel, kegiatan bersamaan dan proses. Yang perlu diperhatikan disini adalah bahwa diagram aktivitas menggambarkan aktivitas sistem bukan apa yang dilakukan aktor, jadi aktivitas yang dapat dilakukan oleh sistem. Diagram aktivitas juga banyak digunakan untuk mendefinisikan hal-hal berikut: 1. Rancangan proses bisnis dimana setiap urutan aktivitas yang digambarkan merupakan proses bisnis sistem yang didefinisikan 2. Urutan atau pengelompokan tampilan dari sistem / user interface dimana setiap aktivitas dianggap memiliki sebuah rancangan antarmuka tampilan 3. Rancangan pengujian dimana setiap aktivitas dianggap memerlukan sebuah pengujian yang perlu didefinisikan kasus ujinya 4. Rancangan menu yang akan ditampilkan pada perangkat lunak http://digilib.mercubuana.ac.id/ 17 Gambar 2.2 Simbol Activity Diagram 2.6.4.3 Sequence Diagram “A sequence diagram is a dynamic model that supports a dynamic view of the volving systems. It shows the explicit sequence of messages that are passed between objects in a defined interaction. Since sequence diagrams emphasize the time-based ordering of the activity thattakes place among a set of objects, they are very helpful for understanding real-time specifications and complex use cases.” (Dennis, Wixom, & Roth, 2012, hal. 531) Diagram sequence adalah model dinamis yang menunjukkan urutan eksplisit pesan yang lewat di antara objek dalam interaksi didefinisikan. karena urutan diagram menekankan pemesanan berbasis waktu kegiatan yang terjadi di antara set benda, mereka sangat membantu untuk memahami spesifikasi real-time dan kompleks menggunakan kasus. Tujuan penggunaan sequence diagram: 1. Mengkomunikasikan requirement kepada tim teknis karena diagram ini dapat lebih mudah untuk dielaborasi menjadi model design. 2. Merupakan diagram yang paling cocok untuk mengembangkan model deskripsi use-case menjadi spesifikasi design. Waktu Penggunaan sequence diagram: 1. Pada tahap discovery: Sequence diagram dari use case yang dipilih dibuat oleh Business Analyst. 2. Pada tahap construction: System analyst menggunakan use case dan sequence diagram yang dibuat oleh Business Analyst sebagai input untuk pembuatan technical sequence diagram yang akan ditinjau kembali oleh Business Analyst 3. Pada tahap final verification and validation: sequence diagram digunakan untuk merancang test dari use-case scenario. http://digilib.mercubuana.ac.id/ 18 Gambar 2.3 Simbol Sequence Diagram http://digilib.mercubuana.ac.id/ 19 2.6.4.4 Class Diagram “The class diagram isa static model that supports the static view of the evolving system. It shows the classes and the relationships among the classes that remain constant in the system over time. The class diagram is very similar to the entity relationship diagram (ERD)” (Dennis, Wixom, & Roth, 2012, hal. 522) Diagram kelas adalah Model statis yang mendukung pandangan statis dari system berkembang. Ini menunjukkan kelas dan hubungan antar kelas yang tetap konstan dalam system dari waktu ke waktu. Diagram kelas sangat mirip dengan diagram hubungan entitas (ERD). Class diagram sangat membantu dalam visualisasi struktur kelas dari suatu sistem. Class diagram digunakan untuk menampilkan kelas-kelas dan paketpaket di dalam sistem. Class diagram memberikan gambaran system secara statis dan relasi antar mereka. Biasanya, dibuat beberapa class diagram untuk sistem tunggal. Beberapa diagram akan menampilkan subset dari kelas-kelas dan relasinya. Dapat dibuat beberapa diagram sesuai dengan yang diinginkan untuk mendapatkan gambaran lengkap terhadap sistem yang dibangun di bawah ini adalah pendukung class diagram diantaranya: 1. Object adalah gambaran dari entity, baik dunia nyata atau konsep dengan batasan-batasan dan pengertian yang tepat. Objek bisa mewakili sesuatu yang nyata seperti komputer, mobil atau dapat berupa konsep seperti proses kimia, transaksi bank, permintaan pembelian, dll. Setiap objek dalam sistem memiliki tiga karakteristik yaitu State (Status), Behaviour (Sifat) dan Indentity (identitas). 2. Class adalah deskripsi sekelompok objek dari property (atribut), sifat (operasi), relasi antar objek dan sematik yang umum. Class merupakan template untuk membentuk objek. Setiap objek merupakan contoh dari beberapa class dan objeck tidak dapat menjadi contoh lebih dari satu class. 3. Penamaan Class menggunakan kata benda tunggal yang merupakan abstraksi yang terbaik. Pada UML Class digambarkan dengan segi empat yang dibagi. Bagian atas merupakan nama dari class. Bagian yang tengah merupakan struktur dari class (atribut) dan bagian bawah merupakan sifat dari class (operasi). http://digilib.mercubuana.ac.id/ 20 Gambar 2.4 Simbol Class Diagram 2.7 Model Waterfall Menurut Pressman (2010), model waterfall adalah model klasik yang bersifat sistematis, berurutan dalam membangun software. Nama model ini sebenarnya adalah “Linear Sequential Model”. Model ini sering disebut dengan “classic life cycle” atau model waterfall. Model ini termasuk kedalam model generic pada rekayasa perangkat lunak dan pertama kali diperkenalkan oleh Winston Royce sekitar tahun 1970 sehingga sering dianggap kuno, tetapi merupakan model yang paling banyak dipakai didalam Software Engineering (SE). Model ini melakukan pendekatan secara sistematis dan berurutan. Disebut dengan waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan. Waterfall adalah suatu metodologi pengembangan perangkat lunak yang mengusulkan pendekatan kepada perangkat lunak sistematik dan sekuensial yang mulai pada tingkat kemajuan sistem pada seluruh analisis, design, kode, pengujian http://digilib.mercubuana.ac.id/ 21 dan pemeliharaan. Langkah-langkah yang harus dilakukan pada metodologi Waterfall adalah sebagai berikut: A. Analisis kebutuhan perangkat lunak Proses pengumpulan kebutuhan diintensifkan dan difokuskan, khususnya pada perangkat lunak. Untuk memahami sifat program yang dibangun, rekayasa perangkat lunak (analisis) harus memahami domain informasi, tingkah laku, unjuk kerja dan antar muka (interface) yang diperlukan. Kebutuhan baik untuk sistem maupun perangkat lunak di dokumentasikan dan dilihat dengan pelanggan. Mengumpulkan kebutuhan secara lengkap kemudian dianalisis dan didefinisikan kebutuhan yang harus dipenuhi oleh software yang akan dibangun. Hal ini sangat penting, mengingat software harus dapat berinteraksi dengan elemenelemen yang lain seperti hardware, database, dsb. Tahap ini sering disebut dengan Project Definition. B. Desain Desain perangkat lunak sebenarnya adalah proses multi langka yang berfokus pada empat atribut sebuah program yang berbeda; struktur data, asitektur perangkat lunak, representasi interface dan detail (algoritma) prosedural. Proses desain menerjemahkan syarat/kebutuhan kedalam sebuah representasi perangkat lunak yang dapat di perkirakan demi kualitas sebelum dimulai pemunculan kode. Sebagaimana persyaratan, desain didokumentasikan dan menjadi bagian dari konfigurasi perangkat lunak. Proses pencarian kebutuhan diintensifkan dan difokuskan pada software. Untuk mengetahui sifat dari program yang akan dibuat, maka para software engineer harus mengerti tentang domain informasi dari software, misalnya fungsi yang dibutuhkan, user interface, dsb. Dari dua aktivitas tersebut (pencarian kebutuhan sistem dan software) harus didokumentasikan dan ditunjukkan kepada user. Proses software design untuk mengubah kebutuhan-kebutuhan di atas menjadi representasi ke dalam bentuk "blueprint" software sebelum coding dimulai. Desain harus dapat mengimplementasikan kebutuhan yang telah disebutkan pada tahap sebelumnya. seperti dua aktivitas sebelumnya, maka proses ini juga harus didokumentasikan sebagai konfigurasi dari software. http://digilib.mercubuana.ac.id/ 22 C. Generasi Kode Desain harus diterjemahkan dalam bentuk mesin yang bisa di baca. Langkah pembuatan kode melakukan tugas ini. Jika desain dilakukan dengan cara yang lengkap, pembuatan kode dapat diselesaikan secara mekanis. Untuk dapat dimengerti oleh mesin, dalam hal ini adalah komputer, maka desain tadi harus diubah bentuknya menjadi bentuk yang dapat dimengerti oleh mesin, yaitu ke dalam bahasa pemrograman melalui proses coding. Tahap ini merupakan implementasi dari tahap design yang secara teknis nantinya dikerjakan oleh programmer. D. Pengujian Proses Pengujian dilakukan pada logika internal untuk memastikan semua pernyataan sudah diuji. Pengujian eksternal fungsional untuk menemukan kesalahan-kesalahan dan memastikan bahwa input akan memberikan hasil yang aktual sesuai yang dibutuhkan. E. Pemeliharaan Perangkat lunak yang sudah disampaikan kepada pelanggan pasti akan mengalami perubahan. Perubahan tersebut bisa karena mengalami kesalahan karena perangkat lunak harus menyesuaikan dengan lingkungan (periperal atau sistem operasi baru) baru, atau karena pelanggan membutuhkan perkembangan fungsional atau unjuk kerja. Sesuatu yang dibuat haruslah diujicobakan. demikian juga dengan software. Semua fungsi-fungsi software harus diujicobakan, agar software bebas dari error, dan hasilnya harus benar-benar sesuai dengan kebutuhan yang sudah didefinisikan sebelumnya. Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah pengembangan, karena software yangdibuat tidak selamanya hanya seperti itu ketika dijalankan mungkin saja masih ada error kecil yang tidak ditemukan sebelumnya atau ada penambahan fitur-fitur yang belum ada pada software tersebut. Pengembangan diperlukan ketika adanya perubahan dari eksternal perusahaan seperti ketika ada pergantian sistem operasi, atau perangkat lainnya. Kelebihan dari model ini adalah selain karena pengaplikasian menggunakan model ini mudah, kelebihan model ini adalah ketika semua kebutuhan sistem dapat didefinisikan secara utuh, eksplisit, dan benar di awal proyek, maka Software http://digilib.mercubuana.ac.id/ 23 Engineering (SE) dapat berjalan dengan baik dan tanpa masalah meskipun seringkali kebutuhan sistem tidak dapat didefinisikan se-eksplisit yang diinginkan, tetapi paling tidak, problem pada kebutuhan sistem di awal proyek lebih ekonomis dalam hal uang (lebih murah), usaha, dan waktu yang terbuang lebih sedikit jika dibandingkan problem yang muncul pada tahap-tahap selanjutnya. Kekurangan yang utama dari model ini adalah kesulitan dalam mengakomodasi perubahan setelah proses dijalani. Fase sebelumnya harus lengkap dan selesai sebelum mengerjakan fase berikutnya. Masalah dengan waterfall: A. Perubahan sulit dilakukan karena sifatnya yang kaku B. Karena sifat kakunya, model ini cocok ketika kebutuhan dikumpulkan secara lengkap sehingga perubahan bisa ditekan sekecil mungkin. Tapi pada kenyataannya jarang sekali konsumen/pengguna yang bisa memberikan kebutuhan secara lengkap, perubahan kebutuhan adalah sesuatu yang wajar terjadi. C. Waterfall pada umumnya digunakan untuk rekayasa sistem yang besar yaitu dengan proyek yang dikerjakan di beberapa tempat berbeda, dan dibagi menjadi beberapa bagian sub-proyek. Berikut ini gambaran dari waterfall model. Fase-fase dalam model waterfall menurut referensi Sommerfille: http://digilib.mercubuana.ac.id/ 24 Gambar 2.5 Waterfall Model 2.8 Testing Perangkat Lunak Ujicoba software merupakan elemen yang kritis dari SQA dan merepresentasikan tinjauan ulang yang menyeluruh terhadap spesifikasi, desain dan pengkodean. Ujicoba merepresentasikan ketidaknormalan yang terjadi pada pengembangan software. Selama definisi awal dan fase pembangunan, pengembang berusaha untuk membangun software dari konsep yang abstrak sampai dengan implementasi yang memungkin. Para pengembang membuat serangkaian uji kasus yang bertujuan untuk” membongkar” software yang mereka bangun. Kenyataannya, ujicoba merupakan salah satu tahapan dalam proses pengembangan software yang dapat dilihat (secara psikologi) sebagai destruktif, dari pada sebagai konstruktif. (Ayuliana, 2009:1) 2.8.1 Metode White Box “White Box Testing” adalah jenis testing yang lebih berkonsentrasi terhadap “isi” dari perangkat lunak itu sendiri. Jenis lebih banyak berkonsentrasi kepada sourcecode dari perangkat lunak yang dibuat”. (Rizky, 2011). Prinsip dari keluaran tipe testing ini adalah: http://digilib.mercubuana.ac.id/ 25 1) Menjamin bahwa semua alur program yang indenpenden (dalam bentuk modeul, form, prosedur, class dan lainnya) telah dites minimal datu kali. 2) Telah melakukan testing terhadap semua jenis percabangan dengan nilai true dan false. 3) Telah melakukan testing terhadap semua jenis perulangan dengan kondisi normal dan kondisi yang dianggap melampaui batas perulangan (umumnya kondisi yang melampaui batas harus diatasi oleh prosedur tertentu). 4) Telah melakukan testing terhadap struktur data internal (seperti variabel) agar terjaga validitasnya. Beberapa teknik yang terdapat dalam jenis white box testing adalah: Decision (branch) coverage Testing ini terfokus pada hasil dari setiap skenario yang dijalankan terhadap bagian perangkat lunak yang mengandung percabangan (if...then...else). Condition Coverage Teknik ini mirip dengan teknik yang pertama, tetapi dijalankan terhadap percabangan yang dianggap kompleks atau percabangan majemuk. Hal inibiasanya dilakukan jika dalam sebuah perangkat lunak memiliki banyak kondisi yang dijalankan dalam satu proses sekaligus. Path Analysis Merupakan teknik testing yang berusaha menjalankan kondisi yang ada dalam perangkat lunak serta berusaha mengoreksi apakah kondisi yang dijalankan telah sesuai dengan alur diagram yang terdapat dalam proses perancangan. Execution Time Pada teknik ini, perangkat lunak berusaha dijalankan kemudian dilakukan pengukuran waktu pada input masukan hingga output dikeluarkan. Waktu eksekusi yang dihasilkan kemudian dijadikan bahan evaluasi dan analisa lebih lanjut untuk melihat apakah perangkat lunak telah berjalan sesuai dengan kondisi yang dimaksudkan oleh tester. Algorithm Analysis Teknik ini jarang dilakukan jika perangkat lunak yang dibuat berjenis sistem informasi. Sebab teknik ini membutuhkan kemampuan matematis yang cukup http://digilib.mercubuana.ac.id/ 26 tinggi dari para tester, karena di dalamnya berusaha melakukan analisa terhadap algoritma yang diimplementasikan pada perangkat lunak tersebut. 2.8.2 Metode Black Box “Black Box Testing” adalah tipe testing yang memperlakukan perangkat lunak yang tidak diketahui kinerja internalnya. Sehingga para tester memandang perangkat lunak seperti layaknya sebuah “kotak hitam” yang tidak penting dilihat isinya, tapi cukup dikenai proses testing di bagian luar” (Rizky, 2011). Beberapa keuntungan yang diperoleh dari jenis testing ini antara lain: 1. Anggota tim tester tidak harus dari seseorang yang memiliki kemampuan teknis di bidang pemrograman. 2. Kesalahan dari perangkat lunak ataupun bug seringkali ditemukan oleh komponen tester yang berasal dari pengguna. 3. Hasil dari black box testing dapat memperjelas kontradiksi ataupun keracunan yang mungkin timbul dari eksekusi sebuah perangkat lunak. 4. Proses testing dapat dilakukan lebih cepat dibandingkan white box testing. Beberapa teknik testing yang tergolong dalam tipe ini antara lain: a) Equivalence Partitioning Pada teknik ini, tia inputan data dikelompokan ke dalam grup tertentu, yang kemudian dibandingkan outputnya. b) Boundary Value Analysis Merupakan teknik yang sangat umun digunakan pada saat awal sebuah perangkat lunak selesai dikerjakan. Pada teknik ini, dilakukan inputan yang melebihi dari batasan sebuah data, jika perangkat lunak berhasil mengatasi inputan yang salah, maka dapat dikatakan teknik ini telah selesai dilakukan. c) Cause Effect Graph Dalam teknik ini, dilakukan proses testing yang menghubungkan sebab darisebuah inputan dan akibatnya pada output yang dihasilkan. d) Random Data Selection Teknik berusaha melakukan proses inputan data yang menggunakan nilai acak. Dari hasil inputan tersebut kemudian dibuat sebuah tabel yang menyatakan validitas dari output yang dihasilkan. e) Feature Test http://digilib.mercubuana.ac.id/ 27 Pada teknik ini dilakukan proses testing terhadap spesifikasi dari perangkat lunak yang telah selesai dikerjakan. 2.9 Android Android adalah sebuah sistem operasi untuk perangkat mobile berbasis linux yang mencakup system operasi, middleware dan aplikasi. Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka. Di bawah ini menunjukkan tanggal rilis dan fitur kunci dari semua versi OS Android, diurutkan secara kronologis berdasarkan level antarmuka pemrograman aplikasi (API). Jenis-jenis OS Android 1. Android versi 1.1 Andoid versi 1.1 di rilis pada 9 Maret 2009 oleh Google. Android versi ini dilengkapi disupport oleh Google Mail Service dengan pembaruan estetis pada aplikasi, jam alarm, voice search (pencarian suara), pengiriman pesan dengan Gmail, dan pemberitahuan email. 2. Android versi 1.5 Cup Cake Android Cup Cake di rilis pada pertengahan Mei 2009, masih oleh Google Inc. Adroid ini dilengkapi software development kit dengan berbagai pembaharuan termasuk penambahan beberapa fitur antara lain yakni kemampuan merekam dan menonton video dengan modus kamera, mengunggah video ke Youtube, upload gambar ke Picasa langsung dari telepon, serta mendapat dukungan Bluetooth A2DP. 3. Android versi 1.6 Donut Android Donut di rilis pada September 2009 menampilkan proses pencarian yang lebih baik dibandingkan versi-versi sebelumnya. Selain itu Android Duut memiliki fitur-fitur tambahan seperti galeri yang memungkinkan pengguna untuk memilih foto yang akan dihapus; kamera, camcorder dan galeri yang dintegrasikan; Text-to-speech engine; kemampuan dial kontak; teknologi text to change speech. Android Donut juga dilengkapi baterai indikator, dan kontrol applet VPN. http://digilib.mercubuana.ac.id/ 28 4. Android versi 2.0/2.1 Eclair Android Eclair dirilis pada 3 Desember 2009. Perubahan yang ada antara lain adalah pengoptimalan hardware, peningkatan Google Maps 3.1.2, perubahan UI dengan browser baru dan dukungan HTML5, daftar kontak yang baru, dukungan flash untuk kamera 3,2 MP, digital Zoom, dan Bluetooth 2.1. Android Eclair merupakan Adroid pertama yang mulai dipakai oleh banyak smartphone, fitur utama Eclair yaitu perubahan total struktur dan tampilan user interface. 5. Android versi 2.2 Froyo (Frozen Yogurt) Android Froyo dirilis pada 20 mei 2012. Adroid versi ini memiliki kecepatan kinerja dan aplikasi 2 sampai 5 kali dari versi-versi sebelumnya. Selain itu ada penambahan fitur-fitur baru seperti dukungan Adobe Flash 10.1, intergrasi V8 JavaScript engine yang dipakai Google Chrome yang mempercepat kemampuan rendering pada browser, pemasangan aplikasi dalam SD Card, kemampuan WiFi Hotspot portabel, dan kemampuan auto update dalam aplikasi Android Market. 6. Android versi 2.3 Gingerbread Andoid Gingerbread di rilis pada 6 Desember 2010. Perubahan-perubahan umum yang didapat dari Android versi ini antara lain peningkatan kemampuan permainan (gaming), peningkatan fungsi copy paste, layar antar muka (User Interface) didesain ulang, dukungan format video VP8 dan WebM, efek audio baru (reverb, equalization, headphone virtualization, dan bass boost), dukungan kemampuan Near Field Communication (NFC), dan dukungan jumlah kamera yang lebih dari satu. 7. Android versi 3.0/3.1 Honeycomb Android Honeycomb di rilis pada awal 2012.Merupakan versi Android yang dirancang khusus untuk device dengan layar besar seperti Tabelt PC. Fitur baru yang ada pada Android Honeycomb antara lain yaitu dukungan terhadap prosessor multicore dan grafis dengan hardware acceleration. User Interface pada Honeycomb juga berbeda karena sudah didesain untuk Tabelt. Tabelt pertama yang http://digilib.mercubuana.ac.id/ 29 memakai Honeycomb adalah Tabelt Motorola Xoom yang dirilis bulan Februari 2011. Selain itu sebuah perangkat keras produksi Asus bernama Eee Pad Transformer juga menggunakan OS Android honeycomb dan diharapkan akan masuk ke pasaran Indonesia pada Mei 2011. 8. Android versi 4.0 ICS (Ice Cream Sandwich) Android Ice Cream Sandwich diumumkan secara resmi pada 10 Mei 2011 di ajang Google I/O Developer Conference (San Francisco), pihak Google mengklaim Android Ice Cream Sandwich akan dapat digunakan baik di smartphone ataupun Tabelt. Android Ice Cream Sandwich membawa fitur Honeycomb untuk smartphone serta ada penambahan fitur baru seperti membuka kunci dengan pengenalan wajah, jaringan data pemantauan penggunaan dan kontrol, terpadu kontak jaringan sosial, perangkat tambahan fotografi, mencari email secara offline, dan berbagi informasi dengan menggunakan NFC. Ponsel pertama yang menggunakan sistem operasi ini adalah Samsung Galaxy Nexus. 9. Android versi 4.1 Jelly Bean Android Jelly Bean juga diluncurkan pada acara Google I/O 10 Mei 2011 yang lalu. Android versi ini membawa sejumlah keunggulan dan fitur baru, diantaranya peningkatkan input keyboard, desain baru fitur pencarian, UI yang baru dan pencarian melalui Voice Search yang lebih cepat. Versi ini juga dilengkapi Google Now yang dapat memberikan informasi yang tepat pada waktu yang tepat pula. Salah satu kemampuannya adalah dapat mengetahui informasi cuaca, lalulintas, ataupun hasil pertandingan olahraga. Sistem operasi Android Jelly Bean 4.1 pertama kali digunakan dalam produk Tabelt Asus, yakni Google Nexus 7. 10. Android versi 4.4 KitKat Android 4.4 KitKat (dinamai dengan izin dari Nestlé dan Hershey) pada 3 September 2013, dengan tanggal rilis 31 Oktober 2013. 11. Android versi 5.0 Lollipop http://digilib.mercubuana.ac.id/ 30 Android 5.0 Lollipop dirilis pada 15 Oktober 2014.Beragam permintaan fitur baru atau saran penambahan dan perbaikan dari para pengguna rupanya didengar betul oleh Google. Dilansir dari TechnoBuffalo, setidaknya ada lima fitur canggih yang lebih baik dibandingkan dengan Android edisi sebelumnya. Yang pertama, jelas adalah material desainnya. Android 5.0 Lollipop terlihat jauh lebih futuristik dan nyaman dipandang mata ketimbang desain terdahulunya. Hal ini tentu saja membuat pengguna semakin penasaran dan betah berinteraksi dengan ponsel pintar mereka. Berikutnya adalah fitur Notifikasi yang dirasa sering mengganggu pengguna baik itu dari aplikasi sosial chatting, atau yang lainnya. Kali ini, Android benar-benar menyediakan pengaturan yang sangat ramah digunakan terutama jika pengguna sedang sibuk bekerja dan tidak menginginkan mendapatkan notifikasi. 12. Andorid versi 6.0 Marshmallow Android 6.0 Marshmallow merupakan pemutakhiran yang akan datang untuk sistem operasi telepon genggam Android, kemungkinan besar akan dirilis pada Q3 2015 ("sementara dijadwalkan untuk September"), dengan pratayang ketiga dan terakhir dirilis pada tanggal 17 Agustus 2015. Pertama diperkenalkan di Google I/O pada tanggal 28 Mei 2015, Marshmallow terutama akan berfokus pada perbaikan inkremental dan penambahan fitur lainnya. Android Marshmallow memperkenalkan model izin yang didesain ulang: sekarang ada hanya delapan kategori izin, dan aplikasi yang tidak lagi secara otomatis diberikan semua hak akses mereka ditentukan pada waktu instalasi. Sebuah sistem opt-in sekarang digunakan, di mana pengguna akan diminta untuk memberikan atau menolak izin individu (seperti kemampuan untuk mengakses kamera atau mikrofon) untuk aplikasi ketika mereka dibutuhkan. Aplikasi mengingat hibah izin mereka, dan mereka dapat disesuaikan oleh pengguna setiap saat. Model izin baru akan digunakan hanya oleh aplikasi yang dikompilasi untuk Marshmallow menggunakan kit pengembangan perangkat lunak (SDK) tersebut, sementara semua aplikasi lainnya akan terus menggunakan model izin sebelumnya. (diambil dari http://id.wikipedia.org/wiki/Android_(sistem_operasi)) http://digilib.mercubuana.ac.id/ 31 2.10 Web Service Web service adalah aplikasi sekumpulan data (database), perangkat lunak (software) atau bagian dari perangkat lunak yang dapat diakses secara remote oleh berbagai piranti dengan sebuah perantara tertentu. Secara umum, web service dapat diidentifikasikan dengan menggunakan URL seperti hanya web pada umumnya. Namun yang membedakan web service dengan web pada umumnya adalah interaksi yang diberikan oleh web service. Berbeda dengan URL web pada umumnya, URL web service hanya menggandung kumpulan informasi, perintah, konfigurasi atau sintaks yang berguna membangun sebuah fungsi-fungsi tertentu dari aplikasi. Web service dapat diartikan juga sebuah metode pertukaran data, tanpa memperhatikan dimana sebuah database ditanamkan, dibuat dalam bahasa apa sebuah aplikasi yang mengkonsumsi data, dan di platform apa sebuah data itu dikonsumsi. Web service mampu menunjang interoperabilitas. Sehingga web service mampu menjadi sebuah jembatan penghubung antara berbagai sistem yang ada. 2.11 Aplikasi Mobile Android Menurut Suhas Holla dan Mahima M Katti (2012:486) “Android Mobile Application Development is based on Java language codes, as it allows developers to write codes in the Java language. These codes can control mobile devices via Google-enabled Java libraries. It is an important platform to develop mobile applications using the software stack provided in the Google Android SDK. Android mobile OS provides a flexible environment for Android Mobile Application Development as the developers can not only make use of Android Java Libraries but it is also possible to use normal Java IDEs.” Menurut Suhas Holla, Mahima M Katti (2012:486) “Pengembangan aplikasi mobile android didasarkan pada kode bahasa Java, karena memungkinkan pengembang untuk menulis kode dalam bahasa Java. Kode ini dapat mengontrol perangkat mobile melalui perpustakaan Googleenabled Java. Ini merupakan platform penting untuk mengembangkan aplikasi mobile dengan menggunakan tumpukan perangkat lunak yang disediakan di Android SDK Google. OS Android menyediakan lingkungan yang fleksibel untuk Pengembangan Aplikasi Android Mobile sebagai pengembang tidak hanya dapat menggunakan Perpustakaan Android Java tetapi juga memungkinkan untuk http://digilib.mercubuana.ac.id/ 32 menggunakan IDE Java biasa.” Menurut Christianne Lynnette G. Cabanban,2013 “Nowadays usages of mobile are very common and play an important role in day to day activities of people. Mobile phones are coming with so advanced features that we can refer the current time as the era of smart phones.” Menurut Christianne Lynnette G. Cabanban,2013 “Saat ini penggunaan ponsel sangat umum dan memainkan peran penting dalam kegiatan sehari-hari dari orang-orang. Ponsel datang dengan fitur begitu maju bahwa kita dapat merujuk waktu saat ini sebagai era ponsel pintar.” 2.12 Perangkat Lunak Pendukung 2.12.1 PHP Hypertext Preprocessor adalah bahasa skrip yang dapat ditanamkan atau disisipkan ke dalam HTML. PHP banyak dipakai untuk meemprogram situs web dinamis. PHP dapat digunakan untuk membangun sebuah CMS. (Alan Nur Aditya,2011:1) PHP singkatan dari PHP: hypertext preprocessor yaitu Bahasa pemrograman web server-side yang bersifat open source. Php merupakkan script yang terintegrasi dengan html dan berada pada server (server side HTML embedded scripting). Php adalah script yang digunakan untuk membuat halaman website yang dinamis. Dinamis berarti halaman yang akan ditampilkan dibuat saat halamaan itu diminta oleh client. (anhar, 2010:3). Menurut kamus computer, PHP adalah bahasa pemograman untuk dijalankan melalui halaman web, umumnya digunakan untuk mengelolah informasi di internet. Sedangkan dalam pengertian lain PHP adalah singkatan dari PHP Hypertext Preprocessor yaitu bahasa pemograman web serverside yang bersifat open source atau gratis. PHP merupakan script yang menyatu dengan HTML dan berada pada server. (Rulianto Kurniawan, 2010:2). 2.12.2 MySQL (Structured Query Language) Jika ingin membuat website yang interaktif (Rizky, 2011) dan dinamis, perlu adanya media penyimpanan data yang fleksibel dan mudah untuk diakses. Dalam bahasa pemrograman sering ada istilah database. Database adalah kumpulan data-data yang saling terkait, tersimpan, dan mudah untuk diakses. Salah satu program yang dapat digunakan sebagai database adalah MySQL. MySQL merupakan salah satu software untuk database server yang banyak digunakan, http://digilib.mercubuana.ac.id/ 33 MySQL bersifat Open Source dan menggunakan SQL. MySQL bisa dijalankan di berbagai platform misalnya Widows, Linux, dan lain sebagainya. (Puspitosari, 2011). 2.12.3 Java Java adalah bahasa yang dapat dijalankan disembarang platform, diberagam lingkungan: Internet, consumer electronic products, dan computer applications. (Bambang Hariyanto,2014) Bahasa Java merupakan karya Sun Microsystem Inc. Rilis resmi level beta dilakukan pada November 1995. Dua bulan berikutnya Netscape menjadi perusahaan pertama yang memperoleh lisensi bahasa Java dari Sun. (Bambang Hariyanto, 2014) Pada pengembangan enterprise applications, kita menggunakan sejumlah besar paket. Pada consumer electronic product, hanya sejumlah kecil bagian bahasa yang digunakan. Masing - masing edisi berisi berisi Java 2 Software Development Kit (SDK) untuk mengembangkan aplikasi dan Java 2 Runtime Environtment (JRE) untuk menjalankan aplikasi. Java telah berjalan pada segala perangkat dari laptop sampai pusat data, konsol game sampai supercomputer ilmiah. Terdapat 930 juga download terhadap java Runtime environment setiap tahun dan 3 milirar telepon mobile (handphone) yang menjalankan java. (Bambang Hariyanto, 2014). Versi dan Rilis utama Java sebagai berikut: JDK 1.0 (January 21, 1996) JDK 1.1 (February 19, 1997) J2SE 1.2 (December 8, 1998) J2SE 1.3 (May 8, 2000) J2SE 1.4 (February 6, 2002) J2SE 5.0 (September 30, 2004) Java SE 6 (December 11, 2006) Java SE 7 (July 28, 2011) Java SE 8 (March 18, 2014) 2.12.4 JDK (Java Development Kit) Java Development Kit (JDK) adalah perangkat pengembangan aplikasi Java yang bisa diunduh secara gratis di www.oracle.com/technetwork/java/javanese/ download. Perangkat ini mutlak diperlukan untuk membuat aplikasi Android, http://digilib.mercubuana.ac.id/ 34 mengingat aplikasi Android itu berbasis Java. Sebagaimana diketahui, Java adalah salah satu bahasa pemrograman yang biasa digunakan untuk membuat aplikasi. Namun perlu diketahui, tidak semua pustaka dalam Java digunakan di Android. Sebagai contoh, Android tidak menggunakan Swing. (Abdul Kadir, 2013). Java Development Kit (JDK) berisi sekumpulan kakas baris perintah (command-line tool) untuk menciptakan program Java. Pada 2009-2010, Oracle Corporation mengakuisisi Sun Microsystem, Inc., alamat URL untuk men-download JDK berpindah menjadi http://www.oracle.com/technetwork/java/index.html. JDK berisi sekumpulan kakas, utilitas, dan dokumentasi serta kode applet contoh untuk pengembangan program Java. (Bambang Hariyanto, 2014) Berikut adalah daftar komponen utama JDK: 1. Kompilator (javac) 2. Interpreter program Java (java) 3. Applet viewer(appletviewer) 4. Debugger (jdb) 5. Class file disassemble (javap) 6. Header and stub file generator (javah) 7. Documentation generator (javadoc) 8. Applet demo 9. Kode sumber Java API Versi Java tersedia untuk Sun Solaris, Windows NT/2000, Windows 95/98, Linux, OS/2, Macintosh, dan banyak lagi. (Bambang Hariyanto, 2014). 2.12.5 Software Development Kit (SDK) Android SDK adalah kumpulan software yang berisi mengenai pustaka, debugger (alat pencari kesalahan program), emulator (peniru perangkat bergerak), dokumentasi, kode 21 contoh, dan panduan. Android SDK dapat diunduh secara gratis di http://developer.android.com/sdk/. Keberadaan emulator membuat Anda dapat membuat dan menguji aplikasi Android, tanpa harus mempunyai perangkat keras berbasis Android. Ya, Anda dapat membuat dan menguji aplikasi Android di komputer Anda yang tidak berbasis Android. Bahkan Anda tidak hanya dapat http://digilib.mercubuana.ac.id/ 35 menguji di Windows, tetapi juga di platform lain seperti Mac dan Linux. (Abdul Kadir, 2013). 2.12.6 Pengertian Eclipse Menurut Nasruddin Safaat (Pemrograman aplikasi mobeli smartphone dan tablet PC berbasis android 2012:16), Eclipse adalah sebuah IDE (Integrated Development Environment) untuk mengembangkan perangkat lunak dan dapat dijalankan di semua platform (platform-independent). Berikut ini adalah sifat dari Eclipse: a. Multi-platform: Target sistem operasi Eclipse adalah Microsoft Windows, Linux, Solaris, AIX, HP-UX dan Mac OS X. b. Mulit-language: Eclipse dikembangkan dengan bahasa pemrograman Java, akan tetapi Eclipse mendukung pengembangan aplikasi berbasis bahasa pemrograman lainnya, seperti C/C++, Cobol, Python, Perl, PHP, dan lain sebagainya. c. Multi-role: Selain sebagai IDE untuk pengembangan aplikasi, eclipse pun bisa digunakan untuk aktivitas dalam siklus pengembangan perangkat lunak, seperti dokumentasi, test perangkat lunak, pengembangan web, dan lain sebagainya. Sejak berkurangnya standarisasi pengujian aplikasi pada Android, membangun aplikasi pada Operating System tersebut menjadi lebih mudah dan fleksibel dibandingkan sebelumnya. Sehingga semakin banyak programmer-progammer baru yang lahir dengan beragam kreatifitas dalam mengembangkan aplikasi. Eclipse pertama kali diluncurkan tanggal 21 Juni 2004. Sejak itu, setiap tahun pada bulan Juni diluncurkan versi baru dari Eclipse. Umumnya, versi Eclipse menggunakan nama yang berhubungan dengan astronomi. (Alfa Satyaputra dan Eva Maulina Aritonang, 2014). http://digilib.mercubuana.ac.id/