BAB II LANDASAN TEORI 2.1 Sistem Informasi Menurut Sanyoto Gondodiyoto (2008:113) Sistem Informasi adalah kumpulan elemen-elemen atau sumberdaya dan jaringan prosedur yang saling berkaitan secara terpadu, terintegrasi dalam suatu hubungan hirarkis tertentu dan bertujuan untuk mengolah data menjadi informasi. 2.1.1 Sistem Suatu sistem dapat didefinisikan sebagai suatu kesatuan yang terdiri dari dua atau lebih komponen atau subsistem yang berinteraksi untuk mencapai suatu tujuan (Faizal Ridwan, 2011). Suatu sistem dapat terdiri dari sistem-sistem bagian atau subsistem. Masing-masing subsistem dapat terdiri dari subsistem-subsistem yang lebih kecil lagi atau terdiri dari komponen-komponen. Menurut Ludwig (2008), sistem adalah sekumpulan unsur yang saling berhubungan dan saling mempengaruhi dalam satu lingkungan tertentu. 2.1.2 Informasi Saat ini kita sedang berada di era informasi, hal ini berarti bahwa informasi sudah menyentuh seluruh kehidupan baik individual, kelompok, maupun perusahaan. Menurut Eti Rochaety beserta timnya (2011:5), informasi adalah data yang terlah diproses kedalam suatu bentuk yang mempunyai arti bagi penerima dan 6 memiliki nilai nyata yang dibutuhkan untuk proses pengambilan keputusan saat ini maupun saat mendatang. Kualitas dari suatu informasi tergantung dari tiga hal, yaitu informasi harus akurat, tepat pada waktunya dan relevan ; a. Akurat, berarti informasi harus bebas dari kesalahan-kesalahan dan tidak bisa menyesatkan. Akurat juga berarti informasi harus jelas mencerminkan maksudnya. b. Tepat pada waktunya, berarti informasi yang datang pada penerima tidak boleh terlambat. Informasi yang sudah usang tidak akan mempunyai nilai lagi, karena informasi merupakan landasan di dalam pengambilan keputusan. c. Relevan, berarti informasi tersebut mempunyai manfaat untuk pemakaiannya relevan informasi untuk tiap-tiap orang satu dengan yang lainnya berbeda. 2.1.3 Pengertian Sub Sistem Subsistem adalah bagian dari sistem yang saling berhubungan tidak terlepas sendiri sendiri, melainkan saling berinteraksi serta saling berhubungan membentuk suatu kesatuan terpadu sehingga tujuan atau sasaran sistem tersebut dapat tercapai (Sanyoto, 2008). 7 2.1.4 Karakteristik Sistem Menurut Sanyoto (2008) dalam bukunya yang berjudul audit sistem informasi. Karakteristik suatu sistem adalah sebagai berikut : 1. Menjadi jiwa dari sistem tersebut 2. Sistem mempunyai sasaran yang akan dicapai 3. Konstruksi sistem terdiri dari : masukan-proses-keluaran 4. Sistem memerlukan pengendalian 5. Sistem memiliki pengguna: pemakai/user 6. Sistem mempunyai keterbatatasan 7. Sistem terdiri dari subsistem-subsistem yang membentuk menjadi jaringan terpadu 2.2 Sistem Pakar 2.2.1 Pengertian Sistem Pakar Menurut Muhammad Arhami (2011:3), langkah pertama dalam menyelesaikan setiap masalah adalah dengan mendefinisikan terlebih dahulu ruang lingkup permasalahan tersebut atau domain untuk permasalahan yang akan diselesaikan. Sistem pakar adalah salah satu dari AI (Artificial Intelligence) atau kecerdasan buatan yang membuat penggunaan secara luas knowledge yang khusus untuk penyelesaian masalah tingkat manusia yang pakar. Gambar 2.1 menggambarkan konsep dasar suatu sistem pakar. Pengguna menyampaikan data atau informasi untuk sistem pakar dan kemudian menerima saran dari pakar atau jawaban ahlinya. Bagian dari sistem pakar terdiri dari 2 komponen utama, yaitu knowledgebase yang berisi knowledge dan mesin inferensi yang menggambarkan kesimpulan. Kesimpulan tersebut merupakan respons dari sistem pakar atas permintaan pengguna. 8 Gambar 2.1 Konsep Dasar Fungsi Sistem Pakar (Arhami, 2011) Ada beberapa definisi tentang sistem pakar, antara lain : Menurut Durkin : Sistem pakar adalah suatu program komputer yang dirancang untuk memodelkan kemampuan penyelesaian masalah yang dilakukan oleh seorang pakar. Menurut Ignizio : Sistem pakar adalah suatu model dan prosedur yang berkaitan dalam suatu domain tertentu, yang mana tingkat keahliannya dapat dibandingkan dengan keahlian seorang pakar. Menurut Giarratano dan Riley : Sistem pakar adalah suatu sistem komputer yang bisa menyamai atau meniru kemampuan seorang pakar. 9 2.2.2 Manfaat dan Kekurangan Sistem Pakar Menurut Feri Fahrur Rohman dan Ami Fauziah (2008:4), ada beberapa manfaat yang dapat diperoleh dari sistem pakar, antara lain : 1) Memungkinkan orang awam untuk memanfaatkan keahlian dalam bidang tertentu tanpa kesadaran seorang pakar. 2) Meningkatkan produktifitas, karena bertambahnya efisiensi pekerjaan tertentu serta hasil solusi kerja. 3) Menghemat waktu dalam menyelesaikan masalah yang kompleks. 4) Menyederhanakan pekerjaan dalam kasus yang berulang-ulang. 5) Dapat mengkombinasikan pengetahuan seorang pakar tanpa ada batas waktu. 6) Memungkinkan penggabungan berbagai bidang pengetahuan dari berbagai pakar untuk dikombinasikan. Sedangkan kekurangan sistem pakar antara lain : 1) Berkurangnya daya kerja dan produktivitas manusia karena semuanya dilakukan secara otomatis oleh sistem. 2) Perangkat lunak sistem pakar lebih sulit untuk dikembangkan dibandingkan dengan perangkat lunak konvensional. 2.2.3 Struktur Sistem Pakar Menurut Muhammad Arhami (2011:13), sistem pakar disusun oleh dua bagian utama, yaitu lingkungan pengembangan dan lingkungan konsultansi. Lingkungan pengembangan sistem pakar digunakan untuk memasukan pengetahuan pakar kedalam lingkungan sistem pakar, sedangkan lingkungan konsultasi digunakan oleh pengguna yang bukan pakar guna memperoleh pengetahuan pakar. 10 Komponen-komponen sistem pakar dalam kedua bagian tersebut dapat dilihat dalam gambar 2.2 berikut ini : Gambar 2.2 Arsitektur Sistem Pakar (sumber M.Arhami (2011)). Komponen komponen yang terdapat dalam sistem pakar adalah seperti yang terdapat pada gambar 2.2, yaitu user interface, basis pengetahuan, akuisisi pengetahuan, mesin inferensi, workplace, fasilitas penjelasan, perbaikan pengetahuan. Antar Muka Pengguna (User Interface) Menurut Muhammad Arhami (2011:14), User Interface merupakan mekanisme yang digunakan oleh pengguna dan sistem pakar untuk berkomunikasi. Antarmuka menerima informasi dari pemakai dan mengubahnya kedalam bentuk 11 yang dapat diterima oleh sistem. Selain itu antarmuka menerima informasi dari sistem dan menyajikannya kedalam bentuk yang dapat dimengerti oleh pemakai. Basis Pengetahuan Basis pengetahuan mengandung pengetahuan untuk pemahaman, formulasi, dan penyelesaian masalah. Komponen sistem pakar ini disusun atas dua elemen yaitu fakta dan aturan. Akuisisi Pengetahuan Menurut Muhammad Arhami (2011:16), akuisisi pengetahuan adalah akumulasi, transfer dan transformasi keahlian dalam menyelesaikan masalah dari sumber pengetahuan kedalam program computer. Terdapat tiga metode utama dalam akuisisi pengetahuan , yaitu : Wawancara Wawancara adalah metode akuisisi yang melibatkan pembicara dengan pakar secara langsung dalam suatu wawancara. Analisis protocol Dalam metode akuisisi ini, pakar diminta untuk melakukan suatu pekerjaan dan mengungkapkan proses pemikirannya dengan menggunakan kata-kata. Pekerjaan tersebut direkam, ditulis, dan dianalis. Observasi pada pekerjaan pakar Dalam metode ini pekerjaan dalam bidang tertentu yang dilakukan pakar direkam dan diobservasi. 12 Mesin Inferensi Komponen ini mengandung mekanisme pola pikir dan penalaran yang digunakan oleh pakar dalam menyelesaikan suatu masalah. Menurut Muhammad Arhami (2011), mesin inferensi adalah program komputer yang memberikan metodologi untuk penalaran tentang informasi yang ada dalam basis pengetahuan dan dalam workplace untuk menformulasikan kesimpulan. Workplace Merupakan area dari sekumpulan memori kerja. Workplace digunakan untuk merekam hasil-hasil antara dan kersimpulan yang dicapai. Menurut Muhammad Arhami (2011:22), ada 3 tipe keputusan yang dapat direkam, yaitu : Rencana Bagaimana menghadapi masalah Agenda Aksi-aksi potensial yang sedang menunggu untuk diakses Solusi Calon aksi yang akan dibangkitkan Fasilitas Penjelasan Menurut M.Arhami (2011:22), fasilitas penjelasan adalah komponen tambahan yang akan meningkatkan kemampuan sistem pakar. Komponen ini menggambarkan penalaran sistem kepada pemakai. 13 Perbaikan Pengetahuan Menurut M.Ahami (2011:22), pakar memiliki kemampuan untuk menganalis dan meningkatkan kinerjanya serta kemampuan untuk belajar dari kinerjanya. Pengetahuan tersebut adalah penting dalam pembelajaran terkomputerisasi, sehingga program akan mampu menganalisis penyebab kesuksesan dan kegagalan yang dialaminya. 2.3 Metode Inferensi dalam Sistem Pakar 2.3.1 Metode Waterfall Waterfall model sebagai salah satu teori dasar dan seakan wajib di pelajari dalam konteks siklus hidup perangkat lunak, merupakan sebuah siklus yang terdiri dari mulai fase hidup perangkat lunak sebelum terjadi sampai pasca produksi. Beberapa buku menyebutkan model ini sebagai model linear, tetapi beberapa referensi lain masih tetap menggunakan istilah waterfall model. Langkah-langkah yang terdapat dalam waterfall model juga berbeda antara satu referensi dengan referensi yang lain. Terdapat referensi yang lain yang mengatakan bahwa dalam waterfall model hanya terdiri dari lima langkah, sedangkan Sommervile menyatakan bahwa waterfall model memiliki enam tahapan. Bahkan terdapat referensi lain yang menyatakan bahwa waterfall model sesungguhnya memiliki delapan tahapan. Waterfall sendiri memiliki definisi bahwa sebuah proses hidup perangkat lunak memiliki sebuah proses yang linear dan sekunsial meski demikian dalam perkebangannya tahapan yang telah ada dapat dimodifikasi dari bentuk aslinya dengan melakukan adaptasi pada kebutuhan sistem yang ada.(Soetam Rizky, 2011:124) 14 Menurut Rosa A.S-M. Shalahudin (2011:26) Model SDLC air terjun (waterfall) sering juga disebut model sekuensial linier (sequential linear) alur hidup klasik (classic life cycle). Model air terjun menyediakan pendekatan alur hidup perangkat lunak secara sekuensial atau terurut dimulai dari analisis, desain, pengodean, pengujian, dan tahap pendukung (support). 2.3.2 Fase Metode Waterfall Gambar 2.3 Fase Metode Waterfall (Rosa, Salahudin, 2011:27) 15 Tahapan dari Waterfall Model merefleksikan pokok-pokok dari aktivitas pengembangan (Rosa A.S-M. Shalahuddin, 2011) : 1. Analisis kebutuhan perangkat lunak (Requirements Definitions) Proses pengumpulan kebutuhan dilakukan secara intensif untuk mespesifikasikan kebutuhan perangkat lunak agar dapat dipahami perangkat lunak seperti apa yang dibutuhkan oleh user. Spesifikasi kebutuhan perangkat lunak pada tahap ini perlu untuk didokumentasikan. 2. Desain (System and Software Design) Desain perangkat lunak adalah proses multilangkah yang fokus pada desain pembuatan program perangkat lunak termasuk struktur data, arsitektur perangkat lunak, representasi antarmuka, dan prosedur pengodean. Tahap ini menstranslasi kebutuhan perangkat lunak dari tahap analisis kebutuhan ke representasi desain agar dapat diimplementasikan menjadi program pada tahap selanjutnya desain perangkat lunak yang dihasilkan pada tahap ini juga perlu didokumentasikan. 3. Pembuatan kode program (Implementation and Unit Testing) Desain harus ditranslasikan kedalam program perangkat lunak. Hasil dari tahap ini adalah program komputer sesuai dengan desain yang telah dibuat pada tahap desain. 4. Pengujian (Integration and System Testing) Pengujian fokus pada perangkat lunak secara dari segi lojik dan fungsional dan memastikan bahwa semua bagian sudah diuji.Hal ini dilakukan untuk meminimalisir kesalahan (error) dan memastikan keluaran yang dihasilkan sesuai dengan yang diinginkan. 16 5. Penngoperasian (operation) dan pemeliharaan (maintenance) Tidak menutup kemungkinan sebuah perangkat lunak mengalami perubahan ketika sudah perangkat lunak mengalami perubahan ketika sudah dikirimkan ke user.Perubahan bisa terjadi karena adanya kesalahan yang muncul dan tidak terdeteksi saat pengujian atau perangkat lunak harus beradaptasi dengan lingkungan baru. Tahap pendukung atau pemeliharaan dapat mengulangi proses pengembangan mulai dari analisis spesifikasi untuk perubahan perangkat lunak yang sudah ada, tapi tidak untuk membuat perangkat lunak baru. (Rosa A.S-M. Shalahudin, 2011:27:28) 2.3.3 Keuntungan dan Kelemahan Menggunakan Metode Waterfall Keuntungannya yaitu, proses menjadi lebih teratur, urutan proses pengerjaan menggunakan metode ini menjadi lebih teratur dari satu tahap ke tahap yang selanjutnya. Dari sisi user juga lebih menguntungkan karena dapat merencanakan dan menyiapkan seluruh kebutuhan data dan proses yang akan dipperlukan. Jadwal menjadi lebih menentu, jadwal setiap proses dapat ditentukan secara pasti. Sehingga dapat dilihat jelas target penyelesaian pengembangan program. Dengan adanya urutan yang pasti, dapat dilihat pula progress untuk setiap tahap secara pasti. Kelemahannya yaitu, sifatnya kaku sehingga susah melakukan perubahan di tengah proses. Jika terdapat kekuarangan proses atau prosedur dari tahan sebelumnya, maka tahapan pengembangan harus dilakukan mulai dari awal. Hal ini akan memakan waktu yang cukup lama. Karena jika proses sebelumnya belum selesai sampai akhir, maka proses selanjutnya juga tidak dapat berjalan. Maka, jika terdapat kekuarangan dalam permintaan user, proses pengembangan harus dimulai dari awal. 17 2.4 Flowchart 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 ini merupakan langkah awal pembuatan program. Dengan adanya flowchart urutan poses kegiatan menjadi lebih jelas. Jika ada penambahan proses maka dapat dilakukan lebih mudah. Setelah flowchart selesai disusun, selanjutnya pemrogram (programmer) menerjemahkannya ke bentuk program dengan bahasa pemrograman yang disebut dengan algoritma. Algoritma ini merupakan penjelas secara terperinci dalam bentuk kalimat yang sejelas-jelasnya tentang alur bagan yang kita buat pada flowchart. 2.4.1 Simbol-simbol Flowchart Flowchart disusun dengan simbol-simbol. Simbol ini dipakai sebagai alat bantu menggambarkan proses di dalam program. Tabel 2.1 Flow Direction Simbols Arus / Flow Penghubung antara prosedur / proses Connector Simbol keluar / masuk prosedur atau proses 18 dalam lembar / halaman yang sama Off-line Connector Simbol keluar / masuk prosedur atau proses dalam lembar / halaman yang lain Tabel 2.2 Processing Symbols Process Simbol yang menunjukkan pengolahan yang dilakukan Komputer Decision Simbol untuk kondisi yang akan menghasilkan beberapa kemungkinan jawaban / aksi Predefined Process Simbol untuk penyimpanan digunakan mempersiapkan yang sebagai akan tempat pengolahan didalam storage 19 Terminal Simbol untuk permulaan atau akhir darti suatu program Manual Input Simbol untuk pemasukan data secara manual on-line keyboard Tabel 2.3 Input Output Symbols Input-Output Simbol yang menyatakan proses input dan output tanpa tergantung dengan jenis peralatannya Document Simbol yang menyatakan input 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 20 2.4.2 Tujuan Membuat Flowchart 1. Menggambarkan suatu tahapan penyelesaian masalah 2. Secara sederhana, terurai, rapi dan jelas 3. Menggunakan simbol-simbol standar 2.4.3 Kaidah-Kaidah Pembuatan Flowchart Dalam pembuatan flowchart tidak ada rumus atau patokan yang bersifat mutlak. Karena flowchart merupakan gambaran hasil pemikiran dalam menganalisa suatu masalah dengan komputer. Sehingga flowchart yang dihasilkan dapat bervariasi antara satu pemrogram dengan pemrogram lainnya. Untuk pengolahan data dengan komputer, dapat dirangkum urutan dasar untuk pemecahan suatu masalah, yaitu : 1. START : berisi instruksi untuk persiapan peralatan yang diperlukan sebelum menangani pemecahan masalah. 2. READ : berisi instruksi untuk membaca data suatu peralatan input. 3. PROCESS : berisi kegiatan yang berkaitan dengan pemecahan persoalan sesuai dengan data yang dibaca. 4. WRITE : berisi instruksi untuk merekam hasil kegiatan ke perlatan output. 5. END : mengakhiri kegiatan pengolahan. 21 Contohnya : Gambar 2.4 Conceptual Flowchart dan Detail Flowchart 22 2.5 Perangkat Lunak Pendukung Perangkat lunak atau peranti lunak adalah program computer yang berfungsi sebagai sarana interaksi antara pengguna dan perangkat keras. Perangkat lunak juga dapat dikatakan sebagai penerjemah perintah-perintah yang dijalankan pengguna komputer untuk diteruskan kea tau diproses oleh perangkat keras. Perangkat lunak ini dibagi menjadi tiga tingkatan, yaitu tingkatan program aplikasi (application program, misalnya Microsoft Office), tingkatan sistem operasi (operating system, misalnya Microsoft Windows), dan tingkatan bahasa pemrograman (yang dibagi lagi atas bahasa pemrograman tingkat tinggi, seperti Pascal, dan bahasa pemrograman tingkat rendah, yaitu bahasa rakitan). Perangkat lunak adalah program komputer yang isi instruksinya dapat diubah dengan mudah. Perangkat lunak umumnya digunakan untuk mengontrol perangkat keras (yang sering disebut sebagai device driver), melakukan proses penghitungan, berinteraksi dengan perangkat lunak yang lebih mendasar lainnya (seperti, sistem operasi dan bahasa pemrograman), dan lain-lain. (Janner Simarmata, 2010:19-20) 2.5.1 PHP (PHP Hypertext Preprocessor) PHP atau yang memiliki kepanjangan PHP Hypertext PreProcessor, merupakan suatu bahasa pemrograman yang difungsikan untuk membangun suatu website dinamis. PHP menyatu dengan kode HTML. HTML digunakan sebagai pembangun atau pondasi dari kerangka layout web, sedangkan PHP difungsikan sebagai proses-nya, sehingga dengan adanya PHP tersebut, sebuah web akan sangat mudah di maintenance. (Agus Saputro, 2013:1) 23 PHP merupakan bahasa Server Side Scripting. Di mana PHP tidak membutuhkan web server dalam menjalankan aksinya. Secara prinsip, server akan bekerja apabila ada permintaan dari client, yaitu kode-kode PHP. Client tersebut akan dikirimkan ke server, kemudian server akan mengembalikan pada halaman client instruksi yang diminta, seperti berikut : Server membaca permintaan dari client/browser Kemudian dilanjutkan untuk mencari halaman/page pada server Server melakukan instruksi yang diberikan oleh PHP untuk melakukan modifikasi pada halaman/page Selanjutnya hasil modifikasi tersebut akan dikembalikan ke client/server. (Agus Saputro, 2013:2) 2.5.2 MySQL Penyimpanan data yang fleksibel dan cepat aksesnya sangat dibutuhkan dalam sebuah website yang interaktif dan dinamis. Database sendiri berfungsi sebagai penampung data yang anda inputkan melalui form website. Selain itu dapat juga di balik dengan menampilkan data yang tersimpan dalam database ke dalam halaman website. Jenis database yang sangat popular dan digunakan pada banyak website di internet sebagai bank data adalah MySQL. MySQL menggunakan SQL dan bersifat praktis, selain itu MySQL dapat berjalan di berbagai platform, antara lain Linux, Windows, dan sebagainya. (MADCOMS, 2013:339) MySQL merupakan perangkat lunak yang dapat kita peroleh secara gratis dan bersifat open source dalam arti kode sumber yang menyusun perangkat lunak tersebut didistibusikan secara terbuka kepada seluruh penggunanya. Dengan karakteristik ini penggunaan MySQL dan perkembangan MySQL sangat pesat karena relative dapat kita peroleh tanpa biaya. Namun meskipun diperoleh secara gratis fungsi dan 24 kapasitas MySQL sangat menakjubkan dalam hal server untuk mengelola basis data kita. (Sularso Budilaksono, 2009:45) Beberapa contoh tipe data MySQL : Tabel 2.4 Tipe Data MySQL (Sularso Budilaksono, 2009:46-47) Tipe Data Deskripsi mendefinisikan INT VARCHAR(n) CHAR(n) yang akan ID INT menyimpan data angka Umur INT field yang menyimpan teks dengan Nama VARCHAR(20) panjang maksimal sebanyak n huruf alamat VARCHAR(30) field yang menyimpan data berupa teks nama CHAR(20) atau string dengan panjang kurang dari n alamat CHAR(30) huruf. Jika data yang dientri kurang dari n maka sisanya akan diisi dengan spasi kota CHAR(10) mendefinisikan TEXT field Contoh field yang mampu Catatan guru TEXT menyimpan karakter sebanyak antara 255 – 65535 huruf mendefinisikan TIME field yang mampu Jam pelajaran TIME menyimpan tentang waktu dalam format HH : MM : SS dengan H adalah jam, M adalah menit dan S adalah detik DATE mendefinisikan field yang mampu Tgl lahir DATE menyimpan tentang tanggal dengan 25 format YYYY : MM : DD dengan Y adalah tahun, M adalah bulan, dan D adalah tanggal 2.5.3 Adobe Dreamweaver CS6 Adobe Dreamweaver CS6 merupakan salah satu program aplikasi yang digunakan untuk membangun sebuah website, baik secara grafis maupun dengan menuliskan kode sumber secara langsung. Adobe Dreamweaver CS6 memudahkan pengembang website untuk mengelola halaman-halaman website dan asset-asetnya, baik gambar (image), animasi flash, video, suara dan lain sebagainya. Selain itu, Adobe Dreamweaver CS6 juga menyediakan fasilitas untuk melakukan pemrograman scripting, baik ASP (Active Server Page), JSP (Java Server Page), PHP (PHP Hypertext Preprocessor), XML (Extensible Markup Language) dan lainnya. Start Page adalah kotak dialog yang ditampilkan pertama kali bersamaan dengan jendela utama aplikasi Adobe Dreamweaver CS6 saat dijalankan. Fungsi dari Start Page ini adalah menampilkan menu pilihan yang ada di Adobe Dreamweaver CS6, di mana user berhak memilih menu mana yang akan dipakai atau dijalankan. Start Page menampilkan 4 pilihan menu dan sebuah checkbox untuk menonaktifkan kotak dialog Start Page. Menu yang ditampilkan meliputi Open a Recent Document, Create New, Top Features (video), dan Help Online.(WAHANA KOMPUTER, 2010:2) 26 2.6 Metode Pengujian Pengujian adalah sebuah proses terhadap aplikasi/program untuk menemukan segala kesalahan dan segala kemungkinan yang akan menimbulkan kesalahan sesuai dengan spesifikasi perangkat lunak yang telah ditentukan sebelum aplikasi tersebut diserahkan kepada pelanggan. Pengujian merupakan proses eksekusi program yang telah selesai dibuat yang bertujuan untuk menemukan kesalahan. Pengujian yang baik adalah pengujian yang dilakukan dengan probabilitas penemuan kesalahan yang tidak diduga, sedangkan pengujian yang sukses adalah pengujian yang berhasil mengatasi penyelesaian penemuan kesalahan yang tidak diduga. Ada beberapa jenis strategi dalam penguian perangkat lunak yang semuanya memiliki satu tujuan yang sama, yaitu meningkatkan kepercayaan diri pengembang perangkat lunak terhadap fungsifungsi perangkat lunaknya. Beranjak dari tujuan ini, suatu perangkat lunak dapat diuji untuk menerima berbagai perlakuan. (Janner Simarmata, 2010:323-324) Prinsip dasar yang menuntun pengujian perangkat lunak, yaitu : 1. Semua pengujian harus dapat ditelusuri sampai ke persyaratan pelanggan. Artinya, pengujian mengungkap kesalahan dari kecacatan yang menyebabkan program gagal. 2. Pengujian harus sudah sejak lama dirancanakan sebelum pengujian itu dimulai. Artinya, semua pengujian dapat direncanakan dan dirancang sebelum semua kode dijalankan. 3. Prinsip Pareto berlaku untuk pengujian perangkat lunak. Artinya, dari 80% kesalahan yang ditemukan selama pengujian, penelusuran dari semua modul program mencapai 20%. 4. Pengujian harus dimulai dari “pengujian yang kecil” dan berkembang ke “pengujian yang besar”. Selagi pengujian berlangsung maju, pengujian mengubah focus dalam usaha menemukan kesalahan pada kluster modul yang terintegrasi dan akhirnya pada sistem. 27 5. Pengujian yang mendalam tidak mungkin dilakukan karena tidak mungkin untuk mengeksekusi setiap kombinasi jalur skema pengujian yang jumlah jalur permutasi untuk program menengahnya pun besar (Janner Simarmata, 2010). 2.6.1 Metode Black Box “Black Box Testing” adalah tipe testing yang memperlakukan perangkat lunak yang tidak diketahui kinerja internalnya. Sehingga para tester memandang perangkat lunak seperti layaknya sebuah “kotak hitam” yang tidak penting dilihat isinya, tapi cukup dikenai proses testing di bagian luar” (Soetam Rizky, 2011:264). Beberapa keuntungan yang diperoleh dari jenis testing ini antara lain: 1. Anggota tim tester tidak harus dari seseorang yang memiliki kemampuan teknis di bidang pemrograman. 2. Kesalahan dari perangkat lunak ataupun bug seringkali ditemukan oleh komponen tester yang berasal dari pengguna. 3. Hasil dari black box testing dapat memperjelas kontradiksi ataupun keracunan yang mungkin timbul dari eksekusi sebuah perangkat lunak. 4. Proses testing dapat dilakukan lebih cepat dibandingkan white box testing. Beberapa teknik testing yang tergolong dalam tipe ini antara lain : 1. Equivalence Partitioning Pada teknik ini, inputan data dikelompokan ke dalam grup tertentu, yang kemudian dibandingkan outputnya. 2. Boundary Value Analysis Merupakan teknik yang sangat umun digunakan pada saat awal sebuah perangkat lunak selesai dikerjakan. Pada teknik ini, 28 dilakukan inputan yang melebihi dari batasan sebuah data, jika perangkat lunak berhasil mengatasi inputan yang salah, maka dapat dikatakan teknik ini telah selesai dilakukan. 3. Cause Effect Graph Dalam teknik ini, dilakukan proses testing yang menghubungkan sebab dari sebuah inputan dan akibatnya pada output yang dihasilkan. 4. Random Data Selection. Teknik berusaha melakukan proses inputan data yang menggunakan nilai acak. Dari hasil inputan tersebut kemudian dibuat sebuah tabel yang menyatakan validitas dari output yang dihasilkan. 5. Feature Test Pada teknik ini dilakukan proses testing terhadap spesifikasi dari perangkat lunak yang telah selesai dikerjakan. Gambar 2.5 Metode Blackbox Testing 29 2.7 Toyota Avanza Toyota Avanza adalah mobil yang diproduksi di Indonesia oleh pabrikan Daihatsu, yang di pasarkan dalam dua merk yaitu Toyota Avanza dan Daihatsu Xenia. Generasi pertama mobil ini diluncurkan saat Gaikindo Auto Expo 2003 dan terjual 100.000 unit pada tahun tersebut. Nama "Avanza" berasal dari bahasa Italia avanzato, yang berarti "peningkatan". (Astra-Toyota) Pada tahun 2011 yang menandai mulainya generasi kedua. Munculnya varian baru Veloz (berasal dari bahasa Inggris, Velocity yang artinya kecepatan) menjadi varian teratas (top of the line) juga menjadi pembeda dengan generasi sebelumnya. Sporty interior design dengan nuansa hitam dilengkapi berbagai fitur baru, menambah keunikan Avanza Veloz untuk memberikan kenyamanan berkendara yang lebih sensational. The black interior design with new features complete Avanza Veloz uniqueness to provide the real sensation of driving convenience, new type performa yang lebih optimum denga mesin 1,5 L menawarkan sensasi berkendara yang lebih bertenaga. Teknologi mesin Avanza Veloz mengadopsi teknologi DOHC VVTI-I (Variable Valve Timing-Intelligent) yang telah sesuai standar Euro 2 sehingga mampu memberikan efisiensi konsumsi bahan bakar sekaligus ramah bagi lingkungan. The optimum performance with the 1.5 L ingene offers a more powerful driving sensation whenever you want it. The Avanza Veloz engine complies with Euro 2 standards to provide environmentally friendly ffiecient fuel consumption. Namun Toyota Avanza tidak dirancang dengan mengedepankan performa, justru di sinilah terlihat salah satu kelebihan Toyota Avanza Veloz dimana dengan teknologi transmisi (aumatic) yang terbilang lawas masih mampu mencatatkan konsumsi BBM yang irit sekitar 1 liter/13 km. Meski dengan performa mesin yang tidak istimewa namun Toyota Avanza Veloz membuktikan sebagai people carrier yang tangguh sekalipun dalam kondisi dimuati tujuh penumpang dewasa. Memang mobil Avanza juga bukan merupakan 30 mobil terhalus di kelasnya namun sekali lagi mobil ini masih bisa diandalkan untuk berbagai keperluan sehari-hari. Gambar 2.6 Toyota Avanza Veloz Gambar 2.7 Spesifikasi Toyota Avanza Veloz 31 32