Anda di halaman 1dari 127

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 1

STMIK Pelita Nusantara Medan


SISTEM
PENDUKUNG
KEPUTUSAN
Penilaian Hasil Belajar Dengan
Metode Topsis

Murni Marbun
Bosker Sinaga

CV.Rudang Mayang

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 2


STMIK Pelita Nusantara Medan
BUKU AJAR SISTEM PENDUKUNG KEPUTUSAN PENILAIAN HASIL
BELAJAR DENGAN METODE TOPSIS

Penulis:
Murni Marbun
Bosker Sinaga

ISBN: 978-602-51936-1-3

Editor:
Naetty Siahaan
Tince Flora Manurung

Penyunting:
Hengki Tamando Sihotang

Desain Sampul dan tata Letak:


Hengki Tamando Sihotang

Penerbit:
CV.Rudang Mayang

Redaksi:
Jl. Prof. T. Zulkarnain No.3 Medan
Sumatera Utara 20154
Email : hengki_tamando@yahoo.com
Telp/HP : 085297583991

Distributor Tunggal:
CV Rudang Mayang
Jl. Prof. T. Zulkarnain No.3 Medan
Sumatera Utara 20154
Email : hengki_tamando@yahoo.com

Telp/HP : 085297583991

Cetak Pertama:-

Hak Cipat dilindungi Undang-undang


Dilarang memperbanyak karya tulis ini dalam bentuk apapun dan dengan cara
Apapun tanpa ijin tertulis dari penerbit

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 3


STMIK Pelita Nusantara Medan
KATA PENGANTAR

Puji syukur ke hadirat Tuhan Yang Maha Kuasa, yang telah memberikan
rahmat-Nya sehingga Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar
untuk mahasiswa/i Program Studi Teknik Informatika STMIK Pelita Nusantara Medan
dapat diselesaikan dengan sebaik-baiknya.
Buku Ajar ini dibuat sebagai penunjang mata kuliah Fuzzy Logic dan Sistem
Pendukung Keputusan untuk mahasiswa/i Program Studi Teknik Informatika STMIK
Pelita Nusantara Medan. Buku Ajar ini diharapkan dapat membantu mahasiswa/i dalam
memahami penggunaan aplikasi sistem pendukung keputusan dan pemahaman tentang
salah satu metode penyelesaian sistem pendukung keputusan dengan metode TOPSIS.
Penyususun Buku ajar ini masih jauh dari sempurna, oleh karena itu penyusun
mengharapkan kritik dan saran yang membangun guna penyempurnaan Buku ajar ini
dimasa yang akan datang.
Akhir kata, penyusun mengucapkan banyak terima kasih kepada STMIK Pelita
Nusantara Medan dan semua pihak yang telah membantu penyelesaian Buku ajar ini,
baik secara langsung maupun tidak langsung.

Medan, April 2018


Penulis

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 4


STMIK Pelita Nusantara Medan
DAFTAR ISI

KATA PENGANTAR ...................................................................................... i


DAFTAR ISI .................................................................................................... ii
DAFTAR TABEL ............................................................................................ iv
DAFTAR GAMBAR ........................................................................................ v

BAB I PENDAHULUAN........................................................................... 1
1.1 Sistem Pendukung Keputusan ................................................... 1
1.2 Konsep Pengambilan Keputusan .............................................. 1
1.3 Defenisi Keputusan ................................................................... 2
1.4 Karakteristik dan Kemampuan SPK ......................................... 8
1.5 Keuntungan Pengguna SPK ...................................................... 9
1.6 Komponen SPK......................................................................... 10

BAB II LOGIKA FUZZY ........................................................................... 12


2.1 Logika Fuzzy............................................................................. 12
2.2 MultiAtribute Decisioan Making (MADM) ............................... 17

BAB III TOPSIS ........................................................................................... 21

BAB IV UNIFIED METHOD LANGUAGE (UML) ................................ 27


4.1 Use Case Diagram .................................................................... 27
4.2 Sequence Diagram ................................................................... 29
4.3 Activity Diagram...................................................................... 30
4.4 Class Diagram .......................................................................... 31

BAB V PENILAIAN HASIL BELAJAR DENGAN METODE TOPSIS 33


5.1 Perubahan Nilai Ke dalam Bentuk Persentase ......................... 33
5.2 Penerapan Fuzzy Multi Atribute Decision Making (FMADM) 33
5.3 Langkah-Langkah Penentuan Nilai Dengan Metode TOPSIS . 38

BAB VI PERANCANGAN SISTEM ......................................................... 45


6.1 Desaian Sistem ......................................................................... 45
6.2 Desain Tabel Database ............................................................. 53
6.3 Desan User Interface ................................................................ 56

BAB VII IMPLEMENTASI SISTEM .......................................................... 63


7.1 Form Login ............................................................................. 63
7.2 Form Menu Utama.................................................................. 64
7.3 Form Data Mahasiswa ............................................................ 67
7.4 Form Dosen ............................................................................ 72
7.5 Form Mata Kuliah .................................................................. 77
7.6 Form Atur Kelas .................................................................... 83
7.7 Form Isi Nilai.......................................................................... 89
7.8 Form Persentase Kelas............................................................ 94
7.9 Form Fuzzy ............................................................................. 96

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 5


STMIK Pelita Nusantara Medan
7.10 Forma Bobot Referensi ........................................................... 100
7.11 Form TOPSIS ......................................................................... 101
7.12 Form Pergantian User ............................................................. 113

DAFTAR PUSTAKA ..................................................................................... 118

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 6


STMIK Pelita Nusantara Medan
DAFTAR TABEL

Tabel 4.1 Simbol Usecase Diagram ............................................................... 29


Tabel 4.2 Simbol Sequence Diagram ............................................................. 30
Tabel 4.3 Simbol Activity Diagram ............................................................... 30
Tabel 4.4 Simbol Class Diagram ..................................................................... 31
Tabel 5.1 Daftar Nilai Mahasiswa ................................................................... 33
Tabel 5.2 Perubagahan Nilai Kedalam Bentuk Persentase ............................. 33
Tabel 5.3 Bilangan Fuzzy Untuk Kriteria Kehadiran...................................... 34
Tabel 5.4 Bilangan Fuzzy Untuk Kriteria Nilai Tugas.................................... 35
Tabel 5.5 Bilangan Fuzzy Untuk Kriteria Nilai UTS ...................................... 36
Tabel 5.6 Bilangan Fuzzy Untuk Kriteria Nilai UAS ..................................... 37
Tabel 5.7 Keputusan Nilai Akhir (NA) ........................................................... 38
Tabel 5.8 Data Setelah Dikonversi .................................................................. 38
Tabel 5.9 Data Natriks Normalisasi ................................................................ 41
Tabel 5.10 Perkalian Kriteria 1 Matriks Normalisasi Dengan Bobot ............... 41
Tabel 5.11 Perkalian Kriteria 2 Matriks Normalisasi Dengan Bobot ............... 41
Tabel 5.12 Perkalian Kriteria 3 Matriks Normalisasi Dengan Bobot ............... 42
Tabel 5.13 Perkalian Kriteria 4 Matriks Normalisasi Dengan Bobot ............... 42
Tabel 5.14 Matriks Keputusan Ternormalisasi Terbobot .................................. 42
Tabel 5.15 Solusi Ideal Positif .......................................................................... 42
Tabel 5.16 Solusi Ideal Negatif ......................................................................... 43
Tabel 5.17 Nilai Seperasi (Jarak) ...................................................................... 43
Tabel 5.18 Hasil Proses Perangkingan .............................................................. 44
Tabel 5.19 Nilai Akhir Mahasiswa .................................................................... 44
Tabel 6.1 Kamus Data Untuk Tabel Login ..................................................... 53
Tabel 6.2 Kamus Data Untuk Data Mahasiswa............................................... 54
Tabel 6.3 Kamus Data Untuk Data Dosen ...................................................... 54
Tabel 6.4 Kamus Data Untuk Mata Kuliah ..................................................... 54
Tabel 6.5 Kamus Data Untuk Tabel Nilai X ................................................... 54
Tabel 6.6 Kamus Data Untuk Tabel Normalisasi............................................ 55
Tabel 6.7 Kamus Data Untuk Tabel Normalisasi Bobot ................................. 55
Tabel 6.8 Kamus Data Untuk Tabel Solusi Ideal ............................................ 55
Tabel 6.9 Kamus Data Untuk Tabel Seperasi ................................................. 56
Tabel 6.10 Kamus Data Untuk Tabel Kedekatan Alternatif ............................. 56
Tabel 6.11 Kamus Data Untuk Tabel Hasil....................................................... 56

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 7


STMIK Pelita Nusantara Medan
DAFTAR GAMBAR

Gambar 1.1 Fase-Fase Pengambilan Keputusan/Proses Pemodelan SPK ........ 4


Gambar 1.2 Model Konseptual SPK................................................................. 11
Gambar 2.1 Grafik Representasi Linier Naik ................................................... 15
Gambar 2.2 Grafik Representasi Linier Turun ................................................. 16
Gambar 2.3 Grafik Representasi Kurva Segitiga .............................................. 17
Gambar 3.1 Bagan Alir Proses Perhitungan Metode TOPSIS .......................... 26
Gambar 6.1 Use Case Keputusan ..................................................................... 45
Gambar 6.2 Activity Diagram Pada SPK Penentuan Nilai Hasil Belajar ......... 46
Gambar 6.3 Sequence Diagram Untuk Login ................................................... 47
Gambar 6.4 Sequence Diagram Untuk Data Mahasiswa .................................. 48
Gambar 6.5 Sequence Diagram Untuk Data Dosen.......................................... 48
Gambar 6.6 Sequence Diagram Untuk Input Mata Kuliah ............................... 49
Gambar 6.7 Sequence Diagram Untuk Input Nilai ........................................... 49
Gambar 6.8 Sequence Diagram Untuk Form Rating Kecocokan ..................... 50
Gambar 6.9 Sequence Diagram Untuk Normalisasi ......................................... 50
Gambar 6.10 Sequence Diagram Form Normalisasi Bobot ............................... 50
Gambar 6.11 Sequence Diagram Form Solusi Ideal ........................................... 51
Gambar 6.12 Sequence Diagram Form Jarak Pisah............................................ 51
Gambar 6.13 Sequence Diagram Kedekatan ...................................................... 52
Gambar 6.14 Sequence Diagram Hasil Akhir..................................................... 52
Gambar 6.15 Class Diagram Sistem Pendukung Keputusan .............................. 53

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 8


STMIK Pelita Nusantara Medan
BAB I
SISTEM PENDUKUNG KEPUTUSAN

1.1 Sistem Pendukung Keputusan


Sistem Pendukung Keputusan (SPK), secara umum didefinisikan sebagai
sebuah sistem yang mampu memberikan kemampuan baik kemampuan pemecahan
masalah maupun kemampuan pemgkomunikasian untuk masalah semi-terstruktur.
Secara khusus, SPK didefinisikan sebagai sebuah sistem yang mendukung kerja
seorang manajer maupun sekelompok manajer dalam memecahkan masalah semi-
terstruktur dengan cara memberikan informasi ataupun usulan menuju pada
keputusan tertentu (Hermawan, 2005).
Pembuatan keputusan merupakan fungsi utama seorang manajer atau
administrator. Kegiatan pembuatan keputusan meliputi pengidentifikasian masalah,
pencarian alternatif penyelesaian masalah, evaluasi dari alternatif-alternatif tersebut
dan pemilihan alternatif keputusan yang terbaik. Kemampuan seorang manajer dalam
membuat keputusan dapat ditingkatkan apabila ia mengetahui dan menguasai teori dan
teknik pembuatan keputusan. Dengan peningkatan kemampuan manajer dalam
pembuatan keputusan diharapkan dapat ditingkatkan kualitas keputusan yang
dibuatnya, dan hal ini tentu akan meningkatkan efisiensi kerja manajer yang
bersangkutan.
Pada awalnya Turban & Aronson (1998), mendefinisikan SPK sebagai sistem yang
digunakan untuk mendukung dan membantu pihak manajemen melakukan
pengambilan keputusan pada kondisi semi terstruktur dan tidak terstruktur. Pada
dasarnya konsep SPK hanyalah sebatas pada kegiatan membantu para manajer
melakukan penilaian serta menggantikan posisi dan peran manajer.

1.2 Konsep Pengambilan Keputusan


Konsep SPK pertama kali diperkenalkan pada awal tahun 1970-an oleh
Michael Scott Morton (Turban, 2001: 13), yang selanjutnya dikenal dengan istilah
“Management Decision System”. Konsep SPK merupakan sebuah sistem interaktif
berbasis komputer yang membantu pembuatan keputusan memanfaatkan data dan
model untuk menyelesaikan masalah-masalah yang bersifat tidak terstruktur dan
semi terstruktur. SPK dirancang untuk menunjang seluruh tahapan pembuatan

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 9


STMIK Pelita Nusantara Medan
keputusan, yang dimulai dari tahapan mengidentifikasi masalah, memilih data yang
relevan, menentukan pendekatan yang digunakan dalam proses pembuatan keputusan
sampai pada kegiatan mengevaluasi pemilihan alternatif.

1.3 Definisi Keputusan


Beberapa definisi keputusan yang dikemukakan para ahli dijelaskan sebagai
berikut (Hasan, 2004):
1. Menurut Ralph C. Davis
Keputusan adalah hasil pemecahan masalah yang dihadapinya dengan tegas.
Suatu keputusan merupakan jawaban yang pasti terhadap suatu pertanyaan.
Keputusan harus dapat menjawab pertanyaan tentang apa yang dibicarakan
dalam hubungannya dengan perencanaan. Keputusan dapat pula berupa tindakan
terhadap pelaksanaan yang sangat menyimpang dari rencana semula.
2. Menurut Mary Follet
Keputusan adalah suatu atau sebagai hukum situasi. Apabila semua fakta dari
situasi itu dapat diperolehnya dan semua yang terlibat, baik pengawas maupun
pelaksana mau mentaati hukumnya atau ketentuannya, maka tidak sama dengan
mentaati perintah. Wewenang tinggal dijalankan, tetapi itu merupakan wewenang
dari hukum situasi.
3. Menurut James A.F.Stoner
Keputusan adalah pemilihan diantara alternatif-alternatif. Definisi ini
mengandung tiga pengertian, yaitu:
a. Ada pilihan atas dasar logika atau pertimbangan.
b. Ada beberapa alternatif yang harus dan dipilih salah satu yang terbaik.
c. Ada tujuan yang ingin dicapai, dan keputusan itu makin mendekatkan
pada tujuan tertentu.
4. Menurut Prof. Dr. Prajudi Atmosudirjo, SH
Keputusan adalah suatu pengakhiran daripada proses pemikiran tentang suatu
masalah atau problema untuk menjawab pertanyaan apa yang harus diperbuat
guna mengatasi masalah tersebut, dengan menjatuhkan pilihan pada suatu
alternatif.

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 10


STMIK Pelita Nusantara Medan
Dari pengertian-pengertian keputusan diatas, dapat ditarik suatu kesimpulan
bahwa keputusan merupakan suatu p i l i ha n satu alternatif dari beberapa alternatif
penyelesaian masalah unt uk m e n ga k hi ri a t a u m e n ye l e sa i k a n m a sa l a h
t e r se b ut .
Beberapa definisi pengambilan keputusan yang dikemukakan para ahli
dijelaskan sebagai berikut (Hasan, 2004):
1. Menurut George R. Terry
Pengambilan keputusan adalah pemilihan alternatif perilaku (kelakuan) tertentu
dari dua atau lebih alternatif yang ada.
2. Menurut S.P. Siagian
Pengambilan keputusan adalah suatu pendekatan yang sistematis terhadap hakikat
alternatif yang dihadapi dan mengambil tindakan yang menurut perhitungan
merupakan tindakan yang paling tepat.
3. Menurut James A.F. Stoner
Pengambilan keputusan adalah proses yang digunakan untuk memilih suatu
tindakan sebagai cara pemecahan masalah.
Dari pengertian-pengertian pengambilan keputusan diatas, dapat disimpulkan
bahwa pengambilan keputusan merupakan suatu proses pemilihan alternatif terbaik
dari beberapa alternatif secara sistematis untuk ditindaklanjuti (digunakan) sebagai
suatu cara pemecahan masalah.
Menurut Simon, proses pengambilan keputusan meliputi tiga fase utama yaitu
inteligensi, desain, dan kriteria. Ia Kemudian menambahkan fase keempat yakini
implementasi (Turban, 2005). Gambaran konseptual pengambilan keputusan menurut
Simon dapat dilihat pada gambar 1.1.

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 11


STMIK Pelita Nusantara Medan
Fase Intelengensi

Realisasi Sasaran Organisasi


Prosedur Pemindaian dan
Penelitian
Pengumpulan Data
Identifikasi Masalah
Kepemilikan Masalah
Klasifikasi Masalah
Pernyataan Masalah Pernyataan
Masalah

Klasifikasi Masalah
Fase Desain
Formulasi Sebuah Model
Menentukan Kriteria untuk
Dipilih
Mencari Alternatif
Memprediksi dan Mengukur
Hasil
Akhir

Fase Pilihan
Klasifikasi Masalah
Solusi untuk Model
Analisis Sensitivitas
Memilih Alternatif Terbaik
Rencana Implementasi
Klasifikasi Masalah

Implementasi
Solusi

Gambar 1.1
Fase-Fase Pengambilan Keputusan / Proses Pemodelan SPK

Pada gambar 1.1 dapat dijelaskan bahwa :


Proses pengambilan keputusan dimulai dari fase inteligensi. Realitas diuji, dan masalah
diidentifikasi dan ditentukan. Kepemilikan masalah juga ditetapkan. Selanjutnya pada
fase desain akan dikonstruksi sebuah model yang merepresentasikan sistem. Hal ini
dilakukan dengan membuat asumsi-asumsi yang menyederhanakan realitas dan
menuliskan hubungan di antara semua variabel. Model ini kemudian di validasi dan
ditentukanlah kriteria dengan menggunakan prinsip memilih untuk mengevaluasi
alternatif tindakan yang telah diidentifikasi. Proses pengembangan model sering

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 12


STMIK Pelita Nusantara Medan
mengidentifikasi solusi-solusi alternatif dan demikian sebaliknya.
Selanjutnya adalah fase pilihan yang meliputi pilihan terhadap solusi yang
diusulkan untuk model (tidak memerlukan masalah yang disajikan). Solusi ni diuji
untuk menentukan viabilitasnya. Begitu solusi yang diusulkan tampak masuk akal,
maka kita siap untuk masuk kepada fase terakhir yakni fase implementasi keputusan.
Hasil implementasi yang berhasil adalah dapat dipecahkannya masalah riil.
Sedangkan kegagalan implementasi mengharuskan kita kembali ke fase sabelumnya.
a. Fase Intelegensi
Inteligensi dalam pengambilan keputusan meliputi scanning (Pemindaian)
lingkungan, entah secara intermiten ataupun terus-menerus. Inteligensi
mencakup berbagai aktivitas yang menekankan identifikasi situasi atau peluang-
peluang masalah.
1. Identifikasi Masalah (Peluang)
Fase inteligensi dimulai dengan identifikasi terhadap tujuan dan sasaran
organisasional yang berkaitan dengan isu yang diperhatikan (misal
manajemen inventori, seleksi kerja, kurangnya atau tidak tepatnya kehadiran
Web), dan determinasi apakah tujuan tersebut telah terpenuhi. Masalah
terjadi karena ketidakpuasan terhadap status quo. Ketidakpuasan
merupakan hasil dari perbedaaan antara apa yang kita inginkan (harapkan)
dan apa yang terjadi. Pada fase pertama ini, seseorang berusaha menentukan
apakah ada suatu masalah, mengidentifikasi gejala-gejalanya, menentukan
keluasannya, dan mendefinisikannya secara eksplisit.
Eksistensi masalah dapat ditentukan dengan memonitor dan menganalisis
tingkat produktivitas organisasi. Ukuran produktivitas dan konstruksi
sebuah model didasarkan pada data riil.
Menentukan apakah masalah benar-benar ada, dimana masalah tersebut,
dan seberapa signifikan, dapat dilakukan setelah investigasi awal selesai
dilakukan. Poin kunci adalah apakah sistem informasi melaporkan masalah
atau hanya melaporkan gejala-gejala dari sebuah masalah.
2. Klasifikasi Masalah
Klasifikasi masalah adalah konseptualisasi terhadap suatu masalah dalam
rangka menempatkannya dalam suatu kategori yang dapat didefinisikan,

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 13


STMIK Pelita Nusantara Medan
barangkali mengarah kepada suatu pendekatan solusi standar. Pendekatan
yang penting mengklasifikasikan masalah-masalah sesuai tingkat
strukturisasi pada masalah tersebut.
3. Kepemilikan Masalah
Menentukan kepemilikan masalah merupakan hal penting pada fase
inteligensi. Sebuah masalah ada di dalam sebuah organisasi hanya jika
seseorang atau beberapa kelompok mengambil tanggung jawab untuk
mengatasinya dan jika organisasi punya kemampuan untuk memecahkannya.
Ketika kepemilikan masalah tidak ditentukan, maka seseorang tidak
melakukan tugasnya atau masalah akan diidentifikasi sebagai masalah
orang lain. Oleh karena itu, penting bagi seseorang untuk secara sukarela
“memilikinya” atau menugaskannya kepada orang lain. Fase inteligensi
berakir dengan pernyataan masalah secara formal.
b. Fase Desain
Fase desain meliputi penemuan atau mengembangkan dan menganalisis tindakan
yang mungkin untuk dilakukan. Hal ini meliputi pemahaman terhadap masalah
dan menguji solusi yang layak.
1. Memilih Sebuah Prinsip Pilihan
Prinsip pilihan adalah sebuah kriteria yang menggambarkan akseptabilitas
dari sebuah solusi (kemampuan untuk data diterima). Pada sebuah model,
prinsip tersebut adalah sebuah variabel hasil. Memilih sebuah prinsip pilihan
bukanlah bagian dari fase pilihan, namun melibatkan bagaimana kita
membangun sasaran pengambilan keputusan kita dan bagaimana sasaran
tersebut disatukan ke dalam suatu model.
2. Mengembangkan (Menghasilkan) Alternatif-alternatif
Bagan signifikan dari proses pembangunan model adalah menghasilkan
berbagai alternatif. Pencarian terhadap berbagai alternative biasanya terjadi
setelah kriteria untuk mengevaluasi alternatif dilakukan. Sekuensi ini dapat
mengurangi pencarian alternative dan usaha yang dikeluarkan untuk
mengevaluasinya, namun mengidentifikasi alternatif-alternatif potensial
kadang-kadang dapat membantu mengidentifikasi kriteria.
3. Mengukur Hasil Akhir

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 14


STMIK Pelita Nusantara Medan
Nilai dari sebuah alternatif dievaluasi dalam hal pencapaian tujuan.
Kadang-kadang suatu hasil dinyatakan secara langsung dalam istilah
tujuan. Sebagai contoh, laba adalah hasil akhir, maksimalisasi laba adalah
suatu tujuan, dan keduanya dinyatakan dalam terminologi dollar. Hasil
akhir seperti keputusan pelanggan dapat diukur dengan jumlah keluhan,
dengan tingkat loyalitas terhadap sebuah produk, atau dengan rating hasil
survei.
c. Fase Pilihan
Pilihan merupakan tindakan pengambilan keputusan yang kritis. Fase pilihan
adalah fase di mana dibuat suatu keputusan yang nyata dan diambil suatu
komitmen untuk mengikuti suatu tindakan tertentu. Batas antara fase pilihan
dan desain sering tidak jelas karena aktivitas tertentu dapat dilakukan selama
kedua fase tersebut dank arena orang dapat sering kembali dari aktivitas
pilihan ke aktivitas desain. Sebagai contoh, seseorang dapat menghasilkan
alternatif baru selagi mengevaluasi alternatif yang ada. Fase pilihan meliputi
pencarian, evaluasi, dan rekomendasi terhadap suatu solusi yang tepat untuk
model. Sebuha solusi untuk sebuah model adalah sekumpulan nilai spesifik
untuk variabel-variabel keputusan dalam suatu alternatif yang telah dipilih.
Memecahkan sebuah model tidak sama halnya dengan memecahkan masalah
yang direpresentasikan oleh model. Solusi untuk model menghasilkan sebuah
solusi yang direkomendasikan untuk masalah. Masalah dianggap dipecahkan
hanya jika solusi yang direkomendasikan sukses diterapkan.
Pemecahan sebuah model pengambilan keputusan melibatkan pencarian
terhadap suatu tindakan yang tepat. Pendekatan pencarian melibatkan teknik
analitik (memecahkan suatu formula), algoritma (prosedur langkah-demi-
langkah), heuristik (aturan utama), dan blind search (menembak didalam
gelap, idealnya dalam suatu cara yang logis).
Masing-masing alternatif harus dievaluasi. Jika suatu alternatif mempunyai
berbagai tujuan, maka semua tujuan harus diuji dan seimbang jika dihadapkan
dengan yang lainnya. Analisis sensitivitas digunakan untuk menentukan
ketangguhan sembarang alternatif yang diberikan (sedikit perubahan dalam
perameter idealnya mendorong ke sedikit atau tidak ada perubahan dalam

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 15


STMIK Pelita Nusantara Medan
alternatif yang dipilih).
d. Fase Implementasi
Pada hakikatnya implementasi suatu solusi yang diusulkan untuk suatu
masalah adalah inisiasi terhadap hal baru, atau pengenalan terhadap perubahan.
Definisi implementasi sedikit rumit karena implementasi merupakan sebuah
proses yang panjang dan melibatkan batasa-batasan yang tidak jelas. Pendek
kata, implementasi berarti membuat suatu solusi yang direkomendasikan bisa
bekerja, tidak memerlukan implementasi suatu sistem komputer.

1.4 Karakteristik dan Kemampuan Sistem Pendukung Keputusan


