BAB II LANDASAN TEORI 2.1 Pengertian Bus Menurut Kamus Besar Bahasa Indonesia mobil bus adalah setiap kendaraan bermotor yang dilengkapi dengan tempat duduk untuk lebih dari 8 (delapan) orang, tidak termasuk tempat duduk untuk pengemudi baik dilengkapi atau tidak dilengkapi dengan bagasi. Istilah bus berasal dari bahasa latin Omnibus, yang berarti “Kendaraan yang berhenti di semua perhentian”. Pada awalnya, bus merupakan kendaraan yang di tarik kuda, kemudian dimulai dari tahun 1830-an bus bertenaga uap mulai ada. Seiring perkembangan zaman, bus bertenaga mesin pertama muncul bersamaan dengan perkembangan mobil. Setelah bus bertenaga mesin pertama pada tahun 1895, berbagai model dikembangkan pada tahun 1900an, sampai akhirnya tersebar luas bentuk bus yang utuh mulai dari tahun 1950-an. Bus menjadi populer pada awal abad ke-20 karena Perang Dunia I dimana itu sangat diperlukan alat transportasi lain yang dapat mengangkut banyak penumpang. Di Indonesia klasifikasi bus umum dibagi ke dalam berbagai kategori, diantaranya berdasarkan jenis ada jenis bus berdasarkan ukuran, bus besar, bus sedang, dan bus kecil. Ada pula bus Antar Kota Antar Provinsi atau yang dikenal dengan sebutan AKAP. Bus AKAP adalah angkutan dari satu kota ke kota lain yang melalui antar daerah kabupaten/kota yang melalui lebih dari satu daerah provinsi dengan menggunakan mobil bus umum yang terikat dalam trayek.(Sumber : http:// www.amtransluxurious.com/2015/12/29/sejarah-bus-di-dunia-dan-indonesia-5). 2.2 Check Point Menurut Kamus Besar Bahasa Indonesia check point adalah pemeriksaan status yang menunjukkan panjangnya suatu program berlangsung yang umumnya akan disimpan setiap beberapa waktu sekali. Menurut beberapa Bis Mania Community (Sumber: http://www.bismania.com/home/showthread.php?t=11539) check point biasanya dilakukan di Rest Area jalan Tol saat kendaraan berhenti mengisi bahan bakar atau pun pada saat kendaraan mau berangkat keluar dari terminal. Penghitungan jumlah penumpang pada saat check point bertujuan untuk memastikan bahwa tidak ada penumpang liar yang naik di sepanjang jalanan. 5 http://digilib.mercubuana.ac.id/ 2.3 Penumpang Menurut Kamus Besar Bahasa Indonesia penumpang adalah seseorang yang hanya menumpang, baik itu pesawat, kereta api, bus, maupun jenis transportasi lainnya. Penumpang bisa dikelompokkan dalam dua kelompok: 1. Penumpang yang naik suatu mobil tanpa membayar, apakah dikemudikan oleh pengemudi atau anggota keluarga. 2. Penumpang umum adalah penumpang yang ikut dalam perjalanan dalam suatu wahana dengan membayar, wahana bisa berupa taxi, bus, kereta api, kapal ataupun pesawat terbang. Definisi penumpang menurut para ahli adalah sebagai berikut: 1. Menurut Damardjati (1995) pengertian penumpang adalah setiap orang yang diangkut ataupun yang harus diangkut di dalam pesawat udara ataupun alat pengangkutan lainnya, atas dasar persetujuan dari perusahaan ataupun badan yang menyelenggarakan angkutan tersebut. 2. Menurut Yoeti (1999) pengertian penumpang adalah Pembeli Produk dan jasa pada suatu perusahaan adalah pelanggan perusahaan barang dan jasa mereka dapat berupa seseorang (individu) dan dapat pula sebagai suatu perusahaan. Jadi menurut penjelasan beberapa ahli di atas pengertian penumpang sangatlah luas maka dapat disimpulkan bahwa yang dimaksud dengan penumpang dapat diartikan seseorang (individu) dan satu perusahaan (kelompok) yang menggunakan jasa angkutan untuk suatu perjalanan tertentu dengan mengeluarkan sejumlah uang sebagai imbalan bagi pengangkut dengan kata lain dapat didefinisikan orang telah membeli tiket, berarti orang yang melakukan perjalanan dengan menggunakan alat tranportasi yang disediakan oleh pihak pengangkutan atau perusahaan niaga dan terikat kontrak dan persetujuan dengan pengangkut tertera di dalam tiket dengan pengangkut selama perjalanan. 6 http://digilib.mercubuana.ac.id/ 2.4 Rekayasa Perangkat Lunak Beberapa pengertian menurut para ahli dibidang perangkat lunak adalah sebagai berikut : Menurut Stephen R. Schach (1983): “Rekayasa perangkat lunak adalah sebuah disiplin dimana dalam menghasilkan perangkat lunak bebas dari kesalahan dan dalam pengiriman anggaran dapat tepat waktu serta memuaskan keinginan pemakai.” Menurut Fritz Bauer (1968): “Rekayasa perangkat lunak adalah pengemangan dan penggunaan prinsip rekayasa dalam rangka memperoleh perangkat lunak yang dapat dipercaya dan dapat bekerja serta efisien pada mesin nyata.” Rekayasa Perangkat Lunak adalah suatu disiplin ilmu yang membahas semua aspek produksi dari perangkat lunak, mulai dari tahap awal yaitu analisa kebutuhan pengguna, menentukan spesifikasi dari kebutuhan pengguna, disain, pengkodean atau coding, pengujian atau testing sampai maintenence sistem setelah digunakan. Tujuan dari Rekayasa Perangkat Lunak ini adalah: 1. Memperoleh biaya produksi perangkat lunak yang rendah. Menghasilkan perangkat lunak yang kinerjanya tinggi. Menghasilkan perangkat lunak yang dapat bekerja di berbagai jenis platform. 2.5 Metode Waterfall Nama model ini sebenarnya adalah “Linear Sequential Model”. Model ini sering juga disebut “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. Pada metodologi ini yang dilakukan sebagai berikut: 7 http://digilib.mercubuana.ac.id/ 1. Studi Kepustakaan Mencari referensi di internet serta membaca artikel dan buku buku tentang pembuatan aplikasi yang berbasis Android. 2. Analisis Pada tahap ini penulis menganalisa kebutuhan yang diperlukan dalam pelaksanaan proyek pembuatan. 3. Desain Tahap penerjemahan dari data yang di analisis kedalam bentuk-bentuk atau obyek yang mudah dimengerti. 4. Pembuatan Program Tahap penerjemahan data atau pemecahan masalah yang telah dirancang kedalam bahasa pemrograman tertentu. 5. Pengujian Setelah perangkat lunak selesai diterapkan, pengujian dapat segera dimulai. Pengujian terlebuh dahulu dilakukan pada setiap modul. Jika tidak ada masalah tahap pengujian terhadap animasi yang dibuat, modul tersebut akan diintegrasikan hingga membentuk perangkat lunak secara utuh. Kemudian dilakukan pengujian tingkat perangkat lunak yang memfokuskan pada masalah-masalah logika internal, fungsi internal, potensi masalah yang mungkin terjadi dan pemeriksaan hasil apakah sudah sesuai dengan permintaan. Gambar 2.1 Model Waterfall Sommerville 8 http://digilib.mercubuana.ac.id/ 2.5.1 Tahapan Rekayasa Sistem Pada tahap ini sangat menekankan pada masalah kebutuhan pengguna pada tingkatan sistem dengan menentukan konsep sistem beserta antarmuka yang menghubungkannya dengan lingkungan sekitar. Hasilnya berupa spesifikasi sistem. 1. Tahapan Analisis Pada tahap ini dilakukan pengumpulan kebutuhan elemen-elemen di tingkat perangkat lunak. Dengan analisis harus dapat ditentukan domain-domain data atau informasi, fungsi, proses atau prosedur yang diperlukan beserta unjuk kerjanya, dan antarmuka. Hasilnya berupa spesifikasi kebutuhan perangkat lunak. 2. Tahapan Perancangan Pada tahap perancangan kebutuhan-kebutuhan perangkat lunak yang dihasilkan pada tahap analisis, ditransformasikan ke dalam bentuk artsitektur perangkat lunak yang memiliki karakteristik mudah dimengerti dan tidak sulit untuk diterapkan. 3. Tahapan Pemrograman Tahap ini melakukan penerapan hasil rancangan kedalam baris-baris kode program yang dapat dimengerti oleh komputer. 4. Tahapan Pengujian Setelah perangkat lunak selesai diterapkan, pengujian dapat segera dimulai. Pengujian terlebuh dahulu dilakukan pada setiap modul. Jika tidak ada masalah, modul tersebut akan diintegrasikan hingga membentuk perangkat lunak secara utuh. Kemudian dilakukan pengujian tingkat perangkat lunak yang memfokuskan pada masalah-masalah logika internal, fungsi internal, potensi masalah yang mungkin terjadi dan pemeriksaan hasil apakah sudah sesuai dengan permintaan. 5. Tahapan Pengoperasian dan Pemeliharaan Dalam masa operasional sehari-hari, suatu perangkat lunak mungkin saja mengalami kesalahan atau kegagalan dalam menjalankan fungsi-fungsinya. Atau, pemilik bisa saja meminta peningkatan kemampuan perangkat lunak pada 9 http://digilib.mercubuana.ac.id/ pengembangnya. Dengan demikian, kedua faktor ini menyebabkan perlunya perangkat lunak dipelihara dari waktu ke waktu. Biasanya ini merupakan tahapan yang panjang dari perangkat lunak. 2.6 Android 2.6.1 Sejarah Android Android adalah sistem operasi yang berbasis Linux untuk telepon seluler. Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka sendiri untuk digunakan oleh bermacam peranti bergerak. Awalnya, Google Inc. membeli Android Inc., pendatang baru yang membuat peranti lunak untuk ponsel. Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia. Pada saat perilisan perdana Android, 5 November 2007, Android bersama Open Handset Alliance menyatakan mendukung pengembangan standar terbuka pada perangkat seluler. Di lain pihak, Google merilis kode–kode Android di bawah lisensi Apache, sebuah lisensi perangkat lunak dan standar terbuka perangkat seluler. Di dunia ini terdapat dua jenis distributor sistem operasi Android. Pertama yang mendapat dukungan penuh dari Google atau Google Mail Services (GMS) dan kedua adalah yang benar–benar bebas distribusinya tanpa dukungan langsung Google atau dikenal sebagai Open Handset Distribution (OHD). 2.6.2 a. Perkembangan Android Android versi 1.1 Android versi 1.1 merupakan Android awal yang dimana versi ini baru memberikan sentuhan dibeberapa aplikasinya seperti sistem antar muka bagi pengguna (user interface) yang lebih baik, serta beberapa aplikasi yang lain.Android ini dirilis tanggal 9 Maret 2009. 10 http://digilib.mercubuana.ac.id/ b. Android versi 1.5 (Cupcake) Pada bulan Mei 2009 Android kembali mengalami perubahan versi. Android versi 1.1 kemudian disempurnakan dengan Android Cupcake. c. Android versi 1.6 (Donut) Donut (versi 1.6) diluncurkan dalam tempo kurang dari 4 bulan semenjak peluncuran perdana Android Cupcake, yaitu pada bulan September 2009. d. Android versi 2.0/2.1 (Eclair) Masih ditahun yang sama, Android kembali merilis operating sistem versi terbarunya, yaitu Android versi 2.0/2.1 Eclair. e. Android versi 2.2 (Froyo: Frozen Yoghurt) Google untuk melakukan regenerasi dari Android Eclair ke versi Froyo Frozen Yoghurt. Pada tanggal 20 Mei 2010, Android versi 2.2 alias Android Froyo ini dirilis. f. Android versi 2.3 (Gingerbread) Android kembali melakukan gebrakan dengan merilis kembali Android versi 2.3 atau yang dikenal sebagai Android Gingerbread. g. Android versi 3.0/3.1 (Honeycomb) Pada bulan Mei 2011 Android versi 3.0/3.1 atau Android Honeycom dirilis. h. Android versi 4.0 (ICS: Ice Cream Sandwich) Android ICS atau Ice Cream Sandwich juga dirilis pada tahun yang sama dengan Honeycomb, yaitu pada bulan Oktober 2011. i. Android versi 4.1 (Jelly Bean) Android Jelly Bean merupakan versi Android yang terbaru pada saat ini. Salah satu gadget yang menggunakan sistem operasi Jelly Bean adalah Google Nexus 7 yang diprakarsai oleh ASUS. j. Android versi 4.4 (Kit Kat) Kehadiran Android Kit Kat merupakan peluncuran produk Operating System 11 http://digilib.mercubuana.ac.id/ anyar yang dilucurkan pada 4 september 2013. k. Android versi 5.0.2 (Lollipop) Android Lollipop merupakan Android versi baru yang dirilis pada tahun 2014 oleh Google. 2.7 Android SDK (Software Development Kit) Android SDK adalah tools API (Application Programming Interface) yang diperlukan untuk memulai mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman Java. Beberapa fitur Android yang penting adalah sebagai berikut: a. Framework aplikasi yang mendukung penggantian komponen dan reusable. b. DVM dioptimalkan untuk perangkat mobile. c. Integrated browser berdasarkan engine open source WebKit. d. Grafis yang dioptimalkan dan didukung oleh libraries grafis 2D, grafis 3D berdasarkan spesifikasi OpenGL ES 1.0. e. SQLite untuk penyimpanan data. f. Dukungan untuk audio, video dan gambar. g. Bluetooth, EDGE, 3G, Wifi. h. Kamera, GPS, kompas dan accelerometer. i. Lingkungan development yang lengkap dan kaya termasuk perangkat emulator, tools untuk debugging, profil dan kinerja memori serta plugins untuk IDE Eclipse. 2.8 Eclipse 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. b. Mulit-language: Eclipse dikembangkan dengan bahasa pemrograman Java, 12 http://digilib.mercubuana.ac.id/ 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. Eclipse pada saat ini merupakan salah satu IDE favorit dikarenakan gratis dan open source, yang berarti setiap orang boleh melihat kode pemrograman perangkat lunak ini. Selain itu, kelebihan dari Eclipse yang membuatnya populer adalah kemampuannya untuk dapat dikembangkan oleh pengguna dengan komponen yang dinamakan plug-in. Gambar 2.2 Tampilan Aplikasi Eclipse 2.9 SQLite 2.9.1 Penjelasan Umum SQLite merupakan sebuah system managemen basisdata relasional yang bersifat ACID - compliant dan memiliki ukuran pustaka kode yang relatif kecil, ditulis dalam bahasa C. SQLite merupakan proyek yang bersifat public domain yang dikerjakan oleh D. Richard Hipp. Tidak seperti pada paradigma client-server umumnya, Inti SQLite bukanlah sebuah sistem yang mandiri yang berkomunikasi dengan sebuah program, melainkan sebagai bagian integral dari sebuah program secara keseluruhan. Sehingga protokol komunikasi utama yang digunakan adalah melalui pemanggilan API secara langsung melalui bahasa pemrograman. Mekanisme seperti ini tentunya membawa keuntungan karena dapat mereduksi 13 http://digilib.mercubuana.ac.id/ overhead, latency times, dan secara keseluruhan lebih sederhana. Seluruh elemen basisdata (definisi data, tabel, indeks, dan data) disimpan sebagai sebuah file. Kesederhanaan dari sisi disain tersebut bisa diraih dengan cara mengunci keseluruhan file basis data pada saat sebuah transaksi dimulai. 2.9.2 Fitur SQLite mengimplementasikan hampir seluruh elemen-elemen standar yang berlaku pada SQL-92, termasuk transaksi yang bersifat atomic, konsistensi basisdata, isolasi, dan durabilitas (dalam bahasa inggris lebih sering disebut ACID), trigger, dan kueri-kueri yang kompleks. Tidak ada pengecekan tipe sehingga data bisa dientrikan dalam bentuk string untuk sebuah kolom bertipe integer. Beberapa kalangan melihat hal ini sebagai sebuah inovasi yang menambah nilai guna dari sebuah basisdata, utamanya ketika digunakan dalam bahasa pemrograman berbasis script (PHP, Perl), sementara kalangan lain melihat hal tersebut sebagai sebuah kekurangan. Beberapa proses ataupun thread dapat berjalan secara bersamaan dan mengakses basisdata yang sama tanpa mengalami masalah. Hal ini disebabkan karena akes baca data dilakukan secara paralel. Sementara itu akses tulis data hanya bisa dilakukan jika tidak ada proses tulis lain 14 yang sedang dilakukan, jika tidak, proses tulis tersebut akan gagal dan mengembalikan kode kesalahan (atau bisa juga secara otomatis akan mencobanya kembali sampai sejumlah nilai waktu yang ditentukan habis). Hanya saja ketika sebuah tabel temporer dibuat, mekanisme penguncian pada proses multithread akan menyebabkan masalah. 2.10 ADB (Android Debug Bridge) ADB adalah alat serbaguna yang bisa mengendalikan perangkat Android (emulator) yang terhubung dengan komputer. Dengan ADB kita bisa menggunakan smartphone Android kita untuk melakukan pengujian aplikasi. 2.11 ADT (Android Developer Tools) Safaat (2012 : 6) juga memaparkan bahwa Android Development Tools (ADT) adalah plug-in yang didesain untuk IDE Eclipse yang memberi kita 14 http://digilib.mercubuana.ac.id/ kemudahan dalam mengembangkan aplikasi Android dengan menggunakan IDE Eclipse. Dengan menggunakan ADT untuk Eclipse, ini akan memudahkan kita dalam membuat aplikasi project Android, membuat GUI aplikasi, dan menambahkan komponen–komponen yang lainnya. Selain itu kita juga dapat melakukan running aplikasi menggunakan Android SDK melalui Eclipse. Dengan ADT kita juga dapat melakukan pembuatan package Android (.apk) yang digunakan untuk distribusi aplikasi Android yang kita rancang. Mengembangkan aplikasi Android dengan menggunakan ADT di Eclipse sangat mudah dan baik untuk memulai mengembangkan aplikasi Android. Semakin tinggi platform Android yang kita gunakan, maka penggunaan ADT dianjurkan untuk memakai versi yang lebih baru, karena munculnya platform baru diikuti oleh munculnya versi ADT yang terbaru. Versi ADT yang kami gunakan untuk Eclipse dalam pembuatan aplikasi ini adalah versi terbaru ADT yang telah dirilis, yaitu ADT 20.0.3(Agustus 2012). 2.12 Gambar 2.3 Tampilan Android Developer tools JDK (Java Development Kit) Menurut DeCoster (2012), Java adalah sebuah teknologi yang diperkenalkan oleh Sun Microsysytems pada pertengahan tahun 1990. Menurut definisi Sun, Java adalah nama untuk sekumpulan teknologi untuk membuat dan menjalankan perangkat lunak pada computer standalone ataupun pada lingkungan jaringan. Untuk membuat program Java dibutuhkan kompiler dan interpreter untuk program Java berbentuk Java Development Kit (JDK) yang diproduksi oleh Sun Microsystems. Sebelum memulai instalasi Android SDK, terlebih dahulu kita harus melakukan instalasi JDK dikomputer. JDK yang kami gunakan untuk dapat mengompilasi aplikasi Android yang kami rancang ini adalah Java SE Development Kit 8. 15 http://digilib.mercubuana.ac.id/ 2.13 UML (Unified Modeling Language) UML (Unified Modelling Language) adalah salah satu alat bantu yang sangat handal didunia pengembangan sistem yang berorientasi obyek. Hal ini disebabkan karena UML menyediakan bahasa pemodelan visual yang memungkinkan bagi pengembangan sistem untuk membuat cetak biru atas visi mereka dalam bentuk yang baku, mudah dimengerti serta dilengkapi dengan mekanisme yang efektif untuk berbagi dan mengkomunikasikan rancangan mereka dengan yang lain. UML adalah hasil kerja dari konsorsium sebagai organisasi yang berhasil dijadikan sebagai standar buku dalam OOAD (Object Oriented Analysis & Design) (Munawar, 2005). 2.13.1 Use Case Diagram Use case adalah deskripsi fungsi dari sebuah sistem dari perspektif pungguna. Use case bekerja dengan cara deskripsikan tipikal interaksi pada antar user (pengguna) sebuah sistem dengan sistemnya sendiri melalui sebuah cerita bagaimana sebuah sistem dipakai. Dalam pembicaraan tentang use case, pengguna biasanya disebut dengan aktor. Aktor adalah sebuah peran yang bisa dimainkan oleh pengguna dalam setiap interaksinya dengan sistem. Tabel 2.1 Simbol-Simbol Diagram Use Case No. Gambar Nama Keterangan 1 Actor Menspesifikasikan himpunan peran yang pengguna mainkan ketika berinteraksi dengan use case. 2 Dependency Hubungan dimana perubahan yang terjadi pada suatu elemen mandiri akan mempengaruhi elemen yang bergantung padanya elemen yang tidak mandiri. 3 Generalization Hubungan dimana objek anak (descendent) berbagai perilaku dan struktur data dari objek yang ada di atasnya objek induk (ancestor). 16 http://digilib.mercubuana.ac.id/ Tabel 2.1 Simbol-Simbol Diagram Use Case (lanjutan) No. Gambar Nama Keterangan 4 Include Menspesifikasikan bahwa use case sumber secara eksplisit. 5 Extend Menspesifikasikan bahwa use case target memperluas perilaku dari use case sumber pada suatu titik yang diberikan. 6 Association 7 System Menspesifikasikan paket yang menampilkan sistem secara terbatas. 8 Use Case Deskripsi dari urutan aksi-aksi yang ditampilkan sebuah sistem yang menghasilkan suatu hasil yang terukur bagi suatu actor. 9 Collaboration Interaksi aturan – aturan dan elemen lain yang bekerja sama untuk menyediakan perilaku yang lebih besar dari jumlah dan elemen – elemennya. 10 None Apa yang menghubungkan antara objek satu dengan objek lainnya. Elemen fisik yang eksis saat aplikasi dijalankan dan mencerminkan suatu sumber daya komputasi 2.13.2 Activity Diagram Activity diagram adalah teknik untuk mendeskripsikan logika prosedural, proses bisnis dan aliran kerja dalam banyak kasus. Activity diagram mempunyai peran seperti halnya flowchart, akan tetapi perbedaannya dengan flowchart adalah activity diagram bisa mendukung perilaku paralel sedangkan flowchart tidak bisa. Tabel 2.2 Simbol-Simbol Activity Diagram No 1 Gambar Nama Keterangan Aktivitas, atau penggerak yang terjadi dalam activity diagram. Rounded Rectangle 17 http://digilib.mercubuana.ac.id/ Tabel 2.2 Simbol-Simbol Activity Diagram(lanjutan) No Gambar Nama Keterangan Menggambarkan urutan perpindahan kegiatan dari satu aktivitas ke aktivitas yang lain. Continuous 2 Line Menggambarkan proses dimulai pertama kali di dalam activity diagram. 3 Solid Circle 4 Diamond Bagaimana akhiri dari aktivitas. Menggambarkan adanya percabangan. 5 Diamond 2.13.3 Class Diagram Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metode/fungsi). Class diagram menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain. Class memiliki tiga area pokok, yaitu: a. Nama dan stereotype b. Atribut c. Metoda Class dapat merupakan implementasi dari sebuah interface, yaitu class abstrak yang hanya memiliki metode. Interface tidak dapat langsung diinstansiasikan, tetapi harus diimplementasikan dahulu menjadi sebuah class. Dengan demikian interface mendukung resolusi metode pada saat run-time. Sesuai dengan perkembangan class model, class dapat dikelompokkan menjadi package. 18 http://digilib.mercubuana.ac.id/ Hubungan Antar Class: 1. Asosiasi, hubungan statis antar class. Umumnya menggambarkan class yang memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain. Panah navigability menunjukkan arah query antar class. 2. Pewarisan, yaitu hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metode class asalnya dan menambahkan fungsionalitas baru, sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi. 3. Hubungan dinamis, yaitu rangkaian pesan (message) yang dipassing dari satu class kepada class lain. 2.13.4 Sequence Diagram Diagram sequence merupakan salah satu yang menjelaskan bagaimana suatu operasi itu dilakukan message (pesan) apa yang dikirim dan kapan pelaksanaannya. Diagram ini diatur berdasarkan waktu. Obyek-obyek yang berkaitan dengan proses berjalannya operasi diurutkan dari kiri ke kanan berdasarkan waktu terjadinya dalam pesan yang terurut. Diagram sequence menampilkan interaksi antar objek dalam dua dimensi. Dimensi vertikal adalah poros waktu, dimana waktu berjalan ke arah bawah. Sedangkan dimensi horizontal merepresentasikan objek-objek individual. Tiap objek (termasuk actor) tersebut mempunyai waktu aktif yang direpresentasikan dengan kolom vertikal yang disebut dengan lifeline. Pesan (message) direpresentasikan sebagai panah dari satu lifeline ke lifeline yang lain. Message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Pada fase desain berikutnya, message akan dipetakan menjadi operasi/metoda dari class. 19 http://digilib.mercubuana.ac.id/ Tabel 2.3 Simbol Diagram Sequence No Gambar Nama Keterangan Sebuah entitas manusia atau mesin yang berinteraksi dengan system. 1. Actor 2. Entity Class Menggambarkan hubungan kegiatan yang dilakukan. Menggambarkan tempat mulai dan berakhirnya pesan (message). A focus of control 3. and a life line Menggambarkan pengiriman pesan (message). 4. 2.14 A message Black-Box Testing Metode uji coba blackbox memfokuskan pada keperluan fungsional dari software. Karena itu uji coba blackbox memungkinkan pengembang software untuk membuat himpunan kondisi input yang akan melatih seluruh syarat–syarat fungsional suatu program. Uji coba blackbox bukan merupakan alternatif dari uji coba whitebox, tetapi merupakan pendekatan yang melengkapi untuk menemukan kesalahan lainnya, selain menggunakan metode whitebox. Uji coba blackbox berusaha untuk menemukan kesalahan dalam beberapa kategori, di antaranya : 1. Fungsi-fungsi yang salah atau hilang 2. Kesalahan interface 3. Kesalahan dalam struktur data atau akses database eskternal 4. Kesalahan performa 5. Kesalahan inisialisasi dan terminasi 20 http://digilib.mercubuana.ac.id/ Tidak seperti metode whitebox yang dilaksanakan di awal proses, uji coba blackbox diaplikasikan di beberapa tahapan berikutnya. Karena uji coba blackbox dengan sengaja mengabaikan struktur kontrol, sehingga perhatiannya difokuskan pada informasi domain. Uji coba blacbox didesain untuk dapat menjawab pertanyaan – pertanyaan berikut: 1. Bagaimana validitas fungsional nya diuji? 2. Jenis input seperti apa yang akan menghasilkan kasus uji yang baik? 3. Apakah sistem secara khusus sensitif terhadap nilai input tertentu? 4. Bagaimana batasan – batasan kelas data di isolasi? 5. Berapa rasio data dan jumlah data yang dapat ditoleransi oleh sistem? 6. Apa akibat yang akan timbul dari kombinasi spesifikdata pada operasi sistem? Dengan mengaplikasikan uji coba blackbox, diharapkan dapat menghasilkan sekumpulan kasus uji yang memenuhi kriteria berikut: 1. Kasus uji yang berkurang, jika jumlahnya lebih dari 1, maka jumlah dari uji kasus tambahan harus didesain untuk mencapai uji coba yang cukup beralasan. 2. Kasus uji yang memberitahukan sesuatu tentang keberadaan atau tidaknya suatu jenis kesalahan, dari pada kesalahan yang terhubung hanya dengan suatu uji coba yang spesifik. 2.15 Basis data Basis Data adalah kumpulan data yang saling berhubungan secara logikal serta deskripsi dari data tersebut, yang dirancang untuk memenuhi kebutuhan informasi suatu organisasi. Basis Data adalah sebuah penyimpanan data yang besar yang bisa digunakan oleh banyak pengguna dan departemen. Semua data terintegrasi dengan jumlah duplikasi yang minimum. Basis Data tidak lagi dipegang oleh satu departemen, tetapi dibagikan ke seluruh departemen pada perusahaan. Basis Data itu sendiri tidak hanya memegang data operasional organisasi tetapi juga penggambaran dari data tersebut (Connolly & Begg, 2010:64). Proses dasar yang dimiliki oleh basis data ada 4 macam: 1. Pembuatan data-data baru (create database) 2. Penambahan data (insert) 3. Mengubah data (update) 21 http://digilib.mercubuana.ac.id/ 4. Menghapus data (delete) Sistem manajemen basis data (database manajemen sistem) merupakan system pengoperasian dan sejumlah data pada computer. Dengan sistem ini dapat 16 merubah data, memperbaiki data yang salah dan menghapus data yang tidak dapat dipakai. Sistem manajemen basis data merupakan suatu perluasan software sebelumnya mengenai software pada generasi computer yang pertama. Dalam hal ini data dan informasi merupakan kesatuan yang saling berhubungan dan bekerja sama yang terdiri dari peralatan, tenaga pelaksana dan prosedur data. Sehingga pengolahan data ini membentuk system pengolahan data. Peralatan dalam hal ini berupa perangkat keras (hardware) yang digunakan dan dipakai untuk mengolakasikan dalam pembuatan system informasi pengolahan basis data. Basis data adalah kumpulan data yang disimpan didalam sebuah komputer yang bisa diolah atau dimanipulasi menggunakan perangkat lunak, basisdata pun mempunyai banyak pendefinisian yang meliputi spesifikasi yang berupa data, struktur dan batasan-batasan data yang akan disimpan. Basis data merupakan suatu hal yang sangat penting didalam sistem informasi dimana basis data merupakan gudang penyimpanan data. Basis data pun mempunyai konsep dasar adalah kumpulan dari catatan atau potongan dari pengetahuan. Sebuah basis data memiliki penjelasan terstruktur dari jenis fakta yang tersimpan di dalamnya dan penjelasan ini dapat disebut skema. Ada banyak cara untuk mengorganisasi skema atau memodelkan struktur basis data ini dikenal sebagai basis data model atau model data. Model yang umum digunakan sekarang adalah model relasional, yang menurut istilah yaitu mewakili semua informasi dalam bentuk tabel yang saling berhubungan dimana setiap tabel terdiri dari baris dan kolom. Terdapat juga 12 tipe basis data, antara lain Operational database, Analyticaldatabase, Data warehouse, Distributed database, End-user database, External data base, Hypermedia databases on the web, Navigational database, In-memory data bases, Document-oriented databases, Real-time databases dan Relational Data. 22 http://digilib.mercubuana.ac.id/ 23 http://digilib.mercubuana.ac.id/