BAB 2 TINJAUAN PUSTAKA 2.1 Teori yang berkaitan dengan Database 2.1.1 Data Kata “data” biasanya merujuk pada kumpulan fakta yang perlu diolah sedemikian rupa menjadi sebuah informasi. Data dapat berupa suatu katakata, keadaan, gambar, suara, angka, dan simbol-simbol lainnya yang dapat digunakan sebagai bahan untuk melihat lingkungan kejadian atau suatu konsep yang dapat dimengerti. Banyak ragam yang mendefinisikan data, sebagai berikut: Menurut Kamus Besar Bahasa Indonesia (KBBI), Data adalah (1) keterangan yang benar dan nyata; (2) keterangan atau bahan nyata yang dapat dijadikan dasar kajian (analisis atau kesimpulan). Menurut sifatnya data dapat dibagi menjadi dua, yaitu data kualitatif dan kuantitatif. (1) Data kualitatif adalah data yang dikategorikan menurut kualitas obyek yang dipelajari. (2) Data kuantitatif adalah data yang memiliki harga yang berubah-ubah dan bersifat variabel. Menurut sumbernya data dibagi menjadi dua, yaitu data intern dan data ekstern. (1) Data intern adalah data yang bersumber dari dalam suatu instansi (organisasi atau lembaga). (2) Data ekstern adalah data yang bersumber dari luar instansi. Menurut jenisnya data dibagi menjadi dua, yaitu data kontinu dan data diskrit. (1) Data kontinu adalah data yang diperoleh dari hasil pengukuran. (2) Data diskrit yaitu data yang diperoleh dari hasil perhitungan. 7 8 Disimpulkan bahwa pada dasarnya data adalah kumpulan fakta yang mengandung sebuah informasi yang membantu dalam menarik suatu keputusan. 2.1.2 Database Sudah bukan hal yang asing dalam pemakaian dan penerapan basis data di kehidupan masa kini. Sebagian besar dari segala sisi aktivitas kehidupan menerapkan penggunaan basis data, seperti transaksi pembayaran, peminjaman atau penyewaan barang, pendataan barang, asuransi dan belajar di perguruan pun menggunakan basis data di dalamnya. Basis data atau pangkalan data atau dalam bahasa asing disebut dengan Database adalah informasi - informasi yang tersimpan di dalam komputer secara rapih dan teratur sehingga dapat diolah menggunakan program komputer secara sistematis untuk memperoleh kumpulan basis data tersebut. Untuk mempermudah dalam mengelola basis data, diperlukan perangkat lunak yang disebut DBMS (Database Management System) yang dirancang untuk dapat membuat, mengontrol, dan mengakses basis data secara praktis dan efisien. Sehingga mempermudah pengguna untuk dapat mengontrol dan memanipulasi data. 9 Urutan atau hirarki basis data sangat penting, seperti yang digambarkan sebagai berikut : Gambar 2.1 Urutan Basis Data 2.1.3 Database Management System (DBMS) Untuk mempermudah dalam pengolahan basis data, diperlukan perangkat lunak yang disebut DBMS (Database Management System). Menurut Connolly dan Begg (2010: p66) “DBMS is a software system that enables user to define, create, maintain, and control access to the database.”. Sistem Manajemen Basis Data merupakan seperangkat program yang memungkinkan pengguna untuk menyimpan, memodifikasi dan mengekstrak informasi dari sebuah basis data. Selain itu juga dapat mengakses, menambah, dan menganalisis data yang disimpan di suatu aplikasi terintegritas. DBMS ini menyediakan metode untuk menjaga integritas data yang tersimpan, sistem keamanan dan memulihkan data jika terjadi kegagalan sistem. DBMS memungkinkan pengguna mengakses output data dalam bentuk laporan dan juga termasuk komponen grafis yang memungkinkan pengguna mengakses informasi dalam bentuk grafis dan diagram. 10 DBMS berfungsi membantu dalam mengatur sebuah basis data dan DBMS harus mendukung Structured Query Language (SQL). SQL mempunyai standar bahasa sebagai berikut: 1. Data Definition Language (DDL) Menurut Connolly dan Begg (2010: p92), DDL adalah bahasa yang memungkinkan DBA (Database Administrators) atau pengguna untuk menggambarkan dan memberi nama entitas, atribut, dan hubungan yang diperlukan dalam basis data. Contoh dari DDL seperti CREATE, DROP, ALTER, dan RENAME. 2. Data Manipulation Language (DML) Menurut Connolly dan Begg (2010: p92), DML adalah bahasa yang menyediakan kumpulan dari metode untuk mendukung operasi manipulasi data pada basis data. Contoh dari DML seperti SELECT, INSERT, DELETE, dan UPDATE. Dengan menggunakan SQL, maka memudahkan pengguna mengatur sebuah basis data kecil maupun yang besar. 2.1.3.1 Komponen dari DBMS Menurut Connolly dan Begg (2010: p68) sebuah DBMS mempunyai lima komponen penting dalam mengatur basis data, lima komponen tersebut adalah : 1. Hardware (Perangkat Keras) Merupakan tempat berjalannya sebuah aplikasi dan DBMS. 2. Software (Perangkat Lunak) Merupakan semua komponen seperti DBMS, aplikasi, sistem operasi, dan perangkat lunak jaringan. 11 3. Data Merupakan jembatan antara mesin dan manusia. Data adalah suatu komponen yang penting dalam DBMS. 4. Procedures (Prosedur) Merupakan merupakan tata cara dan aturan – aturan dalam mengatur sebuah basis data. 5. People (Manusia) Merupakan manusia yang berhubungan dengan basis data. Pada people terdapat 4 pengelompokan sesuai dengan tanggung jawabnya, yaitu : a. Data Adminstrators dan Database Adminstrators Data Administrators (DA) merupakan manusia yang bertanggung jawab dalam konsep dan logika sebuah basis data, termasuk tata cara mengolah, mengembangkan, dan memelihara sebuah basis data. Berbeda dengan Database Administrators yang bertanggung jawab dalam pelaksanaan fisik sebuah basis data termasuk kontrol keamanan, integritas, dan pemeliharaan dari sistem operasional. b. Database Designers Database designers terbagi atas 2, yaitu logical dan physical database designers. Logical database designers bertanggung jawab dalam perancangan sebuah basis data, seperti rancangan tabel, atribut, dan relasi dalam DBMS. Physical database designers bertanggung jawab dalam menyatakan konsep yang telah dirancang di DBMS. 12 c. Application Developers Ketika sebuah basis data sudah dirancang dan dilaksanakan dalam sebuah aplikasi, maka Application Developers bertanggung jawab dalam pelaksanaan aplikasi kepada End User. d. End User Merupakan pengguna dari sebuah aplikasi. End User dikelompokan menjadi dua, yaitu pengguna yang tidak menguasai DBMS (Naive User) dan pengguna yang menguasai DBMS (Sophisticated User). Demikianlah komponen – komponen dalam basis data yang saling mendukung dalam mencapai tingkat kesuksesan mengatur basis data secara maksimal. 2.1.3.2 Fungsi DBMS Sebuah DBMS mempunyai fungsi mengatur sebuah basis data dalam banyak hal. Berikut fungsi - fungsi DBMS menurut Connolly dan Begg (2010: p99) : 1. Data Storage, Retrieval, and Update DBMS menyimpan, berfungsi membantu mengambil, dan pengguna memperbaharui dalam data kedalam basis data. 2. User-accessible Catalog DBMS dilengkapi dengan katalog yang berisi deskripsi data yang tersimpan dan dapat digunakan oleh pengguna. 13 3. Transaction Support DBMS berfungsi membantu pengguna dalam melakukan transaksi-transaksi yang dibutuhkan. 4. Concurrency Control Services DBMS berfungsi memberikan mekanisme dan menjaminnya dalam pembaharuan data di sebuah basis data ketika banyak pengguna melakukan pembaharuan basis data secara bersamaan. 5. Recovery Services DBMS berfungsi memberikan layanan untuk melakukan recovery (pengembalian keadaan) apabila sebuah basis data mengalami kerusakan. 6. Authorization Service DBMS berfungsi memberikan hak akses pengguna dalam pengoperasian basis data. 7. Support for Data Communication DBMS berfungsi mendukung komunikasi data, dimana data dapat terintegritas dibanyak perangkat lunak. 8. Intergrity Services DBMS berfungsi memberikan data yang ada pada basis data secara benar. 9. Services to Promote Data Independence DBMS berfungsi menyediakan data yang mandiri atau independence untuk mendukung sebuah program. 14 10. Utility Services Sebuah DBMS berfungsi memberikan utilitas-utilitas yang mempermudah pengguna dalam pengoperasian basis data, seperti import, export, monitoring, analysis, indexing, dan editing records. Fungsi – fungsi tersebut harus ada dalam sebuah DBMS untuk mempermudah pengguna dalam mengatur sebuah basis data. 2.1.3.3 Keuntungan dan Kerugian DBMS Dalam penggunaan DBMS terdapat keuntungan dan kerugian bagi pengguna DBMS, menurut Connolly dan Begg (2010: p77) sebagi berikut : • Keuntungan : 1. Control of Data Redundancy, mengurangi dan mengontrol data yang berulang dalam penyimpanan data. 2. Data Consistency, menyimpan data hanya sekali dalam basis data, lalu untuk selanjutnya apabila ada pembaharuan (update), nilai dari data tersebut akan berubah. Dengan demikian membuat data hanya memiliki satu nilai. 3. More Information From the Same Amount of Data, memperoleh informasi tambahan dari data yang sama. 4. Sharing of Data, memungkinkan penggunaan basis data secara bersama-sama (banyak pengguna). 5. Improved Data Integrity, menjamin basis data mengarah pada kebenaran dan data yang pasti. 6. Improved Security, membatasi hak akses atau otoritas pengguna. 15 7. Enforcement of Standart, membuat segala sesuatunya sesuai dengan standar yang telah ditetapkan. 8. Economy of Scale, menyatukan beberapa operasi perusahaan yang memungkinkan aplikasi memperoleh data pada sumber data yang sama. Hal tersebut dapat menghemat biaya. 9. Balance of Conflicting Requirements, memenuhi kebutuhan sebuah perusahaan dalam pengolahan data. 10. Improved Data Accessibility and Responsiveness, memungkinkan data dapat diakses dan diatur sesuai dengan kebutuhan pengguna. 11. Increased Productivity, memungkinkan mengurangi waktu pengoperasian basis data, maka perusahaan mendapat waktu yang lebih banyak dalam berfokus meningkatkan penghasilan. 12. Improved Maintenance Meningkatkan Through pemeliharaan Data sistem Independence. melalui data independence. 13. Increased Concurrency, mencegah terjadinya kehilangan informasi pada saat pengaksesan basis data secara bersamaan oleh banyak pengguna. 14. Improve Backup and Recovery Services, menyimpan data pada jangka waktu tertentu dan dapat mengembalikan keadaan data apabila terjadi kerusakan pada basis data. • Kekurangan : 1. Complexity, rumit dalam merancang dan membangun sebuah program dengan DBMS. 2. Size, semakin banyak program yang bersangkutan dengan DBMS, maka akan memakan memori yang cukup banyak. 16 3. Cost of DBMSs, biaya yang dikeluarkan untuk membeli DBMS cukup mahal. 4. Additional hardware cost, biaya perangkat keras sebagai penunjang sistem DBMS relatif mahal. 5. Cost of Conversion, biaya yang dikeluarkan untuk mengkonversikan aplikasi yang sudah ada agar dapat menggunakan DBMS dan perangkat keras yang baru mengeluarkan biaya sangat mahal. 6. Performance, tidak semua aplikasi dapat melakukan performa yang sangat baik. 7. Higher Impact of a Failure, semua pengguna dan aplikasi bergantung terhadap ketersediaan DBMS yang ada sehingga apabila tejadi proses kegagalan pada suatu komponen dapat menghambat operasi yang sedang berjalan. 2.1.4 SQL SQL (Structured Query Language) merupakan bahasa pemrograman yang digunakan untuk manajemen data dalam DBMS. Dimulai oleh peneliti IBM bernama Dr. Edgar F. Codd, yang merancang bahasa prototype sederhana yang disebut SQUARE, kemudian berkembang menjadi SEQUEL (Structured English Query Language) dan karena permasalahan penamaan, IBM mengubahnya menjadi SQL. SQL biasanya berupa perintah sederhana yang berisi untuk memanipulasi data seperti update data, atau mengambil data dari basis data. Beberapa sistem manajemen basis data relasional umum yang menggunakan SQL adalah: Oracle, Sybase, Microsoft SQL Server, Access, Ingres, dan lain-lain. SQL juga menjadi standar untuk sistem manajemen basis data relasional oleh ANSI (American National Standards Institute). Perintah SQL biasa juga dikenal dengan sebutan query. 17 Perintah atau instruksi SQL dapat dikelompokkan berdasarkan jenis dan fungsinya. Terdapat dua jenis perintah dasar SQL : Data Definition Language (DDL) dan Data Manipulation Language (DML). 2.1.5 SQLite SQLite merupakan proyek dari D.Richard Hipp yang bersifat public domain pada tahun 2000. SQLite adalah sebuah DBMS yang memiliki ukuran relatif kecil. Menurut Michael Owens (2006: p2) “SQLite is quite versatile. It is a database, a programming library, and a command-line tool, as well an excellent learning tool that provides a good introduction to relational databases.”. Pada jaman ini SQLite mempunyai bagian yang terpenting dalam kemajuan sistem operasi di sebuah hand phone yang umumnya mempunyai memori kecil. SQLite mempunyai beberapa fitur yang mendukung tugasnya sebagai DBMS, antara lain : 1. Zero Configuration, SQLite mempunyai pengaturan yang mudah dimengerti bagi programmer. 2. Portability, mudah dalam penggunaannya. SQLite dapati dijalankan pada beberapa sistem operasi, seperti : Windows, Linux, Unix, Mac OS. 3. Compactness, SQLite dirancang untuk bersifat tidak melibatkan server eksternal dan mempunyai kecepatan yang tinggi dalam memproses sebuah data. 4. Simplicity, SQLite mudah berkerja sama dengan banyak bahasa pemprogaman, seperti : Perl, Python, Ruby, Tcl/Tk, Java, PHP, Visual Basic, ODBC, Delphi, Microsoft.NET, Smalltalk, Ada, Objective C, Eiffel, Rexx, Lisp, Scheme, Lua, Pike, Objective Camel, Qt, WxWindows, dan REALBASIC. 18 5. Flexibility, SQLite memudahkan dalam menghubungkan relasi basis data dengan perangkat lunak yang dibuat. 6. Liberal Licensing, SQLite merupakan public domain, yang membuat programmer gratis dalam menggunakan SQLite. 7. Reliability, SQLite dirancang agar mudah dipelajari, mudah untuk dikembangkan, mudah diakses, dan mudah untuk ditemukan. 8. Convenience, SQLite mempunyai dynamic typing dan conflict resolution untuk membantu programmer. Fitur tersebut yang mendukung banyak programmer tetap menggunakan SQLite sampai hari ini. 2.2 Teori yang Terkait Tema Penelitian (Tematik) 2.2.1 Personal Financial Planning (Perencanaan Keuangan Pribadi) Setiap orang mempunyai uang untuk memenuhi kebutuhannya oleh sebab itu dibutuhkannya perencanaan keuangan pribadi. Menurut Jack R. Kapoor, Les R. Dlabay, Robert J. Hughes (2012: p2) “ Personal financial planning is the process of managing your money to achieve personal economic satisfaction.”. Menurut Jack R. Kapoor, Les R. Dlabay, Robert J. Hughes (2012: p2) Perencanaan keuangan pribadi mempunyai beberapa keuntungan, sebagai berikut : • Meningkatkan efektivitas dalam mendapat, menggunakan, dan menjaga sumber daya keuangan dalam hidup. • Meningkatkan kontrol dalam urusan keuangan dengan menghindari hutang yang berlebihan. • Meningkatkan kemampuan diri sendiri dalam perencanaan keuangan yang diatur dengan baik dan efektif. • Perasaan bebas dari kecemasan dalam pengaturan keuangan. 19 Dengan membuat perencanaan keuangan pribadi, uang dapat berfungsi secara maksimal dalam kehidupan. Dalam perencanaan keuangan pribadi ada beberapa proses yang harus dilakukan agar mendapat hasil yang maksimal. Proses tersebut sebagai berikut : Gambar 2.2 The Financial Planning Process (Dlabay dan Hughes, 2012: p3) 1. Membuat perencanaan keuangan pribadi dengan melihat bagaimana kondisi keuangan sekarang bedasarkan data – data yang ada. 2. Menyusun sasaran yang ingin dicapai untuk kedepannya. 3. Menyusun rencana yang harus dilakukan dalam mencapai sasaran. 4. Melihat dampak negatif dan positif dari rencana yang telah tersusun. 20 5. Melaksanakan rencana tersebut dalam mengelola keuangan yang sedang berjalan. 6. Menarik sebuah kesimpulan dari rencana yang dibuat dan hasil pelaksanaannya, lalu kembali ke langkah awal dengan data – data yang baru dan kesimpulan sebagai bahan pertimbangan. Proses tersebut akan selalu berputar selama mengelola keuangan. 2.2.2 Interaksi Manusia dan Komputer (IMK) Ilmu IMK merupakan hal yang penting dalam pembuatan sebuah aplikasi, karena ilmu IMK memberikan standar perancangan User Interface (UI) pada sebuah aplikasi. Menurut Ben Shneiderman and Catherine Plaisant (2004: p12) Effective interfaces generate positive feelings of success, competence, mastery, and clarity in the user community. Dalam perancangan UI ada lima hal yang harus diperhatikan agar UI dapat dikatakan standar, hal tersebut sebagai berikut : • Time to learn. Berapa lama waktu yang diperlukan, untuk seseorang mempelajari sebuah program atau aplikasi. • Speed of performance. Berapa lama waktu yang diperlukan, untuk sebuah program atau aplikasi beroperasi sesuai yang diinginkan pengguna. • Rate of errors by users. Berapa persentase pengguna melakukan kesalahan dalam pengoperasian program atau aplikasi. Berapa lama waktu yang diperlukan, untuk memperbaiki kesalahan yang telah terjadi. • Retention over time. Bagaimana tingkat kesulitan bagi pengguna untuk mengingat prosedur sebuah program atau aplikasi. • Subjective satisfaction. Berapa besar kepuasan pengguna dalam mengoperasikan program atau aplikasi tersebut. 21 Ada delapan prinsip dalam membuat design UI, yang umumnya disebut "eight golden rules”. Delapan prinsip ini sangat membantu bagi designer untuk membuat UI sebuah program atau aplikasi yang sukses, efektif, menarik dan informatif., berikut merupakan "eight golden rules” : 1. Strive for Consistency. Konsisten dalam prompt, menu, serta layar bantuan. 2. Enable frequent users to use shortcuts. Memungkinkan penggunaan jalan singkat bagi pengguna. 3. Offer Informative feedback. Membuat sistem yang menyediakan umpan balik (feedback) dari segala tindakan pengguna. 4. Design Dialogs to yield closure. Rangkaian tindakan harus tersusun secara rapih dan jelas dengan melakukan pengelompokan dalam sebuah proses. 5. Prevent Errors. Membuat sistem dapat melakukan pengecekan secara cepat dan tepat, sehingga memperkecil kesalahan fatal untuk pengguna. 6. Permit easy reversal of actions. Memungkinkan kembali kepada keadaan sebelumnya sebagai antisipasi kesalahan pengguna. 7. Support internal locus of control. Sistem dapat dikendalikan oleh pengguna dengan mudah dan cepat. 8. Reduce short term memory. Sistem dibuat agar tidak membebankan ingatan pengguna. 2.2.3 UML Menurut Whitten Bentley (2007: p371) UML atau Unified Modeling Language adalah satu set dari ketentuan modeling yang digunakan untuk menspesifikasi atau mendeskripsikan sebuah sistem software dalam suatu kondisi dari objek. UML digunakan untuk visualisasi, merancang, dan 22 mendokumentasikan sistem perangkat lunak, sama seperti seorang arsitek bangunan yang membuat blueprints untuk membangun sebuah gedung, arsitek perangkat lunak membuat diagram UML untuk membantu developer dalam proses pembuatan perangkat lunak. Dengan mengerti kosa kata yang ada pada UML, akan membantu developer memahami sistem yang akan dipergunakan dalam pembuatan perangkat lunak. UML dikembangkan pada pertengahan tahun 1990 dengan feedback yang sangat banyak dari komunitas pengembangan perangkat lunak. Pada tahun 1997, UML versi 1.0 diajukan kepada Object Management Group. UML versi 1.0 tersebut kemudian direvisi menjadi versi 1.1 pada akhir tahun 1997. Saat kini UML sudah mencapai versi 2.4.1 dan memiliki banyak diagram, namun dalam penelitian ini, diagram yang akan digunakan adalah : 1) Use Case Diagram 2) Activity Diagram 3) Class Diagram 2.2.3.1 Use Case Diagram Menurut Whitten Bentley (2007: p246) Use Case menggambarkan interaksi antara sistem, eksternal sistem dan user. Dengan kata lain, Use Case Diagram adalah gambaran dari semua Use Case yang ada dan bagaimana itu semua dapat berhubungan. Pada umumnya Use Case Diagram, terdapat empat elemen yang digunakan dalam pembuatan diagram tersebut, yaitu : 1) Use Case Use Case menggambarkan interaksi pengguna dengan sistem, biasanya Use Case digambar berbentuk oval. 23 Gambar 2.3 Use Case Symbol (Whitten Bentley, 2007: p246) 2) Actors Actors menggambarkan orang atau organisasi yang berhubungan langsung dengan sistem tersebut untuk pertukaran informasi. Actors digambarkan dengan figur orang. Gambar 2.4 Actors Symbol (Whitten Bentley, 2007: p247) 3) Relationships Relationships adalah sebuah garis yang menghubungkan Actors dengan Use Case pada saat terjadi interaksi diantara keduanya. Relationships digambarkan dengan garis. Gambar 2.5 Relationships Symbol (Whitten Bentley, 2007: p248) 24 4) System Boundary System Boundary merupakan kotak yang mengelilingi Use Case yang berguna sebagai penanda untuk ruang lingkup sistem tersebut. Berikut adalah contoh Use Case Diagram secara keseluruhan : Gambar 2.6 Contoh Use Case Diagram (Whitten Bentley, 2010: p246) 2.2.3.2 Activity Diagram Menurut Whitten Bentley (2007: p390) Activity Diagram melukiskan sebuah arus proses, langkah – langkah, dan logika dari sistem yang sedang berjalan tersebut. Activity Diagram mirip dengan flowchart, namun bedanya adalah Activity Diagram dapat memperlihatkan alur yang sedang terjadi bersamaan. Komponen dari Activity Diagram adalah: 1) Initial Node, berbentuk titik hitam yang menggambarkan awal mula dari sistem. 25 2) Action, yang direpresentasikan dengan persegi panjang yang kedua ujungnya melengkung. Action digunakan menggambarkan pekerjaan yang dilakukan oleh sistem perangkat lunak. 3) Flow, yang berbentuk anak panah. Flow digunakan untuk menunjukan alur kontrol dari sistem. 4) Decision, yang berbentuk seperti wajik dengan satu alur masuk dan dua atau lebih alur keluar. Alur keluar ditentukan dengan kondisi tertentu. 5) Merge, yang berbentuk seperti wajik dengan dua atau lebih alur masuk dan satu alur keluar. Merge digunakan untuk menggabungkan alur sebelumnya yang terpisah oleh decision. 6) Fork, yang berbentuk bar hitam dengan satu alur masuk dan dua atau lebih alur keluar. Fork menggambarkan perpecahan proses yang berlangsung bersamaan. 7) Join, yang berbentuk bar hitam dengan dua atau lebih alur masuk dan satu alur keluar. Join menggambarkan menyatunya proses yang telah dipisah oleh fork. 8) Activity Final, yang berbentuk titik hitam dengan dikelilingi oleh lingkaran hitam kecil di luarnya. Activity Final digunakan untuk menggambarkan akhir dari sistem. 26 Berikut adalah contoh dari Activity Diagram: Gambar 2.8 Activity Diagram (Whitten Bentley, 2010: p392) 2.2.3.3 Class Diagram Menurut Whitten Bentley (2007: p400) Class Diagram merupakan diagram sistem struktur obyek. Class Diagram digunakan untuk memodelkan hubungan antar kelas, dan kelaskelas yang telah bergabung menjadi package. Komponen pada Class Diagram adalah : 1) Class Name, yang terletak pada bagian atas. Merupakan nama dari kelas tersebut. 2) Class Attribute, yang terletak pada bagian tengah. Merupakan sesuatu yang umum dan merupakan bagian dari kelas tersebut 27 3) Class Operation, yang terletak pada bagian bawah. Merupakan obyek yang dapat dilakukan oleh kelas, biasanya diimplementasikan sebagai metode dari kelas tersebut. Selain itu juga, dalam pembuatan Class Diagram terdapat visibility yang berguna sebagai penentu apakah attribute dari sebuah kelas bisa digunakan oleh kelas lainnya atau tidak. Visibility tersebut adalah : 1) Public, ditandai dengan simbol (+) yang berarti bahwa attribute atau operation dari kelas ini dapat digunakan oleh kelas lainnya. 2) Private, ditandai dengan simbol (-) yang berarti bahwa attribute atau operation dari kelas ini hanya dapat digunakan oleh dirinya sendiri saja. 3) Protected, ditandai dengan simbol (#) yang berarti bahwa attribute atau operation dari kelas ini dapat digunakan oleh kelas itu sendiri dan sub-classnya. 4) Package, ditandai dengan simbol (~) yang berarti bahwa attribute atau operation dari kelas ini dapat digunakan oleh kelas itu sendiri dan kelas lainnya yang berada di package yang sama. 28 Berikut adalah contoh dari Class Diagram : Gambar 2.8 Contoh Class Diagram (Whitten Bentley, 2010: p651) 2.2.4 State Transition Diagram (STD) Menurut Jibitesh Mishra, Ashok Mohanty (2011: p82) State Transition Diagram berfungsi menyampaikan perilaku yang tergantung pada waktu di sebuah sistem. STD dibuat berdasarkan proses bisnis yang ada dengan tujuan memperjelas penggambaransebuah sistem berjalan dan melakukan proses. Beberapa komponen – komponen dari STD adalah : 1. State State menggambarkan suatu keadaan pada suatu waktu tertentu. Gambar 2.9 Bentuk State 2. Perubahan State Perubahan state menunjukan arah perpindahan dari state satu ke state lainnya. 29 Gambar 2.10 Bentuk Perubahan State 2.2.5 Android Menurut Meng Lee (2011: p2) Android adalah sistem operasi untuk mobile yang berbasiskan oleh Linux yang telah termodifikasi. Pada awal mulanya sistem operasi Android ini dikembangkan oleh perusahaan yang bernama Android. Namun ditahun 2005, Google membeli saham perusahaan Android dan mengambil alih kegiatan pengembangan sistem operasi tersebut dengan tujuan untuk memasukkan sistem operasi Android ke pasar mobile phone. Keunggulan utama menggunakan Android adalah sistem operasi tersebut menawarkan kemudahan dalam pengembangan aplikasinya. Seseorang hanya perlu membuat aplikasi untuk Android, lalu aplikasi tersebut dapat dipergunakan pada berbagai devices yang memiliki sistem operasi Android. 2.2.5.1 Versi-Versi Android Menurut Meng Lee (2011: p2) Android telah mengalami banyak pembaharuan versi semenjak pertama kali diluncurkan. Berikut adalah versi-versi dari Android : 30 Tabel 2.1 Tabel Versi Android Sumber : Meng Lee (2011: p2) Menurut official website dari Android, terdapat juga dua versi Android yang lebih baru dari data yang diatas, yaitu : Tabel 2.2 Tabel Lanjutan Versi Android Android Version Code Name 4.0.3 - 4.0.4 Ice Cream Sandwich 4.1.x - 4.3 Jelly Bean Sumber : developer.android.com/about/dashboards/index.html 2.2.5.2 Fitur Sistem Operasi Android Menurut Meng Lee (2011: p3) Android adalah sistem operasi open source dan bebas terbuka bagi developer untuk melakukan customization, sehingga tidak diperlukan pengaturan tetap untuk perangkat keras maupun perangkat lunak yang akan dipergunakan. Namun Android sendiri memiliki fitur-fitur seperti : 31 1. Storage Dipergunakan basis data SQL Lite sebagai tempat untuk menampung data-data pengguna. 2. Connectivity Mendukung jaringan GSM/EDGE, IDEN, CDMA, EVDO, `UMTS, Bluetooth, WiFi, LTE, dan WiMAX. 3. Messaging Dapat melakukan SMS (Short Message Service) dan MMS (Multimedia Message Service). 4. Web Browser Berlandaskan pada open-source WebKit dan Chrome V8 JavaScript engine. 5. Media Support Mendukung berbagai jenis media untuk foto dan video seperti : H.263, H.264, MPEG-4 SP, AMR, AMR-WB, AAC, HE-AAC, MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF, dan BMP. 6. Hardware Support Sensor getaran, kamera, kompas digital, pendeteksi obyek terdekat tanpa adanya kontak fisik, dan GPS (Global Positioning System). 7. Multi-touch Mendukung multi-touch screens. Dalam arti dapat menggunakan 2 jari atau lebih dalam penggunaannya. 32 8. Multi-tasking Mendukung multi-tasking application. Dalam arti dapat menggunakan lebih dari 1 aplikasi. 9. Flash Support Android 2.3 mendukung Flash 10.1 10. Tethering Mendukung pembagian koneksi internet sebagai hotspot. 2.2.5.3 Arsitektur Android Menurut Meng Lee (2011: p4), sistem operasi Android dibagi menjadi lima bagian dalam empat lapisan utama, yaitu : Gambar 2.11 Arsitektur dari Android (Meng Lee, 2011: p3) a) Linux Kernel Ini merupakan dasar dari Android. Lapisan ini berisikan semua drivers tingkatan rendah untuk segala komponen perangkat keras pada device Android. 33 b) Libraries Disini berisi semua kode yang memberikan fitur utama pada sistem operasi Android. c) Android Runtime Android Runtime berada pada lapisan yang sama dengan libraries, memberikan inti dari libraries yang memperbolehkan developer untuk membuat aplikasi Android dengan menggunakan bahasa pemrograman Java. Selain itu juga terdapat Dalvik virtual machine, yang memungkinkan untuk mengoptimalkan battery-powered mobile devices dengan memori dan CPU yang terbatas. d) Application Framework Memperlihatkan berbagai kemampuan dari sistem operasi Android kepada para developer aplikasi agar mereka dapat menggunakannya dalam pembuatan aplikasi tersebut. e) Application Pada lapisan teratas ini, dapat ditemukan aplikasi bawaan yang terdapat pada device android (seperti contacts, browser), serta aplikasi-aplikasi yang diunduh dan di-install dari Android Market. 2.2.6 Java Menurut Harvey M. Deitel dan Paul J. Deitel (2005: p2) “Java is a powerful computer programming language that fun for novices and appropriate for experienced programmers to building substantial information system.”. Java merupakan sebuah bahasa pemrograman yang mempunyai banyak kelebihan. Java diperkenalkan oleh Sun Microsystems pada tahun 1990. 34 Pada tahun 1998, Java 2 lahir sebagai platform kedua dari Java. Java biasanya digunakan untuk mengembangkan dalam ruang lingkup enterprise program. Hal itu dikarenakan, Java dapat dijalankan diberbagai sistem operasi seperti Windows, Linux, dan Unix. Dalam memprogram sebuah aplikasi dengan basis Java , ada dua hal yang penting yaitu Java SE Java Runtime Enivrontment (JRE) dan Java SE Development Kit (JDK) : • JDK merupakan kumpulan perkakas yang mendukung dalam pembuatan program berbasis Java. JDK dapat melakukan compiler dan debugger yang dibutuhkan programmer Java. • JRE merupakan kumpulan dari Java Application Programming Interface (API), Java Virtual Machine (JVM), dan Class Library Java. Dimana API adalah kumpulan application and applets Java dan JVM berfungsi sebagai compile source code ke java bytecode. JRE digunakan untuk menjalankan program berbasis Java. Berdasarkan kegunaanya pemrograman Java dikelompokkan menjadi tiga yaitu, J2SE (Java2 Standard Edition), J2ME (Java2 Micro Edition), dan J2EE (Java2 Enterprise Edition) : • J2SE merupakan kumpulan library yang membantu dalam pengembangan aplikasi desktop. • J2ME merupakan kumpulan library yang membantu dalam pengembangan aplikasi pada perangkat kecil dengan jumlah memory yang relatif sedikit sepeti smartphone dan PDA. • J2EE merupakan kumpulan library yang membantu dalam pengembangan aplikasi berbasis client or server dalam ruang lingkup enterprise. 2.2.7 XML Extensible Markup Language (XML) is a simple, very flexible text format derived from SGML (ISO 8879). Pada tahun 1998, XML 1.0 direkomendasikan secara resmi oleh World Wide Web Consortium (W3C). 35 XML adalah bahasa markup yang menyerupai Hyper Text Markup Language (HTML) akan tetapi XML dan HTML mempunyai tujuan pengembangan yang berbeda. XML diciptakan untuk menyusun, menyimpan dan menyalurkan data antar aplikasi dan HTML diciptakan untuk web browser menampilkan informasi. XML mempunyai struktur bahasa yang mudah dikenal karena bahasa XML dapat dibuat sendiri sesuai dengan kebutuhan. XML 1.0 dilengkapi dengan DTD ( Document Type Definition) untuk mempermudah aplikasi membaca stuktur hiraki penulisan XML. DTD biasanya terletak pada bagian atas penulisan arsip XML. XML mempunyai kelebihan dalam mengirimkan data, dimana data dapat dikirim dan diterima pada aplikasi yang mempunyai platform berbeda. Contohnya, XML dapat mengenal antara platform Java dan platform .NET . 2.3 Hasil Penelitian atau Produk Sebelumnya Untuk mendukung materi, maka digunakan e-journal yang berisikan materi hasil penelitian atau produk sebelumnya. Berikut ini e-journal yang digunakan : 1. e-journal yang dibuat oleh Himawan Ariefianto, Mohamad Dani, dan Asep Nugraha dengan judul “Perancangan dan Implementasi Aplikasi Pemesanan Makanan dan Minuman berbasis Client Server dengan Platform Android (2012)”. e-journal ini berisi mengenai cara-cara yang digunakan dalam merancang aplikasi Android yang berbasis Client Server dengan bantuan jaringan kecil seperti Wi-fi agar data-data dari aplikasi pada Android tersebut dapat terhubungkan ke komputer yang berada pada jaringan yang sama. Dengan adanya aplikasi ini, dapat memudahkan rumah makan yang menggunakan aplikasi tersebut, dimana proses pemesanan makanan tidak lagi memerlukan alat tulis dan juga dapat 36 meminimalkan kemungkinan terjadinya hilangnya data pesanan dari customer. 2. e-journal yang dibuat oleh Lifrandi Agan dan Petrus Santoso dengan judul “Pembuatan Aplikasi Cek Tagihan Listrik berbasis Android (2013)”. e-journal ini berisi mengenai cara-cara yang digunakan dalam merancang aplikasi online pada Android. Dengan adanya aplikasi ini, dapat memudahkan pengguna untuk melakukan pengecekan penggunaan listrik secara berkala tanpa harus membuka website PLN dan juga dapat melihat grafik pemakaian listrik sehingga dapat mengetahui pada saat kapan pemakaian listrik yang paling tinggi. 3. e-journal yang dibuat oleh Suhas Holla dan Mahima M. Katti dengan judul “Android Based Mobile Application Development and its Security (2012)”. e-journal ini berisi mengenai sedikit sejarah perkembangan dari Android beserta keamanannya. Jurnal ini menjelaskan tingkatan sekuritas keamanan pada Android, sehingga diharapkan dapat membantu developer dalam meningkatkan keamanan dalam membuat suatu aplikasi serta membantu pengguna untuk lebih mengerti keamanan pada aplikasi pada Android agar tidak terjadi hal-hal yang tidak diinginkan.