Menurut Turban (2005), ada beberapa karakteristik dari SPK, diantaranya
adalah sebagai berikut:
1. Mendukung seluruh kegiatan organisasi
2. Mendukung beberapa keputusan yang saling berinteraksi
3. Dapat digunakan berulang kali dan bersifat konstan
4. Terdapat dua komponen utama, yaitu data dan model
5. Menggunakan baik data ekternal maupun internal
6. Memiliki kemampuan what-if analysis dan goal seeking analysis
7. Menggunakan beberapa model kuantitatif
Selain itu, menurut Turban kemampuan yang harus dimiliki oleh sebuah
sistem pendukung keputusan, diantaranya adalah sebagai berikut:
1. Menunjang pembuatan keputusan manajemen dalam menangani masalah semi
terstruktur
2. Manajemen, mulai dari manajemen tingkat atas sampai manajemen tingkat dan
tidak terstruktur.
3. Membantu manajer pada berbagai tingkatan bawah.
4. Menunjang pembuatan keputusan secara kelompok dan perorangan.
5. Menunjang pembuatan keputusan yang saling bergantungan dan berurutan.
6. Menunjang tahap-tahap pembuatan keputusan antara lain intelligence, design,
choice dan implementation.
7. Menunjang berbagai bentuk proses pembuatan keputusan dan jenis keputusan.
8. Kemampuan untuk melakukan adaptasi setiap saat dan bersifat fleksibel.

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 16


STMIK Pelita Nusantara Medan
9. Kemudahan melakukan interaksi sistem.
10. Meningkatkan efektivitas dalam pembuatan keputusan daripada efisiensi.
11. Mudah dikembangkan oleh pemakai akhir.
12. Kemampuan pemodelan dan analisis dalam pembuatan keputusan.
13. Kemudahan melakukan pengaksesan berbagai sumber dan format data.
Disamping berbagai kemampuan dan karakteristik seperti dikemukakan di
atas, sistem pendukung keputusan memiliki juga keterbatasan, antara lain:
1. Ada beberapa kemampuan manajemen dan bakat manusia yang tidak dapat
dimodelkan, sehingga model yang ada dalam sistem tidak semuanya
mencerminkan persoalan yang sebenarnya.
2. Kemampuan suatu sistem pendukung keputusan terbatas pada pengetahuan
dasar serta model dasar yang dimilikinya.
3. Proses-proses yang dapat dilakukan oleh sistem pendukung keputusan biasanya
tergantung juga pada kemampuan perangkat lunak yang digunakannya.
4. Sistem pendukung keputusan tidak memiliki intuisi seperti yang dimiliki oleh
manusia. Karena sistem pendukung keputusan hanya suatu kumpulan perangkat
keras, perangkat lunak dan sistem operasi yang tidak dilengkapi oleh
kemampuan berpikir.
Secara implisit, sistem pendukung keputusan berlandaskan pada kemampuan
dari sebuah sistem berbasis komputer dan dapat melayani penyelesaian masalah.

1.5 Keuntungan Penggunaan Sistem Pendukung Keputusan


Beberapa keuntungan penggunaan SPK antara lain adalah sebagai berikut
(Surbakti, 2002):
1. Mampu mendukung pencarian solusi dari berbagai permasalahan yang
kompleks
2. Dapat merespon dengan cepat pada situasi yang tidak diharapkan dalam
konsisi yang berubah-ubah
3. Mampu untuk menerapkan berbagai strategi yang berbeda pada konfigurasi
berbeda secara cepat dan tepat
4. Pandangan dan pembelajaran baru
5. Sebagai fasilitator dalam komunikasi

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 17


STMIK Pelita Nusantara Medan
6. Meningkatkan kontrol manajemen dan kinerja
7. Menghemat biaya dan sumber daya manusia (SDM)
8. Menghemat waktu karena keputusan dapat diambil dengan cepat
9. Meningkatkan efektivitas manajerial, menjadikan manajer dapat bekerja lebih
singkat dan dengan sedikit usaha
10. Meningkatkan produktivitas analisis

1.6 Komponen Sistem Pendukung Keputusan


Adapun komponen-komponen dari SPK adalah sebagai berikut.:
1. Data Management
Termasuk database, yang mengandung data yang relevan untuk berbagai situasi
dan diatur oleh software yang disebut Database Management System (DBMS).
2. Model Management
Melibatkan model finansial, statistikal, management science, atau berbagai model
kualitatif lainnya, sehingga dapat memberikan ke sistem suatu kemampuan
analitis, dan manajemen software yang dibutuhkan.
3. Communication
User dapat berkomunikasi dan memberikan perintah pada DSS melalui
subsistem ini. Ini berarti menyediakan antarmuka.
4. Knowledge Management
Subsistem optional ini dapat mendukung subsistem lain atau bertindak atau
bertindak sebagai komponen yang berdiri sendiri.
Untuk dapat lebih jelas memahami model konseptual SPK, perhatikan gambar 1.2.

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 18


STMIK Pelita Nusantara Medan
Gambar 1.2.
Model Konseptual SPK

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 19


STMIK Pelita Nusantara Medan
BAB II
LOGIKA FUZZY

2.1 Logika Fuzzy


Logika fuzzy merupakan salah satu komponen pembentuk soft computing. Logika
fuzzy pertama kali diperkenalkan oleh Prof.Lofti A.Zadeh pada tahun 1965. Dasar
logika fuzzy adalah teori himpunan fuzzy. Pada teori himpunan fuzzy, peranan derajat
keanggotaan sebagai penentu keberadaan elemen dalam suatu himpunan sangatlah
penting. Nilai keanggotaan atau derajat keanggotaan atau membership function menjadi
ciri utama dari penalaran dengan logika fuzzy tersebut.
Menurut Cox (1994) ( Aplikasi Logika Fuzzy Untuk Pendukung Keputusan Edisi
2, 2006) ada beberapa alasan mengapa orang-orang menggunakan logika fuzzy, antara
lain:
1. Konsep logika fuzzy mudah dimengerti. Karena logika fuzzy menggunakan dasar
teori himpunan, maka konsep matematis yang mendasari penalaran fuzzy tersebut
cukup mudah untuk dimengerti.
2. Logika fuzzy sangat fleksibel, artinya mampu beradaptasi dengan perubahan-
perubahan, dan ketidakpastian yang menyertai permasalahan.
3. Logika fuzzy memiliki toleransi terhadap data yang tidak tepat. Jika diberikan
sekelompok data yang cukup homogen, dan kemudian ada beberapa data yang
“eksklusif”, maka logika fuzzy memiliki kemampuan untuk menangani data eksklusif
tersebut.
4. Logika fuzzy mampu memodelkan fungsi-fungsi nonlinear yang sangat kompleks.
5. Logika fuzzy dapat membangun dan mengaplikasikan pengalaman-pengalaman para
pakar secara langsung tanpa harus melalui proses pelatihan. Dalam hal ini, sering
dikenal dengan nama fuzzy expert systems menjadi bagian terpenting.
6. Logika fuzzy dapat bekerjasama dengan teknik-teknik kendali secara konvensional.
Hal ini umumnya terjadi pada aplikasi di bidang teknik mesin maupun teknik elektro.
7. Logika fuzzy didasarkan pada bahasa alami. Logika fuzzy menggunakan bahasa
sehari-hari yang mudah dimengerti.

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 20


STMIK Pelita Nusantara Medan
Pada himpunan tegas (crisp), nilai keanggotaan suatu item X dalam suatu
himpunan A, yang sering ditulis dengan µA(x), memiliki dua kemungkinan, yaitu :
a. Satu (1), yang berarti bahwa suatu item menjadi anggota dalam suatu himpunan, atau
b. Nol (0), yang berarti bahwa suatu item tidak menjadi anggota dalam suatu himpunan.
Sementara dalam himpunan fuzzy, nilai keanggotaan terletak pada rentang 0
sampai 1. Apabila x memiliki nilai keanggotaan fuzzy µA(x) = 0 berarti x tidak menjadi
anggota himpunan A, demikian pula apabila x memiliki nilai keanggotaan fuzzy i µA(x)
= 1 berarti x menjadi anggota penuh pada himpunan A.
Terkadang kemiripan antara keanggotaan fuzzy dengan probabilitas
menimbulkan kerancuan. Keduanya memiliki interval [0, 1], namun interpretasi nilainya
sangat berbeda antara kedua kasus tersebut. Keanggotaan fuzzy memberikan suatu
ukuran terhadap pendapat atau keputusan, sedangkan probabilitas mengindikasikan
proporsi terhadap keseringan suatu hasil bernilai benar dalam jangka panjang.
Himpunan fuzzy memiliki dua atribut (Sri Kusuma Dewi dan Hari Purnomo,
2004: 6), yaitu :
1) Linguistik, yaitu penamaan suatu grup mewakili suatu keadaan atau kondisi
tertentu dengan menggunakan bahasa alami, seperti : muda, parobaya, tua
2) Numeris, yaitu suatu nilai (angka) yang menunjukkan ukuran dari suatu variabel
seperti : 40, 50, 25, dsb

Ada beberapa istilah yang perlu diketahui dalam memahami sistem fuzzy, yaitu:
1) Variabel fuzzy merupakan variabel yang hendak dibahas dalam suatu sistem fuzzy
(Sri Kusuma Dewi dan Hari Purnomo, 2004:6). Contoh: umur, temperatur, tanggungan,
pendapatan, pengeluaran, dsb.
2) Himpunan fuzzy
Himpunan fuzzy merupakan suatu grup yang mewakili suatu kondisi atau keadaan
tertentu dalam suatu variabel fuzzy.
3) Semesta pembicaraan adalah keseluruhan nilai yang diperbolehkan untuk
dioperasikan dalam suatu variabel fuzzy.
4) Keseluruhan nilai yang diizinkan dalam semesta pembicaraan dan boleh
dioperasikan dalam suatu himpunan fuzzy.

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 21


STMIK Pelita Nusantara Medan
Ada beberapa pendekatan fungsi yang digunakan untuk mendapatkan nilai
keanggotaan pada fuzzy yaitu :
1. Representasi linear NAIK
Pada representasi linear NAIK, kenaikan nilai derajat keanggotaan himpunan fuzzy
(μ[x]) dimulai pada nilai domain yang memiliki derajat keanggotaan nol [0] bergerak ke
kanan menuju ke nilai domain yang memiliki derajat keanggotaan lebih tinggi. Fungsi
keanggotaan representasi linear naik dapat dicari dengan cara sebagai berikut:
Himpunan fuzzy pada representasi linear NAIK memiliki domain (-∞, ∞) terbagi
menjadi tiga selang, yaitu: [0, a] , [a, b], dan [b, ∞).
a. Selang [0, a]
Fungsi keanggotaan himpunan fuzzy pada representasi linear NAIK pada selang
[0,a] memiliki nilai keanggotaan=0
b. Selang [a, b]
Pada selang [a, b], fungsi keanggotaan himpunan fuzzy pada representasi linear
NAIK direpresentasikan dengan garis lurus yang melalui dua titik, yaitu dengan
koordinat (a, 0) dan (b, 1). Misalkan fungsi keanggotaan fuzzy NAIK dari x
disimbolkan dengan μ[x], maka persamaan garis lurus tersebut adalah:

𝜇 𝑥 −0 𝑥−𝑎
= (2.1)
1−0 𝑏−𝑎

𝑥−𝑎
<=> 𝜇𝑥 = (2.2)
𝑏−𝑎

c. Selang [b, ∞)
Fungsi keanggotaan himpunan fuzzy pada representasi linear NAIK pada selang
[xmax, ∞) memiliki nilai keanggotaan = 0. Dari uraian di atas, fungsi keanggotaan
himpunan fuzzy pada representasi linear NAIK, dengan domain (-∞, ∞) adalah:
0, 𝑥 ≤𝑎
𝑥−𝑎
𝜇𝑥 = ,𝑎 ≤ 𝑥 ≤ 𝑏 (2.3)
𝑏−𝑎
1, 𝑥 ≥ 𝑏

Himpunan fuzzy pada representasi linear NAIK direpresentasikan pada Gambar 2.1.

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 22


STMIK Pelita Nusantara Medan
1

Derajat
Keanggotaan

a domain b x

Gambar 2.1 Grafik Representasi Linear Naik

Sumber : Kusumadewi, Sri., Hartati, S., Harjoko, A., dan Wardoyo, R.2006. “Fuzzy
Multi Attribute Decision Making (FMADM), [9]

2. Representasi linear TURUN

Sedangkan pada representasi linear TURUN, garis lurus dimulai dari nilai domain
dengan derajat keanggotaan himpunan fuzzy (μ[x]) tertinggi pada sisi kiri, kemudian
bergerak menurun ke nilai domain yang memiliki derajat keanggotaan himpunan fuzzy
lebih rendah. Fungsi keanggotaan representasi linear TURUN dapat dicari dengan cara
sebagai berikut: Himpunan fuzzy pada representasi linear TURUN memiliki domain
(-∞, ∞) terbagi menjadi tiga selang, yaitu: [0, a] , [a, b], dan [b, ∞).
a. Selang [0, a]
Fungsi keanggotaan himpunan fuzzy pada representasi linear TURUN pada selang
[0, a] memiliki nilai keanggotaan = 0
b. Selang [a, b]
Pada selang [a, b] fungsi keanggotaan himpunan fuzzy pada representasi linear
TURUN direpresentasikan dengan garis lurus yang melalui dua titik, yaitu dengan
koordinat (a, 1) dan (b, 0). Misalkan fungsi keanggotaan fuzzy TURUN dari x
disimbolkan dengan μ[x], maka persamaan garis lurus tersebut adalah:

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 23


STMIK Pelita Nusantara Medan
𝜇 𝑥 −0 𝑥−𝑏
= (2.4)
1−0 𝑎−𝑏

𝑥−𝑏
<=> 𝜇𝑥 = (2.5)
𝑎−𝑏

Karena pada selang [a, b], gradien garis lurus = -1, maka persamaan garis lurus tersebut
menjadi:
𝑥−𝑏
𝜇 𝑥 = −1 (2.6)
𝑎−𝑏

𝑏−𝑥
𝜇𝑥 = (2.7)
𝑏−𝑎

c. Selang [b, ∞)
Fungsi keanggotaan himpunan fuzzy pada representasi linear TURUN pada selang
[b, ∞] memiliki nilai keanggotaan = 0. Dari uraian di atas, fungsi keanggotaan
himpunan fuzzy pada representasi linear TURUN, dengan domain (-∞, ∞) adalah:
1, 𝑥 ≤ 𝑎
𝑏−𝑥
µ[x] = , 𝑎≤𝑥≤𝑏 (2.8)
𝑏−𝑎
0, 𝑥 ≥ 𝑏

Himpunan fuzzy pada representasi linear turun direpresentasikan pada Gambar 2.2.

µ[x]

a domain b x

Gambar 2.2 Representasi Linear Turun

Sumber : Kusumadewi, Sri., Hartati, S., Harjoko, A., dan Wardoyo, R.2006. “Fuzzy
Multi Attribute Decision Making (FMADM), [10]

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 24


STMIK Pelita Nusantara Medan
3. Representasi Kurva Segitiga

Fungsi keanggotaan segitiga ditandai adanya 3 (tiga) parameter {a, b, c} yang akan
menentukan kordinat x dari tiga sudut, rumus nya sebagai berikut :
𝑥−𝑎 𝑐−𝑥
𝑆𝑒𝑔𝑖𝑡𝑖𝑔𝑎 𝑥: 𝑎, 𝑏, 𝑐 = max (2.9)
𝑏−𝑎 𝑐−𝑏
Untuk menentukan fungsi keanggotaan kurva segitiga adalah sebagai berikut :
0; x  a atau x  c

 x  ( x  a) /(b  a); a xb (2.10)
(b  x) /( c  b); bxc

Himpunan fuzzy pada representasi linear turun direpresentasikan pada gambar 2.3.

1.0

a b c x

Gambar 2.3 Kurva Segitiga

Sumber : Kusumadewi, Sri., Hartati, S., Harjoko, A., dan Wardoyo, R.2006. “Fuzzy
Multi Attribute Decision Making (FMADM), [11]

2.2 Multi Attribute Decision Making (MADM)

Pada dasarnya, proses MADM dilakukan melalui 3 tahap, yaitu penyusunan


komponen-komponen situasi, analisis, dan sintesis informasi (Rudolphi,2000) dalam
buku Fuzzy MultiAttribut Decision Making, Sri Kusumadewi, Sri Hartati, Agus
Harjoko, 2006. Pada tahap penyusunan komponen, komponen situas, akan dibentuk
tabel taksiran yang berisi identifikasi alternatif dan spesifikasi tujuan, kriteria dan tribut.
Salah satu cara untuk menspesifikasikan tujuan situasi |Oi, i =1,...,t| adalah dengan cara
mendaftar konsekuensi-konsekuensi yang mungkin dari alternatif yang telah
teridentifikasi |Ai, i = 1,...,n|. Selain itu juga disusun atribut-atribut yang akan digunakan
|ak, k=1,...,m|.

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 25


STMIK Pelita Nusantara Medan
Tahap analisis dilakukan melalui 2 langkah. Pertama, mendatangkan taksiran
dari besaran yang potensial, kemungkinan, dan ketidakpastian yang berhubungan
dengan dampak-dampak preferensi pengambil keputusan untuk setiap nilai dan
ketidakpedulian terhadap resiko yang timbul. Pada langkah pertama beberapa metode
menggunakan fungsi distribusi |pj(x)| yang menyatakan probabilitas kumpulan aribut |a k|
terhadap setiap alternatif |Ai|. Konsekuen juga dapat ditentukan secara langsung dari
agregasi sederhana yang dilakukan pada informasi terbaik yang tersedia. Demikian pula,
ada beberapa cara untuk menentukan preferensi pengambil keputusan pada setiap
konsekuen yang dapat dilakukan pada langkah kedua. Metode yang paling sederhana
adalah untuk menurunkan bobot atribut dan kriteria adalah dengan fungsi utilitas atau
penjumlah terbobot.
Secara umum model multiatribut decision making dapat didefenisikan sebagai
berikut:
Misalkan A= {ai| i = 1,...,n) adalah himpunan alternatif-alternatif keputusan dan C= {cj |
j = 1,..,m} adalah himpunan tujuan yang diharapkan, maka akan ditentukan alternatif x 0
yang memiliki derajat harapan tertinggi terhadap tujuan-tujuan yang relevan cj.
Sebagian besar pendekatan MADM dilakukan melalui 2 langkah, yaitu: pertama,
melakukan agregasi terhadap keputusan-keputusan yang tanggap terhadap semua tujuan
pada setiap alternatif; kedua, melakukan perankingan alternatif-alternatif keputusan
tersebut berdasarkan hasil agreagasi keputusan.
Dengan demikian bisa dikatakan bahwa, masalah multiattribut decision making
(MADM) adalah mengevaluasi m alternatif Ai (i= 1,2,...,m) terhadap sekumpulan
alternatif atau kriteria Cj (j= 1,2,...,n), dimana setiap atribut saling tidak bergantung satu
dengan yang lainnya. Matriks keputusan setiap alternatif terhadap setiap atribut, X,
diberikan sebagai:
𝑥11 𝑥12 ⋯ 𝑥1𝑛
𝑥21 𝑥22 … 𝑥2𝑛
X= ⋮ ⋮ ⋮
𝑥𝑚1 𝑥𝑚2 … 𝑥𝑚𝑛
Dimana xij merupakan rating kinerja alternatif ke-i terhadap atribut ke-j. Nilai bobot
yang menunjukkan tingkat kepentingan relatif setiap atribut, diberikan sebagai W:
W = {w1,w2,..,wn}

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 26


STMIK Pelita Nusantara Medan
Rating kinerja atau (X), dan nilai bobot (W) merupakan nilai utama yang
merepresentasikan preferensi absolut dari pengambil keputusan. Masalah MADM
diakhiri dengan proses perengkingan untuk mendapatkan alternatif terbaik yang
diperoleh berdasarkan nilai keseluruhan preferensi yang diberikan.
Multi Attribute Decision Making (MADM) adalah suatu metode yang digunakan
untuk mencari alternative optimal dari sejumlah alternative dengan kriteria tertentu. Inti
dari MADM adalah menentukan nilai bobot untuk setiap atribut kemudian dilanjutkan
dengan proses perankingan yang akan menyeleksi alternatif yang sudah diberikan. Pada
dasarnya ada 3 pendekatan untuk mencari nilai bobot atribut yaitu : pendekatan
subyektif, pendekatan obyektif, pendekatan integrasi antara subyektif dan obyektif.
Masing-masing pendekatan memiliki kelebihan dan kelemahan. Pada pendekatan
subyektif, nilai bobot ditentukan berdasarkan subyektifitas dari para pengambil
keputusan, sehingga beberapa factor dalam proses perankingan alternative bisa
ditentukan secara bebas. Sedangkan pada pendekatan secara obyektif , nilai bobot
dihitung secara matematis, sehingga mengabaikan subyektifitas dari para pengambil
keputusan.
Ada beberapa fitur umum yang digunakan dalam Multi Atribut Decision Making
yaitu sebagai berikut :
a) Alternatif, alternatif adalah objek-objek yang berbeda dan memiliki kesempatan
yang sama untuk dipilih oleh pengambil keputusan
b) Atribut, atribut sering juga disebut sebagai karakteristik, komponen atau kriteria
keputusan. Meskipun pada kebanyakan kriteria bersifat satu level, namun tidak
menutup kemungkinan adanya sub kriteria yang berhubungan dengan kriteria yang
telah diberikan.
c) Konflik antar kriteria, beberapa kriteria biasanya mempunyai konflik antara satu dan
yang lainnya, misalnya kriteria penghasilan akan mengalami konflik dengan kriteria
pengeluaran.
d) Bobot keputusan menunjukkan kepentingan relative daripada kriteria, W=(w 1, w2,
…., wn).
e) Matriks keputusan, suatu matriks keputusan X yang berukuran m x n, berisi elemen-
elemen Xij, yang merepresentasikan rating dari alternatif Ai (i = 1,2,..,m) terhadap Cj
(j = 1,2,..,n)

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 27


STMIK Pelita Nusantara Medan
Ada beberapa metode yang dapat digunakan untuk menyelesaikan permasalahan
MADM (Multi Attribut Decision Making)) yaitu :
1. SAW (Simple Additive Weighting)
2. Weighted Product (WP)
3. Analytic Hierarchy Process (AHP)
4. ELECTRE
5. Technique for Order Preference by Similarity to Ideal Solution (TOPSIS)

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 28


STMIK Pelita Nusantara Medan
BAB III
METODE TOPSIS (TECHNIQUE FOR ORDER PREFERENCE BY
SIMILARITY TO IDEAL SOLUTION)

Masalah keputusan bukan hanya disebakan oleh faktor ketidakpastian atau


ketidaksempurnaan informasi saja, faktor beragamnya kriteria pemilihan dan juga nilai
bobot dari masing-masing kriteria merupakan suatu bentuk masalah keputusan yang
sangat kompleks. Pada zaman sekarang ini, metode-metode pemecahan masalah
multikriteria telah digunakan secara luas di berbagai bidang. Adapun salah satu metode
yang dapat digunakan untuk mengatasi permasalahan multikriteria yaitu metode
Technique For Order Preference by Similarity to Ideal Solution (TOPSIS).
TOPSIS diperkenalkan pertama kali oleh Yoon dan Hwang pada tahun 1981
untuk digunakan sebagai salah satu metode dalam memecahkan masalah multikriteria
(Sachdeva, 2009). TOPSIS memberikan sebuah solusi dari sejumlah alternatif yang
mungkin dengan cara membandingkan setiap alternatif dengan alternatif terbaik dan
alternatif terburuk yang ada diantara alternatif-alternatif masalah. Metode ini
menggunakan jarak untuk melakukan perbandingan tersebut.
Yoon dan Hwang mengembangkan metode TOPSIS berdasarkan intuisi yaitu
alternatif pilihan merupakan alternatif yang mempunyai jarak terkecil dari solusi ideal
positif dan jarak terbesar dari solusi ideal negatif dari sudut pandang geometris dengan
menggunakan jarak Euclidean (Sachdeva, 2009). Namun, alternatif yang mempunyai
jarak terkecil dari solusi ideal positif, tidak harus mempunyai jarak terbesar dari solusi
ideal negatif. Maka dari itu, TOPSIS mempertimbangkan keduanya, jarak terhadap
solusi ideal positif dan jarak terhadap solusi ideal negatif secara bersamaan. Solusi
optimal dalam metode TOPSIS didapat dengan menentukan kedekatan relatif suatu
alternatif terhadap solusi ideal positif. TOPSIS akan merangking alternatif
berdasarkan prioritas nilai kedekatan relatif suatu alternatif terhadap solusi ideal positif.
Alternatif-alternatif yang telah dirangking kemudian dijadikan sebagai referensi bagi
pengambil keputusan untuk memilih solusi terbaik yang diinginkan. Metode ini
banyak digunakan untuk menyelesaikan pengambilan keputusan secara praktis. Hal
ini disebabkan konsepnya sederhana dan mudah dipahami, komputasinya efisien, dan
memiliki kemampuan mengukur kinerja relatif dari alternatif-alternatif keputusan.

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 29


STMIK Pelita Nusantara Medan
TOPSIS mengasumsikan bahwa setiap kriteria akan dimaksimalkan ataupun
diminimalkan. Maka dari itu nilai solusi ideal positif dan solusi ideal negatif dari
setiap kriteria ditentukan, dan setiap alternatif dipertimbangkan dari informasi
tersebut. Solusi ideal positif didefinisikan sebagai jumlah dari seluruh nilai terbaik
yang dapat dicapai untuk setiap atribut, sedangkan solusi ideal negatif terdiri dari
seluruh nilai terburuk yang dicapai untuk setiap atribut. Namun, solusi ideal positif
jarang dicapai ketika menyelesaikan masalah dalam kehidupan nyata. Maka asumsi
dasar dari TOPSIS adalah ketika solusi ideal positif tidak dapat dicapai, pembuat
keputusan akan mencari solusi yang sedekat mungkin dengan solusi ideal positif.
TOPSIS memberikan solusi ideal positif yang relatif dan bukan solusi ideal positif
yang absolut. Dalam metode TOPSIS klasik, nilai bobot dari setiap kriteria telah
diketahui dengan jelas. Setiap bobot kriteria ditentukan berdasarkan tingkat
kepentingannya menurut pengambil keputusan.
Berikut adalah langkah-langkah dari metode TOPSIS:
1. TOPSIS dimulai dengan membangun sebuah matriks keputusan. Matriks keputusan
X mengacu terhadap m alternatif yang akan dievaluasi berdasarkan n kriteria.
Matriks keputusan X dapat dilihat pada persamaan 3.1 berikut :
𝑎1 𝑥11 ⋯ 𝑥1𝑛
𝑋= ⋮ ⋮ ⋱ ⋮ (3.1)
𝑎𝑚 𝑥𝑚1 ⋯ 𝑥𝑚𝑛

