BAB II LANDASAN TEORI 2.1 Aplikasi Menurut Nazrudin Safaat H (2012) Perangkat lunak aplikasi adalah suatu subkelas perangkat lunak komputer yang memanfaatkan kemampuan komputer langsung untuk melakukan suatu tugas yang diinginkan pengguna. Biasanya dibandingkan dengan perangkat lunak sistem yang mengintegrasikan berbagai kemampuan komputer, tapi tidak secara langsung menerapkan kemampuan tersebut untuk mengerjakan suatu tugas yang menguntungkan pengguna. Contoh utama perangkat lunak aplikasi adalah pengolah kata, lembar kerja, dan pemutar media. Beberapa aplikasi yang digabung bersama menjadi suatu paket kadang disebut sebagai suatu paket atau suite aplikasi (application suite). Contohnya adalah Microsoft Office dan Open Office.org, yang menggabungkan suatu aplikasi pengolah kata, lembar kerja, serta beberapa aplikasi lainnya. Aplikasi-aplikasi dalam suatu paket biasanya memiliki antarmuka pengguna yang memiliki kesamaan sehingga memudahkan pengguna untuk mempelajari dan menggunakan setiap aplikasi. Sering kali, aplikasi ini memiliki kemampuan untuk saling berinteraksi satu sama lain sehingga menguntungkan pengguna. Contohnya, suatu lembar kerja dapat dibenamkan dalam suatu dokumen pengolah kata walaupun dibuat pada aplikasi lembar kerja yang terpisah. 2.2 Android Android adalah sebuah sistem operasi untuk perangkat mobile berbasis linux yang mencakup sistem operasi, middleware dan aplikasi. Android menyediakan sistem operasi yang terbuka bagi para pengembang untuk menciptakan aplikasi. Android diluncurkan untuk umum pada musim gugur di tahun 2008. Android sangat berkembang pesat di industri karena dua aspek utama yaitu bersifat open source dan model arsitekturya. Sebagai sebuah proyek yang bersifat open source, memungkinkan android untuk sepenuhnya dipahami dan dianalisis mengenai fitur, penyelesaian pada bug program hingga hardware.
9 http://digilib.mercubuana.ac.id/
Menurut Nazaruddin (2012:1) merupakan sistem operasi untuk telepon seluler yang berbasis Linux. Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka sendiri untuk digunakan oleh bermacam peranti bergerak. Android umum digunakan di smartphone dan juga Tabelt PC. Fungsinya sama seperti sistem operasi Symbian di Nokia, iOS di Apple dan BlackBerry OS. 2.2.1 Karakteristik Android Android memiliki empat karakteristik sebagai berikut: 1. Terbuka Android dibangun untuk benar-benar terbuka sehingga sebuah aplikasi dapat memanggil salah satu fungsi inti ponsel seperti membuat panggilan, mengirim pesan teks, menggunakan kamera dan lain-lain. Android merupakan sebuah mesin virtual yang dirancang khusus untuk mengoptimalkan sumber daya memori dan perangkat keras yang terdapat di dalam perangkat. Android merupakan open source, dapat secara bebas diperluas untuk memasukkan teknologi baru yang lebih maju pada saat teknologi tersebut muncul. Platform ini akan terus berkembang untuk membangun aplikasi mobile yang inovatif. 2. Semua aplikasi dibuat sama Android tidak memberikan perbedaan terhadap aplikasi utama dari telepon dan aplikasi pihak ketiga (third-party application). Semua apliksi dapat dibangun untuk memiliki akses yang sama terhadap kemampuan sebuah telepon dalam menyediakan layanan dan aplikasi yang luas terhadap para pengguna.
10 http://digilib.mercubuana.ac.id/
3. Memecahkan hambatan pada aplikasi Android memecah hambatan untuk membangun aplikasi yang baru dan inovatif. Misalnya, pengembang dapat menggabungkan informasi yang diperoleh dari website dengan data pada ponsel seseorang seperti kontak pengguna, kalender atau lokasi geografis. 4. Pengembangan aplikasi yang cepat dan mudah Android menyediakan akses yang sangat luas kepada pengguna untuk menggunakan aplikasi yang semakin baik. Android memiliki sekumpulan tools yang dapat digunakan sehingga membantu para pengembang dalam meningkatkan produktivitas pada saat membangun aplikasi yang dibuat. (http://www.android.com/about/) 2.2.2 Siklus Hidup Aplikasi Android (Sistem Kerja) Siklus Hidup Aplikasi Android (Sistem Kerja) Siklus hidup aplikasi Android dikelola oleh sistem, berdasarkan kebutuhan pengguna, sumberdaya yang tersedia, dan sebagainya. Misalnya Pengguna ingin menjalankan browser web, pada akhirnya sistem yang akan menentukan menjalankan aplikasi. Sistem sangat berperan dalam menentukan apakah aplikasi dijalankan, dihentikan sementara, atau dihentikan sama sekali. Jika pengguna ketika itu sedang menjalankan sebuah Activity, maka sistem akan memberikan perioritas utama untuk aplikasi yang tersebut. Sebaliknya, jika suatu Activity tidak terlihat dan sistem membutuhkan sumber daya yang lebih, maka Activity yang prioritas rendah akan ditutup. Android menjalankan setiap aplikasi dalam proses secara terpisah, yang masing-masing memliki mesin virtual pengolah sendiri, dengan ini melindungi penggunaan memori pada aplikasi. Selain itu juga Android dapat mengontrol aplikasi mana yang layak menjadi prioritas utama. Karenanya Android sangat sensitive dengan siklus hidup aplikasi dan komponen-komponennya. Perlu adanya
11 http://digilib.mercubuana.ac.id/
penanganan terhadap setiap kondisi agar aplikasi menjadi stabil. Gambar di bawah ini menunjukkan prioritas dari aplikasi.
Gambar 2. 1 Pioritas Aplikasi Android
2.2.4 Kelebihan Android Android merupakan generasi baru platform mobile, platform yang memberikan pengembangan untuk melakukan pengembangan sesuai dengan yang diharapkan. Android juga dipuji sebagai “platform mobile” pertama yang Lengkap (Complete platform), Terbuka (Open Source Platform), dan Bebas (Free Platform).
Lengkap (Complete Platform)
Terbuka (Open Source Platform)
Free (Free Platform)
2.3 Android Studio Android Studio adalah sebuah IDE (Integrated Development Environment) untuk pengembangan aplikasi pada platform Android. Android Studio merupakan toolkit yang digunakan untuk membangun dan membuat paket aplikasi Android berdasarkan IntelliJ IDEA. Sama halnya dengan Eclipse, ada beberapa pilihan Application Building Tools, baik menggunakan IDE (Integrated Development Environment) atau CLI (Command Line Interface). Android Studio ini menggunakan Gradle untuk memanajemen proyeknya. Gradle itu sendiri adalah 12 http://digilib.mercubuana.ac.id/
build automation tool yang dapat dikonfigurasi melalui DSL berbasis Groovy. Hal Inilah yang membedakan Gradle dari Ant atau Maven yang memakai XML. Penggunaan DSL berbasis Groovy membuat Gradle lebih fleksibel dan dapat diprogram dengan lebih mudah. 2.4 Database SQLite SQLite adalah fasilitas yang digunakan untuk membuat database yang disediakan oleh Android yang secara default sudah tersedia di dalam library Android. Untuk keperluan operasi database pada smartphone atau Tabelt Android, SQLite sangat memadai karena ukurannya yang kecil, cepat dan ringan dalam hal sumber daya. Menurut Djunaidi (2011) SQLite adalah salah satu software yang embedded, kombinasi SQL interface dan penggunaan memory yang sangat sedikit dengan kecepatan yang sangat cepat merupakan salah satu keunggulan SQLite. SQLite di Android termasuk dalam Android Runtime, sehingga setiap versi dari Android dapat membuat database dengan SQLite. Sintak SQL terbagi menjadi 2 kategori yaitu: a) Data Definition Language (DDL) Data Definition Language (DDL) digunakan untuk mendefinisikan, mengubah, serta menghapus basis data dan objek-objek yang diperlukan dalam basis data, misalnya, view, atau user. Secara umum Data Definition Language (DDL) yang digunakan adalah CREATE untuk membuat objek baru, USE untuk menggunakan objek, ALTER untuk mengubah objek yang sudah ada, dan DROP untuk menghapus objek. Data Definition Language (DDL) biasanya digunakan oleh administrator basis data dalam pembuatan sebuah aplikasi basis data. b) Data Manipulation Language (DML) Data Manipulation Language (DML) merupakan kumpulan perintah SQL yang digunakan untuk proses pengolahan isi data di dalam seperti memasukkan, merubah dan menghapus isi data - dan tidak terkait dengan perubahan struktur dan definisi tipe data dari objek database.
13 http://digilib.mercubuana.ac.id/
Perintah-perintah Data Manipulation Language (DML) yang umum digunakan
adalah
SELECT
untuk
menampilkan
data,
INSERT
untuk
menambahkan data baru, UPDATE untuk mengubah data yang sudah ada, DELETE untuk menghapus data. SQLite juga dapat diintegrasikan dengan bahasa – bahasa pemrograman lainya, yaitu: a) SQLite termasuk dalam framework REALbasic, yang memungkinkan aplikasi yang dikembangkan dengan menggunakan REALbasic dapat memanfaatkan basisdata SQLite. b) Pustaka SQLite bisa digunakan secara langsung pada bahasa C/C++, namun untuk Tcl dan beberapa bahasa pemrograman berbasis script juga tersedia. c) Modul DBI/DBD untuk Perl juga tersedia pada CPAN DBD SQLite, namun modul ini bukanlah antarmuka dengan SQLite melainkan memasukkan secara keseluruhan dalam modul tersebut. d) Modul Phyton juga tersedia (PySQLite) yang diimplementasikan pada DB API Phyton versi 2.0 (PEP 249). e) PHP dimulai dengan PHP5 telah memasukkan SQLite, versi PHP4 sebelumnya bisa juga digunakan untuk mengakses SQLite, namun modul SQLite tidak dimasukkan secara standar bawaan. f) Lazarus dari versi 0.9.8 dan Free Pascal 2.0.0. 40 7. Meskipun Borland tidak mempaketkan SQLite secara standar bawaan, Delphi sudah mendukung SQLite juga menggunakan pustaka yang dibuat oleh pihak ketiga (Auducom dan Zeos). g) SQLite juga termasuk dalam paket yang dibundle secara standar bawaan pada Mac OS X, dan digunakan sebagai salah satu pilihan mekanisme penyimpanan data pada API Apple. Beberapa fitur – fitur dalam SQLite yaitu : 1. Memiliki transaksi yang bersifat atomic, konsistensi basisdata, isolasi, dan durabilitas (dalam Bahasa Inggris lebih sering disebut ACID). 2. Tanpa konfigurasi, tanpa instalasi dan administrasi.
14 http://digilib.mercubuana.ac.id/
3. Mengimplementasikan hampir seluruh elemen-elemen standar yang berlaku pada SQL-92. 4. Mendukung database hingga berukuran terabyte database dan berukuran gigabyte string. 5. SQLite memiliki jejak kode kecil, membuat efisiensi penggunaan memori, ruang disk. 6. Mudah untuk penggunaan API. 7. Mendukung banyak sistem operasi : Unix (Linux dan Mac OS X), OS / 2, dan Windows (Win32 dan WinCE) 8. SQLite pilihan populer untuk mesin database di ponsel, PDA, MP3 player, set-top box, dan gadget elektronik lainnya. Sedangkan Menurut Nazruddin Safaat H (2012) SQLite adalah salah satu software yang embedded yang sangat populer, kombinasi SQL interfae dan penggunaan memory yang sangat sedikit dengan kecepatan yang sangat cepat. SQLite di Android termasuk dalam Android Runtime, sehingga setiap versi dari Android dapat membuat database dengan SQLite. 2.5 Java Java adalah perangkat lunak produksi Sun Microsystem Inc., yang merupakan perangkat lunak pemrogaman untuk beberapa tujuan (multi purpose), multiplatform (dapat berjalan dibeberapa sistem operasi), mudah dipelajari, dan powerful. Aplikasi-aplikasi yang dapat dibuat dengan java, meliputi web programming, dekstop programming, mobile programming. Saat ini Java diakuisi oleh Oracle Inc. yang membuat Java semakin berkembang dengan pesat dan populer. Sifat yang dideskripsikan oleh Sun Microsistem dapat dipaparkan sebagai berikut: 1. Sederhana Pengembang Java banyak membuang fitur-fitur yang tidak diperlukan seperti yang dimiliki bahasa pemrograman tingkat tinggi lainnya.
15 http://digilib.mercubuana.ac.id/
2. Garbage collected (Pembuang Sampah) Program Java menyingkirkan sendiri „sampah-sampah‟ yang tidak berguna, artinya program tidak perlu menghapus objek-objek yang dialokasikannya di memori. 3. Robust (Tangguh) Karena interpretasi Java memeriksa seluruh akses sistem yang dilakukan program, maka program Java tidak akan membuat sistem menjadi crash. 4. Dapat diperluas Program Java mendukung metode native yakni fungsi-fungsi yang ditulis dalam bahasa latin, biasanya C++. Java membagi versi programnya ke dalam tiga kelompok besar, yaitu : a. Java 2 Standar Edition (J2SE) untuk konsentrasi pada PC b. Java 2 Enterprise Edition (J2EE) untuk konsentrasi pada aplikasi server besar c. Java 2 Micro Edition (J2ME) untuk konsentrasi pada mobil. 2.6 XML XML (eXtensible Markup Language) adalah bahasa markup, yaitu bahasa yang berisikan kode-kode berupa tanda tanda dengan tag sendiri agar dapat dimengerti, yang digunakan untuk keperluan umum dalam membuat dokumen markup keperluan pertukaran data antar system yang beraneka ragam serta XML digunakan untuk mengidentifikasi dan menandai data terstruktur. XML merupakan kelanjutan dari HTML (Hypertext Markup Language) yang merupakan bahasa standar untuk melacak internet. Teknologi XML adalah teknologi keturunan dari SQML (Standard Generalizes Markup Language, ISO 1879) yang dikembangkan pada tahun 1980-an. XML didesain untuk mampu menyimpan data secara ringkas dan mudah diatur. Kata kunci utama XML menyediakan suatu cara terstandarisasi namun bisa dimodifikasi untuk menggambarkan sembarang view database, tetapi dengan cara yang standar. 2.7 JSON (JavaScript Object Notation)
16 http://digilib.mercubuana.ac.id/
Menurut Deitel (2012, p1303) JSON (JavaScript Object Notation) adalah suatu format pertukaran data komputer. Format dari JSON adalah berbasis teks, dapat terbaca oleh manusia, digunakan untuk mempresentasikan struktur data sederhana, dan tidak bergantung dengan bahasa apapun. Biasanya digunakan pada aplikasi Ajax. Format JSON sering digunakan untuk mentransmisikan data terstruktur melalui koneksi jaringan. Secara umum, JSON digunakan untuk mentransmisikan data antara server dan aplikasi web. Jenis media internet yang resmi untuk JSON adalah aplikasi/json. Format JSON sering digunakan untuk serialisasi dan mengirimkan data terstruktur melalui koneksi jaringan, terutama untuk pengiriman data antara server dan aplikasi web melayani sebagai alternatif ke XML. 2.8 Internet Pengertian Internet Menurut eWolf Community (2012), “Internet merupakan singkatan dari Interconnection Networking, yaitu jaringan komputer dalam skala dunia. Internet terdiri dari banyak jaringan komputer lokal yang saling terhubung sehingga membentuk jaringan global dengan segala macam aturan (protokol). Protokol utama yang digunakan saat ini adalah TCP/IP (Transmission Control Protocol/Internet Protocol), yaitu sekumpulan aturan untuk komunikasi data antar komputer dalam suatu jaringan”. Dalam pengertian lain internet adalah komputer yang terhubung melalui jaringan dan saling berkomunikasi dengan waktu dan wilayah yang tak terbatas.
2.9 UML Pada perkembangan teknologi perangkat lunak, diperlukannya adanya bahasa yang digunakan untuk memodelkan perangkat lunak yang akan dibuat dan perlu adanya standarisasi agar orang diberbagai negara dapat mengerti pemodelan perangkat lunak. Seperti yang kita ketahui bahwa menyatukan banyak kepala untuk menceritakan sebuah ide dengan tujuan memahami hal yang sama tidaklah mudah, 17 http://digilib.mercubuana.ac.id/
oleh karena itu diperlukan sebuah bahasa pemodelan perangkat lunak yang dapat dimengerti oleh banyak orang. Banyak orang yang telah membuat bahasa pemodelan pembangunan perangkat lunak sesuai dengan teknologi pemrograman yang berkembang pada saat itu, misalnya yang sempat berkembang dan digunakan banyak orang adalah Data Flow Diagram (DFD) untuk memodelkan perangkat lunak yang menggunakan pemrograman prosedural atau struktural, kemudian juga ada State Transition Diagram (STD) yang digunakan untuk memodelkan sistem real time (waktu nyata). Pada perkembangan teknik pemrograman berorientasi objek, munculah sebuah standarisasi bahasa pemodelan untuk pembangunan perangkat lunak yang dibangun dengan menggunakan teknik pemrograman berorientasi objek, yaitu Unified Modeling Language (UML). UML muncul karena adanya kebutuhan pemodelan visual untuk menspesifikasikan, menggambarkan, membangun dan mendokumentasikan dari sistem perangkat lunak. UML merupakan bahasa visual untuk pemodelan dan komunikasi mengenai sebuah sistem dengan menggunakan diagram dan teks-teks pendukung. Menurut Schader, M., & Korthaus, A. UML didirikan sebagai standar untuk model sistem dan bukan hanya software, dan dengan demikian berlaku untuk pandangan tentang arsitektur perangkat lunak. Unified Modeling Language (UML) memungkinkan analis, arsitek software, dan pengembang untuk menentukan, memvisualisasikan, dan mendokumentasikan seluruh sistem. Dengan memberikan bahasa umum
untuk berbicara dengan sistem yang kompleks, UML
memungkinkan banyak kontributor yang berbeda, dengan perspektif yang beragam, untuk berkomunikasi pada umumnya. 2.9.1 Diagram UML UML menyediakan 10 macam diagram untuk memodelkan aplikasi berorientasi objek, yaitu:
18 http://digilib.mercubuana.ac.id/
a) Use Case Diagram untuk memodelkan proses bisnis. b) Conceptual Diagram untuk memodelkan konsep-konsep yang ada di dalam aplikasi. c) Sequence Diagram untuk memodelkan pengiriman pesan (message) antar objects. d) Collaboration Diagram untuk memodelkan interaksi antar objects. e) State Diagram untuk memodelkan perilaku objects di dalam sistem. f) Activity Diagram untuk memodelkan perilaku Use Cases dan objects di dalam system. g) Class Diagram untuk memodelkan struktur kelas. h) Object Diagram untuk memodelkan struktur object. i) Component Diagram untuk memodelkan komponen object.
j) Deployment Diagram untuk memodelkan distribusi aplikasi. 2.9.2 Use Case Diagram Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Use case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, meng-create sebuah daftar belanja, dan sebagainya. Seorang/sebuah aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu. Sebuah use case dapat meng-include fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang di-include akan dipanggil setiap kali use case yang meng-include dieksekusi secara normal. Sebuah use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common. Sebuah use case juga dapat meng-extend use case lain dengan behaviour-nya sendiri. Sementara hubungan generalisasi antar use case menunjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain.
19 http://digilib.mercubuana.ac.id/
Menurut (Rosa A.S, M.Shalahudin, 2013) Use case atau diagram use case merupakan pemodelan untuk kelakuan (behavior) sistem informasi yang akan dibuat. Use case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem informasi yang akan dibuat. Secara kasar, use case digunakan untuk mengetahui fungsi apa saja yang ada di dalam sebuah sistem informasi dan siapa saja yang berhak menggunakan fungsi-fungsi itu. Penggambaran use case diagram dapat di lihat dalam gambar 2.2.
Gambar 2. 2 Gambar Contoh Use Case Diagram
2.9.3 Activity Diagram Activity diagram menggambarkan berbagai alir aktifitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu activity diagram tidak menggambarkan behavior internal sebuah sistem (dan interaksi antar subsistem)
20 http://digilib.mercubuana.ac.id/
secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktifitas dari level atas secara umum. Sebuah aktifitas dapat direalisasikan oleh satu use case atau lebih. Aktifitas menggambarkan proses yang berjalan, sementara use case menggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktifitas. Menurut Rosa A.S dan M.Shalahuddin (2011:134), diagram aktivitas menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis. Yang perlu diperhatikan disini adalah bahwa diagram aktivitas menggambarkan aktivitas system bukan apa yang dilakukan actor. Contoh Activity diagram dapat di lihat pada gambar 2.3.
Gambar 2. 3 Contoh Activity Diagram
2.9.4 Sequence Diagram Sequence diagram menjelaskan secara detil urutan proses yang dilakukan dalam sistem untuk mencapai tujuan dari use case: interaksi yang terjadi antar class, operasi apa saja yang terlibat, urutan antar operasi, dan informasi yang diperlukan oleh masing-masing operasi. Menurut
Rosa
A.S
M-Shalahudin
(2013)
diagram
sequence
menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek. Oleh karena itu untuk menggambarkan diagram sequence maka harus diketahui objek-objek
21 http://digilib.mercubuana.ac.id/
yang terlibat dalam sebuah use case beserta metode-metode yang dimiliki kelas yang diinstansi menjadi objek itu. Membuat diagram sekuen juga dibutuhkan untuk melihat skenario yang ada pada use case. Contoh sequence diagram dapat di lihat pada gambar 2.4.
Gambar 2. 4 Contoh Sequence Diagram.
2.9.5 Class Diagram Class diagram merupakan diagram yang selalu ada di permodelan sistem berorientasi objek. Class diagram menunjukkan hubungan antar class dalam sistem yang sedang dibangun dan bagaimana mereka saling berkolaborasi untuk mencapai suatu tujuan. Menurut Rosa dan M.Shalahuddin (2011:122) yang dimaksud dengan class diagram adalah suatu kelas yang menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sebuah sistem. Penggambaran class diagram dapat di lihat dalam gambar 2.5.
22 http://digilib.mercubuana.ac.id/
Gambar 2. 5 Contoh Class Diagram
2.10 Entity Relationship Diagram (ERD) Menurut Sutanta (2011:91) “Entity Relationship Diagram (ERD) merupakan suatu model data yang dikembangkan berdasarkan objek.” Entity Relationship Diagram (ERD) digunakan untuk menjelaskan hubungan antar data dalam basis data kepada pengguna secara logis. Entity Relationship Diagram (ERD) didasarkan pada suatu persepsi bahwa real world terdiri atas obyek-obyek dasar tersebut. Penggunaan Entity Relationship Diagram (ERD) relatif mudah dipahami, bahkan oleh para pengguna yang awam. Bagi perancang atau analis sistem, Entity Relationship Diagram (ERD) berguna untuk memodelkan sistem yang nantinya, basis data akan di kembangkan. Model ini juga membantu perancang atau analis sistem pada saat melakukan analis dan perancangan basis data karena model ini dapat menunjukkan macam data yang dibutuhkan dan kerelasian antardata didalamnya.
Komponen Entity Relationship Diagram menurut Sutanta (2011:91) adalah sebagai berikut : a. Entitas Entitas merupakan suatu objek yang dapat dibedakan dari lainnya yang dapat diwujudkan dalam basis data. Objek dasar dapat berupa orang, benda,
23 http://digilib.mercubuana.ac.id/
atau hal yang keterangannya perlu disimpan didalam basis data. Untuk menggambarkan sebuah entitas digunakan aturan sebagai berikut : 1) Entitas dinyatakan dengan simbol persegi panjang. 2) Nama entitas dituliskan didalam simbol persegi panjang. 3) Nama entitas berupa kata benda, tunggal. 4) Nama entitas sedapat mungkin menggunakan nama yang mudah dipahami dan dapat menyatakan maknanya dengan jelas.
b. Atribut Atribut merupakan keterangan-keterangan yang terkait pada sebuah entitas yang perlu disimpan dalam basis data. Atribut berfungsi sebagai penjelas pada sebuah entitas. Untuk menggambarkan atribut digunakan aturan sebagai berikut: 1) Atribut digambarkan dengan simbol ellips. 2) Nama atribut dituliskan didalam simbol ellips. 3) Nama atribut merupakan kata benda, tunggal. 4) Nama atribut sedapat mungkin menggunakan nama yang mudah dipahami dan dapat menyatakan maknanya dengan jelas.
c. Relasi Relasi merupakan hubungan antara sejumlah entitas yang berasal dari himpunan entitas yang berbeda. Aturan penggambaran relasi adalah sebagai berikut : 1) Relasi dinyatakan dengan simbol belah ketupat. 2) Nama relasi dituliskan didalam simbol belah ketupat 3) Nama relasi berupa kata kerja aktif. 4) Nama relasi sedapat mungkin menggunakan nama yang mudah dipahami dan dapat menyatakan maknanya dengan jelas 2.11 Pekerjaan Pekerjaan yaitu sebuah aktifitas antar manusia untuk saling memenuhi kebutuhan dengan tujuan tertentu, dalam hal ini pendapatan atau penghasilan.
24 http://digilib.mercubuana.ac.id/
Penghasilan tersebut yang nantinya akan digunakan sebagai pemenuhan kebutuhan, baik ekonomi, psikis maupun biologis. Pekerjaan dalam arti luas adalah aktivitas utama yang dilakukan oleh manusia. Dalam arti sempit, istilah pekerjaan digunakan untuk suatu tugas atau kerja yang menghasilkan uang bagi seseorang. 2.12 Profesi Profesi adalah kata serapan dari sebuah jata dalam bahasa Inggris “Profess”, yang bermakna Janji untuk memenuhi kewajiban melakuakn suatu tugas khusus secara tetap. Profesi sendiri memiliki arti sebuah pekerjaan yang membutuhkan pelatihan dan penguasaan terhadap suatu pengetahuan dan keahlian khusus. Profesi merupakan bagian dari pekerjaan, tetapi tidak semua pekerjaan adalah profesi. Sebagai contoh, pekerjaan staff administrasi tidak masuk dalam golongan profesi karena untuk bekerja sebagai staff administrasi seseorang bisa berasal dari berbagai latar belakang pendidikan, pengetahuan dan pengalaman, sedangkan akuntan merupakan profesi karena seseorang yang bekerja sebagai akuntan haruslah berpendidikan akuntansi dan memiliki pengalaman kerja beberapa tahun di kantor akuntan. Istilah profesi telah dimengerti oleh banyak orang bahwa suatu hal yang berkaitan dengan bidang tertentu banyak orang yang bekerja tetapi belum tentu dikatakan memiliki profesi yang sesuai. Tetapi dengan keahlian saja yang diperoleh dari pendidikan kejuruan, juga belum cukup untuk menyatakan suatu pekerjaan dapat disebut profesi. Tetapi perlu penguasaan teknik intelektual yang merupakan hubungan antara teori dan penerapan dalam praktek.atau jenis pekerjaan (occupation) yang sangat dipengaruhi oleh pendidikan dan keahlian. Menurut DANIEL BELL (1973) Profesi adalah aktivitas intelektual yang dipelajari termasuk pelatihan yang diselenggarakan secara formal ataupun tidak
25 http://digilib.mercubuana.ac.id/
formal dan memperoleh sertifikat yang dikeluarkan oleh sekelompok / badan yang bertanggung jawab pada keilmuan tersebut dalam melayani masyarakat, menggunakan etika layanan profesi dengan mengimplikasikan kompetensi mencetuskan ide, kewenangan ketrampilan teknis dan moral serta bahwa perawat mengasumsikan adanya tingkatan dalam masyarakat 2.13 SDLC (System Development Life Cycle) Waterfall Model ini melakukan pendekatan secara sistematis dan urut mulai dari level kebutuhan sitem lalu menuju ketahap analisis, desain, coding, testing, dan maintenance. Disebut waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan, sebagai contoh tahap coding harus menunggu tahap desain selesai.
Gambar 2. 6 Contoh SDLC Waterfall
a) Software Requirements Analysis / Analisis Kebutuhan 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 2 aktivitas tersebut
(pencarian
kebutuhan
sistem
dan
software)
harus
didokumentasikan dan ditunjukkan kepada pelanggan. b) Design / Desain 26 http://digilib.mercubuana.ac.id/
Proses ini digunakan untuk mengubah kebutuhan-kebutuhan diatas menjadi representasi ke dalam bentuk “blueprint” software sebelum coding dimulai. Desain harus dapat mengimplementasikan kebutuhan yang telah disebutkan pada tahap sebelumnya. Seperti 2 aktivitas sebelumnya, maka proses ini juga harus didokumentasikan sebagai konfigurasi dari software. c) Coding. 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) Testing / Uji Coba 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. e) Maintenance / Pemeliharaan Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah pengembangan, karena software yang dibuat tidak selamanya hanya seperti itu. Ketika dijalankan mungkin saja masih ada errors kecil yang tidak ditemukan sebelumnya, atau ada penambahan fitur-fitur yang belum ada. 2.14 Black Box Testing
27 http://digilib.mercubuana.ac.id/
Menurut Agustiar Budiman (2012), berpendapat bahwa “Pengujian black box merupakan metode perancangan data uji yang didasarkan pada spesifikasi perangkat lunak. Data uji dibangkitkan, dieksekusi pada perangkat lunak dan kemudian keluaran dari perangkat lunak diuji apakah telah sesuai dengan yang diharapkan.” Metode ujicoba blackbox memfokuskan pada keperluan fungsional dari software. Karna itu ujicoba blackbox memungkinkan pengembang software untuk membuat himpunan kondisi input yang akan melatih seluruh syarat-syarat fungsional suatu program. Ujicoba blackbox bukan merupakan alternatif dari ujicoba whitebox, tetapi merupakan pendekatan yang melengkapi untuk menemukan kesalahan lainnya, selain menggunakan metode whitebox. Ujicoba blackbox berusaha untuk menemukan kesalahan dalam beberapa kategori, diantaranya: 1.
Fungsi-fungsi yang salah atau hilang
2.
Kesalahan interface
3.
Kesalahan dalam struktur data atau akses database eksternal
4.
Kesalahan performa
5.
kesalahan inisialisasi dan terminasi
Gambar 2. 7 Sistem Kerja dari Teknik Pengujian Black Box
Menurut Pressman (2010), Black Box Testing juga disebut pengujian tingkah laku, memusat pada kebutuhan fungsional perangkat lunak. Teknik pengujian Black Box memungkinkan memperoleh serangkaian kondisi masukan yang sepenuhnya menggunakan semua persyaratan fungsional untuk suatu program. beberapa jenis kesalahan yang dapat diidentifikasi adalah fungsi tidak benar atau hilang, kesalahan antar muka, kesalahan pada struktur data (pengaksesan basis data), kesalahan performasi, kesalahan inisialisasi dan akhir program. Equivalence Partioning 28 http://digilib.mercubuana.ac.id/
Equivalence partioning merupakan metode ujicoba blackbox yang membagi domain input dari program menjadi beberapa kelas data dari kasus ujicoba yang dihasilkan. Kasus uji penanganan single yang ideal menemukan sejumlah kesalahan (misalnya: kesalahan pemrosesan dari seluruh data karakter) yang merupakan syarat lain dari suatu kasus yang dieksekusi sebelum kesalahan umum diamati. Equivalence partioning berusaha untuk mendefinisikan kasus uji yang menemukan sejumlah jenis kesalahan, dan mengurangi jumlah kasus uji yang harus dibuat. Kasus uji yang didesain untuk Equivalence partioning berdasarkan pada evaluasi dari ekuivalensi jenis/class untuk kondisi input. Class-class yang ekuivalen merepresentasikan sekumpulan keadaan valid dan invalid untuk kondisi input. Biasanya kondisi input dapat berupa spesifikasi nilai numerik, kisaran nilai, kumpulan nilai yang berhubungan atau kondisi boolean. Ekuivalensi class dapat didefinisikan dengan panduan berikut: 1.
Jika
kondisi
input
menspesifikasikan
kisaran/range,
maka
didefinisikan 1 yang valid dan 2 yang invalid untuk equivalence class 2.
Jika kondisi input memerlukan nilai yang spesifik, maka didefinisikan 1 yang valid dan 2 yang invalid untuk equivalence class.
3.
Jika kondisi input menspesifikasikan anggota dari himpunan, maka didefinisikan 1 yang valid dan 1 yang invalid untuk equivalence class
4.
Jika kondisi input adalah boolean, maka didefinisikan 1 yang valid dan 1 yang invalid untuk equivalence class.
2.15 Algoritma Autocomplete Dalam pembuatan Aplikasi pencarian lowongan pekerjaan, penulis menggunakan Algoritma Autocomplete. Algoritma autocomplete merupakan algoritma pencarian yang dimiliki google. Algoritma ini juga ditanamkan pada
29 http://digilib.mercubuana.ac.id/
android sebagai metode pencarian kata. Jalannya algoritma ini adalah sebagai berikut. Awalnya kita membandingkan karakter pertama dari string dangan karakter pertama dari text. Jika sama maka sistem akan memberikan daftar text yang ada pada database. Dibawah ini adalah gambar hasil kerja dari algoritma Autocomplete. Terlihat ketika kita mengetikan huruf A dan C lalu membaca kedalam database huruf yang berawal A dan C akan keluar ACER, ACES dan ACTOR.
Gambar 2. 8 Gambar Algoritma Autocomplete
2.16 Algoritma Boyer Moore Algoritma pencarian string Boyer Moore merupakan algoritma pencarian string yang paling efisien dalam aplikasi sehari hari. Algoritma tersebut dikembangkan oleh Bob Boyer dan J Strother Moore pada tahun 1977. Pada proses pencarian string, algoritma Boyer Moore membaca karakter-karakter dari pattern dari kanan ke kiri. Dalam kasus dimana jumlah karakter pada pattern lebih sedikit daripada jumlah karakter pada teks maka algoritma tersebut menggunakan 2 buah fungsi precomputed. 2 buah fungsi pengubah ini disebut good-suffix shift. Aturan pada good-suffix shift bertujuan untuk menangani kasus dimana terdapat pengulangan karakter pada pattern.
30 http://digilib.mercubuana.ac.id/
2.16.1 Prinsip Dasar Algoritma Boyer Moore mempunyai empat konsep dasar di dalam proses pencarian string, yaitu: 1. Preprocessing 2. Right-to-left-scan 3. Bad-character-rule 4. Good-suffix-rule Precomputation dari algoritma Boyer Moore terdiri dari bad-character preprocessing dan good-suffix preprocessing. Prinsip dasar yang pertama dari algoritma Boyer-Moore adalah melakukan perbandingan antara pattern yang dicari dengan teks. Perbandingan pattern dengan teks dilakukan dari arah kanan ke kiri. Perbandingan dimulai dengan membandingkan antara karakter paling kanan dari pattern dengan teks. Jika terjadi kecocokkan, maka perbandingan akan dilanjutkan dengan karakter yang di sebelah kiri dari yang dibandingkan sampai ke karakter pertama dari pattern. Jika terjadi ketidakcocokkan maka akan dilakukan pergeseran yang ditentukan oleh 2 fungsi pergeseran yaitu bad character shift dan good suffix shift. Aturan dari bad character shift dibutuhkan untuk menghindari pengulangan perbandingan yang gagal dari suatu karakter dalam teks dengan pattern. Aturan dari good suffix shift dibutuhkan untuk menangani kasus yang di dalamnya terdapat pengulangan karaker pada pattern. Analisis kompleksitas algoritma Boyer Moore menyangkut 3 hal yaitu komplekstitas waktu, kompleksitas ruang, dan waktu pemrosesan. Kasus terbaik pada algoritma Boyer Moore terjadi jika pertama kali masing-masing percobaan membandingkan simbol teks tidak cocok dengan yang ada di pattern. Sehingga kompleksitas waktu yang terbaik dengan notasi big O yaitu O(N/M). Kompleksitas waktu untuk kasus terburuk adalah O(Nm). Pada umumnya, kompleksitas waktu yang dibutuhkan untuk kasus rata-rata adalah O(N/M). Waktu yang dibutuhkan oleh algoritma Boyer Moore dalam preprocessing fungsi good suffix shift adalah
31 http://digilib.mercubuana.ac.id/
O(M). Sedangkan untuk kompleksitas preprocessing aturan bad character adalah O(M + |alphabet|) untuk kompleksitas ruang dari algoritma Boyer Moore adalah O(m + |alphabet|). Untuk perbandingan dengan algoritma lain seperti algoritma Brute force. Kelebihan algoritma Boyer Moore terdapat pada kecepatan untuk pattern yang panjang.
32 http://digilib.mercubuana.ac.id/