JURUSAN ILMU KOMPUTER DAN ELEKTRONIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS GADJAH MADA YOGYAKARTA 2011
2
HALAMAN PENGESAHAN LAPORAN PROYEK KHUSUS PORTAL BEASISWA KPU DENGAN SISTEM PENDUKUNG KEPUTUSAN BERBASIS FUZZY
Pembimbing
Sri Mulyana, Drs., M.Kom Tim Penulis Penulis 1, Penulis 2, Penulis 3,
Kidung Hudha Candra Bumi Poerwiyanto Uki Astika Mancasari
3
KATA PENGANTAR Puji syukur kami panjatkan kepada Tuhan Yang Maha Esa yang memberikan rahmat, sehingga kami dapat menyelesaikan proyek dengan judul Portal Beasiswa KPU dengan Sistem Pendukung Keputusan Berbasis Fuzzy. Tujuan utama dari proyek ini adalah untuk membangun sebuah sistem yang memudahkan penawar beasiswa dalam menawarkan beasiswa dan menentukan pemohon-pemohon beasiswa yang layak meraih beasiswa dan pemohon beasiswa dalam menemukan informasi tentang beasiswa-beasiswa. Selain itu, proyek ini untuk memenuhi persyaratan guna menyelesaikan mata kuliah Proyek Khusus. Pengembangan proyek ini dari awal hingga laporan ini diselesaikan tidak terlepas dari kerja sama dari sesama anggota kelompok dan pihak terkait yang telah menyumbangkan tenaga, yaitu bapak Sri Mulyana, Drs., M.Kom selaku dosen pembimbing. Untuk itu, kami mengucapkan terima kasih sedalam-dalamnya kepada bapak Sri Mulyana, Drs., M.Kom. Yogyakarta, Juni 2011
Tim Penulis
4
DAFTAR ISI HALAMAN JUDUL1 HALAMAN PENGESAHAN.2 KATA PENGANTAR3 DAFTAR ISI4 DAFTAR GAMBAR..6 ABSTRAK7 BAB I PENDAHULUAN9 1.1 Latar Belakang...9 1.2 Rumusan Masalah...10 1.3 Batasan Masalah..10 1.4 Tujuan.11 1.5 Manfaat...11 1.6 Metodologi Perancangan.11 BAB II LANDASAN TEORI13 2.1 Decision Support System (Sistem Pendukung Keputusan)........13 2.2 Logika Fuzzy..15 2.3 CodeIgniter.17 2.4 Model-View-Controller..18 BAB III ANALISIS DAN PERANCANGAN SISTEM.19 3.1 Analisis Sistem19 3.1.1 Analisis Masalah19 3.2 Perancangan Sistem.19 5
3.2.1 Perancangan Fungsional Sistem.20 3.2.2 Perancangan Basis Data24 3.2.3 Perancangan Antar Muka..27 BAB IV IMPLEMENTASI.33 4.1 Implementasi...33 BAB V PENGUJIAN SISTEM.47 5.1 Pengujian Sistem.47 BAB VI KESIMPULAN...60 6.1 Kesimpulan..60 DAFTAR PUSTAKA61 LAMPIRAN...62
6
DAFTAR GAMBAR Gambar 3.1 Diagram Konteks..22 Gambar 3.2 DAD Level 1.22 Gambar 3.3 Use Case...23 Gambar 3.4 Rancangan antar muka halaman pendaftaran beasiswa28 Gambar 3.5 Rancangan antar muka halaman login pengguna.28 Gambar 3.6 Rancangan antar muka halaman tambah peubah penentu29 Gambar 3.7 Rancangan antar muka tambah fungsi keanggotaan.30 Gambar 3.8 Rancangan antar muka halaman tambah aturan...30 Gambar 3.9 Rancangan antar muka halaman pendaftaran mahasiswa/i...31 Gambar 3.10 Rancangan antar muka halaman mahasiswa/i..32 Gambar 4.1 Halaman publik33 Gambar 4.2 Halaman pendaftaran mahasiswa/i...34 Gambar 4.3 Halaman hasil (publik).35 Gambar 4.4 Halamanpendaftaran beasiswa.36 Gambar 4.5 Halaman login...37 Gambar 4.6 Halaman beasiswa38 Gambar 4.7 Halaman beasiswa (deskripsi)..39 Gambar 4.8 Halaman beasiswa (ganti kata sandi)39 Gambar 4.9 Halaman peubah penentu..40 Gambar 4.10 Halaman tambah/ubah peubah penentu40 Gambar 4.11 Halaman fungsi keanggotaan41 Gambar 4.12 Halaman tambah/ubah fungsi keanggotaan..42 Gambar 4.13 Halaman fungsi keanggotaan (pemula)42 Gambar 4.14 Halaman tambah/ubah fungsi keanggotaan (pemula)...43 Gambar 4.15 Halaman basis aturan44 Gambar 4.16 Halaman tambah aturan44 7
Gambar 4.17 Halaman hasil (beasiswa).45 Gambar 4.18 Halaman pemohon46 Gambar 4.19 Halaman pemohon (ganti kata sandi)...46 Gambar 5.1 Pendaftaran beasiswa baru47 Gambar 5.2 Notifikasi jika nama pengguna telah dipakai48 Gambar 5.3 Halaman login..49 Gambar 5.4 Halaman login jika terjadi kesalahan49 Gambar 5.5 Halaman beasiswa49 Gambar 5.6 Halaman beasiswa (deskripsi)..50 Gambar 5.7 Penambahan peubah penentu50 Gambar 5.8 Halaman peubah penentu..51 Gambar 5.9 Pengubahan peubah penentu.51 Gambar 5.10 Halaman peubah penentu..51 Gambar 5.11 Penambahan fungsi keanggotaan..52 Gambar 5.12 Halaman fungsi keanggotaan52 Gambar 5.13 Penambahan aturan...52 Gambar 5.14 Penambahan gagal jika aturan telah ada...53 Gambar 5.15 Halaman basis aturan53 Gambar 5.16 Pendaftaran pemohon...54 Gambar 5.17 Notifikasi jika berkas tidak berformat *.zip.55 Gambar 5.18 Notifikasi jika nama pengguna telah dipakai56 Gambar 5.19 Halaman login..56 Gambar 5.20 Halaman pemohon57 Gambar 5.21 Halaman hasil (beasiswa).57 Gambar 5.22 Halaman rincian hasil...58 Gambar 5.23 Halaman hasil (beasiswa) setelah kidung diterima...58 Gambar 5.24 Halaman hasil (publik).59 8
ABSTRAK Portal Beasiswa KPU dengan Sistem Pendukung Keputusan Berbasis Fuzzy
Banyak sekali masyarakat Indonesia yang memiliki potensi tinggi dalam pendidikan tetapi tidak memiliki perekonomian yang cukup dalam meraih pendidikan tersebut.Hal ini memicu beberapa instansi baik yang negeri maupun swasta mengadakan beasiswa bagi masyarakat yang kurang mampu namun memiliki potensi yang tinggi. Tetapi dalam penyebaran informasi beasiswa tersebut masih kurang merata sehingga sedikit masyarakat yang mengetahui tentang pengadaan beasiswa, padahal teknologi saat ini sudah berkembang semakin pesat. Untuk itu diperlukan sebuah media yang digunakan untuk menggabungkan teknologi internet dan penyebaran informasi tentang pengadaan beasiswa. Pemilihan dan penetapan mahasiswa berprestasi ini menjadi suatu proses yang rumit karena pengerjaannya yang selama ini masih manual, selain itu proses tersebut memiliki banyak peluang untuk membuat keputusan yang salah karena dapat terjadi proses penilaian yang bersifat subjektif. Hal ini dapat mengakibatkan mahasiswa yang dipilih tidak mencapai standart yang diinginkan dan tidak memperoleh calon yang terbaik. Portal Beasiswa KPUdengan Sistem Pendukung Keputusan Berbasis Fuzzy adalah portal beasiswa yang berbasis sistem pendukung keputusan model fuzzy yang mampu menentukan penerimaan beasiswa secara efektif dan efisien disertai dengan penyediaan informasi beasiswa yang cepat, tepat dan akurat. Kata kunci: portal beasiswa, sistem pendukung keputusan, logika fuzzy.
9
BAB I PENDAHULUAN 1.1 Latar Belakang Manusia semakin memahami pentingnya makna pendidikan, terutama dari aspek kebutuhan karena saat ini pendidikan merupakan salah satu investasi penting untuk masa depan. Dengan adanya pendidikan, maka dapat meningkatkan kualitas sumberdaya manusia masyarakat Indonesia. Namun, dalam penerimaan pendidikan tersebut masih memiliki beberapa kendala salah satunya dari segi ekonomi. Banyak sekali masyarakat Indonesia yang memiliki potensi tinggi dalam pendidikan tetapi tidak memiliki perekonomian yang cukup dalam meraih pendidikan tersebut. Hal ini memicu beberapa instansi baik yang negeri maupun swasta mengadakan beasiswa bagi masyarakat yang kurang mampu namun memiliki potensi yang tinggi. Tetapi dalam penyebaran informasi beasiswa tersebut masih kurang merata sehingga sedikit masyarakat yang mengetahui tentang pengadaan beasiswa, padahal teknologi saat ini sudah berkembang semakin pesat. Dengan seiringnya perkembangan teknologi tersebut, maka di butuhkan penyebaran informasi yang cepat, salah satu teknologi pendukung untuk perkembangan informasi adalah internet, karena internet bersifat sangat global dan dapat diakses secara umum. Untuk itu diperlukan sebuah media yang digunakan untuk menggabungkan teknologi internet dan penyebaran informasi tentang pengadaan beasiswa. Salah satu media tersebut dapat berupa sebuah portal yang digunakan untuk menggabungkan beberapa informasi beasiswa yang terdaftar yang kemudian portal tersebut dapat melakukan seleksi secara otomatis dalam penentuan penerima beasiswa sesuai dengan kriteria yang telah ditentukan. Proses penentuan untuk seleksi penerima beasiswa menggunakan salah satu cabang ilmu dari kecerdasan buatan yakni sistem pendukung keputusan, yaitu suatu sistem yang dirancang untuk membantu user dalam melakukan sebuah keputusan untuk memilih alternative dari suatu masalah untuk mencapai tujuan yang diinginkan. Beberapa metode yang dapat digunakan dalam sistem pendukung keputusan antara lain : Wighted of Sum, Promethee, Profile Matching, Fuzzy, AHP (Analyric Hierarchy Process), AHP 10
Fuzzy. Fuzzy merupakan salah satu metode yang telah banyak diaplikasikan diberbagai bidang dan mampu menyelesaikan permasalahan dan pembuatan keputusan yang kompleks sehingga dapat digunakan untuk analisis kelayakan penerimaan beasiswa. Metode ini terdiri dari 3 bagian, yaitu fuzzifikasi, inferensi, dan defuzzifikasi. Dari penerapan fuzzy ini akan kita dapatkan suatu keputusan apakah seorang calon penerima beasiswa layak untuk mendapatkan beasiswa. Manfaat proses pemilihan ini adalah untuk mencapai akhir yang diinginkan yaitu mendapatkan mahasiswa yang tepat berdasarkan kriteria-kriteria yang telah ditentukan. Pemilihan dan penetapan mahasiswa berprestasi ini menjadi suatu proses yang rumit karena pengerjaannya yang selama ini masih manual, selain itu proses tersebut memiliki banyak peluang untuk membuat keputusan yang salah karena dapat terjadi proses penilaian yang bersifat subjektif. Hal ini dapat mengakibatkan mahasiswa yang dipilih tidak mencapai standart yang diinginkan dan tidak memperoleh calon yang terbaik. Oleh karena itu, dibangun sebuah portal beasiswa yang mampu menampung seluruh informasi beasiswa yang ditawarkan sekaligus melakukan penilaian berdasarkan syarat-syarat yang diharapkan penawar beasiswa untuk mendukung keputusan yang akan diambil, dalam hal ini menentukan peraih beasiswa. 1.2 Rumusan Masalah Dari latar belakang di atas dapat di ambil rumusan masalah yang akan menjadi pembahasan proyek yaitu bagaimana merancang dan membangun sebuah aplikasi sistem pendukung keputusan yang berbasis web menggunakan metode fuzzy untuk penentuan penerimaan beasiswa. 1.3 Batasan Masalah Batasan masalah yang digunakan dalam perancangan proyek ini bertujuan agar proyek menjadi lebih realitis dan terarah dalam pengembangannya. Adapun batasan masalah yang digunakan adalah sebagai berikut. 1. Rule base yg digunakan menggunakan operator AND. 2. Keluaran program ini berupa saran untuk mendukung sebuah keputusan, tidak mengambil keputusan. 3. Satu ID hanya untuk satu beasiswa. 11
4. Satu ID mahasiswa hanya bias mendaftarkan satu beasiswa. 1.4 Tujuan Tujuan rancangan sistem ini adalah membuat portal beasiswa yang berbasis sistem pendukung keputusan model fuzzy yang mampu menentukan penerimaan beasiswa secara efektif dan efisien disertai dengan penyediaan informasi beasiswa yang cepat, tepat dan akurat. 1.5 Manfaat Adapun manfaat dari pembuatan system ini adalah : 1. Menjadi alat bantu untuk memudahakan sebuah instansi dalam menyeleksi mahasiswa yang mendaftar beasiswa. 2. Menjadi alat bantu bagi mahasiswa untuk memudahkan mencari informasi beasiswa secara cepat hanya dalam satu portal saja. Dengan penyeleksian yang cepat dan tepat terhadap mahasiswa yang mendaftar beasiswa, maka secara tidak langsung penyeleksian ini bersifat adil karena sesuai dengan kriteria yang ditentukan sistem. 1.6 Metodologi Perancangan Metodologi yang digunakan dalam perancangan proyek ini adalah 1. Perencanaan Perencanaan dilakukan dengan mendefinisikan masalah, menentukan tujuan dan sasaran yang ingin dicapai, serta mempelajari prospeknya. Untuk itu dilakukan studi pada berbagai metode penyeleksian beasiswa yang ada, aplikasi portal beasiswa yang ada beserta kelebihan dan kekurangannya dan studi mengenai teknologi Internet yang akan digunakan untuk membangun aplikasi. 2. Analisis dan Perancangan Dilakukan analisis dan perancangan portal beasiswa berbasis sistem pendukung keputusan metode fuzzy. Analisis dan perancangan meliputi antarmuka pengguna, basis data, dan sistem pendukung keputusan dengan metode fuzzy, mulai dari peubah linguistik, fungsi keanggotaan, sampai mesin inferensi. 12
3. Desain Proses disain merupakan penuangan hasil analisis dalam bentuk rancangan. Rancangan meliputi disain arsitektur, alur, basis data, dan antarmuka aplikasi yang termuat pada poin Rancangan. 4. Implementasi dan Pengujian Rancangan yang telah dibuat diimplementasikan ke dalam bentuk program yang berbasis web dengan framework MVC yang dibangun dengan bahasa pemrograman PHP. Antarmuka dibangun dengan html dan css serta didukung oleh framework javascript jquery yang membuat web menjadi lebih interaktif. Basis data menggunakan MySQL, sedangkan untuk web server digunakan apache http server. . Setelah implementasi selesai dilakukan, selanjutnya dilakukan pengujian terhadap sistem untuk memastikan sistem memenuhi dan mampu menyelesaikan permasalahan yang ada.
13
BAB II LANDASAN TEORI 2.1 Decision Support System(Sistem Pendukung Keputusan) DSS adalah bagian dari sistem informasi berbasis komputer (termasuk sistem berbasis pengetahuan (manajemen pengetahuan)) yang dipakai untuk mendukung pengambilan keputusan dalam suatu organisasi atau perusahaan. DSS adalah sekumpulan prosedur berbasis model yang digunakan untuk pemrosesan data dan membantu seorang pengelola membuat sebuah pertimbangan dalam pembuatan keputusan (Little, 1970). sistem harus sederhana, mudah untuk diatur, dapat melakukan penyesuaian, dan interaktif. Moore dan Chang (1980) berpendapat bahwa konsep terstruktur pada umumnya tidak berarti; sebuah masalah dapat dideskripsikan sebagai setruktur atau tidak terstruktur hanya dalm kondisi tertentu. Maka mereka mendefinisikan bahwa DSS sebagai perluasan sistem yang mampu mendukung analisa data ad hoc dan permodelan keputusan, berorientasi pada perencanaan masa depan dan digunakan pada interval yang tidak terencana dan irregular. Bonczek et al. (1980) menyatakan bahwa sistem pendukung keputusan adalah sistem berbasis computer yang berisi tiga komponen yang interaktif yaitu language system (sebuah mekanisme untuk komunikasi antara user dan komponen dalam SPK), knowledge system (tempat penyimpanan dari permasalahan dengan domain knowledge yang terdapat dalam DSS dapat berupa data maupun prosedur), dan problem-processing system (penghubung antara dua komponen yang mampu melakukan manipulasi terhadap sebuah permasalah pada pengambilan keputusan). Konsep dari definisi ini sangat penting untk pemahaman hubungan antara DSS dan knowledge. Menurut Keen (1980), SPK adalah sebuah hasil dari pengembangan proses dimana DSS user pembangun SPK dan SPK itu sendiri mampu mempengaruhi satu sama lain yang merupakan hasil dari evolusi sitem dan pola yang digunakan. 14
Dari beberapa definisi di atas dilakukan perbandingan dengan menguji dari beberapa konsep untuk mendefinisikan DSS (table 1). Dapat kita lihat bahwa konsep dasar dari SPK telah dikembangkan dari berbagai persepsi definisi SPK dan ide bagaimana sebuah objektif dari SPK mencapai tujuan. Karakteristik Sistem Pendukung Keputusan SPK pada umunya dibangun untuk mendukung sebuah solusi dari certain problem dan untuk mengevaluasi sebuah probabilitas.
1. SPK dapat mendukung untuk membuat keputusan dengan permasalahan semi- terstrukur dan tidak terstruktur dengan memadukan penentuan manusia dan komputerisasi informasi. 2. Pendukung keputusan untuk berbagai level pengelolaan. 3. Dapat digunakan oleh secara individu dan berkelompok. 15
4. Sistem pendukung keputusan dapat membuat interdependen dan sekuensial keputusan. Keputusan dapat dilakukan sekali, berkali-kali, dan berulang kali. 5. Mendukung untuk semua fase dalam pengambilan keputusan : kecerdasan, desain, pemilihan, dan implementasi. 6. Mendukung berbagai proses dari pengambilan keputusan. 7. Pengambil keputusan harus reaktif dan dapat mengubah kondisi secara seketika dan sistem tersebut harus langsung dapat melakukan penyesuaian dengan perubahan yang terjadi. 8. Bersifat user-friendly , grafis yang baik, dan interaktif untuk meningkatkan efektivitas dari SPK. 9. Lebih mementingkan efektivitas (keakuratan, kecepatan, kualitas) daripada efisiensi (biaya pembuatan). 10. Pembuat keputusan harus memiliki kendali penuh terhadap setiap langkah dalam pengambilan keputusan. 11. End user dapat mengkonstruksi dan mengubah sistem. Sistem yang besar dapat dibangun dengan bantuan pakar sistem informasi. SPK digunakan untuk permodelan analisa pengambilan keputusan. 2.2 Logika Fuzzy Logika fuzzy digunakan ketika terjadi keadaan yang tidak pasti dalam kehidupan sehari- hari. Teknik ini menggunakan teori matematis dari fuzzy sets (Jamshidi et al., 1997;Klir dan Yuan, 1995;McNeill dan Freiberger,1993; Nguyen dan Walker,1999), yaitu simulasi proses dari human reasoning yang normal dengan menggunakan computer yang dapat bekerja secara logis dibandingkan dengan metode computer yang konvensional. Latar belakang dari pendekatan ini adalah bahwa dalam setiap pengambilan keputusan tidak selalu bernilai true atau false,namun ada juga daerah yang abu-abu, yakni daerah yang berada diantara nilai true dan false tersebut. Dengan menggunakan Logika Fuzzy, maka dalam menginterpretasikan persepsi manusia akan menjadi lebih efektif dan akurat pad a pengambilan keputusan, karena 16
tidak semua situasi bernilai 100% true dan false. Berbagai permasalahan dalam pengambilan keputusan tidak dapat menggunakan true dan false, namun membutuhkan model matematis. Contoh dari penjelasan di atas adalah fuzzy sets dalam mendeskripsikan tinggi badan dengan range 5 hingga 7 kaki(1kaki = 30cm, 1inch=2.54cm). Enrollment in local colleges, 2005 Height Proportions Vote For
510 0.05 511 0.10 6 0.60 61 0.15 62 0.10
Misal tinggi dari jack adalah 6kaki. Maka dengan menggunakan teori probabilitas, kita bisa menggunakkan kumulpatif distribusi probabilitas bahwa ada kemungkinan 75% bahwa Jack termasuk tinggi. Dalam logika fuzzy, maka dapat dikatakan bahwa knowledge-base bahwa Jack adalah tinggi (CF=0.75) dan pernyataan bahwa Jack adalah pendek (CF=0.15). Dalam teori probabilitas , jika probabilitas Jack adalah tinggi 0.75 maka probabilitas bahwa Jack adalah pendek 0.25.
17
2.3 CodeIgniter Codeigniter adalah sebuah framework untuk web yang dibuat dalam format PHP. Format yang dibuat ini selanjutnya dapat digunakan untuk membuat sistem aplikasi web yang kompleks. Codeigniter dapat mempercepat proses pembuatan web, karena semua class dan model yang dibuatkan sudah ada dan hanya tinggal menggunakan kembali pada aplikasi web yang akan dibuat. Sebelum melangkah lebih jauh perlu mengetahui definisi dari sebuah framework. Framework secara umum adalah sebuah susunan atau rangkaian kerja yang tetap dan dibuat sedemikian rupa yang kemudian dapat digunakan kembali dalam sebuah aktifitas kerja yang lain tapi tetap dalam satu area kerja dengan rangkaian kerja yang sebelumnya. Sistem Codeigniter Tampilan web adalah bagian akhir di manahalaman web tersebut tersebut terlihat pada browser. Tahapannya adalah sebagai berikut: 1. File [tampilan web/index.php] bertindak sebagai kontroler utama, yang berfungsi sebagai penampil halaman web yang memuat sumber kode utama yang berfungsi untuk menjalankan Codeigniter. 2. Bagian [Routing] berfungsi untuk menerima permintaan HTTP untuk mnentukan langkah selanjutnya diambil. 3. Jika file Chace ada, maka sistem langsung akan menuju bagian [Caching] yang kemudian akan ditampilkan pada halaman web, tanpa melalui sistem Codeigniter yang normal. 4. Pada bagian [Security], semua permintaan HTTP dan form yang dikirim oleh pengguna akan di saring untuk pengaman. 5. Kemudian data akan menuju bagian [Application controller] yang akan memunculkan model, library, script helper dan plugins dan semua sumber yang dibutuhkan untuk melengkapi permintaan tersebut. 6. Tampilan akhir [View] akan dikirim ke dalam browser untuk dilihat pada halam web. Jika [Caching] diterima maka tampilan akhir akan menjalani caching terlebih dahulu sehingga permintaan yang sama akan dapat berjalan lebih cepat pada browser.
18
2.4 Model- View-Controller Framework Codeigniter adalah framework yang berbasis Model-View-Contreller (MVC). MVC adalah sebuah software yang memisahkan antara aplikasi logika dengan presentasi pada halaman web. Sehingga hal ini akan menyebabkan halam web akan mangandung kode yang sedikit karena sudah terjadi pemisahan antara tampilan dan pemograman. Model merupakan struktur data. Secara spesifik class model akan mengandung fungsi kode yang akan membantu dalam segala proses yang berhubungan dengan database seperti memasukkan, mengedit, mendapatkan dan menghapus data dalam sebuah database. View merupakan informasi yang disampaikan ke pengguna. Sebuah view biasanya berupa halam web, tetapi dalam Codeigniter, sebuah view juga bisa berupa sebuah fragmen halaman seperti header dan footer. View juga bisa berupa halaman RSS atau jenis halam web yang lain. Controller merupakan sebuah perantara antara Model dan View dan semua sumber yang dibutuhkan untuk memproses permintaan HTTP dan dalam membuat halam web. Dalam menggunakan framework Codeigniter, kehadiran bagian Model tidak sering dibutuhkan, hanya dapat bekerja dengan bagian Controller dan View atau dapat dibangun fungsi sendiri secara minimal menggunakan dua bagian tersebut. Codeigniter diperbolehkan untuk membangun aplikasi sesuai kemampuan dan keinginan.
19
BAB III ANALISIS DAN PERANCANGAN SISTEM 3.1 Analisis Sistem Sebelum Portal Beasiswa KPU dengan Sistem Pendukung Keputusan Berbasis Fuzzy dikembangkan, terlebih dahulu dilakukan tahapan analisis sistem. Analisis sistem diperlukan untuk mengetahui kebutuhan pengguna dan sistem. Dengan adanya sistem, diharapkan pengembangan sistem akan berjalan sesuai yang direncanakan. 3.1.1 Analisis Masalah Beasiswa merupakan suatu permasalahan yang menyangkut dua sisi, yaitu penawar dan pengguna. Di sisi penawar/pemberi permasalahan yang sering terjadi adalah menawarkan beasiswa secara efektif dan masalah dalam menilai dan menentukan peraih beasiswa, sedangkan di sisi pemohon adalah mencari beasiswa. Pemecahan masalah adalah membuat sebuah portal yang berisi gabungan informasi-informasi beasiswa dari berbagai instansi dan universitas. Untuk pemecahan penilaian bisa dilakukan dengan memanfaatkan sistem pendukung keputusan yang mampu memberi nilai dan saran terhadap setiap pemohon beasiswa untuk kemudian dapat secara mudah dipilih oleh penawar beasiswa. Metode yang digunakan untuk sistem pendukung keputusan adalah logika fuzzy. Dengan bantuan mesin inferensi berupa syarat-syarat (selanjutnya disebut peubah penentu) dan basis aturan, penilaian menjadi suatu proses yang dapat diabaikan oleh penawar beasiswa sebelum pengambilan keputusan. 3.2 Perancangan Sistem Perancangan yang dimaksudkan di sini adalah perancangan sistem yang meliputi perancangan fungsional sistem yang ditunjukkan dalam Diagram Alir Data dan Use Case, perancangan basis data, dan perancangan antar muka.
20
3.2.1 Perancangan fungsional sistem Perancangan fungsionalitas sistem merupakan tahap awal untuk merancang semua proses dan aliran data yang terjadi dalam sistem. Diagram Konteks Diagram konteks atau yang dikenal sebagai Diagram Alir Data (DAD) Level 0 berfungsi untuk menunjukan ruang lingkup dan batasan dari sebuah sistem yang dibangun, serta menunjukan adanya interaksi sistem dengan entitas luar. Entitas luar yang berhubungan secara langsung dengan sistem ini adalah Pemberi beasiswa dan Mahasiswa. 1. Pemberi beasiswa Pemberi beasiswa memiliki peranan, yaitu: Memberikan masukan berupa informasi beasiswa serta manipulasi data beasiswa tergantung pada syarat yang ditentukan . Menentukan mahasiswa mana yang akan mendapatkan beasiswa. 2. Mahasiswa Mahasiswa memiliki peranan, yaitu: Memberikan masukan berupa data diri dan kriteria yang disyaratkan oleh pemberi beasiswa. Sistem akan memberikan keluaran berupa hasil apakah mahasiswa diterima atau ditolak.
21
Flowchart(Penawar Beasiswa dan Pemberi) Mulai Mendaftarkan beasiswa Login ke halaman beasiswa Menambah peubah penentu Mengubah peubah penentu Menghapus peubah penentu Menambah fungsi keanggotaan Mengubah fungsi keanggotaan Menghapus fungsi keanggotaan Mengubah aturan Menambah aturan Melihat hasil penilaian Melihat rincian data pemohon Menerima Menolak Selesai Mulai Mendaftarkan diri sebagai pemohon Login ke halaman pemohon Mengisi nilai untuk syarat-syarat Selesai
22
Diagram konteks dari portal beasiswa berbasis sistem pendukung keputusan model fuzzy ditunjukan oleh gambar berikut :
Gambar 3.1: Diagram Konteks Diagram Alir Data Level 1 Diagram alir data level 1 merupakan kelanjutan diagram konteks yang menggambarkan proses-proses yang berlangsung dalam sistem. Diagram alir data level 1 dapat dilihat pada gambar berikut ini.
23
Gambar 3.2: DAD Level 1
Use Case Use case adalah gambaran fungsionalitas dari suatu sistem, sehingga customer atau pengguna sistem paham dan mengerti mengenai kegunaan sistem yang akan dibangun.
Gambar 3.3: Use Case. 24
3.2.2 Perancangan Basis Data 1. Tabel Applicant Tabel applicant digunakan untuk menyimpan data-data dari pengaju beasiswa. Field-field yang terdapat pada table tersebut : No. Nama Field Tipe Data Keterangan 1. appId Int(11) Kode Identitas untuk calon penerima beasiswa(Primary Key) 2. appSchId Int(11) Kode Identitas untuk beasiswa yang diajukan (Foreign Key) 3. appUsername VarChar(50) Username yg di gunakan calon penerima beasiswa untuk login 4. appPwd VarChar(50) Berisi password untuk verifikasi. 5. appBirthdate Date Tanggal lahir 6. appDepartment VarChar(100) Asal jurusan 7. appEmail VarChar(100) Email 8. appFile VarChar(50) Untuk mengunggah file zip 9. appGuaName VarChar(100) Nama wali/orangtua 10. appRegDate Datetime Tanggal pendaftaran 11. appUniversity VarChar(100) Asal universitas 12. appGender Enum(laki- laki,perempuan) Jenis kelamin 13. appAddress VarChar(1000) Alamat 14. appTelNumber VarChar(20) Nomor yang dapat dihubungi
2. Tabel Scholarship Tabel scholarship digunakan untuk menyimpan data-data dari pemberi beasiswa. Field-field yang terdapat dalam tabel scholarship tersebut : 25
No Nama Field Tipe Data Keterangan 1. schId Int(11) Kode Identitas untuk pemberi beasiswa (Primary Key) 2. schContent Text Penjelasan tentang beasiswa dan syarat-syarat yang ditentukan 3. schEmail VarChar(100) Email 4. schExpDate Date Batas pendaftaran beasiswa 5. schPassword VarChar(50) Password untuk verifikasi login 6. schRegDate Datetime Tanggal Pendaftaran 7. schTitle VarChar(100) Judul beasiswa 8. schUsername VarChar(50) Username untuk login
3. Tabel RuleBase Table rulebase digunakan untuk menyimpan data aturan untuk fuzzy dari penentuan syarat oleh pemberi beasiswa. Field-field dari table rulebase adalah : No Nama Field Tipe Data Keterangan 1. rulBasId Int(11) Kode Identitas untuk rule base(Primary Key) 2. rulBasSchId Int(11) Kode Identitas untuk rule base pada beasiswa yang ditawarkan 3. rulBasAntecedent VarChar(50) Antecedent pada rule base yang ditetapkan 4. rulBasConsequent Int(11) Consequent pada rule base yang ditetapkan
4. Tabel Membershipfunction Tabel membershipfunction digunakan untuk menyimpan data-data dari rentang nilai Linguistik Variabel. Field-field dari table membershipfunction adalah : 26
No. Nama Field Tipe Data Keterangan 1. memFunId Int(11) Kode Identitas untuk membership function 2. memFunLinVarId Int(11) Kode Identitas untuk membership function tergantung pada Linguistic Variabel 3. memFunSchId Int(11) Kode Identitas membership function tergantung pada beasiswa yang di pilih 4. memFunName VarChar(50) Nama membership function 5. memFunValue1 Double Nilai titik pertama untuk membership function 6. memFunValue2 Double Nilai titik kedua untuk membership function 7. memFunValue3 Double Nilai titik ketiga untuk membership function 8. memFunValue4 Double Nilai titik keempat untuk membership function
5. Tabel LinguisticVariable Tabel LinguisticVariable digunakan untuk menyimpan data-data variable yang dijadikan penentu dalam syarat beasiswa yang telah ditentukan. Field-field dari table LinguisticVariable adalah :
No. Nama Field Tipe Data Keterangan 1. linVarId Int(11) Kode Identitas untuk Linguistik Variable 2. linVarSchId Int(11) Kode Identitas untuk Linguistik Variabel tergantung pada beasiswa yang di pilih 27
3. linVarName VarChar(50) Nama dari Linguistik Variabel 4. linVarType Enum(antecedent ,consequent) Tipe dari Linguistik Variable
6. Tabel Value Tabel value digunakan untuk menyimpan data-data dari nilai yang diperlukan sebagai penilaian oleh sistem dengan perhitungan fuzzy.Field-field dari table value adalah : No. Nama Field Tipe Data Keterangan 1. valAppId Int(11) Kode Identitas untuk table value 2. valLinVarId Int(11) Kode Identitas untuk Linguisitk Variabel untuk value 3. valSchId Int(11) Kode Identitas untuk beasiswa pada value 4. valValue Double Nilai dari value
3.2.3 Perancangan Antar Muka Antarmuka merupakan sebuah jembatan komunikasi antara sistem dan pengguna. Antar muka yang dirancang diharapkan mampu memudahkan pengguna dalam berinteraksi dengan sistem. Rancangan antar muka yang ada adalah sebagai berikut. Rancangan Antaramuka Halaman Pendaftaran Beasiswa Pendaftaran beasiswa berfungsi untuk para pemberi beasiswa untuk mendaftarkan beasiswa yang akan diberikan atau diumumkan. Pada antarmuka ini, pengguna diminta memasukkan Nama Pengguna, Kata Sandi, Email, Judul dari beasiswa, Tanggal Penutupan Pendaftaran, dan Isi yang berisi keterangan tentang beasiswa yang diberikan. Tombol Submit untuk memasukkan data-data yang telah diisikan. 28
Gambar 3.4: Rancangan antar muka halaman pendaftaran beasiswa. Rancagan Antarmuka Halaman Login Pengguna Halaman login pengguna berfungsi untuk login para pemberi beasiswa dan mahasiswa dan sebagai penga,an data, sehingga hanya pengguna yang mendapat akses yaitu pemberi beasiswa yang dapat melakukan manipulasi data yang ada disistem. Pada antarmuka ini, pengguna diminta memasukkan Nama Pengguna, Kata Sandi, dan memilih login sebagai mahasiswa atau pihak beasiswa. Tombol Submit untuk memeriksa masukan nama pengguna, kata sandi dan hak akses pengguna apliksi. Rancangn antarmuka halam pengguna ditunjukkan seperti gambar berikut:
Gambar 3.5: Rancangan antar muka halaman login pengguna. 29
Rancangan Antarmuka Halaman Tambah Peubah Penentu Halaman ini berfungsi untuk menentukan kriteria-kriteria yang digunakan untuk menilai kelayakan calon penerima beasiswa, misalnya indeks prestasi kumulatif. Pada antarmuka halaman peubah penentu ini pemberi beasiswa mengisi nama peubah penentu dan jenisnya, anteseden atau konsekuennya. Tombol Submit berfungsi untuk memasukkan data yang telah dimasukkan. Rancangn antarmuka halam pengguna ditunjukkan seperti gambar berikut:
Gambar 3.6: Rancangan antar muka halaman tambah peubah penentu. Rancangan Antarmuka Tambah Fungsi Keanggotaan Halaman Tambah Fungsi Keanggotaan berfungsi untuk menentukan fungsi-fungsi untuk setiap peubah penentu, misalnya fungsi rendah, sedang, dan tinggi untuk indeks prestasi kumulatif. Pada antarmuka ini, pemberi beasiswa memilih peubah penentu yang ingin ditentukan fungsi keanggotaannya, kemudian masukkan nama variable ligustiknya, nilai-nilai variable lingustiknya dari batas bawah sampai batas atas, serta tipe fungsi keanggotaannya apakah semakin besar nilainya maka semakin baik atau semkin kecil nilainya maka semakin baik. Tombol Submit berfungsi untuk memasukkan data-data yang telah diisi ke database. Rancangn antarmuka halam pengguna ditunjukkan seperti gambar berikut:
30
Gambar 3.7: Rancangan antar muka tambah fungsi keanggotaan. Rancangan Antarmuka Halaman Tambah Aturan Halaman tambah aturan ini berfungsi untuk menentukan aturan-aturan yang digunakan untuk menilai kelayakan calon penerima beasiswa, misalnya jika indeks prestasi kumulatif rendah, kelayakan rendah. Pada antarmuka ini, pemberi beasiswa dapat menambah beberapa aturan bedasarkan banyaknya pasangan fungsi keanggotaan yang telah dibuat sebelumnya. Misalnya, pengguna membuat 2 pasangan anteseden dan konsekuen pada fungsi keanggotaannya maka pada halaman basis data ini ditentukan 2 aturan juga. Berikut gambar rancangan antarmuka halaman basis aturan ketika proses penambahan aturan:
Gambar 3.8: Rancangan antar muka halaman tambah aturan. 31
Rancangan Antarmuka Pendaftaran Mahasiswa/i Halaman Pendaftaran Mahasiswa/i berfungsi untuk para mahasiswa untuk mendaftar atau mencari beasiswa. Pada antarmuka ini, mahasiswa diminta memasukkan Nama Pengguna, Kata Sandi, Jurusan yang ditempuh, Email, Berkas yang merupakan data-data tambahkan yang diminta atau disyaratkan oleh pemilik beasiswa dalam bentuk .zip, Tanggal Lahir, Institusi/Universitas asal, Nama Wali, Alamat sekarang, dan nomor telepon. Tombol Submit untuk memasukkan data-data yang telah diisikan.
Gambar 3.9: Rancangan antar muka halaman pendaftaran mahasiswa/i. Setelah mendaftarkan diri pada sebuah beasiswa, maka kembali ke halaman Login kemudian mahasiswa memasukkan persyaratan-persyaratan lain yang ditentukan oleh pemilik beasiswa. Indeks Prestasi Kumulatif misalnya. 32
IP
Gambar 3.10: Rancangan antar muka halaman mahasiswa/i.
Submit 33
BAB IV IMPLEMENTASI 4.1 Implementasi Hasil implementasi rancangan direncanakan terdiri dari beberapa halaman yang berfungsi sebagai penghubung antar pengguna dan sistem. Setiap halaman dirancang sesuai dengan fungsi yang dibutuhkan. Halaman Publik
Gambar 4.1: halaman publik. 34
Halaman publik menjadi halaman utama dari Portal Beasiswa KPU. Pada halaman ini, pengunjung bisa menawarkan beasiswa ke pengunjung lain melalui tautan daftar beasiswa baru. Untuk pengunjung yang telah terdaftar di Portal Beasiswa KPU, bisa mengunjungi halaman pengguna melalui tautan yang disediakan. Selain itu, di halaman publik ditampilkan informasi beasiswa-beasiswa yang terdaftar di Portal Beasiswa KPU. Di setiap informasi terdapat tautan yang mengarahkan pengunjung ke halaman pendaftaran dan hasil penilaian dari beasiswa tersebut. Halaman Pendaftaran Mahasiswa/i
Gambar 4.2: halaman pendaftaran mahasiswa/i. Seperti dijelaskan sebelumnya, terdapat tautan pendaftaran bagi mahasiswa/i (tidak harus, bisa juga tingkatan lainnya) untuk setiap beasiswa. Tautan ini akan mengarahkan pemohon 35
beasiswa ke halaman seperti terlihat di gambar 2. Pada halaman ini, seorang pemohon mengisikan semua data yang diminta untuk dapat mendaftarkan diri ke beasiswa yang dikehendaki. Halaman Hasil (Publik)
Gambar 4.3: halaman hasil (publik). Halaman ini berfungsi seperti pengumuman untuk setiap beasiswa yang terdaftar. Di halaman ini dapat dilihat pemohon-pemohon beasiswa mana yang diterima sebagai peraih beasiswa dan ditolak. Selain itu, jika data pemohon-pemohon belum diproses, maka akan ditampilkan sebagai dalam pertimbangan. Data yang ditampilkan diurut berdasarkan nama pengguna dari pemohon-pemohon beasiswa. Halaman Pendaftaran Beasiswa 36
Gambar 4.4: halaman pendaftaran beasiswa. Pengunjung yang tertarik untuk menawarkan beasiswa bisa mengisi data yang dibutuhkan pada halaman pendaftaran beasiswa agar beasiswa ditampilkan di halaman publik dari Portal Beasiswa KPU, sehingga pengunjung lain yang tertarik terhadap beasiswa yang ditawarkan bisa mendaftarkan diri. Informasi utama yang dibutuhkan untuk menawarkan beasiswa adalah judul, informasi (syarat-syarat, dsb.), dan tanggal penutupan pendaftaran beasiswa. Halaman Login 37
Gambar 4.5: halaman login. Halaman login berfungsi sebagai otentikasi pengguna terdaftar, baik itu penawar beasiswa maupun pemohon beasiswa. Data yang digunakan untuk otentikasi hanya nama pengguna dan kata sandi yang dipilih saat pendaftaran.
38
Halaman Beasiswa
Gambar 4.6: halaman beasiswa. 39
Gambar 4.7: halaman beasiswa (deskripsi).
Gambar 4.8: halaman beasiswa (ganti kata sandi). Halaman untuk penawar beasiswa dapat dibagi menjadi tiga bagian, yaitu bagian untuk penilaian (syarat-syarat, basis aturan, dan penilaian), bagian untuk deskripsi yang berfungsi sebagai tempat pengisian informasi yang ditampilkan ke publik, dan bagian untuk mengganti kata sandi.
40
Halaman Peubah Penentu
Gambar 4.9: halaman peubah penentu.
Gambar 4.10: halaman tambah/ubah peubah penentu. Di halaman inilah seorang penawar beasiswa menentukan syarat-syarat yang digunakan sebagai penilaian, misalnya indeks prestasi kumulatif dan penghasilan orang tua, dan hasil, 41
misalnya kelayakan. Pada halaman ini, penawar beasiswa dapat menambah, mengubah, dan menghapus syarat dan hasil yang digunakan untuk penilaian. Halaman Fungsi Keanggotaan
Gambar 4.11: halaman fungsi keanggotaan. 42
Gambar 4.12: halaman tambah/ubah fungsi keanggotaan.
Gambar 4.13: halaman fungsi keanggotaan (pemula). 43
Gambar 4.14: halaman tambah/ubah fungsi keanggotaan (pemula). Fungsi keanggotaan berfungsi seperti rentang nilai untuk syarat dan hasil yang ditentukan di halaman peubah penentu, misalnya indeks prestasi kumulatif memiliki rentang 0-4. Sama seperti halaman peubah penentu, di sini penawar beasiswa dapat menambah, mengubah, dan menghapus fungsi keanggotaan.
44
Halaman Basis Aturan
Gambar 4.15: halaman basis aturan.
Gambar 4.16: halaman tambah aturan. Setelah menentukan syarat-syarat, hasil, dan rentang nilainya, penawar beasiswa diharuskan untuk membuat basis aturan yang digunakan untuk penilaian, misalnya jika indeks 45
prestasi kumulatif tinggi dan penghasilan orang tua rendah, kelayakan tinggi. Di halaman ini, penawar beasiswa hanya dapat menambah dan menghapus aturan, tidak dapat mengubah. Halaman Hasil (Beasiswa)
Gambar 4.17: halaman hasil (beasiswa). Di halaman ini, penawar beasiswa mendapatkan hasil penilaian setiap pemohon oleh sistem. Selanjutnya, untuk menerima atau menolak seorang pemohon, dilakukan pada tautan yang terdapat di kolom aksi. Selain itu, di halaman ini, penawar beasiswa dapat melihat rincian informasi setiap pemohon beasiswa.
46
Halaman Pemohon
Gambar 4.18: halaman pemohon.
Gambar 4.19: halaman pemohon (ganti kata sandi). Tidak jauh berbeda dengan halaman beasiswa, halaman pemohon dibagi menjadi tiga bagian juga, yaitu bagian untuk pengisian nilai yang digunakan sebagai syarat-syarat, bagian pengisian rincian informasi, dan bagian ganti kata sandi. 47
BAB V PENGUJIAN SISTEM 5.1 Pengujian Sistem Pengujian sistem dilakukan pada setiap halaman yang dibangun di implementasi. Pengujian bertujuan untuk memastikan halaman yang dibangun dapat bekerja dengan baik dan sesuai dengan fungsi yang diharapkan. Pengujian dimulai dengan melakukan pendaftaran beasiswa ke Portal Beasiswa KPU hingga melihat hasil dari penilaian sistem.
48
Gambar 5.1: pendaftaran beasiswa baru.
Gambar 5.2: notifikasi jika nama pengguna telah dipakai. Pertama-tama, dilakukan pendaftaran beasiswa baru. Pada gambar terlihat notifikasi bahwa semua data diperlukan, sehingga harus diisi semuanya. Jika tidak diisi semuanya, pendaftaran tidak dapat dilanjutkan. Selain itu, nama pengguna yang dipilih harus berbeda. Setelah sukses mendaftar, dicoba login melalui halaman login. 49
Gambar 5.3: halaman login.
Gambar 5.4: halaman login jika terjadi kesalahan.
50
Gambar 5.5: halaman beasiswa. Jika login sebagai beasiswa sukses, maka akan terlihat halaman seperti pada gambar 5. Selanjutnya, dapat dilihat pada gambar 6 bahwa informasi yang disertakan pada saat pendaftaran telah tercatat di basis data sistem.
Gambar 5.6: halaman beasiswa (deskripsi). Selanjutnya, dilakukan penambahan syarat-syarat yang digunakan untuk penilaian. Dapat dilihat pada gambar 7 dilakukan pengisian, kemudian pada gambar 8, terlihat peubah penentu telah terdaftar. Selain itu, pada gambar 9 dilakukan pengubahan dan pada gambar 10 terlihat pengubahan berhasil dilakukan.
Gambar 5.7: penambahan peubah penentu. 51
Gambar 5.8: halaman peubah penentu.
Gambar 5.9: pengubahan peubah penentu.
Gambar 5.10: halaman peubah penentu. Setelah peubah penentu diisi, langkah yang dilakukan adalah menentukan fungsi keanggotaan untuk setiap peubah penentu seperti disajikan pada gambar 11. Pada gambar 12, terlihat fungsi keanggotaan untuk IPK dengan nama rendah telah berhasil ditentukan. 52
Gambar 5.11: penambahan fungsi keanggotaan.
Gambar 5.12: halaman fungsi keanggotaan. Setelah fungsi-fungsi keanggotaan ditentukan, selanjutnya adalah menentukan basis aturan seperti pada gambar 13 (pada saat melakukan penambahan) dan gambar 14 (setelah penambahan).
Gambar 5.13: penambahan aturan. 53
Gambar 5.14: penambahan gagal jika aturan telah ada.
Gambar 5.15: halaman basis aturan. Setelah langkah-langkah di atas, dilakukan pendaftaran untuk pemohon agar dapat dilihat halaman hasil. 54
Gambar 5.16: pendaftaran pemohon. Jika berkas yang disertakan tidak dalam format *.zip, yang terjadi adalah pesan berupa Gagal mengunggah berkas, seperti terlihat pada gambar 17. Jika nama pengguna telah dipakai, gambar 18 akan terlihat pada layar. 55
Gambar 5.17: notifikasi jika berkas tidak berformat *.zip. 56
Gambar 5.18: notifikasi jika nama pengguna telah dipakai. Jika sukses mendaftar, dilakukan login dengan jenis mahasiswa, nama pengguna dan kata sandi.
Gambar 5.19: halaman login. Setelah login, pemohon beasiswa akan diminta untuk mengisi data yang diperlukan untuk penilaian beasiswa yang diminati. Seperti pada gambar 20, diminta data berupa IPK dan Penghasilan orang tua. Selain itu, data yang dimasukkan saat pendaftaran terlihat sudah tercatat di basis data sistem. 57
Gambar 5.20: halaman pemohon. Setelah terdapat pemohon, halaman hasil pada penawar beasiswa akan langsung melakukan penilaian sesuai dengan data yang diberikan setiap pemohon, seperti pada gambar 21 dan 22. Untuk menerima seorang pemohon sebagai peraih beasiswa, tinggal memilih diterima. Begitu pula untuk menolak, tinggal memilih ditolak. Pada gambar 23, terlihat kidung yang sebelumnya (gambar 21) dalam pertimbangan diterima menjadi peraih beasiswa.
Gambar 5.21: halaman hasil (beasiswa). 58
Gambar 5.22: halaman rincian hasil.
Gambar 5.23: halaman hasil (beasiswa) setelah kidung diterima. Selain itu, pengunjung dapat melihat hasil penilaian juga, namun bedanya halaman hasil untuk pengunjung tidak menyertakan hasil penilaian. 59
Gambar 5.24: halaman hasil (publik). Selain dari aspek rancangan, pengujian juga dilakukan terhadap penilaian. Terlihat pada gambar 23, hasil penilaian beberapa pemohon beasiswa dengan masukan sebagai berikut: Nama IPK Penghasilan orang tua Kelayakan kidung 4 0 10 uki 1.25 37500000 6.25 Poerwiyanto 3.75 500000 5 Tabel 1: Pengujian penilaian.
60
BAB VI KESIMPULAN 6.1 Kesimpulan Berdasarkan penjelasan dalam bab-bab sebelumnya dan hasil implementasi dan pengujian, dapat diambil kesimpulan sebagai berikut. 1. Portal Beasiswa KPU mampu menjadi sebuah tempat untuk menampung informasi beasiswa-beasiswa yang ditawarkan berbagai institusi, sehingga memudahkan pemohon beasiswa dalam mencari mengenai informasi tentang beasiswa-beasiswa baru yang ditawarkan. 2. Portal Beasiswa KPU juga memudahkan penawar beasiswa yaitu dengan menilai pemohon-pemohon beasiswa, sehingga yang perlu dilakukan penawar hanya mengambil keputusan.
61
DAFTAR PUSTAKA Anon., n. d., Sistem Pendukung Keputusan, http://id.wikipedia.org/ wiki/Sistem_pendukung_keputusan. Basuki, A. P., 2010, Membangun Web Berbasis PHP dengan Framework Codeigniter, Penerbit Lokomedia, Yogyakarta. Hidayati, E., 2010, Sistem Pendukung Keputusan Berbasis Logika Fuzzy untuk Analisis Kelayakan Kredit, Pendahuluan, Skripsi, Jurusan Matematika, Institut Teknologi Sepuluh Nopember. Turban, E., Aronson, J. E., dan Bolloju, N., 2001, Decision Support Systems and Intelligent Systems, Prentice Hall, Upper Saddle River, New Jersey. Wiswakarma, K., 2010, 9 Langkah Menjadi Master Framework Codeigniter, Penerbit Lokomedia, Yogyakarta.
62
LAMPIRAN KODE CONTROLLER applicant.php <?php Class applicant extends CI_Controller{ function __construct(){ parent::__construct(); if($this->session->userdata("type")!="applicant"){ header("location:".base_url()."index.php/login"); } }
function index($e=""){ $data["e"]=$e; $this->load->model("mApplicant"); $data["applicant"]=$this->mApplicant->retrieveById($this->session- >userdata("id")); $this->load->model("mLinguisticVariable"); $data["linVariable"]=$this->mLinguisticVariable- >retrieveBySchIdType($data["applicant"][0]->appSchId); $data["username"]=$this->session->userdata("username"); foreach($data["linVariable"] as $row){ $this->load->model("mValue"); $data["value"][$row->linVarId]=$this->mValue- >retrieveByAppIdLinVarId($this->session->userdata("id"),$row->linVarId); } $this->loadView($data); }
function loadView($data){ $this->load->view("vA"); $this->load->view("vApplicant",$data); 63
function index(){ $this->load->model('mLinguisticVariable'); $linVariable=$this->mLinguisticVariable->retrieve($this->session- >userdata("id")); $this->load->model("mMembershipFunction"); $data["e"]=""; foreach($linVariable as $row){ $couMemFunction=$this->mMembershipFunction->couMemFunction($row- >linVarId); if($couMemFunction[0]->count==0){ $data["e"]="Ada peubah penentu yang belum memiliki fungsi keanggotaan!"; } } $data["memFunction"]=$this->mMembershipFunction->retrieve($this->session- >userdata("id")); $this->loadView($data); }
function add($e=""){ $data["act"]="add"; $data["e"]=$e; $this->load->model("mLinguisticVariable"); $data["linVariable"]=$this->mLinguisticVariable->retrieve($this->session- >userdata("id")); $this->loadView($data); }
function delete($id,$schId){ $this->load->model("mMembershipFunction"); $this->mMembershipFunction->delete($id,$this->session->userdata("id")); header("location:".base_url()."index.php/membershipfunction"); } 72
function index(){ $this->load->model('mLinguisticVariable'); $data["linVariable"]=$this->mLinguisticVariable->retrieve($this->session- >userdata("id")); $this->load->model("mMembershipFunction"); $data["e"]=""; foreach($data["linVariable"] as $row){ $couMemFunction=$this->mMembershipFunction->couMemFunction($row- >linVarId); if($couMemFunction[0]->count==0){ $data["e"]="Ada peubah penentu yang belum memiliki fungsi keanggotaan!"; } $data["memFunction"][$row->linVarId]=$this->mMembershipFunction- >retrieve1($row->linVarId,$this->session->userdata("id")); } $this->loadView($data); }
function delete($linVarId,$schId){ $this->load->model("mMembershipFunction"); $this->mMembershipFunction->deleteByLinVarId($linVarId,$this->session- >userdata("id")); header("location:".base_url()."index.php/membershipfunction1"); }
function edit($linVarId,$memFunId,$e=""){ $data["act"]="edit"; $data["e"]=$e; $this->load->model("mLinguisticVariable"); $data["linVariable"]=$this->mLinguisticVariable->retrieveById($linVarId); $this->load->model("mMembershipFunction"); $data["memFunction"]=$this->mMembershipFunction->retrieveById($memFunId); $this->loadView($data); }
function iu($memFunId=""){ $this->load->library("form_validation"); $this->form_validation->set_rules("value1","value1","numeric"); $this->form_validation->set_rules("value2","value2","numeric"); if($this->form_validation->run()==false|| $this->input->post("value1")>$this->input->post("value2")){ if($id==""){ $this->add("Semua masukan harus diisi dan nilai1<=nilai2!"); }else{ $this->edit($id,"Semua masukan harus diisi dan nilai1<=nilai2!"); } 76
LAMPIRAN KODE MODEL mApplicant.php <?php Class mApplicant extends CI_Model{ function accept($id){ $this->db->query("update applicant set appStatus='diterima' where appId='".$id."'"); return; }
function authenticate($data){ $query=$this->db->query("select * from applicant where appUsername='".$data["username"]."' and appPwd='".$data["password"]."'"); return $query->result(); }
function couAccepted($schId){ $query=$this->db->query("select count(*) as count from applicant where appSchId='".$schId."' and appStatus='diterima'"); return $query->result(); }
function couApplicant($schId){ $query=$this->db->query("select count(*) as count from applicant where appSchId='".$schId."'"); return $query->result(); }
function insert($data){ $this->db->insert("applicant",$data); return; 93
}
function reject($id){ if($id==""){ $this->db->query("update applicant set appStatus='ditolak' where appStatus='belum diketahui'"); }else{ $this->db->query("update applicant set appStatus='ditolak' where appId='".$id."'"); } return; }
function retrieve(){ $query=$this->db->query("select * from applicant"); return $query->result(); }
function retrieveById($id){ $query=$this->db->query("select * from applicant where appId='".$id."'"); return $query->result(); }
function retrieveBySchId($schId){ $query=$this->db->query("select * from applicant where appSchId='".$schId."' order by appUsername"); return $query->result(); }
function retrieveByUsername($username){ 94
$query=$this->db->query("select * from applicant where appUsername='".$username."'"); return $query->result(); }
function update($data){ $this->db->where("appId",$data["appId"]); $this->db->update("applicant",$data); return; }
function updatePassword($data){ $this->db->where("appId",$data["appId"]); $this->db->update("applicant",$data); return; } } ?> mLinguisticVariable.php <?php Class mApplicant extends CI_Model{ function accept($id){ $this->db->query("update applicant set appStatus='diterima' where appId='".$id."'"); return; }
function authenticate($data){ $query=$this->db->query("select * from applicant where appUsername='".$data["username"]."' and appPwd='".$data["password"]."'"); return $query->result(); } 95
function couAccepted($schId){ $query=$this->db->query("select count(*) as count from applicant where appSchId='".$schId."' and appStatus='diterima'"); return $query->result(); }
function couApplicant($schId){ $query=$this->db->query("select count(*) as count from applicant where appSchId='".$schId."'"); return $query->result(); }
function insert($data){ $this->db->insert("applicant",$data); return; }
function reject($id){ if($id==""){ $this->db->query("update applicant set appStatus='ditolak' where appStatus='belum diketahui'"); }else{ $this->db->query("update applicant set appStatus='ditolak' where appId='".$id."'"); } return; }
function retrieve(){ $query=$this->db->query("select * from applicant"); 96
return $query->result(); }
function retrieveById($id){ $query=$this->db->query("select * from applicant where appId='".$id."'"); return $query->result(); }
function retrieveBySchId($schId){ $query=$this->db->query("select * from applicant where appSchId='".$schId."' order by appUsername"); return $query->result(); }
function retrieveByUsername($username){ $query=$this->db->query("select * from applicant where appUsername='".$username."'"); return $query->result(); }
function update($data){ $this->db->where("appId",$data["appId"]); $this->db->update("applicant",$data); return; }
function updatePassword($data){ $this->db->where("appId",$data["appId"]); $this->db->update("applicant",$data); return; } } ?> 97
mMembershipFunction.php <?php Class mMembershipFunction extends CI_Model{ function couMemFunction($linVarId){ $query=$this->db->query("select count(*) as count from membershipfunction where memFunLinVarId='".$linVarId."'"); return $query->result(); }
function delete($id,$schId){ $this->db->query("delete from membershipfunction where memFunId=".$id); $this->db->query("delete from rulebase where rulBasSchId='".$schId."'"); return; }
function deleteByLinVarId($linVarId,$schId){ $this->db->query("delete from membershipfunction where memFunLinVarId=".$linVarId); $this->db->query("delete from rulebase where rulBasSchId='".$schId."'"); return; }
function insert($data){ $this->db->query("insert into
$query=$this->db->query("select * from linguisticvariable,membershipfunction where linVarId=memFunLinVarId and linVarSchId='".$schId."' order by linVarType"); return $query->result(); }
function retrieve1($linVarId,$schId){ $query=$this->db->query("select * from linguisticvariable,membershipfunction where linVarId='".$linVarId."' and linVarId=memFunLinVarId and linVarSchId='".$schId."' order by linVarType,memFunId"); return $query->result(); }
function retrieveById($id){ $query=$this->db->query("select * from membershipfunction where memFunId='".$id."'"); return $query->result(); }
function update($data,$id){ $this->db->query("update membershipfunction set memFunLinVarId='".$data["linVarId"]."',memFunSchId='".$data["schId"]."',memFunName='". $data["name"]."',memFunValue1='".$data["value1"]."',memFunValue2='".$data["value2"]."' ,memFunValue3='".$data["value3"]."',memFunValue4='".$data["value4"]."' where memFunId='".$id."'"); return; } } ?> mRuleBase.php <?php Class mRuleBase extends CI_Model{ function couAntecedent($antecedent){ $query=$this->db->query("select count(*) as count from rulebase where rulBasAntecedent='".$antecedent."'"); return $query->result(); 99
}
function delete($id){ $this->db->query("delete from rulebase where rulBasId='".$id."'"); return; }
function insert($data){ $this->db->query("insert into rulebase(rulBasSchId,rulBasAntecedent,rulBasConsequent)
function retrieve($schId){ $query=$this->db->query("select * from rulebase where rulBasSchId='".$schId."'"); return $query->result(); } } ?> mScholarship.php <?php Class mScholarship extends CI_Model{ function authenticate($data){ $query=$this->db->query("select * from scholarship where schPassword='".$data["password"]."' and schUsername='".$data["username"]."'"); return $query->result(); }
function insert($data){ $this->db->query("insert into 100
function retrieve(){ $query=$this->db->query("select * from scholarship order by schRegDate desc"); return $query->result(); }
function retrieveById($id){ $query=$this->db->query("select * from scholarship where schId='".$id."'"); return $query->result(); }
function retrieveByUsername($username){ $query=$this->db->query("select * from scholarship where schUsername='".$username."'"); return $query->result(); }
function update($data){ $this->db->query("update scholarship set schContent='".$data["content"]."',schEmail='".$data["email"]."',schExpDate='".$data["e xpdate"]."',schRegDate=now(),schTitle='".$data["title"]."' where schId='".$data["schId"]."'"); return; }
function updatePassword($data){ 101
$this->db->where("schId",$data["schId"]); $this->db->update("scholarship",$data); return; } } ?> mValue.php <?php Class mValue extends CI_Model{ function insert($data){ $this->db->insert("value",$data); return; }
function retrieveApplicant($schId){ $query=$this->db->query("select valAppId from value where valSchId='".$schId."' group by valAppId"); return $query->result(); }
function retrieveByAppIdLinVarId($appId,$linVarId){ $query=$this->db->query("select * from value where valAppId='".$appId."' and valLinVarId='".$linVarId."'"); return $query->result(); }
function update($data){ $this->db->where("valAppId",$data["valAppId"]); $this->db->where("valLinVarId",$data["valLinVarId"]); $this->db->update("value",$data); return; } } 102
}); </script> </head> <div class="div2"> <h3>Selamat Datang, <?php echo $username; ?></h3><hr /> <p class='label1'><?php echo $e; ?></p> <table class="table1" width="600px"> <tr> <td colspan="2" style="text-align:center;"><a href="public1">halaman publik</a></td> </tr> <tr> <td>Langkah ke-1</td> <td><?php if($couApplicant[0]->count>0){ echo " peubah penentu"; }else{ echo " <a href='linguisticvariable'>peubah penentu</a>"; } ?> </td> </tr> <tr> <td colspan="2"><p style="color:#ff0000">Hati-hati! Peubah penentu tidak dapat diubah jika ada mahasiswa yang telah mendaftar.</p><img src="<?php echo base_url()."pictures/information.png"; ?>" />Keterangan: menentukan kriteria-kriteria yang digunakan untuk menilai kelayakan calon penerima beasiswa, misalnya indeks prestasi kumulatif.</td> </tr> <tr> <td>Langkah ke-2</td> <td><a href="membershipfunction">fungsi keanggotaan</a>/<a href="membershipfunction1">fungsi keanggotaan (pemula)</a></td> 134
</tr> <tr> <td colspan="2"><img src="<?php echo base_url()."pictures/information.png"; ?>" />Keterangan: menentukan fungsi-fungsi untuk setiap peubah penentu, misalnya fungsi rendah, sedang, dan tinggi untuk indeks prestasi kumulatif. Untuk pemula, hanya perlu menentukan batas bawah dan batas atas.</td> </tr> <tr> <td>Langkah ke-3</td> <td><a href="rulebase">basis aturan</a></td> </tr> <tr> <td colspan="2"><img src="<?php echo base_url()."pictures/information.png"; ?>" />Keterangan: menentukan aturan-aturan yang digunakan untuk menilai kelayakan calon penerima beasiswa, misalnya jika indeks prestasi kumulatif rendah, kelayakan rendah.</td> </tr> <tr> <td>Langkah ke-4</td> <td><a href="result">hasil</a></td> </tr> <tr> <td colspan="2"><img src="<?php echo base_url()."pictures/information.png"; ?>" />Keterangan: melihat data diri dan hasil penilaian setiap calon penerima beasiswa.</td> </tr> <tr> <td colspan="2" style="text-align:center;"><a href="login/logout">logout</a></td> </tr> </table> <h3>Deskripsi</h3><hr /> <?php echo form_open("scholarship/u")."<table class='table1'> <tr> 135