dimana ai ( i = 1, 2, 3, . . . , m ) adalah alternatif-alternatif yang mungkin, 𝑥𝑗 (j =1,


2, 3, . . . , n ) adalah atribut dimana performansi alternatif diukur,
𝑥𝑖𝑗 adalah performansi alternatif a i dengan acuan atribute 𝑥𝑗 .
2. Membuat matriks keputusan yang ternormalisasi.
Persamaan yang digunakan untuk mentransformasikan setiap elemen 𝑥𝑖𝑗 adalah :
𝑥 𝑖𝑗
𝑟𝑖𝑗 = (3.2)
𝑚 𝑥 2
𝑖=1 𝑖𝑗

dengan i = 1, 2, 3, . . . , m; dan j = 1, 2, 3, . . . , n;
dimana 𝑟𝑖𝑗 adalah elemen dari matriks keputusan yang ternormalisasi R. 𝑥𝑖𝑗 adalah
elemen matriks dari keputusan X.
3. Membuat matriks keputusan yang ternormalisasi terbobot.

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 30


STMIK Pelita Nusantara Medan
Dengan bobot 𝑤𝑖 = 𝑤1 , 𝑤2 , 𝑤3 , … , 𝑤𝑛 dimana 𝑤𝑗 adalah bobot dari kriteria ke-j
𝑛
dan 𝑗 =1 𝑤𝑗 = 1 maka normalisasi bobot matriks V adalah :
𝑣𝑖𝑗 = 𝑤𝑗 𝑟𝑖𝑗 (3.3)

dengan i = 1, 2, 3, . . . , m; dan j = 1, 2, 3, . . . , n;
dimana 𝑣𝑖𝑗 adalah elemen dari matriks keputusan yang ternormalisasi terbobot V.
𝑤𝑖𝑗 adalah bobot dari kriteria ke-j
𝑟𝑖𝑗 adalah elemen dari matriks keputusan yang ternormalisasi R.
4. Menentukan matriks solusi ideal positif dan solusi ideal negatif.
Solusi ideal positif dinotasikan 𝐴+ , sedangkan solusi ideal negatif dinotasikan 𝐴−.
Berikut ini adalah persamaan dari 𝐴+ dan 𝐴− :
a. 𝐴+ = (max 𝑣𝑖𝑗 𝑗𝜖 𝐽 ), min 𝑣𝑖𝑗 𝑗 𝜖 𝐽′ , 𝑖 = 1,2,3, … , 𝑚
= 𝑣1+, 𝑣2+, 𝑣3+, … , 𝑣𝑛+
b. 𝐴− = (min 𝑣𝑖𝑗 𝑗𝜖 𝐽 ), max 𝑣𝑖𝑗 𝑗 𝜖 𝐽′ , 𝑖 = 1,2,3, … , 𝑚
= 𝑣1−, 𝑣2−, 𝑣3−, … , 𝑣𝑛−
𝐽 = { j = 1,2,3,..., n dan J merupakan himpunan kriteria keuntungan (benefit
criteria)}.
𝐽, = { j = 1,2,3,..., n dan 𝐽, merupakan himpunan kriteria biaya (cost criteria)}.
Dimana 𝑣𝑖𝑗 adalah elemen dari matriks keputusan yang ternormalisasi terbobot
V.
𝑣𝑗+ (j = 1,2,3,...,n) adalah elemen matriks solusi ideal positif.
𝑣𝑗− (j = 1,2,3,...,n) adalah elemen matriks solusi ideal negatif.
5. Menghitung Seperasi.
a. 𝑆 + adalah jarak alternatif dari solusi ideal positif didefenisikan sebagai :
2
𝑆𝑖+ = 𝑛
𝑗 =1 𝑣𝑖𝑗 − 𝑣𝑗+ , dengan i = 1,2,3,..., m (3.4)

b. 𝑆 − adalah jarak alternatif dari solusi ideal negatif didefenisikan sebagai :


2
𝑆𝑖− = 𝑛
𝑗 =1 𝑣𝑖𝑗 − 𝑣𝑗− , dengan i = 1,2,3,..., m (3.5)

Dimana :
𝑆𝑖+ adalah jarak alternatif ke-i dari solusi ideal positif,

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 31


STMIK Pelita Nusantara Medan
𝑆𝑖− adalah jarak alternatif ke-i dari solusi ideal negatif,
𝑣𝑖𝑗 adalah elemen dari matriks keputusan yang ternormalisasi terbobot V
𝑣𝑗+ adalah elemen matriks solusi ideal positif,
𝑣𝑗− adalah elemen matriks solusi ideal negatif.
6. Menghitung kedekatan relatif terhadap solusi ideal positif.
Kedekatan relatif dari setiap alternatif terhadap solusi ideal positif dapat dihitung
dengan persamaan berikut :
𝑆𝑖−
𝑐𝑖+ = , 0 ≤ 𝑐𝑖+ ≤ 1 (3.6)
𝑆𝑖 + 𝑆𝑖+

dengan i = 1,2,3,..., m
dimana 𝑐𝑖+ adalah kedekatan relatif dari alternatif ke-i terhadap solusi ideal positif,
𝑆𝑖+ adalah jarak alternatif ke-i dari solusi ideal positif dan 𝑆𝑖− adalah jarak alternatif
ke-i dari solusi ideal negatif.
7. Meranking Alternatif.
Alternatif diurutkan dari nilai C+ terbesar ke nilai terkecil. Alternatif dengan nilai
C+ terbesar merupakan solusi yang terbaik.

Langkah-langkah dalam menentukan nilai hasil belajar mahasiswa dengan


FMADM metode TOPSIS dapat dilihat pada bagan alir berikut.

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 32


STMIK Pelita Nusantara Medan
Mulai

Input Data :
1. Data Kriteria Penentuan Nilai
Hasil Belajar
2. Nilai Bobot Tiap Kriteria

Pembuatan Matriks Perhitungan


(Matriks Awal) Berdasarkan Input
Dengan Metode TOPSIS

Normalisasi Matriks Keputusan


Sehingga Diperoleh Matriks R

𝑋 𝑖𝑗
rij =
𝑚 𝑥𝑖𝑗 2
𝑖

dengan i = 1,2,...,m dan j = 1,2,...,n

Membuat Matriks Keputusan Yang


Ternormalisasi Terbobot
𝑣𝑖𝑗 = 𝑤𝑗 𝑟𝑖𝑗
Dengan i = 1,2,..,m dan j = 1,2,..,n

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 33


STMIK Pelita Nusantara Medan
A

Membuat Matriks Solusi Ideal Positif


dan Solusi Ideal Negatif

A+ = 𝑣1+, 𝑣2+, 𝑣3+, … , 𝑣𝑛+

A− = v1−, v2−, v3− , … , vn−

Menghitung Seperasi (Jarak)


1. Jarak Solusi Ideal Positif
𝑛
2
𝑆𝑖+ = 𝑣𝑖𝑗 − 𝑣𝑗+
𝑗 =1

2. Jarak Solusi Ideal Negatif


𝑛
2
𝑆𝑖− = 𝑣𝑖𝑗 − 𝑣𝑗−
𝑗 =1

Menghitung kedekatan relatif terhadap


solusi ideal positif :

𝑆𝑖−
𝑐𝑖+ =
𝑆𝑖− + 𝑆𝑖+

dengan i = 1,2,3,..., m
Meranking Alternatif
Alternatif diurutkan dari nilai
C+ terbesar ke nilai terkecil.

SELESAI

Gambar 3.1 Bagan Alir Proses Perhitungan Metode TOPSIS

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 34


STMIK Pelita Nusantara Medan
BAB IV
UNIFIED METHOD LANGUAGE (UML)

UML (Unified Modeling Language) adalah sebuah “bahasa” yang sudah menjadi
standar dalam industri untuk visualisasi, merancang, dan mendokumentasikan sistem
piranti lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem.
Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi
piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi
dan jaringan apapun serta ditulis dalam bahasa pemrograman apapun. Tetapi karena
UML juga mengguanakan class dan operation dalam konsep dasarnya, maka ia lebih
cocok untuk penulisan piranti lunak dalam bahasa-bahasa berorientasi objek seperti C++,
Java, C#, atau VB.NET. Walapun demikian, UML tetap dapat digunakan untuk
modeling aplikasi prosedural dalam VB atau C.
Diagram UML dapat dibagi dalam dua kelompok besar yaitu : Behavioral
Diagram dan Structural diagram, Behavioral diagram digunakan untuk
menggambarkan, menunjukan mengembangkan dan mendokumentasikan aspek-
aspek dinamis dari sebuah sistem. Behavioral terdiri dari :
1. Use Case Diagram
2. Sequence Diagram
3. Activity Diagram
4. Class Diagram
Sedangkan Struktural diagram digunakan untuk menggambarkan, menunjukan,
mengembangkan, dan mendokumentasikan aspek-aspek statis suatu sistem. Struktural
diagram terdiri dari :
1. Class diagram dan Object Diagram
2. Component Diagram
3. Deployment Diagram

3.1 Use Case Diagram


Use Case Diagram merupakan pemodelan untuk menggambarkan kelakuan
(behaviour) sistem yang akan dibuat. Use Case Diagram digunakan untuk mengetahui
fungsi apa saja yang ada di dalam sebuah sistem dan siapa saja yang berhak

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 35


STMIK Pelita Nusantara Medan
menggunakan fungsi-fungsi tersebut. Hal yang perlu diingat mengenai diagram use
case, yaitu use case bukan menggambarkan tampilan antar muka (user interface),
arsitektur dari sistem, kebutuhan nonfungsional, dan tujuan performansi. Bagian-bagian
dari Use Case Diagram adalah sebagai berikut :
1. Actor
Actor adalah seseorang atau sesuatu diluar sistem yang berinteraksi dengan sistem.
2. Use Case
Use Case adalah urutan aksi yang dilakukan oleh sistem, menghasilkan hasil yang
bernilai dan dapat dilihat oleh actor.
Ada 3 cara untuk menyatakan hubungan antar use case yaitu :
a. Inclusion
Include relationship antara use case berarti bahwa use case dasar secara jelas
memasukan tingkah laku dari use case yang lain pada lokasi yang sudah
ditentukan di use case dasar. Include bisa digunakan untuk menghindari
penjelasan flow of event yang sama beberapa kali, dengan meletakan behavior
umum ke dalam use case yang terpisah.
b. Etxtensions
Extend relationship antara use case berarti bahwa use case base (base use-case)
secara tersirat memasukan behavior use case yang lain pada lokasi tertentu
dengan memperluas use case dasar. Use case dasar bisa berdiri sendiri, tetapi
pada kondisi tertentu, behavior use case tersebut dapat diperluas dengan
memasukan behavior use case yang lain. Titik tertentu dimana use case
diperluas sebagai extension point.
c. Generalization
Generalization berarti use case anak mewarisi behavior dari use case
induk. Use anak bisa menambah behavior baru, selain yang terdapat di use case
induk.
Untuk menggambarkan, menunjukan, mengembangkan dan mendokument
asikan (statistic view) suatu sistem digunakan beberapa simbol-simbol use case
diagram. Simbol-simbol yang digunakan dalam membuat sebuah use case diagram
dapat dilihat pada Tabel 3.1:

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 36


STMIK Pelita Nusantara Medan
Tabel 4.1 Simbol-simbol Use Case Diagram
No Simbol Keterangan
1. Repsentasi dari siapa saja yang berinteraksi
dengan use case dalam sebuah sistem.

Actor
2. Deksripsi suatu set aksi yang dikerjakan oleh
sistem.

Use case
3. Penghubung actor dan use case
Transition
4. <............. Relasi use case tambahan
Extend
5. ...........> Relasi use case tambahan ke sebuah use case
Include dimana use case yang ditambahkan memerlukan
use case ini
untuk menjalankan fungsinya

3.2 Sequence Diagram


Menurut Sugiarti (2013 : 69) diagram sequence menggambarkan
kelakuan/perilaku objek pada use case dengan mendeskripsikan waktu hidup objek dan
message yang dikirimkan dan diterima antar objek.
Simbol-simbol yang digunakan untuk menggambarkan Sequence diagram dapat
dilihat pada tabel 4.2.

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 37


STMIK Pelita Nusantara Medan
Tabel 4.2 Simbol-simbol Sequence Diagram
No Simbol Keterangan
1. Mengirim pesan
Message
2.
Masa hidup suatu objek
Object Live Time
3.
Aktivasi
Aktivation
4.
Balasan pesan atas pengiriman message
Message (Return)

3.3 Activity Diagram


Menurut Sugiarti (2013 :75) Activity diagram menggambarkan berbagai alir
aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal,
decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram lebih
menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum.
Simbol-simbol yang digunakan untuk menggambarkan activity diagram dapat
dilihat pada tabel 4.3.
Tabel 4.3 Simbol-simbol Activity Diagram
No Simbol Keterangan
1.
Awal (Start)
Initial State
2.
Akhir (End)
Final State
3.
Aktifitas
Aktivity
4.
Transisi
Transition
5.
Keputusan
Decission

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 38


STMIK Pelita Nusantara Medan
No Simbol Keterangan
6.

Pengirim

Send
7.
Percabangan
Join
8.
Penggabungan
Fork

3.4 Class Diagram


Menurut Sugiarti (2013 :57) class diagram menggambarkan struktur sistem dari
segi pendefenisian kelas-kelas yang akan dibuat untuk membangun sistem. Diagram
kelas menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan
satu sama lain seperti contaiment, pewarisan, asosiasi dan lain-lain.
Kelas memiliki 3 area pokok :
1. Nama
2. Atribut
3. Operasi
Tabel 4.4 Simbol Class Diagram
No Gambar Nama Keterangan
Hubungan dimana objek anak
(descendent) berbagi perilaku dan
1 Generalization
struktur data dari objek yang ada di
atasnya objek induk (ancestor).
Himpunan dari objek-objek yang
3 Class berbagi atribut serta operasi yang
sama.
Deskripsi dari urutan aksi-aksi yang
4 Collaboration ditampilkan sistem yang
menghasilkan suatu hasil yang

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 39


STMIK Pelita Nusantara Medan
No Gambar Nama Keterangan
terukur bagi suatu aktor

Operasi yang benar-benar dilakukan


5 Realization oleh suatu objek.

Hubungan dimana perubahan yang


terjadi pada suatu elemen mandiri
6 Dependency (independent) akan mempegaruhi
elemen yang bergantung padanya
elemen yang tidak mandiri
Apa yang menghubungkan antara
7 Association objek satu dengan objek lainnya

Pada bagian paling atas memuat nama kelas, pada bagian tengah mendaftarkan
atribut-atribut yang dimiliki sebuah kelas sedangkan paling bawah mendaftarkan
operasi-operasi yang dimiliki kelas yang bersangkutan.
Class diagram umumnya tersusun dari elemen class, interface, dependency,
Generalization dan Association. Relasi dependency menunjukan bagaimana terjadi
ketergantungan antar class yang ada. Relasi Generalization menunjukan bagaimana
suatu class menjadi superclass dari class lainnya dan class tersebut menjadi subclasss
dari class tersebut. Relasi Association menggambarkan navigasi antar class, berapa
banyak obyek lain bisa berhubungan dengan satu obyek (multiplicity antar class), dan
apakah satu class menjadi bagian dari class lainnya (agregation).

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 40


STMIK Pelita Nusantara Medan
BAB V
PENILAIAN HASIL BELAJAR DENGAN METODE TOPSIS

5.1 Perubahan Nilai ke Dalam Bentuk Persentase


Sesuai dengan standarisasi nilai kelulusan yang terdapat pada Buku Pedoman
Akademik, maka nilai yang diperoleh mahasiswa dirubah terlebih dahulu kedalam
bentuk persentase penentuan Nilai Akhir (NA). Persentase Nilai untuk kehadiran
sebesar 10%, persentase nilai tugas sebesar 20%, persentase nilai UTS sebesar 30% dan
persentase nilai UAS sebesar 40%. Tabel daftar nilai dan table perubahan nilai kedalam
bentuk persentase dapat dilihat pada Tabel 5.1 dan Table 5.2.
Tabel 5.1 Daftar Nilai Mahasiswa

NILAI
NO NIM NAMA
HDR TUGAS UTS UAS
1 130121062 Angelia Mariyani Manurung 13 90 83 70
2 130121008 Ceriah Antriany Siringoringo 14 95 93 70
3 130121028 Dani Demianto Ginting 12 90 73 65
4 130121064 Dennis Werstling Simanjuntak 14 80 100 80
5 130121032 Desi Ulandari Hutasoit 14 90 73 75

Tabel 5.2 Perubahan Nilai Kedalam Bentuk Persentase


PERSENTASE NILAI (%)
NO NIM NAMA
C1 C2 C3 C4
1 130121062 Angelia Mariyani Manurung 9,3 18 24,9 28
2 130121008 Ceriah Antriany Siringoringo 10 19 27,9 28
3 130121028 Dani Demianto Ginting 8,6 18 21,9 26
4 130121064 Dennis Werstling Simanjuntak 10 16 30 32
5 130121032 Desi Ulandari Hutasoit 10 18 21,9 30

4.3 Penerapan Fuzzy Multi Attribute Decision Making (FMADM).


Data pada tabel 5.3 dari masing-masing atribut akan dikonversikan ke dalam
bentuk fuzzy. Dalam metode TOPSIS terdapat kriteria yang dibutuhkan untuk
menentukan nilai hasil belajar mahasiswa. Setiap kriteria di ubah kedalam bentuk fuzzy.
Bentuk fuzzy dapat dilihat pada tabel berikut :

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 41


STMIK Pelita Nusantara Medan
a. Kriteria kehadiran (C1)
Tabel 5.3 Bilangan Fuzzy untuk Kriteria Kehadiran

Kehadiran Variabel Nilai Fuzzy


0 < Kehadiran ≤ 2 Sangat Buruk (SBr) 0
2 < Kehadiran ≤ 4 Buruk (Br) 0,25
4 < Kehadiran ≤ 6 Cukup (C) 0,5
6 < Kehadiran ≤ 8 Baik (B) 0,75
8 < Kehadiran ≤ 10 Sangat Baik (SB) 1

Gambar 5.1
Bilangan fuzzy Untuk Kehadiran

Pada gambar 5.1 dapat dilihat bahwa :


Variabel Kehadiran dibagi menjadi 5 himpunan fuzzy yaitu : Sangat Buruk, Buruk,
Cukup, Baik, dan Sangat Baik. Himpunan fuzzy Sangat Buruk memiliki domain [0
0.25] dimana derajat keanggotaaan Sangat Buruk tertinggi (=1) terletak pada angka 0
, himpunan fuzzy Buruk memiliki domain [0 0.5] dimana derajat keanggotaaan
Buruk tertinggi (=1) terletak pada angka 0.25, himpunan fuzzy Cukup memiliki
domain [0.25 0.75] dimana derajat keanggotaaan Cukup tertinggi (=1) terletak pada
angka 0.5, himpunan fuzzy Baik memiliki domain [0.5 1] dimana derajat
keanggotaaan Baik tertinggi (=1) terletak pada angka 0.75, himpunan fuzzy Sangat
Baik memiliki domain [0.75 1] dimana derajat keanggotaaan Sangat Baik tertinggi
(=1) terletak pada angka 1.

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 42


STMIK Pelita Nusantara Medan
b. Kriteria Nilai Tugas
Tabel 5.4 Bilangan Fuzzy Untuk Kriteria Nilai Tugas

Nilai Tugas (NT) Variabel Nilai Fuzzy


0 < Nilai Tugas ≤ 4 Sangat Buruk (SBr) 0
4 < Nilai Tugas ≤ 8 Buruk (Br) 0,25
8 < Nilai Tugas ≤ 12 Cukup (C) 0,5
12 < Nilai Tugas ≤ 16 Baik (B) 0,75
16 < Nilai Tugas ≤ 20 Sangat Baik (SB) 1

Gambar 5.2
Bilangan fuzzy Untuk Kriteria Nilai Tugas

Pada gambar 5.2 dapat dilihat bahwa :


Variabel Nilai Tugas dibagi menjadi 5 himpunan fuzzy yaitu : Sangat Buruk, Buruk,
Cukup, Baik, dan Sangat Baik. Himpunan fuzzy Sangat Buruk memiliki domain [0
0.25] dimana derajat keanggotaaan Sangat Buruk tertinggi (=1) terletak pada angka 0
, himpunan fuzzy Buruk memiliki domain [0 0.5] dimana derajat keanggotaaan
Buruk tertinggi (=1) terletak pada angka 0.25, himpunan fuzzy Cukup memiliki
domain [0.25 0.75] dimana derajat keanggotaaan Cukup tertinggi (=1) terletak pada
angka 0.5, himpunan fuzzy Baik memiliki domain [0.5 1] dimana derajat
keanggotaaan Baik tertinggi (=1) terletak pada angka 0.75, himpunan fuzzy Sangat
Baik memiliki domain [0.75 1] dimana derajat keanggotaaan Sangat Baik tertinggi
(=1) terletak pada angka 1.

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 43


STMIK Pelita Nusantara Medan
c. Kriteria Nilai UTS
Tabel 5.5 Bilangan Fuzzy Untuk Kriteria Nilai UTS

Nilai UTS Variabel Nilai Fuzzy


0 < Nilai UTS ≤ 6 Sangat Buruk (SBr) 0
6 < Nilai UTS ≤ 12 Buruk (Br) 0,25
12 < Nilai UTS ≤ 18 Cukup (C) 0,5
18 < Nilai UTS ≤ 24 Baik (B) 0,75
24 < Nilai UTS ≤ 30 Sangat Baik (SB) 1

Gambar 5.3
Bilangan fuzzy Untuk Kriteria Nilai UTS

Pada gambar 5.3 dapat dilihat bahwa :


Variabel Nilai UTS dibagi menjadi 5 himpunan fuzzy yaitu : Sangat Buruk, Buruk,
Cukup, Baik, dan Sangat Baik. Himpunan fuzzy Sangat Buruk memiliki domain [0
0.25] dimana derajat keanggotaaan Sangat Buruk tertinggi (=1) terletak pada angka 0
, himpunan fuzzy Buruk memiliki domain [0 0.5] dimana derajat keanggotaaan
Buruk tertinggi (=1) terletak pada angka 0.25, himpunan fuzzy Cukup memiliki
domain [0.25 0.75] dimana derajat keanggotaaan Cukup tertinggi (=1) terletak pada
angka 0.5, himpunan fuzzy Baik memiliki domain [0.5 1] dimana derajat
keanggotaaan Baik tertinggi (=1) terletak pada angka 0.75, himpunan fuzzy Sangat
Baik memiliki domain [0.75 1] dimana derajat keanggotaaan Sangat Baik tertinggi
(=1) terletak pada angka 1.

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 44


STMIK Pelita Nusantara Medan
d. Kriteria Nilai UAS
Tabel 5.6 Bilangan Fuzzy Untuk Kriteria Nila UAS

Nilai UAS Variabel Nilai Fuzzy


0 < Nilai UAS ≤ 8 Sangat Buruk (SBr) 0
8 < Nilai UAS ≤ 16 Buruk (Br) 0,25
16 < Nilai UAS ≤ 24 Cukup (C) 0,5
24 < Nilai UAS ≤ 32 Baik (B) 0,75
32 < Nilai UAS ≤ 40 Sangat Baik (SB) 1

Gambar 5.4
Bilangan fuzzy Untuk Kriteria Nilai UAS

Pada gambar 5.4 dapat dilihat bahwa :


Variabel niai UAS dibagi menjadi 5 himpunan fuzzy yaitu : Sangat Buruk, Buruk,
Cukup, Baik, dan Sangat Baik. Himpunan fuzzy Sangat Buruk memiliki domain [0
0.25] dimana derajat keanggotaaan Sangat Buruk tertinggi (=1) terletak pada angka 0
, himpunan fuzzy Buruk memiliki domain [0 0.5] dimana derajat keanggotaaan
Buruk tertinggi (=1) terletak pada angka 0.25, himpunan fuzzy Cukup memiliki
domain [0.25 0.75] dimana derajat keanggotaaan Cukup tertinggi (=1) terletak pada
angka 0.5, himpunan fuzzy Baik memiliki domain [0.5 1] dimana derajat
keanggotaaan Baik tertinggi (=1) terletak pada angka 0.75, himpunan fuzzy Sangat
Baik memiliki domain [0.75 1] dimana derajat keanggotaaan Sangat Baik tertinggi
(=1) terletak pada angka 1.

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 45


STMIK Pelita Nusantara Medan
e. Kriteria Keputusan Nilai Akhir (NA)
Penentuan nilai akhir hasil belajar mahasiswa dapat dilihat pada tabel keputusan
yang terdiri dari nilai A, nilai B, nilai C, nilai D dan nilai E. Penentuan nilai hasil
belajar mahasiswa dilihat pada tabel berikut ini :

Tabel 5.7 Keputusan Nilai Akhir (NA) Hasil Belajar Mahasiswa

Nilai Akhir (NA) Variabel Predikat


> 0,5 A Sangat Baik
0,4 < NA ≤ 0,5 B Baik
0,3 < NA ≤ 0,4 C Cukup
0,2< NA ≤ 0,3 D Kurang
0,1 < NA ≤ 0,2 E Gagal

4.4 Langkah-Langkah Penentuan Nilai Dengan Metode Topsis


Langkah-langkah penenetuan nilai mahasiswa dengan metode TOPSIS adalah
sebagai berikut :
1. Menginput data kriteria nilai mahasiswa dan bobot tiap kriteria yang telah
dikonversi ke nilai fuzzy seperti pada tabel 5.8.
Tabel 5.8 Data Setelah Dikonversi
NILAI FUZZY
NO NIM NAMA
C1 C2 C3 C4
1 130121062 Angelia Mariyani Manurung 1 1 1 0,75
2 130121008 Ceriah Antriany Siringoringo 1 1 1 0,75
3 130121028 Dani Demianto Ginting 1 1 0,75 0,75
4 130121064 Dennis Werstling Simanjuntak 1 0,75 1 0,75
5 130121032 Desi Ulandari Hutasoit 1 1 0,75 0,75

