12
BAB II LANDASAN TEORI
2.1
PHP
PHP merupakan singkatan dari "PHP: Hypertext Preprocessor", adalah sebuah bahasa scripting yang terpasang pada HTML. Tujuan utama bahasa ini adalah untuk memungkinkan perancang web menulis halaman web dinamik dengan cepat. Halaman web biasanya disusun dari kode-kode html yang disimpan dalam sebuah file berekstensi .html. File html ini dikirimkan oleh server (atau file) ke browser, kemudian browser menterjemahkan kode-kode tersebut sehingga menghasilkan suatu tampilan yang indah. Lain halnya dengan program php, program ini harus diterjemahkan oleh web-server sehingga menghasilkan kode html yang dikirim ke browser
13 agar dapat ditampilkan. Program ini dapat berdiri sendiri ataupun disisipkan di antara kode-kode html sehingga dapat langsung ditampilkan bersama dengan kode-kode html tersebut. Program php dapat ditambahkan dengan mengapit program tersebut di antara tanda dan ?>. Tanda-tanda tersebut biasanya disebut tanda untuk escaping (kabur) dari kode html. File html yang telah dibubuhi program php harus diganti ekstensi-nya menjadi .php. Salah satu faktor yang membuat PHP menjadi sangat populer sebagai bahasa skrip dalam pembuatan aplikasi berbasis web dan situs web dinamis adalah karena bahasa ini mendukung demikian banyak sistem basis data, mulai dari mSQL, MySQl, MS-SQL, MS-Access, PostgreSQL, bahkan sampai Oracle. Fungsi-fungsi untuk mempermudah pengaksesan berbagai jenis basis data tersebut tersedia lebih dari cukup pada PHP, sehingga meringankan, menyederhakanan, serta mempercepat proses pengembangan aplikasi berbasis web.
2.2
MySQL MySQL adalah salah satu jenis database server yang sangat terkenal dan banyak digunakan untuk membangun aplikasi web yang menggunakan database sebagai sumber dan pengelolaan datanya. Kepopuleran MySQL antara lain disebabkan karena MySQL menggunakan SQL sebagai bahasa dasar untuk mengakses databasenya sehingga mudah untuk digunakan, cepat secara kinerja query, dan mencukupi untuk kebutuhan database perusahaanperusahaan skala menengah-kecil. Selain itu mySQL juga bersifat open source dan free. MySQL termasuk RDBMS (Relational Database Management Sistem). Itulah sebabnya istilah tabel, baris, dan kolom digunakan pada MySQL. Pada
14 MySQL, sebuah database mengandung satu atau sejumlah tabel. Tabel terdiri atas sejumlah kolom dan baris, dimana setiap kolom berisi sekumpulan data yang memiliki tipe yang sejenis, dan baris merupakan sekumpulan data yang saling berkaitan dan membentuk informasi. Kolom biasanya juga disebut sebagai field dan informasi yang tersimpan dalam setiap baris disebut dengan record.
2.3
PERANCANGAN DATA BASE Perancangan merupakan suatu hal yang sangat penting dalam pembuatan basis data. Permasalahan yang dihadapi pada waktu perancangan yaitu bagaimana basis data yang akan dibangun ini dapat memenuhi kebutuhan saat ini dan masa yang akan datang. Untuk itu diperlukan perancangan basis data baik secara fisik, logik maupun secara konseptualnya.
2.3.1
Model Perancangan Konseptual Basis Data Perancangan model konseptual basis data dalam sebuah organisasi menjadi tugas dari Administrator basis data. Model konseptual merupakan kombinasi beberapa cara untuk memproses data untuk beberapa aplikasi. Model konseptual tidak tergantung pada aplikasi individual, DBMS digunakan, Hardware komputer dan model fisiknya. Pada perancangan model konseptual basis data ini penekanan dilakukan pada struktur data dan relasi antara file. Pada perancangan model konseptual ini dapat dilakukan dengan menggunakan model data relasional. Teknik Model Data Relasional ada 2 yaitu : ·
Teknik Normalisasi
·
Teknik Entity Relationship
15 2.3.1.1 Teknik Normalisasi Proses normalisasi adalah proses pengelompokan data elemen menjadi tabel-tabel yang menunjukkan entity dan relasinya. Pada proses normalisasi dilakukan pengujian pada beberapa kondisi apakah ada kesulitan pada saat menambah/menyisipkan, menghapus, mengubah dan mengakses pada suatu basis data. Bila terdapat kesulitan pada pengujian tersebut maka perlu dipecahkan relasi pada beberapa tabel lagi atau dengan kata lain perancangan basis data belum optimal. 1. Field (Atribut) Kunci setiap file selalu terdapat kunci dari file berupa field atau satu set field yang dapat mewakili record. Misalnya Nomor Pokok Mahasiswa (NPM) merupakan kunci dari tabel mahasiswa suatu Perguruan Tinggi, setiap pencarian cukup dengan menyebut nomor mahasiswa tersebut maka dapat diketahui identitas mahasiswa lainnya seperti nama, alamat dan atribut lainnya. Nomor Pegawai (NIP) bagi data dosen, NIK untuk data karyawan, Kode_Kuliah untuk data Mata kuliah, dan lain sebagainya. 2. Jenis Atribut Pada Entitas Atribut yang melekat pada suatu entitas ada bermacam tipe seperti yang akan dijelaskan sebagai berikut : ·
Atribut Sederhana: atribut sederhana merupakan atribut atomik yang tidak dapat lagi dipecah menjadi atribut lain. Contoh : NIP bagi data dosen, NIK untuk data karyawan.
16 ·
Atribut Komposit: atribut komposit merupakan atribut yang masih dapat dipecah menjadi sub-sub atribut yang masing-masing memiliki arti tesendiri. Contoh : entitas mahasiswa mempunyai atribut alamat. Alamat disini dapat dipecah menjadi sub atribut seperti nama_kota, kode_pos.
·
Atribut Bernilai Tunggal: yaitu atribut yang hanya memiliki satu nilai untuk setiap barisnya. Contoh : entitas mahasiswa mempunyai atribut NPM, Nama, Alamat isi data dari atribut ini hanya boleh diisi dengan 1 data. Setiap mahasiswa hanya memiliki 1 NPM, 1 Nama, 1 Alamat.
·
Atribut Bernilai Jamak: yaitu atribut yang boleh memiliki lebih dari satu nilai untuk setiap barisnya. Contoh : entitas mahasiswa mempunyai atribut Hobby isi data dari atribut ini boleh lebih dari 1 data. Mahasiswa Roshita memiliki NPM 13402021 beralamat di Jalan Garuda 32 Yogyakarta memiliki Hobby (Olah Raga,Nyanyi, Masak dan Nonton TV)
·
Atribut Harus Bernilai: yaitu atribut yang harus memiliki nilai data untuk setiap barisnya. Biasanya atribut seperti ini sudah ditetapkan dalam perancangan tabelnya sehingga jika dalam pengisian dikosongi akan terjadi kesalahan. Contoh : entitas mahasiswa mempunyai atribut NPM dan Nama_Mahasiswa yang harus diisi datanya, sebab jika tidak diisi akan terjadi kekacauan dalam basis data.
17 ·
Atribut Bernilai Null: yaitu atribut yang boleh tidak memiliki nilai data untuk setiap barisnya. Contoh : entitas mahasiswa mempunyai atribut Alamat, Hobby, Nama_Pacar yang boleh untuk tidak diisi tetapi kalau diisi akan lebih baik,
·
Atribut Turunan: yaitu atribut yang nilai-nilainya diperoleh dari pengolahan atau dapat diturunkan dari atribut lain yang berkaitan. Contoh : entitas mahasiswa mempunyai atribut IPK yang diperoleh dari pengolahan atribut Nilai pada tabel (entitas Nilai) dengan kode NIM mahasiswa yang sama dan diproses sehingga menghasilkan IPK untuk mahasiswa yang bersangkutan..
3. Kunci Kandidat (Candidate Key) Kunci kandidat adalah satu atribut atau satu set atribut yang mengidentifikasikan secara unik suatu kejadian spesifik dari entity. Satu set atribut menyatakan secara tidak langsung dimana anda tidak dapat membuang beberapa atribut dalam set tanpa merusak kepemilikan yang unik. Jika kunci kandidat berisi lebih dari satu atribut, maka biasanya disebut sebagai composite key (kunci campuran atau gabungan). Contoh :
File mahasiswa berisi:
·
Nomor Pegawai
·
No KTP
·
Nama Pegawai
·
Tempat Lahir
·
Tanggal Lahir
·
Alamat
18 ·
Kota
Kunci kandidat dalam file mahasiswa di atas dapat dipilih sbb :
4.
·
Nomor Pegawai
·
No KTP
Kunci Primer (Primary Key) Primary key adalah satu atribut atau satu set minimal atribut yang
tidak hanya mengidentifikasi secara unik suatu kejadian spesifik, tetapi juga dapat mewakili setiap kejadian dari suatu entity. Setiap kunci kandidat dapat menjadi kunci primer tetapi sebaliknya sebaiknya dipilih satu saja yang dapat mewakili secara menyeluruh terhadap entity yang ada. Contoh : ·
No Pegawai (karena sifatnya yang unik maka tidak mungkin pegawai
mempunyai Nomor Pegawai yang sama). ·
No KTP (Bisa dipakai misalnya untuk pegawai yang baru belum
mendapatkan nomor pegawai maka bisa digunakan nomor KTP untuk sementara sebagai kunci primer). 5.
Kunci Alternatif (Alternate Key) Kunci alternatif adalah kunci kandidat yang tidak dipakai sebagai
kunci primer. Kunci alternatif ini sering digunakan untuk kunci pengurutan misalnya dalam laporan.
6.
Kunci Tamu (Foreign Key) Kunci tamu adalah satu atribut atau satu set minimal atribut yang
melengkapi satu hubungan yang menunjukkan ke induknya. kunci tamu ditempatkan pada entity anak dan sama dengan kunci primer induk yang
19 direlasikan. Hubungan antara entity induk dengan anak adalah hubungan satu lawan banyak (one to many relationship) Contoh :
File Transaksi Gaji Bulanan
·
No Pegawai
·
No Bukti
·
Tanggal
·
Jumlah Gaji Kotor
·
Jumlah Potongan
·
Jumlah Gaji Bersih
·
Jumlah Pajak
Kunci Tamu
: No Pegawai (karena Gaji berhubungan dengan file Pegawai)
Kunci Primer
: No Bukti (karena unik dan mewakili entity)
Kunci Kandidat
: No Pegawai + Nomor Bukti (Unik dan menunjukkan hubungan dengan file Pegawai)
7.
Kebergantungan Fungsi Kebergantungan Fungsi didefinisikan sebagai Diberikan sebuah
relasi R, atribut Y dan R adalah bergantung fungsi pada atribut X dari R jika dan hanya jika setiap nilai X dalam R punya hubungan dengan tepat satu nilai Y dalam R (dalam setiap satu waktu). File relasi pegawai atribut berisi : No Pegawai, No KTP, Nama, Tempat Lahir, Tgl Lahir, Alamat, Kota. Isi dari atribut nama bergantung pada No Pegawai. Jadi dapat dikatakan bahwa atribut nama bergantung secara fungsi pada No Pegawai dan Nomor Pegawai menunjukkan secara fungsi
20 nama. jika anda mengetahui no pegawai maka anda dapat menentukan nama pegawai tersebut. Notasi untuk kebergantungan fungsi ini adalah No Pegawai 1DPD atau Nama = f(No Pegawai)
2.3.1.2 Bentuk-Bentuk Normalisasi Bentuk ini merupakan kumpulan data yang akan direkam, tidak ada keharusan mengikuti format tertentu, dapat saja data tidak lengkap atau terduplikasi. Data dikumpulkan apa adanya sesuai dengan kedatangannya.
1.
Bentuk Normal Kesatu (1 NF / First Normal Form) Bentuk Bentuk Normal Kesatu mempunyai ciri yaitu setiap data
dibentuk dalam file flat, data dibentuk dalam satu record demi satu record dan nilai dari field berupa “atomic value”. Tidak ada set atribut yang berulang ulang atau atribut bernilai ganda (multi value). Tiap field hanya satu pengertian, bukan merupakan kumpulan data yang mempunyai arti mendua. Hanya satu arti saja dan juga bukanlah pecahan kata kata sehingga artinya lain. Atom adalah zat terkecil yang masih memiliki sifat induknya, bila dipecah lagi maka ia tidak memiliki sifat induknya. Contoh : Kelas (Kode Kelas, Nama Kelas, Pengajar) Ini merupakan bentuk 1NF karena tidak ada yang berganda dan tiap atribut satu pengetian yang tunggal 2.
Bentuk Normal Kedua (2 NF) Bentuk Normal kedua mempunyai syarat yaitu bentuk data telah
memenuhi kriteria bentuk Normal Kesatu. Atribut bukan kunci haruslah
21 bergantung secara fungsi pada kunci utama, sehingga untuk membentuk Normal Kedua haruslah sudah ditentukan kunci-kunci field. Kunci field harus unik dan dapat mewakili atribut lain yang menjadi anggotanya. Dari contoh relasi mahasiswa pada bentuk Normal Kesatu, terlihat bahwa kunci utama adalah NPM. Nama Mahasiswa dan Dosen Wali bergantung pada NPM, Tetapi Kode Semester bukanlah fungsi dari Mahasiswa maka file siswa dipecah menjadi 2 relasi yaitu : Tabel Relasi Mahasiswa NPM
NAMA
DOSEN WALI
1000
Sally Fatimah
Dedy S
1001
Inul Daratista
Ruslan
1002
Putri Patricia
Denmas
Tabel Relasi Ambil Kuliah
3.
NPM
KODE KULIAH
1000
1234
1000
3100
1001
1234
1001
2109
1001
2100
1001
3122
Bentuk Normal Ketiga (3 NF) Untuk menjadi bentuk Normal Ketiga maka relasi haruslah dalam
bentuk Normal Kedua dan semua atribut bukan primer tidak punya hubungan
22 yang transitif. Artinya setiap atribut bukan kunci harus bergantung hanya pada kunci primer secara menyeluruh. Contoh pada bentuk Normal kedua di atas termasuk juga bentuk Normal Ketiga karena seluruh atribut yang ada di situ bergantung penuh pada kunci primernya. 4.
Boyce-Codd Normal Form (BNCF) Boyce-Codd Normal Form mempunyai paksaan yang lebih kuat dari
bentuk Normal ketiga. Untuk menjadi BNCF, relasi harus dalam bentuk Normal Kesatu dan setiap atribut dipaksa bergantung pada fungsi pada atribut super key.
2.3.2
Model Perancangan Logika Basis Data Perancangan basis data secara logik dimulai dengan penciptaan model konseptual dari organisasi dan seluruhnya tak bergantung rincian implementasi seperti perangkat lunak DBMS, program aplikasi, bahasa pemrograman, platform perangkat keras, dan pertimbangan fisik lainnya. Model konsep ini kemudian dipetakan menjadi model data secara logik yang telah dipengaruhi model data target basis data seperti model relasional.
Dalam perancangan basis data secara logik, kita dapat melakukannya dengan cara: a. Menerapkan Normalisasi terhadap struktur tabel yang telah diketahui. b. Langsung
membuat
model
Entity-Relationship
(ER).
Model data secara logik merupakan sumber informasi perancangan
23 fisik. Model ini menyediakan perancang suatu kendaraan untuk pertimbangan dalam merancang basis data yang efisien. 2.4
PERANCANGAN REKAYASA PERANGKAT LUNAK Metode Perancangan Rekayasa Perangkat Lunak yang digunakan adalah metode Waterfall. Metode ini dipilih karena ini mempunyai struktur yang
jelas
dan
terarah
dalam
setiap
tahapan
perancangan
dan
implementasinya. Secara umum metodologi pengembangan sistem ini dibagi menjadi beberapa tahapan, antara lain:
1. Requirements Metode ini menggunakan dengan cara pengumpulan data atau mencari informasi dari buku dan situs yang berkaitan dengan perangkat lunak. Pengumpulan data dapat dilakukan dengan cara
Observasi &
Interview / wawancara. 2. Design Deskriptif , dengan kata lain memberikan gambaran kepada para pengguna/user yang di disain dalam bentuk aplikasi sehingga para pengguna/user lebih mudah dalam meng-entry data transaksi harian. 3. Coding Penulis mengimplementasikan teori dengan data-data yang didapat dari tinjauan pustaka dan sumber-sumber yang terkait 4. Test Memberikan penjelasan lebih lanjut terhadap pertanyaan dari para pengguna/user dan saran yang bersifat membangun sehingga aplikasi yang dibangun bisa lebih sempurna.
24 5. Maintenance Untuk menjamin sistem yang dibangun akurat, maka pemeliharaan harus tetap dilakukan.
requirements design coding test mentenance
Gambar 2.1 Metode Waterfall
2.5
PENGAMBILAN DATA Beberapa teknik pengambilan data diantaranya :
2.5.1
Teknik Wawancara Wawancara merupakan salah satu teknik pengumpulan data yang dilakukan dengan berhadapan secara langsung dengan yang diwawancarai tetapi dapat juga diberikan daftar pertanyaan dahulu untuk dijawab pada kesempatan. Wawancara penulis lakukan langsung dengan petugas Admin Planning dan Admin Produksi.
2.5.2
Teknik Observasi
25 Pada teknik ini penulis dapat melakukan analisis langsung terhadap apa yang sedang dikerjakan di tempat yang sedang dilakukan observasi, dan juga dapat mengukur tingkat dari suatu pekerjaan yang dilakukan. Observasi dilakukan di kantor bagian Planning, juga di Produksi yang selama ini bertugas untuk melakukan entry data. Teknik ini menuntut adanya pengamatan dari peneliti baik secara langsung maupun tidak langsung terhadap obyek penelitian. Instrumen yang dapat digunakan adalah lembar pengamatan, panduan pengamatan dll.
2.6
UML (UNIFIED MODELING LANGUAGE)
2.6.1
PENGERTIAN UML
Unified Modeling Language (UML) adalah alat bantu (tool) untuk pemodelan sistem, “UML adalah bahasa yang dapat digunakan untuk spesifikasi, visualisasi, dan dokumentasi sistem objek-oriented software pada fase pengembangan. UML merupakan unifikasi dari metode Booch, OMT, dan notasi Objectory, serta ide-ide terbaik metodologi lainnya notasi metodemetode objek oriented tersebut, UML merupakan standar dasar dalam bidang analisis dan desain berorientasi-objek” (Quatrani, 1998).
2.6.2
VIEW DAN DIAGRAM UML View adalah jendela (window) yang merupakan aspek pandang UML terhadap
sistem.
Sebuah
sistem
harus
dijelaskan
dengan
sejumlah
aspek/pandangan yang berbeda, misalnya aspek fungsional (struktur statik dan interaksi dinamik), aspek non-fungsional (timing requirement, reliability,
26 deployment), dan aspek organisasional (pengorganisasian pekerjaan, mapping ke kode, dan modul). Sistem dijelaskan oleh sejumlah view, dimana masingmasing view merupakan proyeksi dari sistem secara komplit yang memperlihatkan aspek tertentu dari sistem. UML memperkenalkan lima buah view untuk memandang sistem yaitu: Use-Case View, Logical View, Component view, Deployment View dan Concurrency View (Eriksson dan Penker, 1998). Booch (1998) menyebut view ini sebagai “Arsitektur 4+1” dan menyebut Concurrency View sebagaiProcess View. 1. Use-Case View. Untuk menampilkan fungsifungsi dari sistem berkaitan dengan aktoreksternal. Aktor yang ber-interaksi dengan sistem dapat berupa seorang user atau sistem lainnya.Use-case view ditujukan untuk para cus-tomer, designer, developer, dan tester. Usecase view merupakan bagian sentral dari view karena isinya menjadi pengen-dali view yang lain. Tujuan akhir dari sebuah sistem adalah untuk menyedia-kan fungsi-fungsi yang dijelaskan dalam use-case view, karena itu use-case view mempengaruhi seluruh view lainnya. Use-case View juga digunakan untuk validasi dan verifikasi sistem 2. Logical View. Untuk menampilkan bagaimana fungsi-fungsi didisain didalam sistem , dalam kaitannya dengan struktur statik dan perilaku dinamik sistem. Logical view menjelaskan bagaimana fungsi-fungsi sistem di sediakan, terutama berguna bagi para designer dan developer. Berbeda dengan use case view, logical view melihat bagian dalam dari sistem. Sistem dijelaskan dengan struktur statik (kelas, objek, dan relasi) dan kolaborasi dinamik yang terjadi ketika objek-objek mengirim pesan satu sama lain. Struktur statik di visualisasikan dalam
27 diagram kelas dan objek, sedang model dinamiknya divisualisasi dalam diagram state, diagram sekuen, diagram kola-borasi dan diagram aktivity. 3. Component View. Untuk menampilkan pengorganisasian program (code) dari komponen code, menjelaskan implementasi dari modulmodul yang tersedia dan dependensinya. Component View terutama untuk para pengembang, view berisi diagram komponen. 4. Concurrency/Process View. Untuk menampilkan concurrency di dalam sistem, khususnya pada persoalan yang berhubungan dengan komunikasi dan sinkronisasi yang muncul dalam sistem concurrent. Concurrency/Prosess view ditujukan bagi para pengembang dan integrator sistem, berisi diagram dinamik (state, sekuen, kolaborasi, dan aktivity) dan diagram implementasi (diagram komponen dan deployment). 5. Deployment View. Memperlihatkan deployment sistem pada arsitektur fisik dengan komputer dan piranti pendukung yang diperkenalkan sebagai nodes. Deploymen view ditujukan bagi pengembang, integrator, dan tester, isi view berupa diagram deployment. View ini juga mencakup mapping yang memperlihatkan bagaimana komponenkomponen di-deployment pada arsitektur fisik; misalnya program atau objek yang mana di eksekusi pada komputer tertentu.
Diagram adalah visualisasi grafik yang memperlihatkan susunan dari simbol-simbol elemen yang disusun untuk menggambarkan bagian atau aspek tertentu dari sistem. Sebuah model sistem secara tipikal mem-punyai beberapa diagram. Sebuah diagram adalah bagian spesifik dari view, apabila
28 digambarkan akan mengambil tempat pada view tertentu. Beberapa jenis diagram dapat menjadi bagian dari beberapa view, tergantung pada isi diagram. UML memperkenalkan sembilan macam diagram yaitu, diagram Use Case, Kelas, Objek, State, Sekuen, kolaborasi, Aktivity, Komponen dan diagram
2.6.3
TAHAP PENGEMBANGAN PERANGKAT LUNAK
Tahap pengembangan sistem perangkat lunak didalam UML meliputi: 1. Analisis Kebutuhan (Requirement Analysis) UML
menggunakan
Use
cases
untuk
menangkap
kebutuhan
customer/user. Melalui Use cases aktor luar yang berinteraksi dengan sistem dimodelkan bersama dengan fungsi-fungsi yang mereka perlukan dari sistem (use cases). Aktor dan use cases dihubungkan dengan suatu relasi (relationship). Actor dan use cases ditampilkan dalam bentuk diagram beserta dokumentasinya pada view diagram Use case. 2. Analisis sistem (Analisys) Fase analisis konsen dengan abstraksi primer (kelas dan objek) dan mekanisme yang muncul dalam problem domain. Kelas-kelas diidentifikasi bersama dengan relasinya satu sama lain, dan ditampilkan pada diagram kelas. Kolaborasi antar kelas untuk mengerjakan use case juga dijelaskan melalui model dinamik UML.
29 Pada fase analisis ini hanya kelas-kelas dalam problem domain yang dimodelkan, bukan kelas-kelas implementasi teknik. 3. Desain (Design) Pada tahap desain hasil analisis didetailkan untuk solusi teknik. Kelaskelas baru ditambahkan untuk menyediakan infrastruktur teknik: user interface, penanganan database untuk menyimpan objek kedalam database, komunikasi dengan sistem lain, interfacing dengan peralatan dalam sistem ditambahkan. 4. Implementasi / programming (Implementation) Pada tahap programming kelas-kelas yang dibentuk pada tahap desain dikonversi menjadi code sesungguhnya dalam bahasa pemrograman objek-oriented melalui proses generate. Hasil generate berupa skeleton dari
program.
Selanjutnya
menjadi
tugas
programmer
untuk
menyelesaikan program hasil generate. Editing yang dilakukan oleh programmer tidak akan di dihapus (ditimpa) saat model di generate ulang. 5. Pengujian / Testing Testing terhadap sistem software biasanya berupa tes unit, tes integrasi, tes sistem, dan tes acceptance. Tes unit adalah tes terhadap kelas individual atau terhadap sekelompok kelas, biasanya dilakukan oleh programmer. Tes integrasi mengintegrasikan komponen dan kelaskelas dalam rangka verifikasi. 6. Test Sistem Memandang sistem sebagai kotak hitam (black box) dalam rangka validasi bahwa sistem berfungsi sesuai dengan harapan end user. Tes