II. LANDASAN TEORI
A. English Proficiency Test (EPT)
EPT (English Proficiency Test) adalah tes menyeluruh yang mengukur semua aspek dalam kemahiran berbahasa Inggris khususnya untuk keperluan akademis. Keterampilan berbahasa yang diuji meliputi mendengar, berbicara, membaca dan menulis. Komponen bahasa yang diuji meliputi kosakata, tata bahasa, pengucapan, termasuk intonasi dan tekanan. Nilai tes EPT menggambarkan prediksi nilai TOEFL®. Nilai tes EPT merupakan salah satu persyaratan untuk mengikuti program sarjana dan pasca sarjana di beberapa perguruan tinggi terkemuka di Indonesia. Nilai tes EPT dipakai sebagai salah satu persyaratan rekrutmen oleh banyak perusahaan nasional dan multi nasional di Indonesia. Nilai tes EPT dijadikan salah satu persyaratan oleh banyak perusahaan bagi karyawan yang akan dikirim untuk mengikuti seminar,
kursus
atau
pelatihan
yang
menggunakan
bahasa
Inggris
(http://www.lia.ac.id). Jika soal yang digunakan sejenis dengan soal TOEFL® Paper-based Test maka teknik penilaian yang digunakan juga menyesuaikan dengan teknik penilaian pada TOEFL® Paper-based Test berikut ini :
7
Tabel 2.1 Aturan konversi skor (Phillips, 2001)
Jumlah jawaban benar 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17
Dikonversi menjadi Dikonversi menjadi (Section 1 Listening) (Section 2 Structure) 68 67 66 65 63 62 61 60 59 58 57 57 56 55 54 54 53 52 52 51 51 50 49 49 48 48 47 47 46 45 45 44 43 42
68 67 65 63 61 60 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 43 41
Dikonversi menjadi (Section 3 Reading) 67 66 65 63 61 60 59 58 57 56 55 54 54 53 52 52 51 50 49 48 48 47 46 46 45 44 43 43 42 41 40 39 38 37
8
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
41 41 37 38 37 35 33 32 32 31 30 29 28 27 26 25 24
40 40 38 37 36 35 33 31 29 27 26 25 23 22 21 20 20
36 35 34 32 31 30 29 28 28 27 26 25 24 23 23 22 21
Rumusnya: Langkah 1: (jumlahkan hasil konversi) section 1 + section 2 + section 3 Langkah 2: hasil penjumlahan dibagi 3 Langkah 3: hasil pembagian dikali 10 ( itulah nilai ahirnya)
Tabel 2.2 Contoh hasil konversi (Phillips, 2001)
Jumlah jawaban benar Hasil konversi
SECTION 1 30
SECTION 2 28
SECTION 3 43
51
52
58
Langkah 1: 51 + 52 + 58 = 161 Langkah 2: 161/3 = 53,7 Langkah 3: 53,3 x 10 = 537 (nilai akhirnya)
9
B. Logika Fuzzy
Konsep Logika Fuzzy dicetuskan oleh Lotfi Zadeh, seorang profesor University of California di Berkeley, dan dipresentasikan bukan sebagai metodologi kontrol, namun sebagai suatu cara pemrosesan data yang memperbolehkan anggota himpunan parsial daripada anggota himpunan kosong atau non-anggota. Pendekatan ini pada teori himpunan tidak diaplikasikan untuk mengontrol sistem sampai tahun 70-an karena kurangnya kemampuan komputer-mini pada saat itu. Profesor Zadeh beralasan bahwa masyarakat tidak butuh ketepatan, input informasi numeris, dan mereka belum sanggup dengan kontrol adaptif yang tinggi. Jika kembalian dari kontroler dapat diprogram untuk menerima noisy, input yang tidak teliti, mereka akan lebih efektif dan lebih mudah diimplementasikan (Kusrini, 2008).
1. Pengertian Logika Fuzzy
Sebelum munculnya teori logika fuzzy (Fuzzy Logic), dikenal suatu logika tegas (Crisp Logic) yang memiliki nilai benar atau salah secara tegas. Sebaliknya logika fuzzy merupakan sebuah logika yang memiliki nilai kekaburan atau kesamaran (fuzzyness) antara benar dan salah. Dalam teori logika fuzzy suatu nilai bisa bernilai benar dan salah secara bersamaan namun berapa besar kebenaran dan kesalahan suatu nilai tergantung kepada bobot keanggotaan yang dimilikinya (Naba, 2009).
10
2. Kelebihan Logika Fuzzy
Terdapat beberapa hal yang menjadi kelebihan dari Logika Fuzzy (Naba, 2009): 1. Memiliki kemampuan dalam proses penalaran secara bahasa (linguistic reasoning), sehingga dalam perancangannya
tidak memerlukan
persamaan matematika dari objek yang akan dikendalikan. 2. Konsep logika fuzzy adalah sangat sederhana sehingga mudah dipahami. Kelebihannya dibanding konsep yang lain bukan pada kompleksitasnya, tetapi pada naturalness pendekatannya dalam memecahkan masalah. 3. Logika fuzzy adalah fleksibel, dalam arti dapat dibangun dan dikembangkan dengan mudah tanpa harus memulainya dari “nol”. 4. Logika fuzzy memberikan toleransi terhadap ketidakpresisian data. Hal ini sangat cocok dengan fakta sehari-hari. Segala sesuatu di alam ini relatif tidak presisi, bahkan meskipun kita lihat atau amati secara lebih “dekat” dan hati-hati. Logika fuzzy dibangun berdasar pada fakta ini. 5. Pemodelan atau pemetaan untuk mencari hubungan data input-output dari sembarang sistem black-box bisa dilakukan dengan memakai sistem fuzzy. 6. Pengetahuan atau pengalaman dari para pakar dapat dengan mudah dipakai untuk membangun logika fuzzy. Hal ini merupakan kelebihan utama logika fuzzy disbanding JST. Pemodelan sistem dengan JST berdasar data input-output hanya akan menghasilkan model JST yang masih juga sebagai black-box, karena kita sulit mengetahui bagaimana
11
cara kerja model JST yang dihasilkan. Dalam pemodelan sistem dengan JST, tidak ada mekanisme untuk melibatkan pengetahuan manusia (pakar) dalam proses pelatihan JST. Jika kita menggunakan logika fuzzy, pengetahuan manusia bisa relatif lebih mudah dilibatkan dalam pemodelan sistem fuzzy. 7. Logika fuzzy dapat diterapkan dalam desain sistem kontrol tanpa harus menghilangkan teknik desain sistem kontrol konvensional yang sudah terlebih dahulu ada. 8. Logika fuzzy berdasar pada bahasa manusia
3. Variabel Linguistik
Variabel linguistik adalah sebuah variabel yang memiliki nilai berupa katakata dalam bahasa alamiah bukan angka. Penggunaan kata atau kalimat lebih dipilih dibandingkan dengan penggunaan angka karena peranan linguistik memang kurang spesifik dibandingkan angka, namun informasi yang disampaikan lebih informatif. Sebagai contoh yaitu jika “Kecepatan” adalah variabel linguistik, maka nilai linguistik untuk variabel “Kecepatan” adalah, misalnya “Lambat”, “Sedang”, “Cepat”. Hal ini sesuai dengan kebiasaan manusia sehari-hari dalam menilai sesuatu. Misalnya dalam kalimat “Ia mengendarai mobil dengan cepat”, tanpa memberikan nilai berapa kecepatannya. Setiap variabel linguistik berkaitan dengan sebuah fungsi keanggotaan (Idhan, 2007).
12
Definisi formal dari variabel linguistik diberikan sebagai berikut (Idhan, 2007): Sebuah variabel linguistik dikarakterisasi oleh (X, T(x), U, M), dimana:
X
T(x) = Himpunan semua istilah (nilai-nilai) linguistik yang terkait
= Nama variabel (variabel linguistik) yang menjadi objek.
dengan (nama) variabel (X) yang menggambarkan objek tersebut.
U
= Dominan fisik aktual atau ruang lingkup dimana variabel
linguistik X mengambil nilai-nilai kuantitatifnya atau nilai numeris (crisp) himpunan semesta.
M
= Suatu aliran semantik yang menghubungkan setiap nilai
linguistik dalam T dengan suatu himpunan fuzzy dalam U.
4. Himpunan Fuzzy (Fuzzy Set)
Dalam teori logika fuzzy dikenal himpunan fuzzy (fuzzy set) yang merupakan
pengelompokkan
sesuatu
berdasarkan
variabel
bahasa
(linguistic variable) yang dinyatakan dalam fungsi keanggotaan. Di dalam semesta pembicaraan (universe of discourse) U, fungsi keanggotaan dari suatu himpunan fuzzy tersebut bernilai antara 0.0 sampai dengan 1.0 (Kusrini, 2008)
13
5. Fungsi Keanggotaan
Fungsi keanggotaan pada fuzzy set mendefinisikan bagaimana tiap titik dalam ruang input dipetakan menjadi bobot atau derajat keanggotaan antara 0 dan 1 (Naba, 2009).
Menurut buku Artificial Intelligence (Negnevitsky, 2002), pada teori fuzzy, himpunan fuzzy A (fuzzy set A) dari semesta 𝑋 didefinisikan oleh fungsi µA(x) yang disebut fungsi keanggotaan dari himpunan A. µA(x) : X [0,1] dimana: µA(x) = 1 jika x secara total berada di A; µA(x) = 0 jika x tidak berada di A; 0 < µA(x) < 1 jika x sebagian berada di A.
Fungsi keanggotaan adalah sebuah representasi grafis dari besarnya partisipasi masing-masing input. Fungsi keanggotaan dihubungkan dengan pembobotan masing-masing input yang diproses, definisi pencocokkan fungsi antar-input dan penentuan respons keluaran. Sebagai contoh dalam menentukan fungsi keanggotaan, diberikam himpunan semesta U adalah umur manusia antara [0, 100]. Seseorang dikatakan tua jika dia berumur lebih dari 50 tahun. Sedangkan orang yang berumur 30 tahun atau kurang, dianggap tidak tua. Fungsi keanggotaannya ditunjukkan oleh rumus berikut ini :
14
0, 𝑥 ≤ 30 𝑓(𝑥) =
𝑥−30 20
, 30 < 𝑥 < 50
1, 𝑥 ≥ 50
Jika diketahui seseorang memiliki umur 35 tahun, maka dapat diketahui derajat ketuaannya adalah sebesar (35-30)/20 yaitu 0,25. Fungsi keanggotaan dari suatu himpunan fuzzy dinyatakan dengan derajat keanggotaan suatu nilai terhadap nilai tegasnya yang berkisar antara 0,0 sampai dengan 1,0. Jika A: himpunan fuzzy, µA: fungsi keanggotaan dan X: semesta, maka fungsi keanggotaan dalam suatu himpunan fuzzy dapat dinyatakan dengan A= {(x, µA(x))|x€X} (Kusrini, 2008).
Berikut ini merupakan contoh grafik keanggotaan dan juga fungsi keanggotaan menurut Modul Kecerdasan buatan v2.0 Bab V-VIII (Idhan, 2007)
Gambar 2.1. Contoh Grafik Keanggotaan (Idhan, 2007)
15
Contoh grafik di atas adalah suatu fungsi keanggotaan untuk variabel umur yang dibagi menjadi 3 kategori atau 3 himpunan fuzzy yaitu muda, parobaya, dan tua, dimana dapat direpresentasikan sebagai berikut: 1, jika 𝑥 ≤ 25
µmuda(x) =
45−𝑥
, jika 25 < 𝑥 < 45
45−25
0, jika 𝑥 ≥ 45 0, jika 𝑥 ≤ 35 atau 𝑥 ≥ 55 𝑥−35
, jika 35 < 𝑥 < 45
45−25
µparobaya(x) =
55−𝑥 55−45
, jika 35 < 𝑥 < 45
1, jika 4 ≤ 𝑥 ≤ 6 0, jika 𝑥 ≤ 45
µtua(x) =
𝑥−45 65−45
, jika 45 < 𝑥 < 65
1, jika 𝑥 ≥ 65
C. PHP
Menurut dokumen resmi PHP, PHP merupakan singkatan dari PHP Hypertext Preprocessor. PHP merupakan bahasa berbentuk skrip yang ditempatkan dalam server dan diproses di server. Hasilnyalah yang dikirimkan ke client, tempat pemakai menggunakan browser. Secara khusus, PHP dirancang untuk membentuk aplikasi web dinamis. Artinya, PHP dapat membentuk suatu tampilan
berdasarkan
permintaan
terkini.
Misalnya,
pengguna
bisa
menampilkan isi database ke halaman web. Pada prinsipnya PHP mempunyai
16
fungsi yang sama dengan skrip-skrip seperti ASP (Active Server Page), Cold Fussion, ataupun Perl. Namun, perlu diketahui bahwa PHP sebenarnya bisa dipakai secara command line. Artinya, skrip PHP dapat dijalankan tanpa melibatkan web server maupun browser (Kadir, 2008).
Kelahiran PHP bermula saat Rasmus Lerdorf membuat sejumlah skrip Perl yang dapat mengamati siapa saja yang melihat-lihat daftar riwayat hidupnya, yakni pada tahun 1994. Skrip-skrip ini selanjutnya dikemas menjadi tool yang disebut “Personal Home Page”. Paket inilah yang menjadi cikal bakal PHP. Pada tahun 1995, Rasmus menciptakan PHP/FI Versi 2. Pada versi inilah pemrogram dapat menempelkan kode terstruktur di dalam tag HTML. Yang menarik, kode PHP juga bisa berkomunikasi dengan database dan melakukan perhitungan-perhitungan yang kompleks sambil jalan (Kadir, 2008).
Pada saat ini PHP cukup populer sebagai peranti pemrograman web, terutama di lingkungan Linux. Walaupun demikian, PHP sebenarnya juga dapat berfungsi pada server-server yang berbasis UNIX, Windows, dan Macintosh. Pada awalnya, PHP dirancang untuk diintegrasikan dengan web server Apache. Namun belakangan PHP juga dapat bekerja dengan web server seperti PWS (Personal Web Server), IIS (Internet Information Server), dan Xitami. PHP bersifat bebas dipakai, sehingga tidak perlu membayar untuk menggunakan perangkat lunak ini, alias free. PHP tersedia dalam bentuk kode biner maupun kode sumber yang lengkap, dan untuk mendapatkannya dapat mengunduhmya melalui situs http://www.php.net (Kadir, 2008).
17
Salah satu kelebihan dari PHP adalah mampu berkomunikasi dengan berbagai database yang terkenal. Dengan demikian, menampilkan data yang bersifat dinamis, yang diambil dari database, merupakan hal yang mudah untuk diimplementasikan. Itulah sebabnya sering dikatakan bahwa PHP sangat cocok untuk membangun halaman-halaman web yang dinamis. Pada saat ini PHP sudah dapat berkomunikasi dengan berbagai database meskipun dengan kelengkapan yang berbeda-beda. Beberapa di antaranya yaitu DBM, FilePro (Personix, Inc), Informix, Ingres, InterBase, Microsoft Access, MSQL, MySQL, Oracle, PostgreSQL, Sybase (Kadir, 2008).
D. MySQL
MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (database management system) atau DBMS yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis di bawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunanya tidak cocok dengan penggunaan GPL. Tidak seperti PHP atau Apache yang merupakan software yang dikembangkan oleh komunitas umum, dan hak cipta untuk kode sumber dimiliki oleh penulisnya masing-masing, MySQL dimiliki dan disponsori oleh sebuah perusahaan komersial Swedia yaitu MySQL AB. MySQL AB memegang penuh hak cipta atas hampir semua kode sumbernya. MySQL dapat diunduh di situs resminya yaitu http://www.mysql.com (Solichin, 2010).
18
Fitur-fitur MySQL antara lain (Solichin, 2010): 1. Relational Database System. Seperti halnya software database lain yang ada di pasaran, MySQL termasuk RDBMS. 2. Arsitektur Client-Server. MySQL memiliki arsitektur client-server dimana server database MySQL terinstal di server. Client MySQL dapat berada di komputer yang sama dengan server, dan dapat juga di komputer lain yang berkomunikasi dengan server melalui jaringan bahkan internet. 3. Mengenal perintah SQL standar. SQL (Structured Query Language) merupakan suatu bahasa standar yang berlaku di hampir semua software database. MySQL mendukung SQL versi SQL:2003. 4. Mendukung Sub Select. Mulai versi 4.1 MySQL telah mendukung select dalam select (sub select). 5. Mendukung Views. MySQL mendukung views sejak versi 5.0. 6. Mendukung Stored Prosedured (SP). MySQL mendukung SP sejak versi 5.0. 7. Mendukung Triggers. MySQL mendukung trigger pada versi 5.0 namun masih terbatas. Pengembang MySQL berjanji akan meningkatkan kemampuan trigger pada versi 5.1. 8. Mendukung replication. 9. Mendukung transaksi. 10. Mendukung foreign key. 11. Tersedia fungsi GIS. 12. Free (bebas diunduh.) 13. Stabil dan tangguh.
19
14. Fleksibel dengan berbagai pemrograman. 15. Security yang baik. 16. Dukungan dari banyak komunitas. 17. Perkembangan software yang cukup cepat.
E. UML (Unified Modelling Language)
Pada aplikasi-aplikasi bisnis, metodologi-metodologi pengembangan aplikasi yang menggunakan bahasa pemrograman terstruktur (structured programming language), DFD dan ERD kurang dapat beradaptasi dengan kebutuhan dan harapan pengguna (user’s needs and expectations). Dengan alasan itu, para pakar di bidang perancangan perangkat lunak pada sekitar tahun 1890-1990 mulai bekerja dengan bahasa pemrograman yang berorientasi objek (OOP [Object Oriented Programming]) seperti C++ dan Java. Dengan demikian, diperlukan metodologi dan perkakas-perkakas (tools) yang lebih sesuai. Dalam hal ini, UML (Unified Modelling Language) yang merupakan metodologi kolaborasi antara metoda-metoda Booch, OMT (Object Modelling Technique), serta OOSE (Object Oriented Software Engineering) dan beberapa metoda lainnya, merupakan metodologi yang paling sering digunakan saat ini untuk mengadaptasi maraknya penggunaan bahasa pemrograman berorientasi objek atau juga dikenal dengan OOP (Nugroho, 2009).
20
F. Black Box Testing
Black box testing adalah tipe testing yang memperlakukan perangkat lunak yang tidak diketahui kinerja internalnya. Sehingga para tester memandang perangkat lunak seperti layaknya “kotak hitam” yang tidak penting dilihat isinya, tapi cukup dikenai proses testing di bagian luar. Jenis testing ini hanya memandang perangkat lunak dari sisi spesifikasi, fungsi dan kebutuhan yang telah didefinisikan pada saat awal perancangan. Sebagai contoh, jika terdapat perangkat lunak yang merupakan sebuah sistem informasi inventory di sbuah perusahaan. Maka pada jenis white box testing, perangkat lunak tersebut akan berusaha dibongkar listing programnya untuk kemudian dites menggunakan teknik-teknik yang telah dijelaskan sebelumnya. Sedangkan pada jenis black box testing, perangkat lunak tersebut akan dieksekusi kemudian berusaha dites apakah telah memenuhi kebutuhan pengguna yang didefinisikan pada saat awal tanpa harus membongkar listing programnya (Rizky, 2011).
Beberapa keuntungan yang diperoleh dari black box testing ini antara lain (Rizky, 2011): 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 kerancuan yang mungkin timbul dari eksekusi sebuah perangkat lunak. 4. Proses testing dapat dilakukan lebih cepat dibandingkan white box testing.
21
Beberapa teknik testing yang tergolong dalam tipe black box antara lain (Rizky, 2011): 1. Equivalence Partitioning Pada teknik ini tiap input data dikelompokkan ke dalam grup tertentu, yang kemudian dibandingkan dengan output. 2. Boundary Value Analysis Teknik ini adalah teknik yang sangat umum digunakan pada saat awal suatu perangkat lunak selesai dikerjakan. Pada teknik ini, dilakukan input yang melebihi dari batasan suatu data. Sebagai contoh, untuk suatu input harga barang, maka dapat dilakukan testing dengan menggunakan angka negatif (yang tidak diperbolehkan dalam sebuah harga). Jika perangkat lunak berhasil mengatasi input yang salah tersebut, maka dapat dikatakan teknik ini telah selesai dilakukan. 3. Cause Effect Graph Dalam teknik ini, dilakukan proses testing yang menghubungkan sebab dari suatu input dan akibatnya pada output yang dihasilkan. Sebagai contoh, pada suatu inputan nilai siswa, jika diinputkan angka 100, maka output nilai huruf seharusnya A. Tetapi bisa dilakukan testing, apakah output nilai huruf yang dikeluarkan jika ternyata input nilai adalah 67,5. 4. Random Data Selection Seperti namanya, teknik ini berusaha melakukan proses input data dengan menggunakan nilai acak, dari hasil input tersebut kemudian dibuat suatu tabel yang menyatakan validitas dari output yang dihasilkan
22
5. Feature Test Pada teknik ini, dilakukan proses testing terhadap spesifikasi dari perangkat lunak yang telah selesai dikerjakan. Misalkan, pada perangkat lunak sistem informasi akademik dapat dicek apakah fitur untuk melakukan entri nilai telah tersedia, begitu juga dengan fitur entri data siswa maupun entri data guru yang akan melakukan entri nilai.