Pada tabel 4.8 menunjukkan :


Ai = Angelia Mariyani Manurung, Ceriah Antriany Siringoringo, Dani Demianto
Ginting, Dennis Werstling Simanjuntak, Desi Ulandari Hutasoit
Cj = kehadiran, Nilai Tugas, Nilai UTS dan Nilau UAS

2. Menentukan Bobot Referensi untuk kriteria (C1,C2,C3. dan C4) adalah (1,00 ;1,00
; 1,00 ;1,00)

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 46


STMIK Pelita Nusantara Medan
3. Membangun Matrix keputusan ternormalisasi dari setiap kategori yang
dilambangkan dengan X(i) dimana i = 1,2,3,dan 4. Adapun rumus normalisasi
matriks adalah sebagai berikut :
𝑥𝑖𝑗
𝑟𝑖𝑗 =
𝑚 2
𝑖=1 𝑥𝑖𝑗

dengan i = 1,2,…,m dan j = 1,2,…,n

Maka :
X(1) = 12 + 12 + 12 + 12 + 12
= 2,236068

Maka :
1
R(1, 1) = =0,447214
2,236068

1
R(2, 1) = =0,447214
2,236068

1
R(3, 1) = =0,447214
2,236068

1
R(4, 1) = =0,447214
2,236068

1
R(5, 1) = =0,447214
2,236068

X(2) = 12 + 12 + 12 + 0,752 + 12
= 4,5625

Maka :
1
R(1, 2) = 4,5625
= 0,468165
1
R(2, 2) = = 0,468165
4,5625
1
R(3, 2) = = 0,468165
4,5625
0,75
R(4, 2) = 4,5625 = 0,351123
1
R(5, 2) = = 0,468165
4,5625

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 47


STMIK Pelita Nusantara Medan
X(3) = 12 + 12 + 0,752 + 12 + 0,752
= 2,03101
Maka :
1
R(1, 3) = = 0,492366
2,03101
1
R(2, 3) = = 0,492366
2,03101
0,75
R(3, 3) = = 0,369274
2,03101
1
R(4, 3) = = 0,492366
2,03101
0,75
R(5,3) = = 0,369274
2,03101

X(4) = 0,752 + 0,752 + 0,752 + 0,752 + 0,752


= 1,677051
Maka :
0,75
R(1, 4) = = 0,448965
1,677051
0,75
R(2, 4) = = 0,448965
1,677051

0,75
R(3, 4) = = 0,448965
1,677051

0,75
R(4, 4) = = 0,448965
1,677051

0,75
R(5,4) = = 0,448965
1,677051

Berdasarkan hasil perhitungan diatas maka diperoleh matriks keputusan


ternormalisasi seperti pada tabel berikut :

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 48


STMIK Pelita Nusantara Medan
Tabel 5.9 Data Matriks Normalisasi

NIM NAMA R(i,1) R (i,2) R (i,3) R(i,4)


130121062 Angelia Mariyani Manurung 0,447214 0,468165 0,492366 0,448965
Ceriah Antriany
130121008 0,447214 0,468165 0,492366 0,448965
Siringoringo
130121028 Dani Demianto Ginting 0,447214 0,468165 0,369274 0,448965
Dennis Werstling
130121064 0,447214 0,351123 0,492366 0,448965
Simanjuntak
130121032 Desi Ulandari Hutasoit 0,447214 0,468165 0,369274 0,448965

4. Membuat matriks keputusan yang ternormalisasi terbobot (V) yang elemen-


elemennya ditentukan dari R(i). Perhitungan matriks keputusan ternormalisasi
terbobot adalah sebagai berikut :
𝑣𝑖𝑗 = 𝑤𝑗 𝑟𝑖𝑗
Dengan i=1,2,3,..., m;danj=1,2,3,... ,n;
dan 𝑤𝑗 adalah bobot referensi dari setiap kriteria.
Tabel 5.10 Perkalian Kriteria 1 Matriks Normalisasi dengan Bobot
i R(i,1) Bobot Referensi (W1) V(i,1)
1 0,447214 1,00 0,447214
2 0,447214 1,00 0,447214
3 0,447214 1,00 0,447214
4 0,447214 1,00 0,447214
5 0,447214 1,00 0,447214

Tabel 5.11 Perkalian Kriteria 2 Matriks Normalisasi dengan Bobot


i R(i,2) Bobot Referensi (W2) V(i,2)
1 0,468165 1,00 0,468165
2 0,468165 1,00 0,468165
3 0,468165 1,00 0,468165
4 0,351123 1,00 0,351123
5 0,468165 1,00 0,468165

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 49


STMIK Pelita Nusantara Medan
Tabel 5.12 Perkalian Kriteria 3 Matriks Normalisasi dengan Bobot
i R(i,3) Bobot Referensi (W3) V(i,3)
1 0,492366 1,00 0,492366
2 0,492366 1,00 0,492366
3 0,369274 1,00 0,369274
4 0,492366 1,00 0,492366
5 0,369274 1,00 0,369274

Tabel 5.13 Perkalian Kriteria 4 Matriks Normalisasi dengan Bobot


i R(i,4) Bobot Referensi (W4) V(i,4)
1 0,448965 1,00 0,448965
2 0,448965 1,00 0,448965
3 0,448965 1,00 0,448965
4 0,448965 1,00 0,448965
5 0,448965 1,00 0,448965

Dari hasil perhitungan diperoleh matriks keputusan ternormalisasi terbobot seperti pada
tabel berikut :
Tabel 5.14 Matriks Keputusan Ternormalisasi Terbobot
i V (i,1) V (i,2) V (i,3) V (i,4)
1 0,447214 0,468165 0,492366 0,448965
2 0,447214 0,468165 0,492366 0,448965
3 0,447214 0,468165 0,369274 0,448965
4 0,447214 0,351123 0,492366 0,448965
5 0,447214 0,468165 0,369274 0,448965

5. Menentukan matriks solusi ideal positif (A+) dan solusi ideal negatif (A--) dapat
dilihat pada tabel berikut :
Tabel 5.15 Solusi Ideal Positif (A+)
V(i,1) V(i,2) V(i,3) V(i,4)
Solusi Ideal

0,447214 0,468165 0,492366 0,448965


Positif

0,447214 0,468165 0,492366 0,448965


0,447214 0,468165 0,369274 0,448965
0,447214 0,351123 0,492366 0,448965
0,447214 0,468165 0,369274 0,448965
A+ (V max) 0,447214 0,468165 0,492366 0,448965

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 50


STMIK Pelita Nusantara Medan
Tabel 5.16 Solusi Ideal Negatif (A-)
V(i,1) V(i,2) V(i,3) V(i,4)

Solusi Ideal
Negatif 0,447214 0,468165 0,492366 0,448965
0,447214 0,468165 0,492366 0,448965
0,447214 0,468165 0,369274 0,448965
0,447214 0,351123 0,492366 0,448965
0,447214 0,468165 0,369274 0,448965
A- (V max) 0,447214 0,351123 0,369274 0,448965

6. Menghitung seperasi atau jarak alternatif dari solusi ideal positif (S +) dengan
rumus :

2
𝑆𝑖+ = 𝑛
𝑗 =1 𝑣𝑖𝑗 − 𝑣𝑗+

Menghitung seperasi atau jarak alternatif dari solusi ideal negatif (S-) :

2
𝑆𝑖+ = 𝑛
𝑗 =1 𝑣𝑖𝑗 − 𝑣𝑗+

Dari hasil perhitungan didapat seperasi (jarak) solusi ideal positif dan jarak solusi
ideal negatif seperti pada tabel berikut :
Tabel 5.17 Nilai Seperasi (Jarak)
V(i,1) V(i,2) V(i,3) V(i,4) S+ S-
0,447214 0,468165 0,492366 0,448965 0 0,169853
0,447214 0,468165 0,492366 0,448965 0 0,169853
0,447214 0,468165 0,369274 0,448965 0,123091 0,117041
0,447214 0,351123 0,492366 0,448965 0,117041 0,123091
+
A (V max) 0,447214 0,468165 0,369274 0,448965
A- (V min) 0,447214 0,468165 0,492366 0,448965

7. Menghitung kedekatan relatif dari setiap alternatif terhadap sulosi ideal positif (ci+)
dengan rumus sebagai berikut :

𝑆𝑖−
𝑐𝑖+ =
𝑆𝑖− + 𝑆𝑖+

dengan i = 1,2,3,..., m

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 51


STMIK Pelita Nusantara Medan
i S+ S- C+
1 0 0,169853 1
2 0 0,169853 1
3 0,123091 0,117041 0,487402
4 0,117041 0,123091 0,512598
5 0 0,169853 1

8. Meranking Alternatif
Pada tabel berikut merupakan hasil proses perhitungan yang sudah terurut dari nilai
yang terbesar sampai nilai yang terkecil. Hasil perangkingan setiap mahasiswa
dapat dilihat pada tabel dibawah ini :
Tabel 5.18 Hasil Proses Perankingan
No. NAMA S+ S- C+
1 Angelia Mariyani Manurung 0 0,169853 1
2 Ceriah Antriany Siringoringo 0 0,169853 1
3 Dennis Werstling Simanjuntak 0,1170411 0,123091 0,5125979
4 Dani Demianto Ginting 0,1230915 0,117041 0,4874021
5 Desi Ulandari Hutasoit 0,1230915 0,117041 0,4874021

Berdasarkan perhitungan dengan penerapan metode TOPSIS, hasil proses perankingan


pada tabel 5.18 menyatakan urutan nilai dari yang tertinggi adalah Angelia Mariyani,
Ceriah Antriany, Dennis Werstling, Dani Demianto dan Desi Ulandari. Untuk
menentukan nilai akhir mahasiswa, maka nilai yang telah di proses dengan metode
TOPSIS dirubah kedalam bentuk nilai huruf yang disesuaikan dengan tabel keputusan
pada tabel 5.19. Nilai Akhir mahasiswa dalam bentuk huruf dapat dilihat pada tabel
berikut.
Tabel 5.19 Nilai Akhir (NA) Mahasiswa

C+ NA
NO NIM NAMA
1 130121062 Angelia Mariyani Manurung 1 A
2 130121008 Ceriah Antriany Siringoringo 1 A
3 130121064 Dennis Werstling Simanjuntak 0,5126 A
4 130121028 Dani Demianto Ginting 0,4874 B
5 130121032 Desi Ulandari Hutasoit 0,4874 B

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 52


STMIK Pelita Nusantara Medan
BAB VI
PERANCANGAN SISTEM

6.1 Desain Sistem


Desain sistem yang digunakan dalam perancangan sistem adalah aplikasi UML
(Unified Modeling Language). Penggambaran UML menggunakan diagram use-case
yang selanjutnya setiap proses yang terjadi akan diperjelas dengan diagram activity lalu
diilustrasikan secara detail menggunakan diagram sequence. UML (Unified Method
Language) yang digunakan dalam sistem pendukung keputusan penilaian hasil belajar
adalah sebagai berikut:
1. Use Case Diagram
Dalam hal ini aktor yang terlibat dalam sistem pendukung keputusan ini adalah
admin. Aplikasi sistem pendukung keputusan penentuan nilai hasil belajar dapat
digunakan jika user login terlebih dahulu. Pengguna yang valid akan dapat
memasuki sistem sementara yang tidak valid akan menerima pesan kesalahan. Proses
pengolahan data hanya dilakukan oleh admin, sementara sistem akan melakukan
perhitungan nilai.

Gambar 6.1 Use Case Keputusan

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 53


STMIK Pelita Nusantara Medan
Gambar 6.1 menunjukkan :
Admin atau dosen melakukan login untuk membuka halaman utama dan menginput
data nilai tugas mahasiswa, nilai UTS dan UAS, dan Jumlah kehadiran (absensi)
mahasiswa. Hasil perhitungan dapat dilihat dengan membuka halaman utama
sehingga dapat ditentukan nilai akhir mahasiswa.

2. Activity Diagram
Pada sistem pendukung keputusan ini, aktifitas diagram dimulai dengan melakukan
penginputan data-data mahasiswa, mata kuliah, semester, program studi dan dosen
yang mengajar, kemudian memeriksa setiap data-data kriteria apakah benar sudah
terisi atau belum, jika belum terisi maka tidak akan dilanjutkan dan kembali ke
penginputan data, dan jika sudah terisi maka akan dilanjutkan dengan penyimpanan
data. Setelah data disimpan, maka akan ada proses-proses selanjutnya yang
dilakukan oleh sistem. Output sistem adalah nilai akhir dari mahasiswa.
Activity Diagram sistem pendukung keputusan ini dapat dilihat seperti gambar
dibawah ini :

Gambar 6.2
Activity Diagram Pada SPK Penilaian Nilai Hasil Belajar

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 54


STMIK Pelita Nusantara Medan
3. Sequence Diagram
Pada sequence diagram login hal yang pertama kali dilakukan adalah admin
menginput username dan password, dan jika username dan password cocok maka
menu utama ditampilkan, jika tidak maka akan tetap di halaman login. Sequence
diagram sistem pendukung keputusan ini dapat dilihat seperti pada gambar berikut
ini :

Login Cek User Data User Halaman Utama

: Dosen

1 : User Name, Password()

2 : User Name, Password()

3 : User Name, Password()

4 : Validasi()

5 : User Name, Password Salah()

6 : User Name, Password Benar, Membuka Menu Utama()

Gambar 6.3
Sequence Diagram Untuk Login

Seterusnya pada sequence diagram input nilai mahasiswa, setelah user berhasil masuk
ke halaman utama, maka user dapat menemukan form input data dari menu file, maka
akan ditampilkan sub menu input data. Adapun data-data yang akan diinput oleh user
adalah Nama, NIM, Mata Kuliah, Nama Dosen, Semester, Program Studi dan Nilai.
Setelah user menginput data, maka user dapat mengklik tombol simpan untuk
menyimpan data tersebut. Maka data akan disimpan dalam database. Sequence
diagram form input data dapat dilihat pada gambar 6.4 dan gambar 6.14 berikut ini :

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 55


STMIK Pelita Nusantara Medan
Halaman Utama Form Input Data Mahasiswa Database

: Dosen
1 : Login()

2 : Buka Menu File()

3 : Input Nama, NIM, , Kelas, Semester, Program Studi, C1, C2, C3, C4()

4 : Kembali ke Menu Utama()

Gambar 6.4
Sequence Diagram Untuk Data Mahasiswa

Halaman Utama Form Input Data Dosen Database

: Dosen

1 : Login()

2 : Buka Menu File()

3 : Input Nama Dosen, NIDN()

4 : Kembali ke Menu Utama()

Gambar 6.5
Sequence Diagram Untuk Data Dosen

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 56


STMIK Pelita Nusantara Medan
Halaman Utama Mata Kuliah Database

: Dosen
1 : Login()

2 : BUka Menu File()

3 : Input Semester, Kode Mata Kuliah, Nama Mata kuliah, SKS()

4 : Kembali ke Menu Utama()

Gambar 6.6
Sequence Diagram Untuk Input Mata Kuliah

Halaman Utama Input Nilai Database

: Dosen
1 : Login()

2 : Buka Menu File()

3 : Input Nilai()

4 : Kembali ke Menu Utama()

Gambar 6.7
Sequence Diagram Untuk Input Nilai

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 57


STMIK Pelita Nusantara Medan
Form Rating Kecocokan Nilai X Database

: Dosen
1 : Klik Rating Kecocokan()

2 : Klik Lanjut Form Nilai X()

3 : Simpan Nilai X ke Database()

4 : Klik lanjut ke Form Normalisasi()

Gambar 6.8
Sequence Diagram Untuk Form Rating Kecocokan dan Form Nilai X

Normalisasi Database

: Dosen
1 : Klik Lanjut pada Form Normalisasi()

2 : Simpan Hasil Perhitungan Normalisasi()

3 : Klik lanjut ke Form Normalisasi Terbobot()

Gambar 6.9
Sequence Diagram Untuk Form Normalisasi

Normalisasi Database

: Dosen
1 : Klik Lanjut pada Form Normalisasi()

2 : Simpan Hasil Perhitungan Normalisasi()

3 : Klik lanjut ke Form Normalisasi Terbobot()

Gambar 6.10
Sequence Diagram Form Normalisasi Bobot

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 58


STMIK Pelita Nusantara Medan
Normaslisasi Terbobot Solusi Ideal Db NB Db Solusi_Ideal

: Dosen
1 : Klik Lanjut dari Form Normalisasi()

2 : Klik Lanjut untuk Solusi Ideal()


3 : Nilai Max dan Min()

4 : Tampil Nilai Max dan Min()


5 : Simpan Nilai Solusi Ideal()

6 : Selesai, Klik Lanjut()

Gambar 6.11
Sequence Diagram Form Solusi Ideal

Solusi Ideal Jarak Pisah Database

: Dosen
1 : Klik lanjut dari Form Solusi Ideal()

2 : Proses perhitungan separasi()

3 : Simpan hasil proses()

4 : Lanjut ke Form kedekatan()

Gambar 6.12
Sequence Diagram Form Jarak Pisah

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 59


STMIK Pelita Nusantara Medan
Form Jarak Pisah Form Kedekatan Database

: Dosen
1 : Klik lanjut dari Form Jarak Pisah()

2 : Proses data menggunakan Rumus metode TOPSIS()

3 : Simpan Hasil Proses()

4 : Menampilkan Hasil Proses()

Gambar 6.13
Sequence Diagram Kedekatan

Form Hasil Akhhir

: Dosen
1 : Klik Lanjut dari Form Kedekatan()

2 : Cetak hasil Akhir()

Gambar 6.14
Sequence Diagram Hasil Akhir

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 60


STMIK Pelita Nusantara Medan
4. Class Diagram
Class diagram adalah bagian dari entity relationship diagram (ERD) yang
digunakan untuk pemodelan basis data. Perbedaannya hanya ERD fokus pada data
sedangkan class diagram fokus pada data dan pemodelan perilaku sistem. Diagram
class SPK dapat dilihat pada gambar 6.15 di halaman berikutnya.

Gambar 6.5
Class Diagram Sistem Pendukung Keputusan

6.2 Desain Tabel Database (Database Design)


Berikut ini adalah desain tabel database yang akan digunakan dalam sistem
pendukung keputusan penilaian hasil belajar.

Tabel 6.1 Kamus Data untuk Tabel Login


Nama Tipe Data Keterangan
Username Text Identitas User (Admin)
Kata Kunci yang dimiliki
Password Text
Admin

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 61


STMIK Pelita Nusantara Medan
Tabel 6.2 Kamus Data untuk Data Mahasiswa
Nama Tipe Data Keterangan
Nama Text Nama Mahasiswa
NIM Integer Nomor Induk Mahasiswa
Kelas Text -
Semester Number -
Program Studi Currency -

Tabel 6.3 Kamus Data untuk Data Dosen


Nama Tipe Data Keterangan
Nama Text Nama Dosen
NIDN Integer Nomor Induk Dosen
Nasional

Tabel 6.4 Kamus Data untuk Mata Kuliah


Nama Tipe Data Keterangan
Semester Number -
Kode Mata Kuliah Text -
Nama Mata Kuliah Text -
SKS Number -
-

Tabel 6.5 Kamus Data untuk Tabel Nilai_X


Nama Tipe Data Keterangan
X1 Text Nilai X1
X2 Text Nilai X2
X3 Text Nilai X3
X4 Text Nilai X4
O1 Number -
O2 Number -
O3 Number -
O4 Number -

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 62


STMIK Pelita Nusantara Medan
Tabel 6.6 Kamus Data untuk Tabel Normalisasi
Nama Tipe Data Keterangan
Nama Text -
NIM Integer -
NC1 Text Normalisasi C1
NC2 Text Normalisasi C2
NC3 Text Normalisasi C3
NC4 Text Normalisasi C4
M1 Number -
M2 Number -
M3 Number -
M4 Number -

Tabel 6.7 Kamus Data untuk Tabel Normalisasi Bobot


Nama Tipe Data Keterangan
Nama Text -
NIM Integer -
NB1 Text Normalisasi Bobot C1
NB2 Text Normalisasi Bobot C2
NB3 Text Normalisasi Bobot C3
NB4 Text Normalisasi Bobot C4
R1 Text -
R2 Text -
R3 Text -
R4 Text -

Tabel 6.8 Kamus Data untuk Tabel Solusi Ideal


Nama Tipe Data Keterangan
SIP_C1 Text Solusi Ideal Positif C1
SIP_C2 Text Solusi Ideal Positif C2
SIP_C3 Text Solusi Ideal Positif C3
SIP_C4 Text Solusi Ideal Positif C4
SIN_C1 Text Solusi Ideal Negatif C1
SIN_C2 Text Solusi Ideal Negatif C2
SIN_C3 Text Solusi Ideal Negatif C3
SIN_C4 Text Solusi Ideal Negatif C4
R1 Text
R2 Text
R3 Text
R4 Text
D1 Text
D2 Text
D3 Text
D4 Text

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 63


STMIK Pelita Nusantara Medan
Tabel 6.9 Kamus Data untuk Tabel Separasi
Nama Tipe Data Keterangan
Nama Text -
NIM Integer -
S_Max Text Separasi Positif
S_Min Text Separasi Negatif
M1 Number -
M2 Number -

Tabel 6.10 Kamus Data untuk Tabel Kedekatan Alternatif


Nama Tipe Data Keterangan
Nama Text -
NIM Integer -
C Text Nilai Kedekatan

Tabel 6.11 Kamus Data untuk Tabel Hasil


Nama Tipe Data Keterangan
Nama Text -
NIM Integer -
Nilai Akhir Text -
Keterangan Text -

6.3 Desain User Interface (Perancangan Antarmuka)


Perancangan antarmuka menampilkan setiap rancangan dari setiap halaman yang
digunakan untuk memperoleh gambaran tampilan sebuah sistem yang hendak dibangun.
Tampilan antarmuka dari sebuah aplikasi menjadi alat komunikasi yang
menghubungkan antara sistem dengan user. Rancangan antarmuka sistem pendukung
keputusan penilaian hasil belajar mahasiswa terdiri dari :
1. Rancangan Tampilan Login

FORM LOGIN

USER NAME

PASSWORD

BATAL LOGIN

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 64


STMIK Pelita Nusantara Medan
2. Rancangan Tampilan Menu Utama

FORM MENU UTAMA

FILE KELAS PENGATURAN TOPSIS GANTI USER

SIMPAN KELUAR

3. Rancangan Tampilan Form Mahasiswa

4. Rancangan Tampilan Form Dosen

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 65


STMIK Pelita Nusantara Medan
5. Rancangan Tampilan Form Mata Kuliah

6. Rancangan Tampilan Form Kelas

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 66


STMIK Pelita Nusantara Medan
7. Rancangan Tampilan Form Atur Kelas

8. Rancangan Tampilan Form Isi Nilai

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 67


STMIK Pelita Nusantara Medan
9. Rancangan Tampilan Persentase Nilai

10. Rancangan Tampilan Fuzzy

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 68


STMIK Pelita Nusantara Medan
11. Rancangan Tampilan Bobot Referensi

12. Rancangan Tampilan Perhitungan TOPSIS

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 69


STMIK Pelita Nusantara Medan
13. Rancangan Tampilan Ganti User

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 70


STMIK Pelita Nusantara Medan
BAB VII
IMPLEMENTASI SISTEM

Rancangan sistem pendukung keputusan penilaian hasil belajar


diimplementasikan ke dalam bahasa pemrograman Visual Basic 10. Data yang
dibutuhkan disimpan kedalam database MySql. Hasil implementasi sistem pendukung
keputusan penilaian hasil belajar mahasiswa terdiri dari :

1. Form Login

Tampilan form login adalah tampilan pada saat aplikasi pertama kali dijalankan.
Pada halaman ini user memasukkan username dan password untuk bisa masuk ke
form berikutnya. Dan jika user tidak memasukkan password dan username yang
benar, maka user tidak bisa masuk ke aplikasi tersebut. Dan disediakan juga
registrasi untuk user baru, seandainya jika user berganti. Pada tampilan login, untuk
masuk ke halaman selanjutnya, maka user dapat mengeksekusi tombol login. Dan
kemudian, user akan masuk ke halaman menu utama
Source Code Form Login sebagai berikut :
Public Class frmLogin
Dim OCommand As OdbcCommand
Dim OReader As OdbcDataReader

