BAB II LANDASAN TEORI Di dalam penulisan tugas akhir ini penulis menggunakan beberapa pengertian dasar secara teoritis yang diambil dari pendapat para ahli maupun buku literature yang berhubungan dengan judul penelitian adalah sebagai berikut : 2.1 Pengertian Gaji dan Pekerja PKWT 2.1.1 Pengertian Gaji Menurut Malayu S.P. Hasibuan (2003:118) “gaji adalah balas jasa yang dibayar secara periodik kepada pegawai tetap serta mempunyai jaminan pasti. Gaji akan tetap dibayarkan walaupun pekerja tidak masuk kerja”. Di samping itu pegawai mungkin memperoleh manfaat-manfaat yang diberikan dalam bentuk tunjangan, misalnya tunjangan jabatan, tunjangan perumahan, tunjangan pengobatan, tunjangan hari raya, uang transport, uang makan dan lain-lain. 2.1.2 Pengertian Pekerja PKWT Dalam Undang-undang ketenagakerjaan, secara hukum dikenal 2 (dua) macam Pekerja yaitu Pekerja Kontrak (PKWT) dan Pekerja Tetap atau Pekerja PKWTT/Perjanjian Kerja Waktu Tidak Tertentu. Pekerja Kontrak diartikan secara hukum adalah Pekerja dengan status bukan Pekerja tetap atau dengan kalimat lain Pekerja yang bekerja hanya untuk waktu tertentu berdasar kesepakatan antara Pekerja dengan Perusahaan pemberi kerja. Dalam istilah hukum Pekerja kontrak sering disebut “Pekerja PKWT”, maksudnya Pekerja dengan Perjanjian Kerja Waktu Tertentu. 2.2 Konsep Dasar Program Aplikasi 2.2.1 Program Menurut Kamus Lengkap Dunia Komputer, program adalah sekumpulan instruksi yang diwujudkan dalam bentuk bahasa, kode skema, ataupun bentuk lain, yang apabila digabungkan dengan media yang dapat dibaca dengan komputer akan mampu membuat komputer bekerja untuk melakukan fungsi-fungsi khusus termasuk persiapan dalam merancang instruksi-instruksi tersebut. 11 12 Menurut Binanto (2005:1), program adalah mendeskripsikan instruksiinstruksi tersendiri yang biasanya disebut source code yang dibuat oleh programmer. Dari pengertian diatas, dapat disimpulkan bahwa program merupakan sekumpulan instruksi yang diwujudkan dalam bentuk bahasa, kode skema, ataupun bentuk lain, yang dimengerti oleh komputer sehingga mampu bekerja untuk melakukan fungsi-fungsi khusus termasuk persiapan dalam merancang instruksi-instruksi tersebut. 2.2.2 Aplikasi Menurut Jogiyanto (2005:4), aplikasi merupakan program yang berisikan perintah-perintah untuk melakukan pengolahan data. Jogiyanto menambahkan aplikasi secara umum adalah suatu proses dari cara manual yang ditransformasikan ke komputer dengan membuat sistem atau program agar data diolah lebih berdaya guna secara optimal. Menurut Dhanta (2009:32), aplikasi (application) adalah software yang dibuat oleh suatu perusahaan komputer untuk mengerjakan tugas-tugas tertentu, misalnya Microsoft Word, dan Microsoft Excel. 2.2.3 Program Aplikasi Web Pada awalnya aplikasi web dibangun dengan hanya menggunakan bahasa yang disebut HTML (HyperText Markup Langauge). Pada perkembangan berikutnya, sejumlah script dan objek dikembangkan untuk memperluas kemampuan HTML seperti PHP. Aplikasi web dapat dibagi menjadi dua jenis yaitu aplikasi web statis dan dinamis. Web statis dibentuk dengan menggunakan HTML. Kekurangan aplikasi seperti ini terletak pada keharusan untuk memelihara program secara terusmenerus untuk mengikuti setiap perkembangan yang terjadi. Kelemahan ini diatasi oleh model aplikasi web dinamis. Pada aplikasi web dinamis, perubahan informasi dalam halaman web dilakukan tanpa perubahan program tetapi melalui perubahan data. Sebagai implementasi, aplikasi web dapat dikoneksikan ke basis 13 data sehingga perubahan informasi dapat dilakukan oleh user sehingga tidak menjadi tanggung jawab dari programmer. Arsitektur aplikasi web meliputi klien, web server, middleware dan basis data. Klien berinteraksi dengan web server. Secara internal, web server berkomunikasi dengan middleware dan middleware berkomunikasi dengan basis data. Salah satu contoh middleware adalah PHP. Pada mekanisme aplikasi web dinamis, terjadi tambahan proses yaitu server menterjemahkan kode PHP menjadi kode HTML. Kode PHP yang diterjemahkan oleh mesin PHP yang akan diterima oleh klien.(Abdul Kadir, 2009) 2.3 Pemograman PHP, Database MySQL dan Webserver Apache 2.3.1 Pemograman PHP Menurut Jogiyanto (2005), pemrograman adalah pembuatan kode program untuk suatu aplikasi tertentu berdasarkan rancang bangun yang telah dibuat. Menurut Agus Saputra (2012), PHP atau yang memiliki kepanjangan PHP Hypertext Preprocessor merupakan suatu bahasa pemrograman yang difungsikan untuk membangun suatu website dinamis. PHP menyatu dengan kode HTML, maksudnya adalah beda kondisi. HTML digunakan sebagai pembangun atau pondasi dari kerangka layout web, sedangkan PHP difungsikan sebagai prosesnya sehingga dengan adanya PHP tersebut, web akan sangat mudah di-maintenance. PHP berjalan pada sisi server sehingga PHP disebut juga sebagai bahasa Server Side Scripting. Artinya bahwa dalam setiap menjalankan PHP, wajib adanya web server. PHP ini bersifat open source sehingga dapat dipakai secara cuma-cuma dan mampu lintas platform, yaitu dapat berjalan pada sistem operasi Windows maupun Linux. Ada beberapa alasan yang menjadi dasar pertimbangan mengapa menggunakan PHP antara lain : 1. Mudah dipelajari, alasan tersebut menjadi salah satu alasan utama untuk menggunakan PHP, pemula pun akan mampu untuk menjadi web master PHP. 14 2. Mampu Lintas Platform, artinya PHP dapat / mudah diaplikasikan ke berbagai platform OS (Operating Sytem) dan hampir semua browser juga mendukung PHP. 3. Free alias Gratis, bersifat Open Source. 4. PHP memiliki tingkat akses yang cepat. 5. Didukung oleh beberapa macam web server seperti Apache, IIS, Lighttpd, Xitami. 6. Mendukung database, PHP mendukung beberapa database, baik yang gratis maupun yang berbayar, seperti MySQL, PostgreSQL, mSQL, Informix, SQL server dan Oracle. PHP sebagai alternatif lain memberikan solusi sangat murah ( karena gratis digunakan) dan dapat berjalan diberbagai jenis platform. PHP adalah skrip bersifat server-side yang ditambahkan ke dalam HTML. PHP sendiri merupakan singkatan dari Personal Home Page Tools. Skrip ini akan membuat suatu aplikasi dapat diintegrasikan ke dalam HTML sehingga suatu halaman web tidak lagi bersifat statis, namun menjadi bersifat dinamis. Sifat server side berarti pengerjaan skrip dilakukan di server, baru kemudian hasilnya di kirimkan ke browser. Cara penulisan skrip PHP ada dua macam, yaitu Embeded Script dan Non Embeded Script, contohnya : Embeded Script <html> <head> </head> <body> <?php echo “ Ini adalah Embeded Script ”; ?> </html> 15 Non Embeded Script <?php echo “<html>”; echo “<head>”; echo “<title>Mengenal PHP</title>”; echo “<head>”; echo “<body>”; echo “<p>PHP cukup menyenangkan”; echo “</body>”; echo “</html>”; ?> Dari contoh menjelaskan bahwa skrip PHP dapat berupa embedded script yaitu meletakkan tag PHP diantara tag-tag HTML sedangkan non embedded script yaitu semua tag HTML diletakkan dalam tag PHP. Semua kode PHP menyerupai dengan kode bahasa C, walaupun tidak sepenuhnya sama. 2.3.2 Database MySQL Menurut Yeni Kustiyahningsih (2010, p.145) database atau basisdata adalah sekumpulan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah sekumpulan data yang diproses dengan bantuan komputer yang memungkinkan data dapat diakses dengan mudah dan tepat, yang dapat digambarkan sebagai aktivitas satu atau lebih organisasi yang berelasi. MySQL adalah suatu database. MySQL dapat juga dikatakan sebagai database yang sangat cocok bila dipadukan dengan PHP. Secara umum, database berfungsi sebagai tempat atau wadah untuk menyimpan, mengklasifikasikan data secara professional. MySQL bekerja menggunakan SQL Language ( Structure Query Language ). MySQL termasuk jenis RDBMS ( Relational Database Management System ). Sedangkan RDBMS sendiri akan lebih banyak mengenal istilah seperti tabel, baris dan kolom digunakan dengan perintah – perintah di MySQL. MySQL merupakan sebuah basis data yang mengandung satu atau sejumlah tabel. Tabel terdiri atas sejumlah baris dan setiap baris mengandung satu atau beberapa kolom. Di dalam 16 PHP telah menyediakan fungsi untuk koneksi ke basis data dengan sejumlah fungsi untuk pengaturan baik menghubungkan maupun memutuskan koneksi dengan server database MySQL sebagai sarana untuk mengumpulkan informasi. Pada umumnya perintah yang sering digunakan dalam MySQL adalah select (mengambil), insert (menambah), update (mengubah), dan delete (menghapus). Selain itu SQL juga menyediakan perintah untuk membuat database, field, ataupun index guna menambah atau menghapus data. Ada beberapa keunggulan mengapa penulis menggunakan MySQL antara lain : 1. MySQL mampu berjalan di semua sistem operasi, selain itu juga mudah dipelajari dan sepertinya hosting server juga banyak sekali mengadopsi MySQL sebagai standar database. 2. Selain gratis / free MySQL juga bersifat open source, yang memiliki kemampuan untuk di kembangkan lagi. 3. Menggunakan bahas SQL (Structure Query Language ), yang merupakan standar bahasa dunia dalam pengolahan data. 4. Super performance dan reliable, tidak diragukan proses database nya sangat cepat dan stabil. 5. Memiliki dukungan support (group) pengguna MySQL. 6. Multiuser, dimana MySQL dapat digunakan oleh beberapa user secara bersamaan tanpa mengalami konflik. 2.3.3 Web Server Apache Web server merupakan server internet yang mampu melayani koneksi transfer data dalam protocol HTTP. Web server merupakan hal yang terpenting dari server di internet dibandingkan server lainnya seperti E-mail server, FTP server. Hal ini disebabkan web server telah dirancang untuk dapat melayani beragam jenis data, dari text sampai grafis. Kemampuan ini telah menyebabkan berbagai institusi seperti universitas maupun perusahaan dapat menerima kehadirannya dan juga sekaligus menggunakannya sebagai sarana di internet. Salah satu software yang biasa digunakan oleh banyak web master di dunia adalah Apache . Software tersebut dapat di download secara gratis. 17 2.4 UML ( Unified Modeling Language) Unified Modeling Language ( UML ) bukanlah suatu proses melainkan bahasa pemodelan secara grafis untuk menspesifikasikan, memvisualisasikan, membangun dan mendokumentasikan seluruh artifak sistem perangkat lunak. Penggunaan model ini bertujuan untuk mengidentifikasikan bagian – bagian yang termasuk dalam lingkup sistem yang dibahas dan bagaimana hubungan antara sistem dan subsistem maupun sistem lain diluarnya. Dengan pemodelan menggunakan UML, pengembang dapat melakukan : 1. Tinjauan umum bagaimana arsitektur sistem secara keseluruhan. 2. Penelaahan bagaimana objek-objek dalam sistem saling mengirimkan pesan dan saling bekerjasama satu sama lain. 3. Menguji apakah sistem perangkat lunak sudah berfungsi seperti seharusnya. 4. Dokumentasi sistem perangkat lunak untuk keperluan – keperluan tertentu dimasa yang akan datang. UML menyediakan 4 jenis diagram yang dapat dikelompokkan berdasarkan sifatnya, yaitu : a. Use-Case Diagram adalah suatu kumpulan urutan interaksi diantara user dengan sistem untuk mencapai suatu tujuan dimana use case ini menggambarkan kebutuhan fungsional suatu sistem tanpa menampilkan struktur internal system. b. Class Diagram menggambarkan struktur object sistem. Diagram ini menunjukkan class object yang menyusun sistem dan juga hubungan antara class object tersebut. c. Sequence Diagram adalah sequence diagram digunakan untuk menggambarkan event yang dilakukan aktor eksternal pada sistem atau intersystem event dilihat dalam suatu use case. d. Activity Diagram adalah representasi secara grafis dari proses dan control flow dan berfungsi untuk memperlihatkan alur dari satu aktivitas ke aktivitas yang lain serta menggambarkan perilaku yang kompleks. 18 Daftar simbol – simbol dalam UML Tabel 2.1 Simbol Use Case Diagram NO 1 GAMBAR NAMA Actor KETERANGAN Menspesifikasikan himpuan yang pengguna mainkan berinteraksi dengan use case. peran ketika 2 Hubungan dimana perubahan yang terjadi pada suatu elemen mandiri (independent) akan mempengaruhi Dependency elemen yang bergantung padanya elemen yang tidak mandiri (independent). 3 Hubungan dimana objek anak Generalizati (descendent) berbagi perilaku dan on struktur data dari objek yang ada di atasnya objek induk (ancestor). 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 Apa yang menghubungkan antara objek satu dengan objek lainnya. 4 7 8 System Use Case Menspesifikasikan paket yang menampilkan sistem secara terbatas. Deskripsi dari urutan aksi-aksi yang ditampilkan sistem yang menghasilkan suatu hasil yang terukur bagi suatu actor 19 9 10 Collaborati on Interaksi aturan-aturan dan elemen lain yang bekerja sama untuk menyediakan prilaku yang lebih besar dari jumlah dan elemen-elemennya (sinergi). Note Elemen fisik yang eksis saat aplikasi dijalankan dan mencerminkan suatu sumber daya komputasi Tabel 2.2 Simbol Class Diagram NO 1 GAMBAR NAMA KETERANGAN Hubungan dimana objek anak (descendent) berbagi perilaku dan Generalization struktur data dari objek yang ada di atasnya objek induk (ancestor). Nary Association Upaya untuk menghindari asosiasi dengan lebih dari 2 objek. Class Himpunan dari objek-objek yang berbagi atribut serta operasi yang sama. 4 Collaboration Deskripsi dari urutan aksi-aksi yang ditampilkan sistem yang menghasilkan suatu hasil yang terukur bagi suatu aktor 5 Realization Operasi yang benar-benar dilakukan oleh suatu objek. Dependency Hubungan dimana perubahan yang terjadi pada suatu elemen mandiri (independent) akan mempegaruhi elemen yang bergantung padanya elemen yang tidak mandiri 2 3 6 20 Association 7 Apa yang menghubungkan antara objek satu dengan objek lainnya Tabel 2.3 Simbol Sequence Diagram NO GAMBAR NAMA KETERANGAN Objek entity, antarmuka yang saling berinteraksi. LifeLine 1 2 3 Message Spesifikasi dari komunikasi antar objek yang memuat informasiinformasi tentang aktifitas yang terjadi Message Spesifikasi dari komunikasi antar objek yang memuat informasiinformasi tentang aktifitas yang terjadi Tabel 2.4 Simbol StateChart Diagram NO GAMBAR NAMA KETERANGAN 1 State Nilai atribut dan nilai link pada suatu waktu tertentu, yang dimiliki oleh suatu objek. 2 Initial Pseudo State 3 Final State Bagaimana diawali objek dibentuk atau Bagaimana objek dihancurkan dibentuk dan 21 4 Transition Sebuah kejadian yang memicu sebuah state objek dengan cara memperbaharui satu atau lebih nilai atributnya 5 Association Apa yang menghubungkan antara objek satu dengan objek lainnya. Node Elemen fisik yang eksis saat aplikasi dijalankan dan mencerminkan suatu sumber daya komputasi. 6 Tabel 2.5 Simbol Actifity Diagram NO NAMA KETERANGAN 1 Actifity Memperlihatkan bagaimana masingmasing kelas antarmuka saling berinteraksi satu sama lain 2 Action State dari sistem yang mencerminkan eksekusi dari suatu aksi 3 Initial Node Bagaimana diawali. objek dibentuk atau 4 Actifity Final Node Bagaimana objek dihancurkan dibentuk dan 5 Fork Node Satu aliran yang pada tahap tertentu berubah menjadi beberapa aliran 2.5 GAMBAR ERD ( Entity Relationship Diagram) 2.5.1 Model Entity-Relationship ( ER ) ERD adalah model konseptual yang mendeskripsikan hubungan antara penyimpanan (dalam DFD). ERD digunakan untuk memodelkan struktur data dan hubungan antar data. Dengan ERD, model dapat diuji dengan mengabaikan proses yang dilakukan. 22 ERD pertama kali dideskripsikan oleh Peter Chen yang dibuat sebagai bagian dari perangkat lunak CASE. Notasi yang digunakan dalam ERD dapat dilihat pada Tabel di bawah ini : Tabel 2.6 Notasi ERD 2.5.2 K ardinalitas Relasi Dalam ERD hubungan (relasi) dapat terdiri dari sejumlah entitas yang disebut dengan derajad relasi. Derajad relasi maksimum disebut dengan kardinalitas sedangkan derajad minimum disebut dengan modalitas. Jadi kardinalitas relasi menunjukkan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas lain. a. OnetoOne Relationship Hubungan antara file pertama dan file kedua adalah satu berbanding satu. Contoh : Pada pengajaran private satu guru satu siswa. “Seorang guru mengajar seorang siswa, seorang siswa diajar oleh seorang guru ” 23 Gambar 2.1 One-toOne Relationship b. OnetoOne atau Many toOne Relationship Hubungan antara file pertama dan file kedua adalah satu berbanding banyak atau banyak berbanding satu. Contoh : Dalam suatu perusahaan satu bagian memperkerjakan banyak pegawai. “Satu bagian mempekerjakan banyak pegawai, satu pegawai kerja dalam satu bagian” Gambar 2.2 One-toMany Relationship c. Many toMany Relationship Hubungan file pertama dan file kedua adalah banyak berbanding banyak. Contoh : Dalam universitas seorang mahasiswa dapat mengambil banyak matakuliah “Satu mahasiswa mengambil banyak matakuliah dan satu matakuliah diambil banyak mahasiswa” Gambar 2.3 Many-toMany Relationship 2.5.3 Langkah – langkah Perancangan Teknik E-R Sumber awal data teknik perencanaan database dengan ER adalah data dictionary (kumpulan data). 24 Langkah-langkah perancangan ER : 1. Memilih kelompok atribut yang sama untuk dijadikan sebuah entitas dan menentukan primary key dengan syarat unik dan mewakili entitas. 2. Menggambarkan Cardinality dari ER diagram berdasarkan analisa relasi yang didapat. Relasi yang terjadi dapat One to One, One to Many dan Many to Many relationship. 3. Membentuk skema database atau LRS (Logical Record Structure) berdasarkan ER diagram. Keterangan : Bila relasi One to One maka foreign key diletakkan pada salah satu dari 2 entitas yang ada atau menyatukan ke dua entitas tersebut. Bila relasi One to Many maka foreign key diletakkan di entitas yang Many. Bila relasi many to many maka dibuat “file konektor” yang berisi 2 foreign key yang berasal dari kedua entitas. Membentuk tabel-tabel berdasarkan primary key yang terpilih dengan syarat sudah mencapai aturan normalisasi sekurang-kurangnya 3NF dari Skema DB/LRS yang ada. 2.6 Normalisasi Data Teknik normalisasi banyak digunakan terutama pemula karena mudah dipahami dan diaplikasikan. 2.6.1 Pengertian Normalisasi Normalisasi adalah suatu teknik untuk mengorganisasi data kedalam tabeltabel untuk memenuhi kebutuhan pemakai di dalam suatu organisasi. 2.6.2 Bentuk – Bentuk Normalisasi Normal form (bentuk normal) adalah suatu klas dari skema database relasi yang didefinisikan untuk memenuhi tujuan dari tingginya integritas dan maintainability. Kreasi dari suatu bentuk normal disebut normalisasi. Normalisasi 25 dicapai dengan penganalisaan ketergantungan diantara setiap individu attribut yang diasosiasikan dengan relasinya. Bentuk – bentuk normalisasi adalah sebagai berikut : a. First Normal Form Suatu relasi ada dalam kondisi normal First Normal Form ( 1NF ) jika dan hanya jika semua domain yang tercakup terdiri hanya atomic value, misalnya tidak ada pengulangan group ( domain-domain ) dalam suatu tuple. Keuntungan dari 1NF dibanding Unnormalized relation (UNRs) adalah pada bentuk penyederhanaan representasi dan kemudahan dalam pengembangan menggunakan suatu query language. Kekurangannya adalah kebutuhan terhadap duplikasi data. Sebagian besar sistem relasi (tidak semua) membutuhkan suatu relasi dalam bentuk 1NF. b. Secound Normal Form Suatu superkey adalah suatu himpunan dari suatu atau lebih attribute, yang mana diambil secara khusus yang memungkinkan kita untuk mengidentifikasikan secara unik satu entitas atau relasi. Suatu candidate key adalah suatu subset dari attribut-attribut pada superkey yang juga merupakan superkey dan tidak reducible ke superkey yang lain. Suatu primary key dipilih dari himpunan candidate key untuk digunakan pada suatu index untuk relasi yang bersangkutan. Kepemilikan dari satu atau beberapa attribute yang dapat didefinisikan secara unik dari nilai satu atau beberapa attribute disebut functional dependency. c. Third Normal Form Suatu relasi dalam Third Normal Form ( 3NF ) jika dan hanya jika relasi tersebut dalam 2NF dan setiap non key attribute adalah nontransitive dependent pada primary key. 26 d. Boyce-Codd Normal Form ( BCNF ) Yaitu menghilangkan terdapatnya anomaly pada relasi yang disebabkan oleh overlapping candidate key atau apabila setiap determinan adalah merupakan candidate key. e. Fourth Normal Form ( 4NF ) Yaitu menghilangkan beberapa ketergantungan pada banyak harga (multivalue dependency). f. Fifth Normal Form ( 5NF ) Yaitu join dependency anomaly yang terjadi akibat dekomposisi relasi tidak dapat dipakai kembali untuk membentuk kembali relasi semula. Bentuk normalisasi apabila dapat digambarkan menjadi tahapan sebagai berikut : Gambar 2.4 Tahapan Normalisasi 27 2.6.3 Tujuan Normalisasi Tujuan normalisasi adalah sebagai berikut : 1. Untuk menghilangkan kerangkapan data. 2. Untuk mengurangi kompleksitas. 3. Untuk mempermudah pemodifikasian data. 2.6.4 Proses Normalisasi Proses normalisasi mempunyai beberapa tahapan antara lain : 1. Data diuraikan dalam bentuk tabel, selanjutnya dianalisis berdasarkan persyaratan tertentu ke beberapa tingkat. 2. Apabila tabel yang diuji belum memenuhi persyaratan tertentu, maka tabel tersebut perlu dipecah menjadi beberapa tabel yang lebih sederhana sampai memenuhi bentuk yang optimal. 2.7 Metode Pengembangan system Metode Pengembangan Sistem yang digunakan dalam perancangan Sistem Informasi ini menggunakan Model Waterfall. Model proses waterfall ialah model proses pembuatan sebuah system yang terstruktur yang amat mudah dimengerti, seperti yang telah diketahui bahwa dengan model proses waterfall sebuah system dapat dikembangkan lagi. 2.7.1 Tahapan Metode Waterfall Tahapan Metode Waterfall adalah sebagai berikut : 1. Pengumpulan Data Pada tahap ini dilakukan pencarian dan pengumpulan data–data dan informasi secara lengkap dan akurat. 2. Analisis Sistem Pada tahap ini adalah menganalisis sistem yang sedang berjalan sesuai dengan data-data yang telah diperoleh dari penelitian pada PT. XYZ. 3. Perancangan Sistem Pada tahap ini dilakukan perancangan sistem yang diusulkan mengenai aplikasi penggajian berbasis web PT. XYZ. 28 4. Pembuatan Sistem Pada tahap ini dilakukan pembuatan suatu aplikasi berdasarkan perancangan sistem yang diusulkan. 5. Pengujian Sistem Pada tahap ini dilakukan pengujian terhadap sistem yang telah dibuat dengan metode black box. 6. Implementasi dan Pemeliharaan Penelitian ini menggunakan metode Waterfall dikarenakan metode ini mempunyai tahapan-tahapan yang jelas, nyata dan praktis. Apabila terjadi kesalahan, tahapan pemeliharaan termasuk pembetulan kesalahan yang tidak ditemukan pada langkah terdahulu. Langkah-langkah penelitian ini dapat digambarkan sebagai berikut : Gambar 2.5 Model Waterfall 2.7.2 Keunggulan Metode Waterfall Keunggulan model pendekatan pengembangan software dengan metode waterfall adalah pencerminan kepraktisan rekayasa, yang membuat kualitas software tetap terjaga karena pengembangannya yang terstruktur dan terawasi. Disisi lain model ini merupakan jenis model yang bersifat dokumen lengkap, 29 sehingga proses pemeliharaan dapat dilakukan dengan mudah. Akan tetapi dikarenakan dokumentasi yang lengkap dan sangat teknis, membuat pihak klien sulit membaca dokumen yang berujung pada sulitnya komunikasi antar pengembang dan klien. Dokumentasi kode program yang lengkap juga secara tak langsung menghapus ketergantungan pengembang terhadap pemrogram yang keluar dari tim pengembang. Hal ini sangat menguntungkan bagi pihak pengembang dikarenakan proses pengembangan perangkat lunak tetap dapat dilanjutkan tanpa bergantung pada pemrogram tertentu. 2.7.3 Kelemahan Metode Waterfall Kelemahan pengembangan software dengan metode waterfall yang utama adalah lambatnya proses pengembangan perangkat lunak. Dikarenakan prosesnya yang satu persatu dan tidak bisa diloncat-loncat menjadikan model klasik ini sangat memakan waktu dalam pengembangannya. Disisi lain, pihak klien tidak dapat mencoba sistem sebelum sistem benar-benar selesai pembuatannya. Kelemahan yang lain adalah kinerja personil yang tidak optimal dan efisien karena terdapat proses menunggu suatu tahapan selesai terlebih dahulu. 2.8 Konsep Dasar Testing 2.8.1 Definisi Testing Testing adalah sebuah proses siklus hidup dan merupakan bagian dari proses rekayasa perangkat lunak secara terintegrasi demi memastikan kualitas dari perangkat lunak secara terpenuhi kebutuhan teknis yang telah disepakati dari awal. Detail tahapan yang harus dilampaui dalam kaitan kebutuhan perangkat lunak dari sudut pandang testing perangkat lunak adalah: 1. Verifikasi adalah proses pemeriksaan untuk memastikan bahwa perangkat lunak telah menjalankan apa yang harus dilakukan dari kesepakatan awal antara pengembang perangkat lunak dan pengguna. 2. Validasi adalah sebuah proses yang melakukan konfirmasi bahwa perangkat lunak dapat dieksekusi secara baik. 30 2.8.2 Definisi Black Box Testing Black box testing adalah tipe uji coba 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. Beberapa keuntungan yang diperoleh dari jenis testing black box 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 memperjelaskan kontradiksi ataupun kerancuan yang mungkin ditimbulkan dari eksekusi perangkat lunak. 4. Proses testing dapat dilakukan lebih cepat dibandingankan white box testing.