BAB 2 LANDASAN TEORI Landasan teori merupakan teori yang relevan yang digunakan untuk menjelaskan tentang variabel yang akan diteliti dan sebagai dasar untuk memberi jawaban sementara terhadap rumusan masalah yang diajukan, dan penyusunan instrument penelitian. Teori yang digunakan bukan sekedar pendapat dari pengarang atau pendapat lain, tetapi teori yang benar-benar telah teruji kebenarannya. Pada Bab ini dijelaskan mengenai teori-teori dasar dan pengertianpengertian mengenai pokok pembajasan yang mengacu dalam pembuatan aplikasi Transfusi dan Donor Darah Berbasis Android. 2.1 Sejarah Android Android merupakan sistem operasi yang berbasis Linux dan dirancang untuk perangkat seluler layar sentuh seperti smartphone serta komputer tablet. Android pada awalnya dikembangkan oleh perusahaan bernama Android, Inc., dengan dukungan finansial yang berasal dari Google, yang kemudian Google pun membelinya pada tahun 2005. Sistem operasi android tersebut secara resmi dirilis pada tahun 2007, bersamaan dengan didirikannya sebuah perusahaan Open Handset Alliance, konsorsium dari beberapa perusahaan-perusahaan perangkat keras, perangkat lunak, serta telekomunikasi yang memiliki tujuan untuk memajukan Universitas Sumatera Utara 7 standar terbuka dari perangkat seluler. Ponsel yang berbasis sistem operasi Android pertama dijual pada bulan Oktober 2008. Sejarah android pada mulanya berasal dari perusahaan bernama Android, Inc. didirikan tempatnya di Palo Alto, California, pada Oktober tahun 2003 oleh Andy Rubin (pendiri Danger), Rich Miner seorang pendiri Wildfire Communications, Inc., Nick Sears seorang mantan VP T-Mobile, dan Chris White seorang kepala desain dan pengembangan antarmuka WebTV untuk mengembangkan sebuah "perangkat seluler pintar yang lebih sadar tentang lokasi dan preferensi penggunanya". Tujuan awal dari perkembangan tersebut pada mulanya diperuntukkan bagi kamera digital, namun disadari bahwa pasar dari kamera digital tidak besar potensinya, dan pengembangan Android lalu dialihkan pada pasar telepon pintar atau smartphone untuk menyaingi Symbian serta Windows Mobile (iPhone Apple pada saat itu belum dirilis). Sejak tahun 2008, Android mulai secara bertahap melakukan sejumlah pembaruan atau update untuk meningkatkan kinerja dari sistem operasi tersebut dengan menambahkan fitur baru, memperbaiki bug pada versi android yang sebelumnya. Setiap versi yang dirilis dinamakan secara alfabetis dengan berdasarkan nama sebuah makanan pencuci mulut, seperti cupcake, donut, dan sebagainya. 2.2 Arsitektur Android Secara garis besar Arsitektur Android terdapat 4 komponen utama dalam membangun suatu arsitektur komputer yaitu Applications dan widget, Applications Frameworks, Libraries dan Linux karnel. Universitas Sumatera Utara 8 2.2.1 Applications dan Widget Applications dan Widgets ini adalah layer di mana kita berhubungan dengan aplikasi saja, dimana biasana kita download aplikasi kemudian kita lakukan instalasi dan jalankan aplikasi tersebut. Di Layer terdapat aplikasi inti termasuk klien email, program SMS, kalender, peta, browser, kontak, dan lain-lain. Semua aplikasi ditulis menggunakan bahasa pemrograman Java. 2.2.2 Applications Frameworks Android adalah "Open Development Platform" yaitu Android menawarkan kepada pengembang atau memberi kemampuan kepada pengembang untuk membangun aplikasi yang bagus dan inovatif. Pengembang bebas untuk mengakses perangkat keras, akses informasi resources, menjalankan service background, mengatur alarm, dan menambahkan status notifications, dan sebagainya. Pengembang memiliki akses penuh menuju API framework seperti yang dilakukan oleh aplikasi yang kategori inti. Arsitektur aplikasi dirancang supaya kita dengan mudah dapat menggunakan kembali komponen yang sudah digunakan (reuse). 2.2.3 Libraries Libraries ini adalah layer dimana fitur-fitur Android berada, biasanya para pembuat aplikasi mengakses libraries untuk menjalankan aplikasi. Berjalan di atas kernel, Layer ini meliputi berbagai library C/C++ inti seperti Libc danSSL, serta: - Libraries media untuk pemutaran media audio dan video - Libraries untuk manajemen tampilan - Libraries Graphics mencakup SGL dan OpenGL untuk grafis 2D dan 3D - Libraries SWLite untuk dukungan database Universitas Sumatera Utara 9 - Libraries SSL dan WebKit terintegrasi dengan web browser dan security. - Libraries liveWebcore mencakup modern web browser dengan engine web view - Libraires 3D yang mencakup implementasi OpenGL S 1.0 API's. 2.2.4 Linux Karnel Linux Kernel adalah layer di mana inti dari operating sistem dari Android itu berada. Berisi file-file system yang mengatur sistem processing, memory, resource, driver, dan sistem-sistem operasi android lainnya. Linux kernel yang digunakan android adalah linux kernel relase 2.6. Gambar 2.1 Arsitektur Android 2.3 Android Studio Android Studio adalah Lingkungan Pengembangan Terpadu Integrated Development Environment (IDE) untuk pengembangan aplikasi Android, Universitas Sumatera Utara 10 berdasarkan IntelliJ IDEA. Selain merupakan editor kode IntelliJ dan alat pengembang yang berdaya guna, Android Studio menawarkan fitur lebih banyak untuk meningkatkan produktivitas Anda saat membuat aplikasi Android, misalnya: 1. Sistem versi berbasis Gradle yang fleksibel. 2. Emulator yang cepat dan kaya fitur. 3. Lingkungan yang menyatu untuk pengembangan bagi semua perangkat Android. 4. Instant Run untuk mendorong perubahan ke aplikasi yang berjalan tanpa membuat APK baru. 5. Template kode dan integrasi GitHub untuk membuat fitur aplikasi yang sama dan mengimpor kode contoh. 6. Alat pengujian dan kerangka kerja yang ekstensif. 7. Alat Lint untuk meningkatkan kinerja, kegunaan, kompatibilitas versi, dan masalah-masalah lain. 8. Dukungan C++ dan NDK 9. Dukungan bawaan untuk Google Cloud Platform, mempermudah pengintegrasian Google Cloud Messaging dan App Engine. 10. Laman ini berisi pengantar dasar fitur-fitur Android Studio. Untuk memperoleh rangkuman perubahan terbaru, lihat Catatan Rilis Android Studio. 2.4 Java Java adalah bahasa pemrograman tingkat tinggi yang berorientasi objek dan program java tersusun dari bagian yang disebut kelas. Kelas terdiri atas metodemetode yang melakukan pekerjaan dan mengembalikan informasi setelah Universitas Sumatera Utara 11 melakukan tugasnya. Para pemrogram Java banyak mengambil keuntungan dari kumpulan kelas di pustaka kelas Java, yang disebut dengan Java Application Programming Interface (API). Kelas-kelas ini diorganisasikan menjadi sekelompok yang disebut paket (package). Java API telah menyediakan fungsionalitas yang memadai untuk menciptakan applet dan aplikasi canggih. Jadi ada dua hal yang harus dipelajari dalam Java, yaitu mempelajari bahasa Java dan bagaimana mempergunakan kelas pada Java API. Kelas merupakan satu-satunya cara menyatakan bagian eksekusi program, tidak ada cara lain. Pada Java program javac untuk mengkompilasi file kode sumber Java menjadi kelas-kelas bytecode. File kode sumber mempunyai ekstensi *.java. Kompilator javac menghasilkan file bytecode kelas dengan ekstensi *.class. Interpreter merupakan modul utama sistem Java yang digunakan aplikasi Java dan menjalankan program bytecode Java. Beberapa keunggulan java yaitu java merupakan bahasa yang sederhana. Java dirancang agar mudah dipelajari dan digunakan secara efektif. Java tidak menyediakan fitur-fitur rumit bahasa pemrograman tingkat tinggi, serta banyak pekerjaan pemrograman yang mulanya harus dilakukan manual, sekarang digantikan dikerjakan Java secara otomatis seperti dealokasi memori. Bagi pemrogram yang sudah mengenal bahasa C++ akan cepat belajar susunan bahasa Java namun harus waspada karena mungkin Java mengambil arah (semantiks) yang berbeda dibanding C++. Java merupakan bahasa berorientasi objek (OOP) yaitu cara ampuh dalam pengorganisasian dan pengembangan perangkat lunak. Pada OOP, program komputer sebagai kelompok objek yang saling berinteraksi. Deskripsi ringkas OOP Universitas Sumatera Utara 12 adalah mengorganisasikan program sebagai kumpulan komponen, disebut objek. Objek-objek ini ada secara independen, mempunyai aturan-aturan berkomunikasi dengan objek lain dan untuk memerintahkan objek lain guna meminta informasi tertentu atau meminta objek lain mengerjakan sesuatu. Kelas bertindak sebagai modul sekaligus tipe. Sebagai tipe maka pada saat jalan, program menciptakan objek-objek yang merupakan instan-instan kelas. Kelas dapat mewarisi kelas lain. Java tidak mengijinkan pewarisan jamak namun menyelesaikan kebutuhan pewarisan jamak dengan fasilitas antarmuka yang lebih elegan. Seluruh objek diprogram harus dideklarasikan lebih dulu sebelum digunakan. Ini merupakan keunggulan Java yaitu Statically Typed. Pemaksaan ini memungkinkan kompilator Java menentukan dan melaporkan terjadinya pertentangan (ketidakkompatibelan) tipe yang merupakan barikade awal untuk mencegah kesalahan yang tidak perlu (seperti mengurangkan variabel bertipe integer dengan variabel bertipe string). Java menggunakan model pengamanan tiga lapis (three-layer security model) untuk melindungi sistem dari untrusted Java code. Pertama, bytecode verifier membaca bytecode sebelum dijalankan dan menjamin bytecode memenuhi aturan-aturan dasar bahasa Java. Kedua, class loader menangani pemuatan kelas Java ke runtime interpreter. Ketiga, manajer keamanan menangani keamanan tingkat aplikasi dengan mengendalikan apakah program berhak mengakses sumber daya seperti sistem file, port jaringan, proses eksternal dan sistem window. Universitas Sumatera Utara 13 2.5 HTML (Hyper Text Markup Language) HTML adalah singkatan dari Hyper Text Markup Language yaitu bahasa pemrograman standar yang digunakan untuk membuat sebuah halaman web, yang kemudian dapat diakses untuk menampilkan berbagai informasi di dalam sebuah penjelajah web Internet (Browser). HTML dapat juga digunakan sebagai link link antara file-file dalam situs atau dalam komputer dengan menggunakan localhost, atau link yang menghubungkan antar situs dalam dunia internet. Supaya dapat menghasilkan tampilan wujud yang terintegerasi Pemformatan hiperteks sederhana ditulis dalam berkas format ASCII sehingga menjadi halaman web dengan perintahperintah HTML. HTML merupakan sebuah bahasa yang bermula bahasa yang sebelumnya banyak dipakai di dunia percetakan dan penerbirtan yang disebut Standard Generalized Markup Language (SGML). 2.6 CSS (Cascading Style Sheet) Cascading Style Sheet (CSS) merupakan aturan untuk mengatur beberapa komponen dalam sebuah web sehingga akan lebih terstruktur dan seragam. CSS bukan merupakan bahasa pemograman. Sama halnya styles dalam aplikasi pengolahan kata seperti Microsoft Word yang dapat mengatur beberapa style, misalnya heading, subbab, bodytext, footer, images, dan style lainnya untuk dapat digunakan bersama-sama dalam beberapa berkas (file). Pada umumnya CSS dipakai untuk memformat tampilan halaman web yang dibuat dengan bahasa HTML dan XHTML. CSS dapat mengendalikan ukuran gambar, warna bagian tubuh pada teks, warna tabel, ukuran border, warna border, warna hyperlink, warna mouse over, spasi antar paragraf, spasi antar teks, Universitas Sumatera Utara 14 margin kiri, kanan, atas, bawah, dan parameter lainnya. CSS adalah bahasa style sheet yang digunakan untuk mengatur tampilan dokumen. Dengan adanya CSS memungkinkan kita untuk menampilkan halaman yang sama dengan format yang berbeda. 2.7 PHP dan MySQL sebagai 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 sebuahdatabase 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. Menurut W3C Web services Architecture Working Group pengertian Web service adalah sebuah sistem softwareyang di desain untuk mendukung Universitas Sumatera Utara 15 interoperabilitas interaksi mesin ke mesin melalui sebuah jaringan. Interfaceweb service dideskripsikan dengan menggunakan format yang mampu diproses oleh mesin (khususnya WSDL). Sistem lain yang akan berinteraksi dengan web service hanya memerlukan SOAP, yang biasanya disampaikan dengan HTTP dan XML sehingga mempunyai korelasi dengan standar Web (Web Services Architecture Working Group, 2004). 2.8 Flowchart Flowchart adalah bagan-bagan yang mempunyai arus untuk menggambarkan langkah-langkah dalam menyelesaikan suatu masalah tertentu dan flowchart merupakan salah satu cara penyajian dalam algoritma. Program flowchart menggambarkan urutan logika dari suatu algoritma. Tahapan pembuatan program yaitu mendefinisikan masalah dan menganalisanya. Mencakup: tujuan pembuatan program, parameter yang digunakan, fasilitas yang disediakan, algoritma yang diterapkan dan bahasa program yang digunakan. 2.8.1 Simbol pada Flowchart Simbol pada flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta instruksinya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan hubungan antar proses digambarkan dengan garis penghubung. Flowchart disusun dengan simbol-simbol. Simbol ini dipakai sebagai alat bantu menggambarkan proses di dalam program. Simbol-simbol yang dipakai antara lain: Universitas Sumatera Utara 16 1. Flow Direction Symbols Yaitu, simbol yang dipakai untuk menghubungkan antara simbol yang satu dengan simbol lainnya atau disebut juga connecting line. Tabel 2.1. Flow Direction Symbols Simbol Nama Fungsi Penghubung antara Arus / Flow prosedur / proses. Simbol keluar / masuk Connector prosedur atau proses dalam lembar / halaman yang sama. Simbol keluar / masuk Off-line Connector prosedur atau proses. dalam lembar / halaman yang lain. 2. Processing Simbols Yaitu, merupakan simbol yang menunjukkan jenis operasi pengolahan dalam suatu prosedur. Universitas Sumatera Utara 17 Tabel 2.2. Processing Simbols Simbol Nama Fungsi Simbol yang menunjukkan Process pengolahan yang dilakukan Komputer. Simbol untuk kondisi yang Decision akan menghasilkan beberapa kemungkinan jawaban / aksi. Simbol untuk mempersiapkan Predefined Process penyimpanan yang akan Digunakan sebagai tempat pengolahan didalam storage. Terminal Manual Input Simbol untuk permulaan atau akhir darti suatu program. Simbol untuk pemasukan data secara manual on-line keyboard. 1. Input-Output Simbol Simbol yang dipakai untuk menyatakan jenis peralatan yang digunakan sebagai media input atau output. Universitas Sumatera Utara 18 Tabel 2.3. Input-Output Simbol Simbol Nama Fungsi Simbol Input-Output yang menyatakan proses input dan output tanpa tergantung dengan jenis peralatannya. Simbol yang menyatakan input Document berasal dari dokumen dalam bentuk kertas atau output di cetak dikertas. Disk and On-line Storage Simbol untuk menyatakan input berasal dari disk atau output di simpan ke disk. 2.9 Entity Relationship Diagram Menurut salah satu para ahli, Brady dan Loonam (2010), Entity Relationship Diagram (ERD) merupakan teknik yang digunakan untuk memodelkan kebutuhan data dari suatu organisasi, biasanya oleh System Analys dalam tahap analisis persyaratan proyek pengembangan sistem. Sementara seolah-olah teknik diagram atau alat peraga memberikan dasar untuk desain database relasional yang mendasari sistem informasi yang dikembangkan. ERD bersamasama dengan detail pendukung merupakan model data yang pada gilirannya digunakan sebagai spesifikasi untuk database. Universitas Sumatera Utara 19 Tabel 2.4. Komponen ERD Simbol Nama Fungsi Entitas Suatu objek yang dapat diidentifikasi dalam lingkungan pemakai. Atribut Mendeskripsikan karakter entitas. Relasi Hubungan diantara sejumlah entitas yang berbeda. Garis Penghubung antara relasi dengan entitas dengan atribut. Universitas Sumatera Utara