Private Sub frmLogin_Load(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles MyBase.Load
StartKoneksi()
Me.txtUsername.Clear()
Me.txtPassword.Clear()
End Sub

Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnCancel.Click
End
End Sub

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 71


STMIK Pelita Nusantara Medan
Dim us As String = ""
Dim ps As String = ""

Private Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnLogin.Click
us = Me.txtUsername.Text
ps = Me.txtPassword.Text
Dim sql As String = String.Format("select * from `tbl_user` where
usr='{0}' and psw=password('{1}')", us, ps)
OCommand = New OdbcCommand(sql, Koneksi)
OReader = OCommand.ExecuteReader
If OReader.HasRows Then
us = ""
ps = ""
Me.txtUsername.Clear()
Me.txtPassword.Clear()
Me.txtUsername.Focus()
frmUtama.Show(Me)
Me.Hide()
Else
MsgBox("Login Gagal!")
End If
End Sub

Private Sub txtUsername_KeyDown(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyEventArgs) Handles txtUsername.KeyDown
If e.KeyCode = Keys.Enter Then
If Not txtUsername.Text = "" Then
txtPassword.Focus()
End If
End If
End Sub

Private Sub txtPassword_KeyDown(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyEventArgs) Handles txtPassword.KeyDown
If e.KeyCode = Keys.Enter Then
If Not txtPassword.Text = "" Then
btnLogin.Focus()
End If
End If
End Sub
End Class

2. Form Menu Utama

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 72


STMIK Pelita Nusantara Medan
Form menu utama memiliki beberapa menu seperti file, kelas, pengaturan, TOPSIS
dan Ganti User. Pada menu file, user akan diarahkan ke form input data mahasiswa,
data dosen, data matakuliah dan data kelas. Pada menu kelas terdiri dari form atur
kelas dan isi nilai. Pada menu pengaturan terdiri dari form persentase nilai, form
fuzzy dan form bobot referensi. Pada menu TOPSIS terdapat : form penilaian hasil
belajar dengan menentukan kelas dan mata kuliah terlebih dahulu, form
menunjukkan nilai mata kuliah dan form simpan ke laporan dan menampilkan
laporan penilaian hasil belajar mahasiswa. Menu Ganti User adalah menu yang
disediakan bagi user lain yang akan menggunakan aplikasi.
Source Code Form Menu Utama sebagai berikut :

Public Class frmUtama

Private Sub frmUtama_FormClosing(ByVal sender As Object, ByVal e As


System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Dim y As MsgBoxResult = MsgBox("Yakin keluar?", vbQuestion + vbYesNo)
If y = MsgBoxResult.Yes Then
e.Cancel = False
frmLogin.Show()
Else
e.Cancel = True
End If
End Sub

Private Sub frmUtama_Load(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles MyBase.Load
StartKoneksi()
frmBc.MdiParent = Me
frmBc.Show()
frmBc.Enabled = False
End Sub

Private Sub DataMahasiswaToolStripMenuItem_Click(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
DataMahasiswaToolStripMenuItem.Click
frmMahasiswa.MdiParent = Me
frmMahasiswa.Show()
frmMahasiswa.BringToFront()
End Sub

Private Sub DataDosenToolStripMenuItem_Click(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
DataDosenToolStripMenuItem.Click
frmDosen.MdiParent = Me
frmDosen.Show()
End Sub

Private Sub DataMatakuliahToolStripMenuItem_Click(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
DataMatakuliahToolStripMenuItem.Click
frmMataKuliah.MdiParent = Me
frmMataKuliah.Show()

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 73


STMIK Pelita Nusantara Medan
End Sub

Private Sub DataKelasToolStripMenuItem_Click(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
DataKelasToolStripMenuItem.Click
frmKelas.MdiParent = Me
frmKelas.Show()
End Sub

Private Sub AturKelasToolStripMenuItem1_Click(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
AturKelasToolStripMenuItem1.Click
frmAturKelas.MdiParent = Me
frmAturKelas.Show()
End Sub

Private Sub IsiNilaiToolStripMenuItem_Click(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
IsiNilaiToolStripMenuItem.Click
frmIsiNilai.MdiParent = Me
frmIsiNilai.Show()
End Sub

Private Sub AturPersentaseNilaiToolStripMenuItem_Click(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
AturPersentaseNilaiToolStripMenuItem.Click
frmPersentaseNilai.MdiParent = Me
frmPersentaseNilai.Show()
End Sub

Private Sub TopsisToolStripMenuItem_Click(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handles TopsisToolStripMenuItem.Click
frmTopsis.MdiParent = Me
frmTopsis.Show()
End Sub

Private Sub FuzzyToolStripMenuItem_Click(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handles FuzzyToolStripMenuItem.Click
frmFuzzy.MdiParent = Me
frmFuzzy.Show()
End Sub

Private Sub BobotReferensiToolStripMenuItem_Click(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
BobotReferensiToolStripMenuItem.Click
frmBobotW.MdiParent = Me
frmBobotW.Show()
End Sub

Private Sub KeluarToolStripMenuItem_Click(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handles KeluarToolStripMenuItem.Click
Me.Close()
End Sub

Private Sub GantiUserToolStripMenuItem_Click(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
GantiUserToolStripMenuItem.Click
frmUser.MdiParent = Me
frmUser.Show()
End Sub

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 74


STMIK Pelita Nusantara Medan
Private Sub frmUtama_Resize(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Resize
frmBc.Size = Me.Size
frmBc.Location = New Point(0, 0)
End Sub
End Class

3. Form Data Mahasiswa

Pada form ini, akan ditampilkan halaman input data mahasiswa yang terdiri dari
Nim, Nama, Jenjang dan Program Studi. Untuk menambah data baru maka user
mengeksekusi tombol “tambah”, dan kemudian mengisi data sesuai dengan apa
yang diminta oleh aplikasi. Setiap data baru yang diinput, user menyimpan data
yang telah diinput, dengan menekan tombol “simpan”. Pada form ini juga tersedia
menu edit, hapus, batal dan keluar.
Source Code Form Data Mahasiswa sebagai berikut :

Public Class frmMahasiswa


Private DAdapter As OdbcDataAdapter
Private CurrentState As state = state.tambah
Private OCommand As OdbcCommand
Private nimParam As String
Private DReader As OdbcDataReader

Enum state
tambah = 1
simpan = 2
edit = 3
End Enum

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 75


STMIK Pelita Nusantara Medan
Enum aksi
tambah = 1
simpan = 2
edit = 3
hapus = 4
batal = 5
keluar = 6
End Enum

Private Sub frmMahasiswa_FormClosing(ByVal sender As Object, ByVal e As


System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Select Case CurrentState
Case state.tambah
e.Cancel = False
Case Else
Dim s As MsgBoxResult = MsgBox("Masih ada data pada kontrol
input, yakit ingin keluar ?", vbInformation + vbYesNo)
If s = MsgBoxResult.Yes Or s = MsgBoxResult.Ok Then
e.Cancel = False
Else
e.Cancel = True
End If
End Select
End Sub

Private Sub frmMahasiswa_Load(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles MyBase.Load
StartKoneksi()
isiTabel()
setState(state.tambah)
cmbProdi.Items.AddRange(getProdi)
cmbJenjang.Items.AddRange(getJenjang)
DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically
End Sub

Sub isiTabel()
Dim str As String = "select nim as 'NIM', nama as 'Nama Mahasiswa',
jenjang as 'Jenjang Studi', prodi as 'Program Studi' from tbl_mahasiswa"
Dim ds As New DataSet
DAdapter = New OdbcDataAdapter(str, Koneksi)
DAdapter.Fill(ds, "tbl_mahasiswa")
Me.DataGridView1.DataSource = ds.Tables(0)
DataGridView1.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode.AllCells
End Sub

Sub setState(ByVal s As state)


Select Case s
Case state.tambah
btnTambah.Enabled = True
btnSimpan.Enabled = False
btnEdit.Enabled = False
btnHapus.Enabled = False
btnBatal.Enabled = False
btnKeluar.Enabled = True
CurrentState = state.tambah
Case state.edit
btnTambah.Enabled = False
btnSimpan.Enabled = False
btnEdit.Enabled = True

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 76


STMIK Pelita Nusantara Medan
btnHapus.Enabled = True
btnBatal.Enabled = True
btnKeluar.Enabled = False
CurrentState = state.edit
Case state.simpan
btnTambah.Enabled = False
btnSimpan.Enabled = True
btnEdit.Enabled = False
btnHapus.Enabled = False
btnBatal.Enabled = True
btnKeluar.Enabled = False
CurrentState = state.simpan
End Select
End Sub

Sub hapusInput()
txtNim.Clear()
txtNama.Clear()
cmbProdi.SelectedIndex = 0
cmbJenjang.SelectedIndex = 0
End Sub

Function cekInput() As Boolean


Dim hasil As Boolean = True
If txtNim.Text = "" Then hasil = False
If txtNama.Text = "" Then hasil = False
If cmbJenjang.Text = "" Then hasil = False
If cmbProdi.Text = "" Then hasil = False
Return hasil
End Function

Sub setAksi(ByVal a As aksi)


Dim sql As String = ""

Select Case a
Case aksi.tambah
hapusInput()
setState(state.simpan)
txtNim.Focus()
Case aksi.simpan
If cekInput() = True Then
sql = "insert into tbl_mahasiswa values('" & txtNim.Text
& "','" & txtNama.Text & "','" & cmbJenjang.Text & "','" & cmbProdi.Text &
"')"
OCommand = New OdbcCommand(sql, Koneksi)
Try
OCommand.ExecuteNonQuery()
isiTabel()
hapusInput()
setState(state.tambah)
Catch ex As Exception
MsgBox(ex.Message)
End Try
Else
MsgBox("Inputan Tidak Boleh Kosong!")
End If
Case aksi.edit
If cekInput() = True Then

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 77


STMIK Pelita Nusantara Medan
sql = "update tbl_mahasiswa set nim='" & txtNim.Text &
"',nama='" & txtNama.Text & "',jenjang='" & cmbJenjang.Text & "',prodi='" &
cmbProdi.Text & "' where nim='" & nimParam & "'"
OCommand = New OdbcCommand(sql, Koneksi)
Try
OCommand.ExecuteNonQuery()
isiTabel()
hapusInput()
setState(state.tambah)
Catch ex As Exception
MsgBox(ex.Message)
End Try
Else
MsgBox("Inputan Tidak Boleh Kosong!")
End If
Case aksi.hapus
sql = "delete from tbl_mahasiswa where nim='" & nimParam &
"'"
OCommand = New OdbcCommand(sql, Koneksi)
Try
OCommand.ExecuteNonQuery()
isiTabel()
hapusInput()
setState(state.tambah)
Catch ex As Exception
MsgBox(ex.Message)
End Try
Case aksi.batal
hapusInput()
setState(state.tambah)
Case aksi.keluar
Me.Close()
End Select
End Sub

Private Sub btnTambah_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnTambah.Click
setAksi(aksi.tambah)
End Sub

Private Sub btnBatal_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnBatal.Click
setAksi(aksi.batal)
End Sub

Private Sub btnKeluar_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnKeluar.Click
setAksi(aksi.keluar)
End Sub

Private Sub btnSimpan_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnSimpan.Click
setAksi(aksi.simpan)
End Sub

Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnEdit.Click
setAksi(aksi.edit)
End Sub

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 78


STMIK Pelita Nusantara Medan
Private Sub btnHapus_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnHapus.Click
setAksi(aksi.hapus)
End Sub

Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As


System.Windows.Forms.DataGridViewCellEventArgs) Handles
DataGridView1.CellClick
If e.RowIndex < DataGridView1.RowCount - 1 And e.RowIndex <> -1 Then
nimParam = DataGridView1.Item(0, e.RowIndex).Value
txtNim.Text = DataGridView1.Item(0, e.RowIndex).Value
txtNama.Text = DataGridView1.Item(1, e.RowIndex).Value
cmbJenjang.Text = DataGridView1.Item(2, e.RowIndex).Value
cmbProdi.Text = DataGridView1.Item(3, e.RowIndex).Value
setState(state.edit)
End If
End Sub

Sub setDataFromNim()
Dim sql As String = ""
sql = "select * from tbl_mahasiswa where nim='" & txtNim.Text & "'"
OCommand = New OdbcCommand(sql, Koneksi)
DReader = OCommand.ExecuteReader
If DReader.HasRows Then
setState(state.edit)
While DReader.Read
nimParam = DReader(0).ToString
txtNama.Text = DReader(1).ToString
cmbJenjang.Text = DReader(2).ToString
cmbProdi.Text = DReader(3).ToString
End While
Else
setState(state.simpan)
End If
DReader.Close()
End Sub

Private Sub txtNim_KeyDown(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyEventArgs) Handles txtNim.KeyDown
If e.KeyCode = Keys.Enter Then
setDataFromNim()
End If
End Sub

Private Sub txtNim_LostFocus(ByVal sender As Object, ByVal e As


System.EventArgs) Handles txtNim.LostFocus
setDataFromNim()
End Sub

Sub cariData(ByVal str As String)


Dim sql As String = ""
sql = "select nim as 'NIM', nama as 'Nama Mahasiswa', jenjang as
'Jenjang Studi', prodi as 'Program Studi' from tbl_mahasiswa where nim like
'%" & str & "%' or nama like '%" & str & "%' or jenjang like '%" & str & "%'
or prodi like '%" & str & "%'"
Dim ds As New DataSet
DAdapter = New OdbcDataAdapter(sql, Koneksi)
DAdapter.Fill(ds, "tbl_mahasiswa")
Me.DataGridView1.DataSource = ds.Tables(0)

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 79


STMIK Pelita Nusantara Medan
DataGridView1.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode.AllCells
End Sub

Private Sub btnCari_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnCari.Click
If txtCari.Text = "" Then
isiTabel()
Else
cariData(txtCari.Text)
End If
End Sub

Private Sub txtCari_KeyDown(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyEventArgs) Handles txtCari.KeyDown
If e.KeyCode = Keys.Enter Then
If txtCari.Text = "" Then
isiTabel()
Else
cariData(txtCari.Text)
End If
End If
End Sub
End Class

4. Form Dosen

Pada form ini, akan ditampilkan halaman input data dosen yang terdiri dari NIDN,
Nama dan Pendidikan. Untuk menambah data baru maka user mengeksekusi
tombol “tambah”, dan kemudian mengisi data sesuai dengan apa yang diminta oleh
aplikasi. Setiap data baru yang diinput, user menyimpan data yang telah diinput,

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 80


STMIK Pelita Nusantara Medan
dengan menekan tombol“simpan”. Pada form ini juga tersedia menu edit, hapus,
batal dan keluar.
Source Code Form Dosen sebagai berikut :

Public Class frmDosen


Private DAdapter As OdbcDataAdapter
Private CurrentState As state = state.tambah
Private OCommand As OdbcCommand
Private nidnParam As String
Private DReader As OdbcDataReader

Enum state
tambah = 1
simpan = 2
edit = 3
End Enum

Enum aksi
tambah = 1
simpan = 2
edit = 3
hapus = 4
batal = 5
keluar = 6
End Enum

Private Sub frmDosen_FormClosing(ByVal sender As Object, ByVal e As


System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Select Case CurrentState
Case state.tambah
e.Cancel = False
Case Else
Dim s As MsgBoxResult = MsgBox("Masih ada data pada kontrol
input, yakit ingin keluar ?", vbInformation + vbYesNo)
If s = MsgBoxResult.Yes Or s = MsgBoxResult.Ok Then
e.Cancel = False
Else
e.Cancel = True
End If
End Select
End Sub

Private Sub frmDosen_Load(ByVal sender As Object, ByVal e As


System.EventArgs) Handles Me.Load
StartKoneksi()
isiTabel()
setState(state.tambah)
cmbPendidikan.Items.AddRange(getPendidikan)
DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically
End Sub

Sub isiTabel()
Dim str As String = "select nidn as 'NIDN', nama as 'Nama Dosen',
pendidikan as 'Pendidikan Terakhir' from tbl_dosen"
Dim ds As New DataSet
DAdapter = New OdbcDataAdapter(str, Koneksi)
DAdapter.Fill(ds, "tbl_dosen")
Me.DataGridView1.DataSource = ds.Tables(0)

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 81


STMIK Pelita Nusantara Medan
DataGridView1.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode.AllCells
End Sub

Sub setState(ByVal s As state)


Select Case s
Case state.tambah
btnTambah.Enabled = True
btnSimpan.Enabled = False
btnEdit.Enabled = False
btnHapus.Enabled = False
btnBatal.Enabled = False
btnKeluar.Enabled = True
CurrentState = state.tambah
Case state.edit
btnTambah.Enabled = False
btnSimpan.Enabled = False
btnEdit.Enabled = True
btnHapus.Enabled = True
btnBatal.Enabled = True
btnKeluar.Enabled = False
CurrentState = state.edit
Case state.simpan
btnTambah.Enabled = False
btnSimpan.Enabled = True
btnEdit.Enabled = False
btnHapus.Enabled = False
btnBatal.Enabled = True
btnKeluar.Enabled = False
CurrentState = state.simpan
End Select
End Sub

Sub hapusInput()
txtNIDN.Clear()
txtNama.Clear()
cmbPendidikan.SelectedIndex = 0
End Sub

Function cekInput() As Boolean


Dim hasil As Boolean = True
If txtNIDN.Text = "" Then hasil = False
If txtNama.Text = "" Then hasil = False
If cmbPendidikan.Text = "" Then hasil = False
Return hasil
End Function

Sub setAksi(ByVal a As aksi)


Dim sql As String = ""

Select Case a
Case aksi.tambah
hapusInput()
setState(state.simpan)
txtNIDN.Focus()
Case aksi.simpan
If cekInput() = True Then
sql = "insert into tbl_dosen values('" & txtNIDN.Text &
"','" & txtNama.Text & "','" & cmbPendidikan.Text & "')"
OCommand = New OdbcCommand(sql, Koneksi)

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 82


STMIK Pelita Nusantara Medan
Try
OCommand.ExecuteNonQuery()
isiTabel()
hapusInput()
setState(state.tambah)
Catch ex As Exception
MsgBox(ex.Message)
End Try
Else
MsgBox("Inputan Tidak Boleh Kosong!")
End If
Case aksi.edit
If cekInput() = True Then
sql = "update tbl_dosen set nidn='" & txtNIDN.Text &
"',nama='" & txtNama.Text & "',pendidikan='" & cmbPendidikan.Text & "' where
nidn='" & nidnParam & "'"
OCommand = New OdbcCommand(sql, Koneksi)
Try
OCommand.ExecuteNonQuery()
isiTabel()
hapusInput()
setState(state.tambah)
Catch ex As Exception
MsgBox(ex.Message)
End Try
Else
MsgBox("Inputan Tidak Boleh Kosong!")
End If
Case aksi.hapus
sql = "delete from tbl_dosen where nidn='" & nidnParam & "'"
OCommand = New OdbcCommand(sql, Koneksi)
Try
OCommand.ExecuteNonQuery()
isiTabel()
hapusInput()
setState(state.tambah)
Catch ex As Exception
MsgBox(ex.Message)
End Try
Case aksi.batal
hapusInput()
setState(state.tambah)
Case aksi.keluar
Me.Close()
End Select
End Sub

Private Sub btnTambah_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnTambah.Click
setAksi(aksi.tambah)
End Sub

Private Sub btnBatal_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnBatal.Click
setAksi(aksi.batal)
End Sub

Private Sub btnKeluar_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnKeluar.Click
setAksi(aksi.keluar)

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 83


STMIK Pelita Nusantara Medan
End Sub

Private Sub btnSimpan_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnSimpan.Click
setAksi(aksi.simpan)
End Sub

Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnEdit.Click
setAksi(aksi.edit)
End Sub

Private Sub btnHapus_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnHapus.Click
setAksi(aksi.hapus)
End Sub

Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As


System.Windows.Forms.DataGridViewCellEventArgs) Handles
DataGridView1.CellClick
If e.RowIndex < DataGridView1.RowCount - 1 And e.RowIndex <> -1 Then
nidnParam = DataGridView1.Item(0, e.RowIndex).Value
txtNIDN.Text = DataGridView1.Item(0, e.RowIndex).Value
txtNama.Text = DataGridView1.Item(1, e.RowIndex).Value
cmbPendidikan.Text = DataGridView1.Item(2, e.RowIndex).Value
setState(state.edit)
End If
End Sub

Sub setDataFromNidn()
Dim sql As String = ""
sql = "select * from tbl_dosen where nidn='" & txtNIDN.Text & "'"
OCommand = New OdbcCommand(sql, Koneksi)
DReader = OCommand.ExecuteReader
If DReader.HasRows Then
setState(state.edit)
While DReader.Read
nidnParam = DReader(0).ToString
txtNama.Text = DReader(1).ToString
cmbPendidikan.Text = DReader(2).ToString
End While
Else
setState(state.simpan)
End If
DReader.Close()
End Sub

Private Sub txtNIDN_KeyDown(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyEventArgs) Handles txtNIDN.KeyDown
If e.KeyCode = Keys.Enter Then
setDataFromNidn()
End If
End Sub

Private Sub txtNim_LostFocus(ByVal sender As Object, ByVal e As


System.EventArgs) Handles txtNIDN.LostFocus
setDataFromNidn()
End Sub

Sub cariData(ByVal str As String)

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 84


STMIK Pelita Nusantara Medan
Dim sql As String = ""
sql = "select nidn as 'NIDN', nama as 'Nama Dosen', pendidikan as
'Pendidikan Terakhir' from tbl_dosen where nidn like '%" & str & "%' or nama
like '%" & str & "%' or pendidikan like '%" & str & "%'"
Dim ds As New DataSet
DAdapter = New OdbcDataAdapter(sql, Koneksi)
DAdapter.Fill(ds, "tbl_dosen")
Me.DataGridView1.DataSource = ds.Tables(0)
DataGridView1.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode.AllCells
End Sub

Private Sub btnCari_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnCari.Click
If txtCari.Text = "" Then
isiTabel()
Else
cariData(txtCari.Text)
End If
End Sub

Private Sub txtCari_KeyDown(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyEventArgs) Handles txtCari.KeyDown
If e.KeyCode = Keys.Enter Then
If txtCari.Text = "" Then
isiTabel()
Else
cariData(txtCari.Text)
End If
End If
End Sub

End Class

5. Form Matakuliah

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 85


STMIK Pelita Nusantara Medan
Pada form ini, akan ditampilkan halaman input data matakuliah yang terdiri dari
Kode Matakuliah, Nama Matakuliah, SKS, Semester, dan Program Studi. Untuk
menambah data baru maka user mengeksekusi tombol “tambah”, dan kemudian
mengisi data sesuai dengan apa yang diminta oleh aplikasi. Setiap data baru yang
diinput, user menyimpan data yang telah diinput, dengan menekan
tombol“simpan”. Pada form ini juga tersedia menu edit, hapus, batal dan keluar.
Source Code Form Matakuliah sebagai berikut :
Public Class frmMataKuliah
Private DAdapter As OdbcDataAdapter
Private CurrentState As state = state.tambah
Private OCommand As OdbcCommand
Private kodeParam As String
Private DReader As OdbcDataReader

Enum state
tambah = 1
simpan = 2
edit = 3
End Enum

Enum aksi
tambah = 1
simpan = 2
edit = 3
hapus = 4
batal = 5
keluar = 6
End Enum

Private Sub frmMataKuliah_FormClosing(ByVal sender As Object, ByVal e As


System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Select Case CurrentState
Case state.tambah
e.Cancel = False
Case Else
Dim s As MsgBoxResult = MsgBox("Masih ada data pada kontrol
input, yakit ingin keluar ?", vbInformation + vbYesNo)
If s = MsgBoxResult.Yes Or s = MsgBoxResult.Ok Then
e.Cancel = False
Else
e.Cancel = True
End If
End Select
End Sub

Private Sub frmMataKuliah_Load(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles MyBase.Load
StartKoneksi()
isiTabel()
setState(state.tambah)
cmbProdi.Items.AddRange(getProdi)
DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically
End Sub

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 86


STMIK Pelita Nusantara Medan
Sub isiTabel()
Dim str As String = "select kode as 'Kode Matakuliah', nama as 'Nama
Matakuliah', sks as 'SKS', semester as 'Semester', prodi as 'Program Studi'
from tbl_mk"
Dim ds As New DataSet
DAdapter = New OdbcDataAdapter(str, Koneksi)
DAdapter.Fill(ds, "tbl_mk")
Me.DataGridView1.DataSource = ds.Tables(0)
DataGridView1.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode.AllCells
End Sub

Sub setState(ByVal s As state)


Select Case s
Case state.tambah
btnTambah.Enabled = True
btnSimpan.Enabled = False
btnEdit.Enabled = False
btnHapus.Enabled = False
btnBatal.Enabled = False
btnKeluar.Enabled = True
CurrentState = state.tambah
Case state.edit
btnTambah.Enabled = False
btnSimpan.Enabled = False
btnEdit.Enabled = True
btnHapus.Enabled = True
btnBatal.Enabled = True
btnKeluar.Enabled = False
CurrentState = state.edit
Case state.simpan
btnTambah.Enabled = False
btnSimpan.Enabled = True
btnEdit.Enabled = False
btnHapus.Enabled = False
btnBatal.Enabled = True
btnKeluar.Enabled = False
CurrentState = state.simpan
End Select
End Sub

Sub hapusInput()
txtKode.Clear()
txtNama.Clear()
numSemester.Value = 1
numSks.Value = 2
cmbProdi.SelectedIndex = 0
End Sub

Function cekInput() As Boolean


Dim hasil As Boolean = True
If txtKode.Text = "" Then Return False
If txtNama.Text = "" Then Return False
If numSemester.Value < 1 Then Return False
If numSks.Value < 1 Then Return False
If cmbProdi.Text = "" Then Return False
Return hasil
End Function

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 87


STMIK Pelita Nusantara Medan
Sub setAksi(ByVal a As aksi)
Dim sql As String = ""

Select Case a
Case aksi.tambah
hapusInput()
setState(state.simpan)
txtKode.Focus()
Case aksi.simpan
If cekInput() = True Then
sql = "insert into tbl_mk values('" & txtKode.Text &
"','" & txtNama.Text & "','" & numSks.Value & "','" & numSemester.Value &
"','" & cmbProdi.Text & "')"
OCommand = New OdbcCommand(sql, Koneksi)
Try
OCommand.ExecuteNonQuery()
isiTabel()
hapusInput()
setState(state.tambah)
Catch ex As Exception
MsgBox(ex.Message)
End Try
Else
MsgBox("Inputan Tidak Boleh Kosong!")
End If
Case aksi.edit
If cekInput() = True Then
sql = "update tbl_mk set kode='" & txtKode.Text & "',
nama='" & txtNama.Text & "', sks='" & numSks.Value & "', semester='" &
numSemester.Value & "', prodi='" & cmbProdi.Text & "' where kode='" &
kodeParam & "'"
OCommand = New OdbcCommand(sql, Koneksi)
Try
OCommand.ExecuteNonQuery()
isiTabel()
hapusInput()
setState(state.tambah)
Catch ex As Exception
MsgBox(ex.Message)
End Try
Else
MsgBox("Inputan Tidak Boleh Kosong!")
End If
Case aksi.hapus
sql = "delete from tbl_mk where kode='" & kodeParam & "'"
OCommand = New OdbcCommand(sql, Koneksi)
Try
OCommand.ExecuteNonQuery()
isiTabel()
hapusInput()
setState(state.tambah)
Catch ex As Exception
MsgBox(ex.Message)
End Try
Case aksi.batal
hapusInput()
setState(state.tambah)
Case aksi.keluar
Me.Close()
End Select

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 88


STMIK Pelita Nusantara Medan
End Sub

Private Sub btnTambah_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnTambah.Click
setAksi(aksi.tambah)
End Sub

Private Sub btnBatal_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnBatal.Click
setAksi(aksi.batal)
End Sub

Private Sub btnKeluar_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnKeluar.Click
setAksi(aksi.keluar)
End Sub

Private Sub btnSimpan_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnSimpan.Click
setAksi(aksi.simpan)
End Sub

Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnEdit.Click
setAksi(aksi.edit)
End Sub

Private Sub btnHapus_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnHapus.Click
setAksi(aksi.hapus)
End Sub

Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As


System.Windows.Forms.DataGridViewCellEventArgs) Handles
DataGridView1.CellClick
If e.RowIndex < DataGridView1.RowCount - 1 And e.RowIndex <> -1 Then
kodeParam = DataGridView1.Item(0, e.RowIndex).Value
txtKode.Text = DataGridView1.Item(0, e.RowIndex).Value
txtNama.Text = DataGridView1.Item(1, e.RowIndex).Value
numSks.Value = DataGridView1.Item(2, e.RowIndex).Value
numSemester.Value = DataGridView1.Item(3, e.RowIndex).Value
cmbProdi.Text = DataGridView1.Item(4, e.RowIndex).Value
setState(state.edit)
End If
End Sub

Sub setDataFromkelas()
Dim sql As String = ""
sql = "select * from tbl_mk where kode='" & txtKode.Text & "'"
OCommand = New OdbcCommand(sql, Koneksi)
DReader = OCommand.ExecuteReader
If DReader.HasRows Then
setState(state.edit)
While DReader.Read
kodeParam = DReader(0).ToString
txtNama.Text = DReader(1).ToString
numSks.Value = Val(DReader(2).ToString)
numSemester.Value = Val(DReader(3).ToString)
cmbProdi.Text = DReader(4).ToString
End While

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 89


STMIK Pelita Nusantara Medan
Else
setState(state.simpan)
End If
DReader.Close()
End Sub

Private Sub txtKode_KeyDown(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyEventArgs) Handles txtKode.KeyDown
If e.KeyCode = Keys.Enter Then
setDataFromkelas()
End If
End Sub

Private Sub txtKode_LostFocus(ByVal sender As Object, ByVal e As


System.EventArgs) Handles txtKode.LostFocus
setDataFromkelas()
End Sub

Sub cariData(ByVal str As String)


Dim sql As String = ""
sql = "select kode as 'Kode Matakuliah', nama as 'Nama Matakuliah',
sks as 'SKS', semester as 'Semester', prodi as 'Program Studi' from tbl_mk
where kode like '%" & str & "%' or nama like '%" & str & "%' or prodi like
'%" & str & "%' or semester like '%" & str & "%'"
Dim ds As New DataSet
DAdapter = New OdbcDataAdapter(sql, Koneksi)
DAdapter.Fill(ds, "tbl_mk")
Me.DataGridView1.DataSource = ds.Tables(0)
DataGridView1.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode.AllCells
End Sub

Private Sub btnCari_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnCari.Click
If txtCari.Text = "" Then
isiTabel()
Else
cariData(txtCari.Text)
End If
End Sub

Private Sub txtCari_KeyDown(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyEventArgs) Handles txtCari.KeyDown
If e.KeyCode = Keys.Enter Then
If txtCari.Text = "" Then
isiTabel()
Else
cariData(txtCari.Text)
End If
End If
End Sub
End Class

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 90


STMIK Pelita Nusantara Medan
6. Form Atur Kelas

Pada form ini, akan ditampilkan nama-nama mahasiswa berdasarkan nama-nama


kelas yang telah diinput. User dapat menambah kelas sesuai dengan mata kuliah
dan dosen pengampunya. Untuk menambah data baru maka user mengeksekusi
tombol “tambah”. Pada form ini juga tersedia menu hapus untuk menghapus data.
Source Code Form Atur Kelas sebagai berikut :

Public Class frmAturKelas


Private OCommand As OdbcCommand
Private DReader As OdbcDataReader
Private DAdapter As OdbcDataAdapter
Private kelasParam As String = ""

Sub isiKelas(Optional ByVal filter As String = "")


Dim sql As String = ""
If filter = "" Then
sql = "select kelas as 'Kelas', semester as 'Semester', jenjang
as 'Jenjang Studi', prodi as 'Program Studi' from tbl_kelas"
Else
sql = "select kelas as 'kelas', semester as 'semester Mahasiswa',
jenjang as 'Jenjang Studi', prodi as 'Program Studi' from tbl_kelas where
kelas like '%" & filter & "%' or semester like '%" & filter & "%' or jenjang
like '%" & filter & "%' or prodi like '%" & filter & "%'"
End If
Dim ds As New DataSet
DAdapter = New OdbcDataAdapter(sql, Koneksi)
DAdapter.Fill(ds, "tbl_kelas")
dgKelas.DataSource = ds.Tables(0)
dgKelas.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode.AllCells
End Sub

Sub isiMahasiswa(Optional ByVal filter As String = "")


Dim sql As String = ""
If filter = "" Then

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 91


STMIK Pelita Nusantara Medan
sql = "select nim as 'NIM', nama as 'Nama Mahasiswa', jenjang as
'Jenjang Studi', prodi as 'Program Studi' from tbl_mahasiswa"
Else
sql = "select nim as 'NIM', nama as 'Nama Mahasiswa', jenjang as
'Jenjang Studi', prodi as 'Program Studi' from tbl_mahasiswa where nim like
'%" & filter & "%' or nama like '%" & filter & "%' or jenjang like '%" &
filter & "%' or prodi like '%" & filter & "%'"
End If
Dim ds As New DataSet
DAdapter = New OdbcDataAdapter(sql, Koneksi)
DAdapter.Fill(ds, "tbl_mahasiswa")
dgMahasiswa.DataSource = ds.Tables(0)
dgMahasiswa.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode.AllCells
End Sub

Sub isiMatakuliah()
Dim sql As String = "select * from tbl_mk order by nama asc"
OCommand = New OdbcCommand(sql, Koneksi)
DReader = OCommand.ExecuteReader
cmbMk.Items.Clear()
If Not DReader.HasRows Then
cmbMk.Text = "Tidak ada matakuliah"
Else
While DReader.Read
Dim strMk As String = String.Format("{0}, {1}",
DReader(0).ToString, DReader(1).ToString)
cmbMk.Items.Add(strMk)
End While
End If
End Sub

Sub isiDosen()
Dim sql As String = "select * from tbl_dosen order by nama asc"
OCommand = New OdbcCommand(sql, Koneksi)
DReader = OCommand.ExecuteReader
cmbDosen.Items.Clear()
If Not DReader.HasRows Then
cmbDosen.Text = "Tidak ada dosen"
Else
While DReader.Read
Dim strMk As String = String.Format("{0}, {1}",
DReader(0).ToString, DReader(1).ToString)
cmbDosen.Items.Add(strMk)
End While
End If
End Sub

Private Sub frmAturKelas_Load(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles MyBase.Load
StartKoneksi()
isiKelas()
isiMahasiswa()
isiMatakuliah()
isiDosen()
End Sub

Private Sub txtFilterKelas_KeyDown(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyEventArgs) Handles txtFilterKelas.KeyDown
If e.KeyCode = Keys.Enter Then

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 92


STMIK Pelita Nusantara Medan
isiKelas(txtFilterKelas.Text)
End If
End Sub

Private Sub txtFilterMahasiswa_KeyDown(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyEventArgs) Handles txtFilterMahasiswa.KeyDown
If e.KeyCode = Keys.Enter Then
isiMahasiswa(txtFilterMahasiswa.Text)
End If
End Sub

Sub isiDataMatakuliah(ByVal kelas As String)


Dim sql As String = "select a.mk as 'Kode Matakuliah', b.nama as
'Nama Matakuliah', a.dosen as 'NIDN',c.nama as 'Nama Dosen' from tbl_atur_mk
a left join tbl_mk b on a.mk=b.kode left join tbl_dosen c on a.dosen=c.nidn
where a.kelas='" & kelas & "'"
Dim ds As New DataSet
DAdapter = New OdbcDataAdapter(sql, Koneksi)
DAdapter.Fill(ds, "tbl_atur_mk")
dgMK.DataSource = ds.Tables(0)
dgMK.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
End Sub

Sub isiDataMahasiswa(ByVal kelas As String)


Dim sql As String = "select a.mahasiswa as 'NIM', b.nama as 'Nama
Mahasiswa', b.jenjang as 'Jenjang', b.prodi as 'Program Studi' from
tbl_atur_mhs a left join tbl_mahasiswa b on a.mahasiswa=b.nim where
a.kelas='" & kelas & "'"
Dim ds As New DataSet
DAdapter = New OdbcDataAdapter(sql, Koneksi)
DAdapter.Fill(ds, "tbl_atur_mhs")
dgMHS.DataSource = ds.Tables(0)
dgMHS.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
End Sub

Private Sub dgKelas_CellClick(ByVal sender As Object, ByVal e As


System.Windows.Forms.DataGridViewCellEventArgs) Handles dgKelas.CellClick
If e.RowIndex < dgKelas.RowCount - 1 And e.RowIndex <> -1 Then
kelasParam = dgKelas.Item(0, e.RowIndex).Value
isiDataMatakuliah(dgKelas.Item(0, e.RowIndex).Value)
isiDataMahasiswa(dgKelas.Item(0, e.RowIndex).Value)
End If
End Sub

Sub tambahMk()
If kelasParam = "" Then
MsgBox("Kelas belum dipilih, atau tidak ada!")
Exit Sub
End If

If cmbMk.Items.Count < 1 Or cmbMk.Text = "" Then


MsgBox("Matakuliah belum ada, atau belum terpilih!")
Exit Sub
End If

If cmbDosen.Items.Count < 1 Or cmbDosen.Text = "" Then


MsgBox("Dosen belum ada, atau belum terpilih!")
Exit Sub
End If

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 93


STMIK Pelita Nusantara Medan
Dim mk As String = ""
Dim dosen As String = ""
mk = cmbMk.Text.Split(",")(0).ToString
dosen = cmbDosen.Text.Split(",")(0).ToString

Dim sql As String = "select count(kelas) from tbl_atur_mk where


kelas='" & kelasParam & "' and mk='" & mk & "'"
OCommand = New OdbcCommand(sql, Koneksi)
DReader = OCommand.ExecuteReader
DReader.Read()
If (Val(DReader(0).ToString) > 0) Then
MsgBox("Data matakuliah ini sudah ada!")
Exit Sub
End If
DReader.Close()

sql = String.Format("insert into tbl_atur_mk(kelas,mk,dosen)


values('{0}','{1}','{2}')", kelasParam, mk, dosen)
Try
OCommand = New OdbcCommand(sql, Koneksi)
OCommand.ExecuteNonQuery()
isiDataMatakuliah(kelasParam)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

Sub hapusMK()
If kelasParam = "" Then
MsgBox("Kelas belum dipilih, atau tidak ada!")
Exit Sub
End If

If dgMK.RowCount < 2 Then


MsgBox("Data belum ada!")
Exit Sub
End If

Dim rowIndex As Integer = dgMK.SelectedCells(0).RowIndex

If rowIndex = 0 Then
Dim r As MsgBoxResult = MsgBox("Mungkin data matakuliah yang akan
dihapus belum di pilih, atau anda memilih yang pertama, yakin hapus?",
vbInformation + vbYesNo)
If r = MsgBoxResult.No Then
Exit Sub
End If
End If

Dim mk As String = dgMK.Item(0, rowIndex).Value


Dim dosen As String = dgMK.Item(2, rowIndex).Value

Dim sql As String = "delete from tbl_atur_mk where kelas='" &


kelasParam & "' and mk='" & mk & "' and dosen='" & dosen & "'"
OCommand = New OdbcCommand(sql, Koneksi)
OCommand.ExecuteNonQuery()
isiDataMatakuliah(kelasParam)
End Sub

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 94


STMIK Pelita Nusantara Medan
Private Sub btnTambahMk_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnTambahMk.Click
tambahMk()
End Sub

Private Sub btnHapusMk_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnHapusMk.Click
hapusMK()
End Sub

Sub tambahMhs()
If kelasParam = "" Then
MsgBox("Kelas belum dipilih, atau tidak ada!")
Exit Sub
End If

If dgMahasiswa.RowCount < 2 Then


MsgBox("Data mahasiswa belum ada!")
Exit Sub
End If

Dim rowIndex As Integer = dgMahasiswa.SelectedCells(0).RowIndex

If rowIndex = 0 Then
Dim r As MsgBoxResult = MsgBox("Mungkin data mahasiswa belum di
pilih, atau anda memilih yang pertama, yakin untuk ditambah?", vbInformation
+ vbYesNo)
If r = MsgBoxResult.No Then
Exit Sub
End If
End If

Dim mhs As String = dgMahasiswa.Item(0, rowIndex).Value

Dim sql As String = "select count(kelas) from tbl_atur_mhs where


kelas='" & kelasParam & "' and mahasiswa='" & mhs & "'"
OCommand = New OdbcCommand(sql, Koneksi)
DReader = OCommand.ExecuteReader
DReader.Read()
If (Val(DReader(0).ToString) > 0) Then
MsgBox("Mahsiswa ini sudah terdaftar pada kelas!")
Exit Sub
End If
DReader.Close()

sql = String.Format("insert into tbl_atur_mhs(kelas,mahasiswa)


values('{0}','{1}')", kelasParam, mhs)
Try
OCommand = New OdbcCommand(Sql, Koneksi)
OCommand.ExecuteNonQuery()
isiDataMahasiswa(kelasParam)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

Sub hapusMhs()
If kelasParam = "" Then
MsgBox("Kelas belum dipilih, atau tidak ada!")
Exit Sub

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 95


STMIK Pelita Nusantara Medan
End If

If dgMHS.RowCount < 2 Then


MsgBox("Data belum ada!")
Exit Sub
End If

Dim rowIndex As Integer = dgMHS.SelectedCells(0).RowIndex

If rowIndex = 0 Then
Dim r As MsgBoxResult = MsgBox("Mungkin data mahasiswa yang akan
dihapus belum di pilih, atau anda memilih yang pertama, yakin hapus?",
vbInformation + vbYesNo)
If r = MsgBoxResult.No Then
Exit Sub
End If
End If

Dim mahasiswa As String = dgMHS.Item(0, rowIndex).Value

Dim sql As String = "delete from tbl_atur_mhs where kelas='" &


kelasParam & "' and mahasiswa='" & mahasiswa & "'"
OCommand = New OdbcCommand(sql, Koneksi)
OCommand.ExecuteNonQuery()
isiDataMahasiswa(kelasParam)
End Sub

Private Sub btnTambahMahasiswa_Click(ByVal sender As System.Object, ByVal


e As System.EventArgs) Handles btnTambahMahasiswa.Click
tambahMhs()
End Sub

Private Sub btnHapusMahasiswa_Click(ByVal sender As System.Object, ByVal


e As System.EventArgs) Handles btnHapusMahasiswa.Click
hapusMhs()
End Sub

Private Sub dgKelas_CellContentClick(ByVal sender As System.Object, ByVal


e As System.Windows.Forms.DataGridViewCellEventArgs) Handles
dgKelas.CellContentClick

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button1.Click
Me.Close()
End Sub
End Class

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 96


STMIK Pelita Nusantara Medan
7. Form Isi Nilai

Pada form ini, akan ditampilkan nilai mahsiswa yang telah diinput untuk setiap
kelas.User dapat menginput ke sistem satu persatu nilai mahasiswa atau diinput
melalui database.
Source Code Form Isi Nilai sebagai berikut :

Public Class frmIsiNilai

Private OCommand As OdbcCommand


Private DReader As OdbcDataReader
Private DAdapter As OdbcDataAdapter
Private kelasParam As String = ""
Private mkparam As String = ""

Sub isiKelas(Optional ByVal filter As String = "")


Dim sql As String = ""
If filter = "" Then
sql = "select kelas as 'Kelas', semester as 'Semester', jenjang
as 'Jenjang Studi', prodi as 'Program Studi' from tbl_kelas"
Else
sql = "select kelas as 'kelas', semester as 'semester Mahasiswa',
jenjang as 'Jenjang Studi', prodi as 'Program Studi' from tbl_kelas where
kelas like '%" & filter & "%' or semester like '%" & filter & "%' or jenjang
like '%" & filter & "%' or prodi like '%" & filter & "%'"
End If
Dim ds As New DataSet
DAdapter = New OdbcDataAdapter(sql, Koneksi)
DAdapter.Fill(ds, "tbl_kelas")
dgKelas.DataSource = ds.Tables(0)
dgKelas.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode.AllCells
End Sub

Sub isiDataMatakuliah(ByVal kelas As String, Optional ByVal filter As


String = "")
Dim sql As String = ""
If filter = "" Then
sql = String.Format("select a.mk as 'Kode Matakuliah', b.nama as
'Nama Matakuliah', a.dosen as 'NIDN',c.nama as 'Nama Dosen' from tbl_atur_mk

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 97


STMIK Pelita Nusantara Medan
a left join tbl_mk b on a.mk=b.kode left join tbl_dosen c on a.dosen=c.nidn
where a.kelas='{0}'", kelas)
Else
sql = String.Format("select a.mk as 'Kode Matakuliah', b.nama as
'Nama Matakuliah', a.dosen as 'NIDN',c.nama as 'Nama Dosen' from tbl_atur_mk
a left join tbl_mk b on a.mk=b.kode left join tbl_dosen c on a.dosen=c.nidn
where a.kelas='{0}' and a.mk like '%{1}%' or a.dosen like '%{2}%'", kelas,
filter, filter)
End If
Dim ds As New DataSet
DAdapter = New OdbcDataAdapter(sql, Koneksi)
DAdapter.Fill(ds, "tbl_atur_mk")
dgMatakuliah.DataSource = ds.Tables(0)
dgMatakuliah.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode.AllCells
End Sub

Sub isiDataMahasiswa(ByVal kelas As String, ByVal matakuliah As String,


Optional ByVal filter As String = "")
Dim sql As String = ""
If filter = "" Then
sql = String.Format("SELECT tbl_atur_mhs.mahasiswa as `Nim
Mahasiswa`,tbl_mahasiswa.nama as `Nama Mahasiswa`,
coalesce(tbl_nilai_mhs.nhadir,0) as `Nilai
Kehadiran`,coalesce(tbl_nilai_mhs.ntugas,0) as `Nilai
Tugas`,coalesce(tbl_nilai_mhs.nuts,0) as `Nilai
UTS`,coalesce(tbl_nilai_mhs.nuas,0) as `NIlai UAS` from tbl_atur_mhs LEFT
JOIN tbl_nilai_mhs on tbl_atur_mhs.mahasiswa=tbl_nilai_mhs.nim and
tbl_atur_mhs.kelas=tbl_nilai_mhs.kelas inner JOIN tbl_mahasiswa on
tbl_atur_mhs.mahasiswa=tbl_mahasiswa.nim WHERE tbl_atur_mhs.kelas='{0}' or
tbl_nilai_mhs.mk='{1}'", kelas, mkparam)
Else
sql = String.Format("SELECT tbl_atur_mhs.mahasiswa as `Nim
Mahasiswa`,tbl_mahasiswa.nama as `Nama Mahasiswa`,
coalesce(tbl_nilai_mhs.nhadir,0) as `Nilai
Kehadiran`,coalesce(tbl_nilai_mhs.ntugas,0) as `Nilai
Tugas`,coalesce(tbl_nilai_mhs.nuts,0) as `Nilai
UTS`,coalesce(tbl_nilai_mhs.nuas,0) as `NIlai UAS` from tbl_atur_mhs LEFT
JOIN tbl_nilai_mhs on tbl_atur_mhs.mahasiswa=tbl_nilai_mhs.nim and
tbl_atur_mhs.kelas=tbl_nilai_mhs.kelas inner JOIN tbl_mahasiswa on
tbl_atur_mhs.mahasiswa=tbl_mahasiswa.nim WHERE tbl_atur_mhs.kelas='{0}' or
tbl_nilai_mhs.mk='{1}' or tbl_atur_mhs.mahasiswa like '%{2}%' or
tbl_mahasiswa.nama like '%{3}%'", kelas, mkparam, filter, filter)
End If
Dim ds As New DataSet
DAdapter = New OdbcDataAdapter(sql, Koneksi)
DAdapter.Fill(ds, "tbl_nilai_mhs")
dgNilaimahasiswa.DataSource = ds.Tables(0)
dgNilaimahasiswa.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode.AllCells
For i As Integer = 0 To 3
dgNilaimahasiswa.Columns(i + 2).DefaultCellStyle.Alignment =
DataGridViewContentAlignment.MiddleCenter
Next
End Sub

Private Sub frmIsiNilai_Load(ByVal sender As Object, ByVal e As


System.EventArgs) Handles Me.Load
StartKoneksi()
isiKelas()

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 98


STMIK Pelita Nusantara Medan
dgKelas.EditMode = DataGridViewEditMode.EditProgrammatically
dgMatakuliah.EditMode = DataGridViewEditMode.EditProgrammatically
End Sub

Private Sub txtFilterKelas_KeyDown(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyEventArgs) Handles txtFilterKelas.KeyDown
If e.KeyCode = Keys.Enter Then
If txtFilterKelas.Text = "" Then
isiKelas()
Else
isiKelas(txtFilterKelas.Text)
End If
End If
End Sub

Private Sub dgKelas_CellClick(ByVal sender As Object, ByVal e As


System.Windows.Forms.DataGridViewCellEventArgs) Handles dgKelas.CellClick
If e.RowIndex < dgKelas.RowCount - 1 And e.RowIndex <> -1 Then
kelasParam = dgKelas.Item(0, e.RowIndex).Value
Button3.Enabled = False
mkparam = ""
isiDataMatakuliah(kelasParam)
End If
End Sub

Private Sub txtFilterMatakuliah_KeyDown(ByVal sender As Object, ByVal e


As System.Windows.Forms.KeyEventArgs) Handles txtFilterMatakuliah.KeyDown
If kelasParam = "" Then Exit Sub

If e.KeyCode = Keys.Enter Then


If txtFilterMatakuliah.Text = "" Then
isiDataMatakuliah(kelasParam)
Else
isiDataMatakuliah(kelasParam, txtFilterMatakuliah.Text)
End If
End If
End Sub

Private Sub dgMatakuliah_CellClick(ByVal sender As Object, ByVal e As


System.Windows.Forms.DataGridViewCellEventArgs) Handles
dgMatakuliah.CellClick
If e.RowIndex < dgMatakuliah.RowCount - 1 And e.RowIndex <> -1 Then
mkparam = dgMatakuliah.Item(0, e.RowIndex).Value
isiDataMahasiswa(kelasParam, mkparam)
If dgNilaimahasiswa.RowCount > 0 Then
Button3.Enabled = False
Else
Button3.Enabled = True
End If
End If
End Sub

Private nilai As Double = 0

Private Sub dgNilaimahasiswa_CellBeginEdit(ByVal sender As Object, ByVal


e As System.Windows.Forms.DataGridViewCellCancelEventArgs) Handles
dgNilaimahasiswa.CellBeginEdit
If (e.ColumnIndex < 2) Then e.Cancel = True
nilai = Val(dgNilaimahasiswa.Item(e.ColumnIndex, e.RowIndex).Value)
End Sub

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 99


STMIK Pelita Nusantara Medan
Private hasEdit As Boolean = False

Private Sub dgNilaimahasiswa_CellEndEdit(ByVal sender As Object, ByVal e


As System.Windows.Forms.DataGridViewCellEventArgs) Handles
dgNilaimahasiswa.CellEndEdit
If (Not IsNumeric(dgNilaimahasiswa.Item(e.ColumnIndex,
e.RowIndex).Value)) Then
dgNilaimahasiswa.Item(e.ColumnIndex, e.RowIndex).Value = nilai
End If
hasEdit = True
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button2.Click
Me.Close()
End Sub

Private Sub frmIsiNilai_FormClosing(ByVal sender As Object, ByVal e As


System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Dim msgRes As MsgBoxResult = MsgBoxResult.No
If hasEdit = True Then
msgRes = MsgBox("Ada perubahan belum disimpan, akan hilang
apabila keluar. Tetap Keluar?", MsgBoxStyle.Question + vbYesNo)
If msgRes = MsgBoxResult.Yes Then
e.Cancel = False
Else
e.Cancel = True
End If
End If
End Sub

Private Sub txtFilterMahasiswa_KeyDown(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyEventArgs) Handles txtFilterMahasiswa.KeyDown
If kelasParam = "" Or mkparam = "" Then Exit Sub
If e.KeyCode = Keys.Enter Then
If txtFilterMahasiswa.Text = "" Then
isiDataMahasiswa(kelasParam, mkparam)
Else
isiDataMahasiswa(kelasParam, mkparam,
txtFilterMahasiswa.Text)
End If
End If
End Sub

Function simpanNilai(ByVal nim As String, ByVal nhadir As String, ByVal


ntugas As String, ByVal nuts As String, ByVal nuas As String) As Boolean
Dim sql As String = ""
sql = String.Format("insert into
tbl_nilai_mhs(kelas,mk,nim,nhadir,ntugas,nuts,nuas)" & _

"values('{0}','{1}','{2}','{3}','{4}','{5}','{6}') " & _


"on duplicate key update " & _

"nhadir=values(nhadir),ntugas=values(ntugas),nuts=values(nuts),nuas=values(nu
as)", kelasParam, mkparam, nim, nhadir, ntugas, nuts, nuas)
OCommand = New OdbcCommand(sql, Koneksi)
Try
OCommand.ExecuteNonQuery()
Catch ex As Exception

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 100


STMIK Pelita Nusantara Medan
MsgBox(ex.Message, MsgBoxStyle.Critical)
Return False
End Try
Return True
End Function

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button1.Click

If kelasParam = "" Then


MsgBox("Pilih kelas terlebih dahulu!")
Exit Sub
End If

If mkparam = "" Then


MsgBox("Pilih matakuliah terlebih dahulu!")
Exit Sub
End If

If hasEdit = False Then


MsgBox("Data sudah tersimpan!")
Exit Sub
End If

For i As Integer = 0 To dgNilaimahasiswa.RowCount - 1


Dim nim As String = dgNilaimahasiswa.Item(0, i).Value
Dim nhadir As String = dgNilaimahasiswa.Item(2, i).Value
Dim ntugas As String = dgNilaimahasiswa.Item(3, i).Value
Dim nuts As String = dgNilaimahasiswa.Item(4, i).Value
Dim nuas As String = dgNilaimahasiswa.Item(5, i).Value
If simpanNilai(nim, nhadir, ntugas, nuts, nuas) = False Then
Exit Sub
End If
Next
MsgBox("Data nilai mahasiswa telah tersimpan!")
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button3.Click
Button3.Enabled = False
Dim sql As String = ""

sql = String.Format("select a.mahasiswa as 'Nim Mahasiswa', b.nama as


'Nama Mahasiswa', " & _
"'0' as 'Nilai Kehadiran', '0' as 'Nilai Tugas',
'0' as 'Nilai UTS', " & _
"'0' as 'Nilai UAS' from tbl_atur_mhs a " & _
"inner join tbl_mahasiswa b on a.mahasiswa=b.nim
" & _
"where a.kelas='{0}'", kelasParam)

Dim ds As New DataSet


DAdapter = New OdbcDataAdapter(sql, Koneksi)
DAdapter.Fill(ds, "tbl_nilai_mhs")
dgNilaimahasiswa.DataSource = ds.Tables(0)
dgNilaimahasiswa.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode.AllCells
For i As Integer = 0 To 3
dgNilaimahasiswa.Columns(i + 2).DefaultCellStyle.Alignment =
DataGridViewContentAlignment.MiddleCenter

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 101


STMIK Pelita Nusantara Medan
Next

For i As Integer = 0 To dgNilaimahasiswa.RowCount - 1


Dim nim As String = dgNilaimahasiswa.Item(0, i).Value
Dim nhadir As String = dgNilaimahasiswa.Item(2, i).Value
Dim ntugas As String = dgNilaimahasiswa.Item(3, i).Value
Dim nuts As String = dgNilaimahasiswa.Item(4, i).Value
Dim nuas As String = dgNilaimahasiswa.Item(5, i).Value
If simpanNilai(nim, nhadir, ntugas, nuts, nuas) = False Then
Button3.Enabled = True
Exit Sub
End If
Next
End Sub

Private Sub dgMatakuliah_CellContentClick(ByVal sender As System.Object,


ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles
dgMatakuliah.CellContentClick

End Sub

Private Sub txtFilterMahasiswa_TextChanged(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handles txtFilterMahasiswa.TextChanged

End Sub
End Class

8. Form Persentase Nilai

Pada form ini akan ditampilkan nilai persentase dari masing-masing kriteria
penentuan hasil belajar. Persentase di input sesuai dengan buku pedoman akademik
STMIK Pelita Nusantara. Untuk menambah data baru maka user mengeksekusi
tombol “tambah”, dan kemudian mengisi data sesuai dengan apa yang diminta oleh
aplikasi. Setiap data baru yang diinput, user menyimpan data yang telah diinput,
dengan menekan tombol“simpan”
Source Code Form Persentase Nilai sebagai berikut :

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 102


STMIK Pelita Nusantara Medan
Public Class frmPersentaseNilai
Private OCommand As OdbcCommand
Private DReader As OdbcDataReader

Private kehadiran As Integer = 0


Private nhadir As Double = 0
Private ntugas As Double = 0
Private nuts As Double = 0
Private nuas As Double = 0

Sub buatDataDefault(ByVal kunci As String, ByVal nilai As Double)


Dim sql As String = String.Format("insert into
tbl_pengaturan(kunci,nilai) values('{0}','{1}') " & _
"on duplicate key update nilai=values(nilai)", kunci, nilai)
OCommand = New OdbcCommand(sql, Koneksi)
Try
OCommand.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

Function getKey(ByVal kunci As String, Optional ByVal nilai As Double =


0) As String
Dim kembali As String = ""
Dim sql As String = String.Format("select nilai from tbl_pengaturan
where kunci='{0}' limit 1", kunci)
OCommand = New OdbcCommand(sql, Koneksi)
DReader = OCommand.ExecuteReader
DReader.Read()
If DReader.HasRows Then
kembali = DReader("nilai").ToString
Else
DReader.Close()
buatDataDefault(kunci, nilai)
kembali = getKey(kunci, nilai)
End If
DReader.Close()
Return kembali
End Function

Private Sub frmPersentaseNilai_Load(ByVal sender As System.Object, ByVal


e As System.EventArgs) Handles MyBase.Load
StartKoneksi()
txtjlhkehadiran.Text = getKey("jHadir", 14)
txtnhadir.Text = getKey("nHadir", 10)
txtntugas.Text = getKey("nTugas", 20)
txtnuts.Text = getKey("nUTS", 30)
txtnuas.Text = getKey("nUAS", 40)
End Sub

Function validasi() As Boolean


If Not IsNumeric(txtjlhkehadiran.Text) Then
MsgBox("Jumlah nilai kehadiran harus angka")
txtjlhkehadiran.Focus()
Return False
End If

If Not IsNumeric(txtnhadir.Text) Then


MsgBox("Jumlah persentase nilai kehadiran harus angka")

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 103


STMIK Pelita Nusantara Medan
txtnhadir.Focus()
Return False
End If

If Not IsNumeric(txtntugas.Text) Then


MsgBox("Jumlah persentase nilai tugas harus angka")
txtntugas.Focus()
Return False
End If

If Not IsNumeric(txtnuts.Text) Then


MsgBox("Jumlah persentase nilai uts harus angka")
txtnuts.Focus()
Return False
End If

If Not IsNumeric(txtnuas.Text) Then


MsgBox("Jumlah persentase nilai uas harus angka")
txtnuas.Focus()
Return False
End If

Return True
End Function

Private Sub btnsimpan_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnsimpan.Click
If validasi() = True Then
buatDataDefault("jHadir", Val(txtjlhkehadiran.Text))
buatDataDefault("nHadir", Val(txtnhadir.Text))
buatDataDefault("nTugas", Val(txtntugas.Text))
buatDataDefault("nUTS", Val(txtnuts.Text))
buatDataDefault("nUAS", Val(txtnuas.Text))
MsgBox("Berhasil Disimpan")
End If
End Sub
End Class

9. Form Fuzzy

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 104


STMIK Pelita Nusantara Medan
Pada form fuzzy, akan ditampilkan nilai fuzzy dari masing-masing kriteria yang
terdiri dari kriteria kehadiran, krtieria tugas, kriteria UTS dan kriteria UAS. Setiap
data baru yang diinput, user menyimpan data yang telah diinput, dengan menekan
tombol“simpan”.
Source Code Form Fuzzy sebagai berikut :

Public Class frmFuzzy


Private OCommand As OdbcCommand
Private DReader As OdbcDataReader

Sub buatDataDefault(ByVal kunci As String, ByVal besardari As Double,


ByVal nilai As Double)
Dim sql As String = String.Format("insert into
tbl_pengaturan(kunci,besar_dari,nilai) values('{0}','{1}','{2}') " & _
"on duplicate key update besar_dari=values(besar_dari),
nilai=values(nilai)", kunci, besardari, nilai)
OCommand = New OdbcCommand(sql, Koneksi)
Try
OCommand.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

Function getKey(ByVal kunci As String) As String()


Dim kembali As String() = {0, 0}
Dim sql As String = String.Format("select besar_dari,nilai from
tbl_pengaturan where kunci='{0}' limit 1", kunci)
OCommand = New OdbcCommand(sql, Koneksi)
DReader = OCommand.ExecuteReader
DReader.Read()
If DReader.HasRows Then
kembali(0) = DReader("besar_dari").ToString
kembali(1) = DReader("nilai").ToString
Else
kembali = {0, 0}
End If
DReader.Close()
Return kembali
End Function

Sub setDefault()
buatDataDefault("kbd1", 8, 1)
buatDataDefault("kbd2", 6, 0.75)
buatDataDefault("kbd3", 4, 0.5)
buatDataDefault("kbd4", 2, 0.25)
buatDataDefault("kl", 0, 0)

buatDataDefault("tbd1", 16, 1)
buatDataDefault("tbd2", 12, 0.75)
buatDataDefault("tbd3", 8, 0.5)
buatDataDefault("tbd4", 4, 0.25)
buatDataDefault("tl", 0, 0)

buatDataDefault("ubd1", 24, 1)
buatDataDefault("ubd2", 18, 0.75)

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 105


STMIK Pelita Nusantara Medan
buatDataDefault("ubd3", 12, 0.5)
buatDataDefault("ubd4", 2, 0.25)
buatDataDefault("ul", 0, 0)

buatDataDefault("uabd1", 32, 1)
buatDataDefault("uabd2", 24, 0.75)
buatDataDefault("uabd3", 16, 0.5)
buatDataDefault("uabd4", 8, 0.25)
buatDataDefault("ual", 0, 0)
End Sub

Sub bacaSetting()
kbd1.Text = getKey("kbd1")(0)
kn1.Text = getKey("kbd1")(1)
kbd2.Text = getKey("kbd2")(0)
kn2.Text = getKey("kbd2")(1)
kbd3.Text = getKey("kbd3")(0)
kn3.Text = getKey("kbd3")(1)
kbd4.Text = getKey("kbd4")(0)
kn4.Text = getKey("kbd4")(1)
kl.Text = getKey("kl")(0)

tbd1.Text = getKey("tbd1")(0)
tn1.Text = getKey("tbd1")(1)
tbd2.Text = getKey("tbd2")(0)
tn2.Text = getKey("tbd2")(1)
tbd3.Text = getKey("tbd3")(0)
tn3.Text = getKey("tbd3")(1)
tbd4.Text = getKey("tbd4")(0)
tn4.Text = getKey("tbd4")(1)
tl.Text = getKey("tl")(0)

ubd1.Text = getKey("ubd1")(0)
un1.Text = getKey("ubd1")(1)
ubd2.Text = getKey("ubd2")(0)
un2.Text = getKey("ubd2")(1)
ubd3.Text = getKey("ubd3")(0)
un3.Text = getKey("ubd3")(1)
ubd4.Text = getKey("ubd4")(0)
un4.Text = getKey("ubd4")(1)
ul.Text = getKey("ul")(0)

uabd1.Text = getKey("uabd1")(0)
uan1.Text = getKey("uabd1")(1)
uabd2.Text = getKey("uabd2")(0)
uan2.Text = getKey("uabd2")(1)
uabd3.Text = getKey("uabd3")(0)
uan3.Text = getKey("uabd3")(1)
uabd4.Text = getKey("uabd4")(0)
uan4.Text = getKey("uabd4")(1)
ual.Text = getKey("ual")(0)
End Sub

Private Sub frmFuzzy_Load(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles MyBase.Load
bacaSetting()
End Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnKeluar.Click

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 106


STMIK Pelita Nusantara Medan
Me.Close()
End Sub

Private Sub btnsimpanKehadiran_Click(ByVal sender As System.Object, ByVal


e As System.EventArgs) Handles btnsimpanKehadiran.Click
buatDataDefault("kbd1", Val(kbd1.Text), Val(kn1.Text))
buatDataDefault("kbd2", Val(kbd2.Text), Val(kn2.Text))
buatDataDefault("kbd3", Val(kbd3.Text), Val(kn3.Text))
buatDataDefault("kbd4", Val(kbd4.Text), Val(kn4.Text))
buatDataDefault("kl", 0, Val(kl.Text))
MsgBox("Data Tersimpan")
End Sub

Private Sub btnsimpanUTS_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnsimpanUTS.Click
buatDataDefault("ubd1", Val(ubd1.Text), Val(un1.Text))
buatDataDefault("ubd2", Val(ubd2.Text), Val(un2.Text))
buatDataDefault("ubd3", Val(ubd3.Text), Val(un3.Text))
buatDataDefault("ubd4", Val(ubd4.Text), Val(un4.Text))
buatDataDefault("ul", 0, Val(ul.Text))
MsgBox("Data Tersimpan")
End Sub

Private Sub btnsimpanTugas_Click(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles btnsimpanTugas.Click
buatDataDefault("tbd1", Val(tbd1.Text), Val(tn1.Text))
buatDataDefault("tbd2", Val(tbd2.Text), Val(tn2.Text))
buatDataDefault("tbd3", Val(tbd3.Text), Val(tn3.Text))
buatDataDefault("tbd4", Val(tbd4.Text), Val(tn4.Text))
buatDataDefault("tl", 0, Val(tl.Text))
MsgBox("Data Tersimpan")
End Sub

Private Sub btnsimpanUAS_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnsimpanUAS.Click
buatDataDefault("uabd1", Val(uabd1.Text), Val(uan1.Text))
buatDataDefault("uabd2", Val(uabd2.Text), Val(uan2.Text))
buatDataDefault("uabd3", Val(uabd3.Text), Val(uan3.Text))
buatDataDefault("uabd4", Val(uabd4.Text), Val(uan4.Text))
buatDataDefault("ual", 0, Val(ual.Text))
MsgBox("Data Tersimpan")
End Sub
End Class

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 107


STMIK Pelita Nusantara Medan
10. Form Bobot Referensi

Pada form ini, akan ditampilkan bobot referensi yang telah diinput. Bobot referensi
tiap kriteria ditentukan berdasarkan tingkat prioritas. Setiap data baru yang diinput,
user menyimpan data yang telah diinput, dengan menekan tombol“simpan”.
Source Code Form Bobot Referensi sebagai berikut :

Public Class frmBobotW


Private OCommand As OdbcCommand
Private DReader As OdbcDataReader

Private W1 As Double = 0
Private W2 As Double = 0
Private W3 As Double = 0
Private W4 As Double = 0

Sub buatDataDefault(ByVal kunci As String, ByVal nilai As Double)


Dim sql As String = String.Format("insert into
tbl_pengaturan(kunci,nilai) values('{0}','{1}') " & _
"on duplicate key update nilai=values(nilai)", kunci, nilai)
OCommand = New OdbcCommand(sql, Koneksi)
Try
OCommand.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

Function getKey(ByVal kunci As String, Optional ByVal nilai As Double =


0) As String
Dim kembali As String = ""
Dim sql As String = String.Format("select nilai from tbl_pengaturan
where kunci='{0}' limit 1", kunci)
OCommand = New OdbcCommand(sql, Koneksi)
DReader = OCommand.ExecuteReader
DReader.Read()
If DReader.HasRows Then
kembali = DReader("nilai").ToString
Else

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 108


STMIK Pelita Nusantara Medan
DReader.Close()
buatDataDefault(kunci, nilai)
kembali = getKey(kunci, nilai)
End If
DReader.Close()
Return kembali
End Function

Sub buatBobotDefault()
buatDataDefault("W1", 1)
buatDataDefault("W2", 1)
buatDataDefault("W3", 1)
buatDataDefault("W4", 1)
End Sub

Private Sub frmBobotW_Load(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles MyBase.Load
TextBox1.Text = getKey("W1")
TextBox2.Text = getKey("W2")
TextBox3.Text = getKey("W3")
TextBox4.Text = getKey("W4")
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button1.Click
buatDataDefault("W1", Val(TextBox1.Text))
buatDataDefault("W2", Val(TextBox2.Text))
buatDataDefault("W3", Val(TextBox3.Text))
buatDataDefault("W4", Val(TextBox4.Text))
MsgBox("Data Bobot Referensi Tersimpan!")
End Sub

End Class

11. Form TOPSIS

Pada form ini, akan ditampilkan nilai akhir hasil belajar berdasarkan metode
TOPSIS dengan memilih kelas terlebih dahulu. User memilih kelas dan mata kuliah
kemudian ditekan “penilaian hasil belajar topsis”. Setiap data baru yang diinput,

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 109


STMIK Pelita Nusantara Medan
user menyimpan data yang telah diinput, dengan menekan tombol“simpan”. Pada
tombol simpan, nilai hasil belajar mahasiswa akan ditampilkan dalam bentuk
laporan yang dapat digunakan oleh dosen sebagai laporan ke BAAK.
Source Code Form TOPSIS sebagai berikut :

Public Class frmTopsis


Private OCommand As OdbcCommand
Private DReader As OdbcDataReader
Private DAdapter As OdbcDataAdapter
Private kelasParam As String = ""
Private mkparam As String = ""

Sub isiKelas(Optional ByVal filter As String = "")


Dim sql As String = ""
If filter = "" Then
sql = "select kelas as 'Kelas', semester as 'Semester', jenjang
as 'Jenjang Studi', prodi as 'Program Studi' from tbl_kelas"
Else
sql = "select kelas as 'kelas', semester as 'semester Mahasiswa',
jenjang as 'Jenjang Studi', prodi as 'Program Studi' from tbl_kelas where
kelas like '%" & filter & "%' or semester like '%" & filter & "%' or jenjang
like '%" & filter & "%' or prodi like '%" & filter & "%'"
End If
Dim ds As New DataSet
DAdapter = New OdbcDataAdapter(sql, Koneksi)
DAdapter.Fill(ds, "tbl_kelas")
dgKelas.DataSource = ds.Tables(0)
dgKelas.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode.AllCells
End Sub

Sub isiDataMatakuliah(ByVal kelas As String, Optional ByVal filter As


String = "")
Dim sql As String = ""
If filter = "" Then
sql = String.Format("select a.mk as 'Kode Matakuliah', b.nama as
'Nama Matakuliah', a.dosen as 'NIDN',c.nama as 'Nama Dosen' from tbl_atur_mk
a left join tbl_mk b on a.mk=b.kode left join tbl_dosen c on a.dosen=c.nidn
where a.kelas='{0}'", kelas)
Else
sql = String.Format("select a.mk as 'Kode Matakuliah', b.nama as
'Nama Matakuliah', a.dosen as 'NIDN',c.nama as 'Nama Dosen' from tbl_atur_mk
a left join tbl_mk b on a.mk=b.kode left join tbl_dosen c on a.dosen=c.nidn
where a.kelas='{0}' and a.mk like '%{1}%' or a.dosen like '%{2}%'", kelas,
filter, filter)
End If
Dim ds As New DataSet
DAdapter = New OdbcDataAdapter(sql, Koneksi)
DAdapter.Fill(ds, "tbl_atur_mk")
dgMatakuliah.DataSource = ds.Tables(0)
dgMatakuliah.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode.AllCells
End Sub

Sub isiDataMahasiswa(ByVal kelas As String, ByVal matakuliah As String)


Dim sql As String = ""

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 110


STMIK Pelita Nusantara Medan
sql = String.Format("SELECT tbl_atur_mhs.mahasiswa as `Nim
Mahasiswa`,tbl_mahasiswa.nama as `Nama Mahasiswa`,
coalesce(tbl_nilai_mhs.nhadir,0) as `Nilai
Kehadiran`,coalesce(tbl_nilai_mhs.ntugas,0) as `Nilai
Tugas`,coalesce(tbl_nilai_mhs.nuts,0) as `Nilai
UTS`,coalesce(tbl_nilai_mhs.nuas,0) as `NIlai UAS` from tbl_atur_mhs LEFT
JOIN tbl_nilai_mhs on tbl_atur_mhs.mahasiswa=tbl_nilai_mhs.nim and
tbl_atur_mhs.kelas=tbl_nilai_mhs.kelas inner JOIN tbl_mahasiswa on
tbl_atur_mhs.mahasiswa=tbl_mahasiswa.nim WHERE tbl_atur_mhs.kelas='{0}' or
tbl_nilai_mhs.mk='{1}'", kelas, matakuliah)
Dim ds As New DataSet
DAdapter = New OdbcDataAdapter(sql, Koneksi)
DAdapter.Fill(ds, "tbl_nilai_mhs")
dgNilaimahasiswa.DataSource = ds.Tables(0)
dgNilaimahasiswa.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode.AllCells
For i As Integer = 0 To 3
dgNilaimahasiswa.Columns(i + 2).DefaultCellStyle.Alignment =
DataGridViewContentAlignment.MiddleCenter
Next
End Sub

Private Sub frmTopsis_Load(ByVal sender As Object, ByVal e As


System.EventArgs) Handles Me.Load
StartKoneksi()
isiKelas()
dgNilaimahasiswa.EditMode = DataGridViewEditMode.EditProgrammatically
dgKelas.EditMode = DataGridViewEditMode.EditProgrammatically
dgMatakuliah.EditMode = DataGridViewEditMode.EditProgrammatically
End Sub

Private Sub txtFilterKelas_KeyDown(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyEventArgs) Handles txtFilterKelas.KeyDown
If e.KeyCode = Keys.Enter Then
If txtFilterKelas.Text = "" Then
isiKelas()
Else
isiKelas(txtFilterKelas.Text)
End If
End If
End Sub

Private Sub dgKelas_CellClick(ByVal sender As Object, ByVal e As


System.Windows.Forms.DataGridViewCellEventArgs) Handles dgKelas.CellClick
If e.RowIndex < dgKelas.RowCount - 1 And e.RowIndex <> -1 Then
kelasParam = dgKelas.Item(0, e.RowIndex).Value
mkparam = ""
isiDataMatakuliah(kelasParam)
End If
End Sub

Private Sub txtFilterMatakuliah_KeyDown(ByVal sender As Object, ByVal e


As System.Windows.Forms.KeyEventArgs) Handles txtFilterMatakuliah.KeyDown
If kelasParam = "" Then Exit Sub

If e.KeyCode = Keys.Enter Then


If txtFilterMatakuliah.Text = "" Then
isiDataMatakuliah(kelasParam)
Else
isiDataMatakuliah(kelasParam, txtFilterMatakuliah.Text)

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 111


STMIK Pelita Nusantara Medan
End If
End If
End Sub

Private Sub dgMatakuliah_CellClick(ByVal sender As Object, ByVal e As


System.Windows.Forms.DataGridViewCellEventArgs) Handles
dgMatakuliah.CellClick
If e.RowIndex < dgMatakuliah.RowCount - 1 And e.RowIndex <> -1 Then
mkparam = dgMatakuliah.Item(0, e.RowIndex).Value
End If
End Sub

Function simpanNilai(ByVal nim As String, ByVal nhadir As String, ByVal


ntugas As String, ByVal nuts As String, ByVal nuas As String) As Boolean
Dim sql As String = ""
sql = String.Format("insert into
tbl_nilai_mhs(kelas,mk,nim,nhadir,ntugas,nuts,nuas)" & _

"values('{0}','{1}','{2}','{3}','{4}','{5}','{6}') " & _


"on duplicate key update " & _

"nhadir=values(nhadir),ntugas=values(ntugas),nuts=values(nuts),nuas=values(nu
as)", kelasParam, mkparam, nim, nhadir, ntugas, nuts, nuas)
OCommand = New OdbcCommand(sql, Koneksi)
Try
OCommand.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical)
Return False
End Try
Return True
End Function

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button1.Click
If kelasParam = "" Then
MsgBox("Pilih kelas dulu!")
Exit Sub
End If

If mkparam = "" Then


MsgBox("Pilih Matakuliah Dulu")
Exit Sub
End If
dgNilaimahasiswa.Columns.Clear()
dgNilaimahasiswa.DataSource = Nothing
isiDataMahasiswa(kelasParam, mkparam)
dgNilaimahasiswa.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode.AllCells
End Sub

Sub setDataNAToGrid(ByVal grid As DataGridView, ByVal nilai() As


dataNilai)
Try
grid.DataSource = Nothing
grid.Columns.Clear()
grid.Columns.Add("", "NIM")
grid.Columns.Add("", "Nama")
grid.Columns.Add("", "C+")
grid.Columns.Add("", "NA")

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 112


STMIK Pelita Nusantara Medan
For i As Integer = 0 To UBound(nilai)
Dim nilaiStr() As String = {nilai(i).nim, nilai(i).nama,
nilai(i).CP, nilai(i).NA}
grid.Rows.Add(nilaiStr)
Next
grid.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode.AllCells
Catch ex As Exception

End Try

End Sub

Sub setDataNilaiToGrid(ByVal grid As DataGridView, ByVal nilai() As


dataNilai)
Try
grid.DataSource = Nothing
grid.Columns.Clear()
grid.Columns.Add("", "NIM")
grid.Columns.Add("", "Nama")
grid.Columns.Add("", "Kehadiran")
grid.Columns.Add("", "Tugas")
grid.Columns.Add("", "UTS")
grid.Columns.Add("", "UAS")

For i As Integer = 0 To UBound(nilai)


Dim nilaiStr() As String = {nilai(i).nim, nilai(i).nama,
nilai(i).nHadir, nilai(i).nTugas, nilai(i).nUTS, nilai(i).nUAS}
grid.Rows.Add(nilaiStr)
Next
grid.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode.AllCells
Catch ex As Exception

End Try

End Sub

Sub setDataNilaiHitungToGrid(ByVal grid As DataGridView, ByVal nilai() As


dataNilai)
Try
grid.DataSource = Nothing
grid.Columns.Clear()
grid.Columns.Add("", "NIM")
grid.Columns.Add("", "Nama")
grid.Columns.Add("", "Kehadiran")
grid.Columns.Add("", "Tugas")
grid.Columns.Add("", "UTS")
grid.Columns.Add("", "UAS")
grid.Columns.Add("", "S+")
grid.Columns.Add("", "S-")
grid.Columns.Add("", "C+")

For i As Integer = 0 To UBound(nilai)


Dim nilaiStr() As String = {nilai(i).nim, nilai(i).nama,
nilai(i).nHadir, nilai(i).nTugas, nilai(i).nUTS, nilai(i).nUAS, nilai(i).SP,
nilai(i).SM, nilai(i).CP}
grid.Rows.Add(nilaiStr)
Next

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 113


STMIK Pelita Nusantara Medan
grid.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode.AllCells
Catch ex As Exception

End Try

End Sub

Function getKey(ByVal kunci As String, Optional ByVal nilai As Double =


0) As String
Dim kembali As String = ""
Dim sql As String = String.Format("select nilai from tbl_pengaturan
where kunci='{0}' limit 1", kunci)
OCommand = New OdbcCommand(sql, Koneksi)
DReader = OCommand.ExecuteReader
DReader.Read()
kembali = DReader("nilai").ToString
DReader.Close()
Return kembali
End Function

Dim simpan As Boolean = False

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button2.Click
If kelasParam = "" Then
MsgBox("Pilih kelas dulu!")
Exit Sub
End If

If mkparam = "" Then


MsgBox("Pilih Matakuliah Dulu")
Exit Sub
End If

kehadiran = Val(getKey("jHadir", 14))


nhadir = Val(getKey("nHadir", 10))
ntugas = Val(getKey("nTugas", 20))
nuts = Val(getKey("nUTS", 30))
nuas = Val(getKey("nUAS", 40))
isiDataNilai(kelasParam, mkparam)
isiDataPersentase()
isiDataCrips()
cariSQRT()
IsiNilaiR()
cariW()
isiNilaiV()
cariAPositifDanNegatif()
isiNilaiSeperasi()
isiNilaiCP()
isiNA()
setDataNAToGrid(dgNilaimahasiswa, DaftarDataNilaiV)
GroupBox4.Enabled = True
rb1.Checked = True
dgNilaimahasiswa.Sort(dgNilaimahasiswa.Columns(2),
System.ComponentModel.ListSortDirection.Descending)
simpan = True
End Sub

Sub isiDataNilai(ByVal kelas As String, ByVal matakuliah As String)

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 114


STMIK Pelita Nusantara Medan
Dim sql As String = ""
Dim dataNilai As New List(Of dataNilai)
sql = String.Format("SELECT tbl_atur_mhs.mahasiswa as `Nim
Mahasiswa`,tbl_mahasiswa.nama as `Nama Mahasiswa`,
coalesce(tbl_nilai_mhs.nhadir,0) as `Nilai
Kehadiran`,coalesce(tbl_nilai_mhs.ntugas,0) as `Nilai
Tugas`,coalesce(tbl_nilai_mhs.nuts,0) as `Nilai
UTS`,coalesce(tbl_nilai_mhs.nuas,0) as `NIlai UAS` from tbl_atur_mhs LEFT
JOIN tbl_nilai_mhs on tbl_atur_mhs.mahasiswa=tbl_nilai_mhs.nim and
tbl_atur_mhs.kelas=tbl_nilai_mhs.kelas inner JOIN tbl_mahasiswa on
tbl_atur_mhs.mahasiswa=tbl_mahasiswa.nim WHERE tbl_atur_mhs.kelas='{0}' or
tbl_nilai_mhs.mk='{1}'", kelas, matakuliah)
OCommand = New OdbcCommand(sql, Koneksi)
DReader = OCommand.ExecuteReader
While DReader.Read
Dim dnilai As New dataNilai
dnilai.nim = DReader(0)
dnilai.nama = DReader(1)
dnilai.nHadir = DReader(2)
dnilai.nTugas = DReader(3)
dnilai.nUTS = DReader(4)
dnilai.nUAS = DReader(5)
dataNilai.Add(dnilai)
End While
DaftarDataNilai = dataNilai.ToArray
DaftarDataPersentase = dataNilai.ToArray
DaftarDataNilaiCrips = dataNilai.ToArray
DaftarDataNIlaiR = dataNilai.ToArray
DaftarDataNilaiV = dataNilai.ToArray
End Sub

#Region "TOPSIS"
Private dgNilai As New DataGridView
Private dgPersentase As New DataGridView
Private kehadiran As Integer = 0
Private nhadir As Double = 0
Private ntugas As Double = 0
Private nuts As Double = 0
Private nuas As Double = 0
Private sqrtNh As Double = 0
Private sqrtNt As Double = 0
Private sqrtNut As Double = 0
Private sqrtNua As Double = 0
Private W1 As Double = 0
Private W2 As Double = 0
Private W3 As Double = 0
Private W4 As Double = 0
Private APNH As New APlus 'A positif dan negatif criteria kehadiran
Private APNT As New APlus
Private APNUT As New APlus
Private APNUA As New APlus

Structure dataNilai
Dim nim As String
Dim nama As String
Dim nHadir As Double
Dim nTugas As Double
Dim nUTS As Double
Dim nUAS As Double
Dim SP As Double

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 115


STMIK Pelita Nusantara Medan
Dim SM As Double
Dim CP As Double
Dim NA As String
End Structure

Structure APlus
Dim max As Double
Dim min As Double
End Structure

Private DaftarDataNilai As dataNilai()


Private DaftarDataPersentase As dataNilai()
Private DaftarDataNilaiCrips As dataNilai()
Private DaftarDataNIlaiR As dataNilai()
Private DaftarDataNilaiV As dataNilai()

Sub isiDataPersentase()
For i As Integer = 0 To UBound(DaftarDataNilai)
DaftarDataPersentase(i).nHadir =
Math.Round((DaftarDataNilai(i).nHadir / kehadiran) * nhadir, 3)
DaftarDataPersentase(i).nTugas =
Math.Round((DaftarDataNilai(i).nTugas / 100) * ntugas, 3)
DaftarDataPersentase(i).nUTS =
Math.Round((DaftarDataNilai(i).nUTS / 100) * nuts, 3)
DaftarDataPersentase(i).nUAS =
Math.Round((DaftarDataNilai(i).nUAS / 100) * nuas, 3)
Next
End Sub

Sub isiDataCrips()
For i As Integer = 0 To UBound(DaftarDataPersentase)
DaftarDataNilaiCrips(i).nHadir = Math.Round(nilaiFuzzy(fuzzy.h,
DaftarDataPersentase(i).nHadir), 3)
DaftarDataNilaiCrips(i).nTugas = Math.Round(nilaiFuzzy(fuzzy.t,
DaftarDataPersentase(i).nTugas), 3)
DaftarDataNilaiCrips(i).nUTS = Math.Round(nilaiFuzzy(fuzzy.ut,
DaftarDataPersentase(i).nUTS), 3)
DaftarDataNilaiCrips(i).nUAS = Math.Round(nilaiFuzzy(fuzzy.ua,
DaftarDataPersentase(i).nUAS), 3)
Next
End Sub

Sub cariSQRT()
Dim buffer1() As Double = {0, 0, 0, 0}
For i As Integer = 0 To UBound(DaftarDataNilaiCrips)
buffer1(0) += Math.Round(DaftarDataNilaiCrips(i).nHadir ^ 2, 3)
buffer1(1) += Math.Round(DaftarDataNilaiCrips(i).nTugas ^ 2, 3)
buffer1(2) += Math.Round(DaftarDataNilaiCrips(i).nUTS ^ 2, 3)
buffer1(3) += Math.Round(DaftarDataNilaiCrips(i).nUAS ^ 2, 3)
Next
sqrtNh = Math.Sqrt(buffer1(0))
sqrtNt = Math.Sqrt(buffer1(1))
sqrtNut = Math.Sqrt(buffer1(2))
sqrtNua = Math.Sqrt(buffer1(3))
End Sub

Sub IsiNilaiR()
For i As Integer = 0 To UBound(DaftarDataNilaiCrips)

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 116


STMIK Pelita Nusantara Medan
DaftarDataNIlaiR(i).nHadir =
Math.Round(DaftarDataNilaiCrips(i).nHadir / sqrtNh, 3)
DaftarDataNIlaiR(i).nTugas =
Math.Round(DaftarDataNilaiCrips(i).nTugas / sqrtNt, 3)
DaftarDataNIlaiR(i).nUTS =
Math.Round(DaftarDataNilaiCrips(i).nUTS / sqrtNut, 3)
DaftarDataNIlaiR(i).nUAS =
Math.Round(DaftarDataNilaiCrips(i).nUAS / sqrtNua, 3)
Next
End Sub

Sub cariW()
W1 = getKey("W1")
W2 = getKey("W2")
W3 = getKey("W3")
W4 = getKey("W4")
End Sub

Sub isiNilaiV()
For i As Integer = 0 To UBound(DaftarDataNIlaiR)
DaftarDataNilaiV(i).nHadir =
Math.Round(DaftarDataNIlaiR(i).nHadir * W1, 3)
DaftarDataNilaiV(i).nTugas =
Math.Round(DaftarDataNIlaiR(i).nTugas * W2, 3)
DaftarDataNilaiV(i).nUTS = Math.Round(DaftarDataNIlaiR(i).nUTS *
W3, 3)
DaftarDataNilaiV(i).nUAS = Math.Round(DaftarDataNIlaiR(i).nUAS *
W4, 3)
Next
End Sub

Sub cariAPositifDanNegatif()
APNH.max = DaftarDataNilaiV(0).nHadir
APNH.min = DaftarDataNilaiV(0).nHadir
APNT.max = DaftarDataNilaiV(0).nTugas
APNT.min = DaftarDataNilaiV(0).nTugas
APNUT.max = DaftarDataNilaiV(0).nUTS
APNUT.min = DaftarDataNilaiV(0).nUTS
APNUA.max = DaftarDataNilaiV(0).nUAS
APNUA.min = DaftarDataNilaiV(0).nUAS

For i As Integer = 1 To UBound(DaftarDataNilaiV)


APNH.max = Math.Max(DaftarDataNilaiV(i).nHadir, APNH.max)
APNH.min = Math.Min(DaftarDataNilaiV(i).nHadir, APNH.min)

APNT.max = Math.Max(DaftarDataNilaiV(i).nTugas, APNT.max)


APNT.min = Math.Min(DaftarDataNilaiV(i).nTugas, APNT.min)

APNUT.max = Math.Max(DaftarDataNilaiV(i).nUTS, APNUT.max)


APNUT.min = Math.Min(DaftarDataNilaiV(i).nUTS, APNUT.min)

APNUA.max = Math.Max(DaftarDataNilaiV(i).nUAS, APNUA.max)


APNUA.min = Math.Min(DaftarDataNilaiV(i).nUAS, APNUA.min)
Next
End Sub

Sub isiNilaiSeperasi()
For i As Integer = 0 To UBound(DaftarDataNilaiV)
DaftarDataNilaiV(i).SP =
Math.Round(Math.Sqrt((DaftarDataNilaiV(i).nHadir - APNH.max) ^ 2 +

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 117


STMIK Pelita Nusantara Medan
(DaftarDataNilaiV(i).nTugas - APNT.max) ^ 2 + (DaftarDataNilaiV(i).nUTS -
APNUT.max) ^ 2 + (DaftarDataNilaiV(i).nUAS - APNUA.max) ^ 2), 3)
DaftarDataNilaiV(i).SM =
Math.Round(Math.Sqrt((DaftarDataNilaiV(i).nHadir - APNH.min) ^ 2 +
(DaftarDataNilaiV(i).nTugas - APNT.min) ^ 2 + (DaftarDataNilaiV(i).nUTS -
APNUT.min) ^ 2 + (DaftarDataNilaiV(i).nUAS - APNUA.min) ^ 2), 3)
Next
End Sub

Sub isiNilaiCP()
For i As Integer = 0 To UBound(DaftarDataNilaiV)
DaftarDataNilaiV(i).CP = Math.Round(DaftarDataNilaiV(i).SM /
(DaftarDataNilaiV(i).SP + DaftarDataNilaiV(i).SM), 3)
Next
End Sub

Sub isiNA()
For i As Integer = 0 To UBound(DaftarDataNilaiV)
If (DaftarDataNilaiV(i).CP > 0.5) Then
DaftarDataNilaiV(i).NA = "A"
ElseIf (DaftarDataNilaiV(i).CP > 0.4) Then
DaftarDataNilaiV(i).NA = "B"
ElseIf (DaftarDataNilaiV(i).CP > 0.3) Then
DaftarDataNilaiV(i).NA = "C"
ElseIf (DaftarDataNilaiV(i).CP > 0.2) Then
DaftarDataNilaiV(i).NA = "D"
Else
DaftarDataNilaiV(i).NA = "E"
End If
Next
End Sub

Enum fuzzy
h = 1
t = 2
ut = 3
ua = 4
End Enum

Function nilaiFuzzy(ByVal f As fuzzy, ByVal nilai As Double) As Double


Dim kembali As Double = 0
Dim sql As String = ""
Select Case f
Case fuzzy.h
sql = "select nilai,besar_dari from tbl_pengaturan where
kunci like 'kbd%' or kunci='kl' order by besar_dari desc"
Case fuzzy.t
sql = "select nilai,besar_dari from tbl_pengaturan where
kunci like 'tbd%' or kunci='tl' order by besar_dari desc"
Case fuzzy.ut
sql = "select nilai,besar_dari from tbl_pengaturan where
kunci like 'ubd%' or kunci='ul' order by besar_dari desc"
Case fuzzy.ua
sql = "select nilai,besar_dari from tbl_pengaturan where
kunci like 'uabd%' or kunci='ual' order by besar_dari desc"
End Select
OCommand = New OdbcCommand(sql, Koneksi)
DReader = OCommand.ExecuteReader
While DReader.Read
If (nilai > Val(DReader(1))) Then

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 118


STMIK Pelita Nusantara Medan
kembali = Val(DReader(0))
DReader.Close()
Return kembali
Exit While
End If
End While
Return Nothing
End Function
#End Region

Private Sub rb1_CheckedChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles rb1.CheckedChanged
If rb1.Checked Then
setDataNAToGrid(dgNilaimahasiswa, DaftarDataNilaiV)
End If
End Sub

Private Sub rb2_CheckedChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles rb2.CheckedChanged
If rb2.Checked Then
setDataNilaiToGrid(dgNilaimahasiswa, DaftarDataPersentase)
End If
End Sub

Private Sub rb3_CheckedChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles rb3.CheckedChanged
If rb3.Checked Then
setDataNilaiToGrid(dgNilaimahasiswa, DaftarDataNilaiCrips)
End If
End Sub

Private Sub rb4_CheckedChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles rb4.CheckedChanged
If rb4.Checked Then
setDataNilaiToGrid(dgNilaimahasiswa, DaftarDataNIlaiR)
End If
End Sub

Private Sub rb5_CheckedChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles rb5.CheckedChanged
If rb5.Checked Then
setDataNilaiToGrid(dgNilaimahasiswa, DaftarDataNilaiV)
End If
End Sub

Private Sub rb6_CheckedChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles rb6.CheckedChanged
If rb6.Checked Then
setDataNilaiHitungToGrid(dgNilaimahasiswa, DaftarDataNilaiV)
End If
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button3.Click
Dim kelas As String = ""
Dim mk As String = ""
Dim nim As String = ""
Dim c As Double = 0
Dim na As Char = ""

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 119


STMIK Pelita Nusantara Medan
If simpan = False Then
MsgBox("Lakukan Proses Topsis Terlebih dahulu!")
Exit Sub
End If
Dim sql As String = ""
For i As Integer = 0 To UBound(DaftarDataNilaiV)
kelas = kelasParam
mk = mkparam
nim = DaftarDataNilaiV(i).nim
c = DaftarDataNilaiV(i).CP
na = DaftarDataNilaiV(i).NA

sql = String.Format("insert into tbl_hasil(kelas,mk,nim,c,na)" &


_
"values('{0}','{1}','{2}','{3}','{4}') " & _
"on duplicate key update " & _
"c=values(c),na=values(na)", kelas, mk, nim, c,
na)
OCommand = New OdbcCommand(sql, Koneksi)
Try
OCommand.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
Exit Sub
End Try
Next
MsgBox("Data Berhasil Disimpan")
frmLaporan.kelas = kelasParam
frmLaporan.mk = mkparam
frmLaporan.Show()
End Sub

Private Sub dgNilaimahasiswa_CellContentClick(ByVal sender As


System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)
Handles dgNilaimahasiswa.CellContentClick

End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button4.Click
Me.Close()
End Sub
End Class

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 120


STMIK Pelita Nusantara Medan
12. Form Pergantian User

Pada form ini, akan ditampilkan “username” untuk menginput user yang baru,
“password” untuk menginput password yang baru dan “ulangi password” untuk
menginput password yang baru tadi. Untuk menambah data baru maka user
mengeksekusi tombol “tambah”, dan kemudian mengisi data sesuai dengan apa
yang diminta oleh aplikasi. Setiap data baru yang diinput, user menyimpan data
yang telah diinput, dengan menekan tombol“simpan”. Pada form ini juga tersedia
menu edit, hapus, batal dan keluar.
Source Code Form Ganti User sebagai berikut :

Public Class frmUser


Private DAdapter As OdbcDataAdapter
Private CurrentState As state = state.tambah
Private OCommand As OdbcCommand
Private usrParam As String
Private DReader As OdbcDataReader

Enum state
tambah = 1
simpan = 2
edit = 3
End Enum

Enum aksi
tambah = 1
simpan = 2
edit = 3
hapus = 4
batal = 5
keluar = 6
End Enum

Private Sub frmUser_FormClosing(ByVal sender As Object, ByVal e As


System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 121


STMIK Pelita Nusantara Medan
Select Case CurrentState
Case state.tambah
e.Cancel = False
Case Else
Dim s As MsgBoxResult = MsgBox("Masih ada data pada kontrol
input, yakit ingin keluar ?", vbInformation + vbYesNo)
If s = MsgBoxResult.Yes Or s = MsgBoxResult.Ok Then
e.Cancel = False
Else
e.Cancel = True
End If
End Select
End Sub

Private Sub frmUser_Load(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles MyBase.Load
StartKoneksi()
isiTabel()
setState(state.tambah)
DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically
End Sub

Sub isiTabel()
Dim str As String = "select `usr` as `Username` from `tbl_user`"
Dim ds As New DataSet
DAdapter = New OdbcDataAdapter(str, Koneksi)
DAdapter.Fill(ds, "tbl_user")
Me.DataGridView1.DataSource = ds.Tables(0)
DataGridView1.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode.AllCells
End Sub

Sub setState(ByVal s As state)


Select Case s
Case state.tambah
btnTambah.Enabled = True
btnSimpan.Enabled = False
btnEdit.Enabled = False
btnHapus.Enabled = False
btnBatal.Enabled = False
btnKeluar.Enabled = True
CurrentState = state.tambah
Case state.edit
btnTambah.Enabled = False
btnSimpan.Enabled = False
btnEdit.Enabled = True
btnHapus.Enabled = True
btnBatal.Enabled = True
btnKeluar.Enabled = False
CurrentState = state.edit
Case state.simpan
btnTambah.Enabled = False
btnSimpan.Enabled = True
btnEdit.Enabled = False
btnHapus.Enabled = False
btnBatal.Enabled = True
btnKeluar.Enabled = False
CurrentState = state.simpan
End Select
End Sub

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 122


STMIK Pelita Nusantara Medan
Sub hapusInput()
txtUsername.Clear()
txtPassword.Clear()
txtUlangi.Clear()
End Sub

Function cekInput() As Boolean


Dim hasil As Boolean = True
If txtUsername.Text = "" Then hasil = False
If txtPassword.Text = "" Then hasil = False
If txtUlangi.Text = "" Then hasil = False
If txtPassword.Text <> txtUlangi.Text Then hasil = False
Return hasil
End Function

Sub setAksi(ByVal a As aksi)


Dim sql As String = ""

Select Case a
Case aksi.tambah
hapusInput()
setState(state.simpan)
txtUsername.Focus()
Case aksi.simpan
If cekInput() = True Then
sql = "insert into `tbl_user` values('" &
txtUsername.Text & "',PASSWORD('" & txtPassword.Text & "'))"
OCommand = New OdbcCommand(sql, Koneksi)
Try
OCommand.ExecuteNonQuery()
isiTabel()
hapusInput()
setState(state.tambah)
Catch ex As Exception
MsgBox(ex.Message)
End Try
Else
MsgBox("Inputan Tidak Boleh Kosong dan password dengan
ulangi password harus sama!")
End If
Case aksi.edit
If cekInput() = True Then
sql = "update `tbl_user` set psw=PASSWORD('" &
txtPassword.Text & "') where `usr`='" & usrParam & "'"
OCommand = New OdbcCommand(sql, Koneksi)
Try
OCommand.ExecuteNonQuery()
isiTabel()
hapusInput()
setState(state.tambah)
Catch ex As Exception
MsgBox(ex.Message)
End Try
Else
MsgBox("Inputan Tidak Boleh Kosong!")
End If
Case aksi.hapus
sql = "delete from `tbl_user` where `usr`='" & usrParam & "'"
OCommand = New OdbcCommand(sql, Koneksi)

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 123


STMIK Pelita Nusantara Medan
Try
OCommand.ExecuteNonQuery()
isiTabel()
hapusInput()
setState(state.tambah)
Catch ex As Exception
MsgBox(ex.Message)
End Try
Case aksi.batal
hapusInput()
setState(state.tambah)
Case aksi.keluar
Me.Close()
End Select
End Sub

Private Sub btnTambah_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnTambah.Click
setAksi(aksi.tambah)
End Sub

Private Sub btnSimpan_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnSimpan.Click
setAksi(aksi.simpan)
End Sub

Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnEdit.Click
setAksi(aksi.edit)
End Sub

Private Sub btnHapus_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnHapus.Click
setAksi(aksi.hapus)
End Sub

Private Sub btnBatal_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnBatal.Click
setAksi(aksi.batal)
End Sub

Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As


System.Windows.Forms.DataGridViewCellEventArgs) Handles
DataGridView1.CellClick
If e.RowIndex < DataGridView1.RowCount - 1 And e.RowIndex <> -1 Then
txtUsername.Text = DataGridView1.Item(0, e.RowIndex).Value
usrParam = DataGridView1.Item(0, e.RowIndex).Value
setState(state.edit)
End If
End Sub

Sub setDataFromkelas()
Dim sql As String = ""
sql = "select * from `tbl_user` where `usr`='" & txtUsername.Text &
"'"
OCommand = New OdbcCommand(sql, Koneksi)
DReader = OCommand.ExecuteReader
If DReader.HasRows Then
setState(state.edit)
usrParam = txtUsername.Text

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 124


STMIK Pelita Nusantara Medan
Else
setState(state.simpan)
End If
txtPassword.Focus()
DReader.Close()
End Sub

Private Sub txtUsername_KeyDown(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyEventArgs) Handles txtUsername.KeyDown
If e.KeyCode = Keys.Enter Then
setDataFromkelas()
End If
End Sub

Private Sub txtUsername_LostFocus(ByVal sender As Object, ByVal e As


System.EventArgs) Handles txtUsername.LostFocus
setDataFromkelas()
End Sub

Sub cariData(ByVal str As String)


Dim sql As String = ""
sql = "select `usr` as `Username` from `tbl_user` where `usr` like
'%" & str & "%'"
Dim ds As New DataSet
DAdapter = New OdbcDataAdapter(sql, Koneksi)
DAdapter.Fill(ds, "tbl_user")
Me.DataGridView1.DataSource = ds.Tables(0)
DataGridView1.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode.AllCells
End Sub

Private Sub btnCari_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnCari.Click
If txtCari.Text = "" Then
isiTabel()
Else
cariData(txtCari.Text)
End If
End Sub

Private Sub txtCari_KeyDown(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyEventArgs) Handles txtCari.KeyDown
If e.KeyCode = Keys.Enter Then
If txtCari.Text = "" Then
isiTabel()
Else
cariData(txtCari.Text)
End If
End If
End Sub

Private Sub btnKeluar_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnKeluar.Click
setAksi(aksi.keluar)
End Sub
End Class

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 125


STMIK Pelita Nusantara Medan
DAFTRA PUSTAKA

Adi Nugroho (2010). Rekayasa Perangkat Lunak Berbasis Objek dengan Metode
USDP. Andi. Yogyakarta

Ayu Gusti, Darma Gede, Wira B Putu (2013), Multi-Attribyte Decision making
Scholarship Selection Using A Modified Fuzzy TOPSIS. International Journal
of Computer Science Issues (IJCSI) Vol.10 No.2.

Davis, Ralp C dalam Hasan. (2004). Pokok-pokok Materi Teori Pengambilan


Keputusan. Jakarta: Ghalia Indonesia.

Ding, Ji-Feng (2011). An Integrated Fuzzy Topsis Method For Ranking Alternatives
And Its Application. Journal Of Marine Science and Technology, Vol 19, No 4.

Elissa Nadia Madi, and Abu Osman Md (2011). Fuzzy TOPSIS Method in the election
of Investment Boards by Incorporating Operational Risks. Proceedings of the
World Congress on Engineering 2011 Vol I. WCE 2011, July 6 - 8, 2011,
London, U.K

Hoga Saragih., Murni Marbun., Bobby Reza (2013). Development Of Decision Support
Syatem Determining The Student As Scholarship Recipients bi Fuzzy Multi
Atrribute Decision Making (FMADM). JSI UI, Vol 9, No 2.

Jamila , S Hartati (2012). Sistem Pendukung Keputusan Pemilihan Subkontrak


Menggunakan Metode Entropy dan TOPSIS. IJCCS, Vol.5 No.2, Juli , 2011.

Jeffery L. Whitten, Lonnie D. Bentley, Kevin C. Metode desain dan analisis system
ittman; alih bahasa, Tim Penerjemah Andi. - 1. - Yogyakarta : Andi, 2004.

Kamran Shahanaghi, Sayed Ahmad Yazdian (2009). Vendor Using A New Fuzzy
Group TOPSIS Approach. Journal of Uncertain System Vol. 3 No. 3

Kusumadewi, S., Hartati, S., Harjoko, A., Wardoyo, R (2006). Fuzzy Multi Attribute
Decison making (FUZZY MADM), Graha Ilmu, Yogyakarta.

K. Savita, DR. C. Chandrasekar (2011). Network Selection Using TOPSIS in Vertical


Handover Decision Schemes For Heterogeneous Wireless Network s.
Intenational Journal of Computer Sciences Issues (IJCSI), Vol. 8 No. 2.

Marimin (2004). Teknik dan Aplikasi Pengambilan Keputusan Kriteria Majemuk.


Grasindo, Jakarta.

Pedoman Akademik STMIK Pelita Nusantara Medan, 2016

Pragati Jain and Manisha Jain (2011). Fuzzy TOPSIS Method In Job Sequencing
Problems On Machines Of Unegual Efficiencies. Canadian Journal on

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 126


STMIK Pelita Nusantara Medan
Computing in Mathematics, Natural Sciences, Engineering and Medicine. Vol. 2
No. 6.

Shofwatul 'Uyun, Imam Riadi (2011). A Fuzzy TOPSIS Multiple-Attribute Decision


Making For Scholarship Selection. TELKOMNIKA, Vol. 9 No.1.

Surbakti, Irfan, Sistem Pendukung Keputusan (Decision Support System ), Yogyakarta,


Graha Ilmu, 2002

Turban, E. and Aronson, J. E. (2001). Decision Support and Intelegent Systems, (6 th


ed.) Prentice-Hall Inc, New Jersey.

Turban, E, 2005, Decision Support Systems and Intelligent SystemsEdisi Bahasa


Indonesia Jilid 1, Andi,Yogyakarta

Yahia Zare Mehrjerdi (2012). Developing Fuzzy TOPSIS Method Based On Interval
Valued Fuzzy Sets. ICJA, Vol 42 No. 14.

Buku Ajar Sistem Pendukung Keputusan Penilaian Hasil Belajar | 127


STMIK Pelita Nusantara Medan

Anda mungkin juga menyukai