Anda di halaman 1dari 192

IMPLEMENTASI METODE SIMPLE ADDITIVE WEIGHT PADA

SISTEM PENGAMBILAN KEPUTUSAN PENERIMA BEASISWA PPA


MENGGUNAKAN FRAMEWORK LARAVEL

TUGAS AKHIR
Untuk Memenuhi Persyaratan Memperoleh Sebutan Ahli Madya

Oleh :
MOCHAMAD IRFANI ARDHYANSAH
NPM : 183307009

PROGRAM DIPLOMA III


PROGRAM STUDI TEKNOLOGI INFORMASI
JURUSAN TEKNIK
POLITEKNIK NEGERI MADIUN
2021
IMPLEMENTASI METODE SIMPLE ADDITIVE WEIGHT PADA
SISTEM PENGAMBILAN KEPUTUSAN PENERIMA BEASISWA PPA
MENGGUNAKAN FRAMEWORK LARAVEL

TUGAS AKHIR
Untuk Memenuhi Persyaratan Memperoleh Sebutan Ahli Madya

Oleh :
MOCHAMAD IRFANI ARDHYANSAH
NPM : 183307009

PROGRAM DIPLOMA III


PROGRAM STUDI TEKNOLOGI INFORMASI
JURUSAN TEKNIK
POLITEKNIK NEGERI MADIUN
2021

ii
iii
LEMBAR PENGESAHAN
TUGAS AKHIR

IMPLEMENTASI METODE SIMPLE ADDITIVE WEIGHT


PADA SISTEM PENGAMBILAN KEPUTUSAN PENERIMA
BEASISWA PPA MENGGUNAKAN FRAMEWORK LARAVEL
Oleh :

MOCHAMAD IRFANI ARDHYANSAH


NPM : 183307009

No Jabatan Nama Tanda


Tangan
1. Penguji I Lutfiyah Dwi Setia, S.Kom., M.Kom.
NIP. 198303172014042001
2. Penguji II

3. Penguji III

Mengetahui,
Ketua Jurusan Teknik Koordinator Program Studi
Politeknik Negeri Madiun Teknologi Informasi

Achmad Aminudin, S.Pd., M.T. Lutfiyah Dwi Setia, S.Kom., M.Kom.


NIP. 198704082015041003 NIP. 198303172014042001

iv
PERNYATAAN

Saya yang bertanda tangan di bawah ini :


Nama : Mochamad Irfani Ardhyansah
NIM : 183307009
Program Studi : Teknologi Informasi
Jurusan : Teknik
Judul Tugas Akhir : IMPLEMENTASI METODE SIMPLE ADDITIVE
WEIGHT PADA SISTEM PENGAMBILAN KEPUTUSAN PENERIMA
BEASISWA PPA MENGGUNAKAN FRAMEWORK LARAVEL

Menyatakan dengan sebenarnya bahwa Tugas Akhir yang saya serahkan ini
benar-benar hasil karya sendiri, kecuali kutipan-kutipan dan ringkasan-ringkasan
yang telah saya jelaskan sumbernya.
Apablia dikemudian hari terbukti Tugas Akhir ini hasil plagiasi, maka sebutan
Ahli Madya yang diberikan oleh Politeknik Negeri Madiun akan dicabut.

Madiun, …………………..
Yang Membuat

Mochamad Irfani Ardhyansah

v
MOTTO DAN PERSEMBAHAN

MOTTO

“Setiap bunga memiliki waktu mereka sendiri untuk mekar. Tetaplah berusaha

membuat bungamu mekar dengan maksimal walaupun itu membutuhkan waktu”

PERSEMBAHAN

Alhamdulillah, puji syukur saya panjatkan kepada Allah SWT, atas segala

rahmat, taufik serta hidayah-Nya sehingga saya mampu menyelesaikan laporan

tugas akhir ini tepat waktu. Tak henti-hentinya berucap Alhamdulillah bersyukur

kepada Allah SWT, telah menghadirkan orang-orang yang berarti serta supportif

di sisi saya, yang tak henti-hentinya memberi semangat, dukungan, motivasi dan

doa sehingga laporan tugas akhir ini dapat saya selesaikan dengan baik dan benar

juga tepat waktu. Untuk karya ini, saya persembahkan untuk :

1. Kedua orang tua saya, bapak Pudji Priyono dan ibu Titin Zuhrijah

Pudjiastuti. terimakasih atas segala dukungan, baik dalam materi maupun

moril, karya ini saya persembahkan untuk kalian, sebagai wujud

terimakasih atas pengorbanan, cinta, dan doa, yang telah membesarkan

serta mendidik saya sampai tahap ini.

2. Ibu Lutfiyah Dwi Setia, S.Kom., M.Kom. dan bapak Hendrik

Kusbandono, S.Kom., M.Kom. Terima kasih karena sudah seperti orang

tua saya di kampus, yang selalu ada, memberi solusi, semangat dan

memberikan arahan kepada kami selama pengerjaan tugas akhir ini.

vi
3. Teman - teman Teknologi Informasi angkatan 2018 terutama kepada

teman sekelas. Terimakasih untuk kenangan yang telah kita rajut bersama

baik suka maupun duka, baik senang maupun sedih selama tiga tahun

terakhir, atas tawa ceria yang selalu menghiasi hampir setiap hari. Semoga

momen - momen indah itu akan selalu menjadi kenangan yang tidak akan

terlupakan. Dan perpisahan bukanlah akhir dari semua ini.

4. Pihak-pihak lain yang belum saya sebutkan, terimakasih atas semuanya.

Semoga Allah SWT senantiasa membalas kebaikan kalian.

vii
ABSTRAK

Implementasi Metode Simple Additive Weight Pada Sistem Pengambilan


Keputusan Penerima Beasiswa PPA Menggunakan Framework Laravel
Oleh :

Mochamad Irfani Ardhyansah

(183307009)

Beasiswa adalah pemberian berupa bantuan keuangan yang diberikan kepada


perorangan dan tujuan beasiswa adalah untuk membantu meringankan beban
biaya mahasiswa selama pendidikan atau siswa yang mendapatkan. Beasiswa
PPA (Peningkatan Prestasi Akademik) merupakan bantuan beasiswa dari
pemerintah kepada mahasiswa di perguruan tinggi, terutama yang mempunyai
prestasi akademik. Pembuatan sistem pengambilan keputusan berbasis web ini
bertujuan untuk mempermudah proses dalam penentuan penerima beasiswa
ditinjau dari nilai-nilai yang telah diinput mahasiswa. Perancangan sistem
pengambilan keputusan ini menggunakan metode SAW (Simple Additive
Weught) dalam penghitungan nilai nya. Konsep dasar metode SAW adalah
mencari penjumlahan terbobot dari rating kinerja pada setiap alternatif pada
semua atribut. Metode ini menggunakan FMADM untuk melakukan
perhitungan. FMADM (Multiple Attribute Decision Making) adalah metode
yang dilakukan dengan mencari nilai bobot untuk setiap kriteria, dan kemudian
membuat proses yang akan menentukan peringkat alternatif yang optimal yaitu
mahasiswa terbaik yang dipertimbangkan oleh pengambil keputusan untuk
mendapatkan beasiswa. Sistem pengambilan keputusan ini dibangun
menggunakan framework laravel. Laravel adalah sebuah framework php yang
dibangun menggunakan konsep MVC (Model View Controller). Hasil
perancangan aplikasi ini menunjukkan bahwa sistem pengambilan keputusan
melakukan penilain pada sistem ini penilaian lebih subjektif karena dalam
pengambilan keputusan ini berdasarkan dari nilai yang sudah ditentukan dan
mempersingkat waktu dalam proses penghitungannya.

Kata kunci : Beasiswa PPA, Laravel, SAW, SPK.

viii
ABSTRACT

Implementation of the Simple Additive Weight Method in the Decision Making


System of PPA Scholarship Recipients Using Laravel Framework
By :

Mochamad Irfani Ardhyansah

(183307009)

Scholarships are grants in the form of financial assistance given to individuals


and the purpose of the scholarship is to help ease the burden of student costs
during education or students who get it. The PPA (Academic Achievement
Improvement) Scholarship is a scholarship assistance from the government to
university students, especially those with academic achievements. Making a
web-based decision-making system aims to simplify the process of determining
scholarship recipients in terms of the values that have been inputted by
students. The design of this decision-making system uses the SAW (Simple
Additive Weught) method in calculating its value. The basic concept of the SAW
method is to find the weighted sum of the performance ratings for each
alternative on all attributes. This method uses FMADM to perform calculations.
FMADM (Multiple Attribute Decision Making) is a method that is carried out
by finding the weight value for each criterion, and then creating a process that
will determine the optimal ranking of alternatives, namely the best students
considered by decision makers to get scholarships. This decision-making system
is built using the Laravel framework. Laravel is a php framework built using
the MVC (Model View Controller) concept. The results of this application
design indicate that the decision-making system evaluates this system more
subjectively because the decision-making process is based on a predetermined
value and shortens the time in the calculation process.

Keywords : DSS, Laravel, PPA Scholarship, SAW.

ix
KATA PENGANTAR

Bismillahirrahmanirrahim,
Dengan mengucap syukur kehadirat Allah Subhanahu wa Ta’ala atas

rahmat serta karunia-Nya, sehingga penulisan Tugas Akhir dengan judul

“Implementasi Metode Simple Additive Weight Pada Sistem Pengambilan

Keputusan Penerima Beasiswa PPA Menggunakan Framework Laravel” ini dapat

diselesaikan. Laporan ini ditulis untuk memenuhi persyaratan penyusunan Tugas

Akhir pada program studi teknologi informasi, politeknik negeri madiun. Peneliti

berterima kasih kepada semua pihak yang telah membantu dalam penulisan tugas

Akhir ini kepada :

1. Allah Subhanahu wa ta'ala yang telah memberikan nikmat, hidayah, serta

inayah Nya.

2. Bapak Muhamad Fajar Subkhan, S.T., M.T. selaku Direktur Politeknik

Negeri Madiun.

3. Bapak Achmad Aminudin, S.Pd., M.T. selaku Ketua Jurusan Teknik.

4. Ibu Lutfiyah Dwi Setia, S.Kom., M.Kom. selaku Koordinator Prodi

Teknologi Informasi dan juga selaku Dosen Pembimbing I Tugas Akhir.

5. Bapak Hendrik Kusbandono, S.Kom., M.Kom. selaku Dosen Pembimbing

II Tugas Akhir.

6. Keluarga yang selalu memberikan kasih sayang, semangat serta bantuan

materiil yang tidak ada hentinya.

7. Teman-teman mahasiswa Teknologi Informasi.

x
Demikian Tugas Akhir ini disusun, semoga Tugas Akhir ini dapat

bermanfaat bagi pihak-pihak yang berkepentingan. Peneliti mohon maaf atas

kekurangan dan keterbatasannya. Atas segala saran, kritik, dan masukan, peneliti

sampaikan terima kasih.

Madiun, Januari 2021

Peneliti

xi
DAFTAR ISI

PERNYATAAN......................................................................................................v

MOTTO DAN PERSEMBAHAN.........................................................................vi

ABSTRAK...........................................................................................................viii

ABSTRACT.............................................................................................................ix

KATA PENGANTAR............................................................................................x

DAFTAR ISI.........................................................................................................xii

DAFTAR GAMBAR............................................................................................xv

DAFTAR TABEL................................................................................................xxi

DAFTAR LAMPIRAN.....................................................................................xxiii

BAB I PENDAHULUAN......................................................................................1

1.1 Latar Belakang.........................................................................................1

1.2 Rumusan Masalah....................................................................................3

1.3 Batasan Masalah.......................................................................................3

1.4 Tujuan dan Manfaat..................................................................................4

BAB II TINJAUAN PUSTAKA............................................................................5

2.1 Tinjauan Pustaka......................................................................................5

2.1.1 Penelitian Terdahulu.........................................................................5


2.2 Landasan Teori.........................................................................................9

2.2.1 Sistem Pengambilan Keputusan........................................................9

2.2.2 Fuzzy Multiple Attribute Decision Making (FMADM).................11

2.2.3 Metode Simple Additive Weighting (SAW)...................................12

2.2.4 PHP.................................................................................................14

2.2.5 Framework Laravel.........................................................................15

2.2.6 MySQL............................................................................................16

2.2.7 Text Editor......................................................................................17

2.2.8 XAMPP...........................................................................................17

2.2.9 UML (Unified Modelling Language)..............................................18

2.2.10 Use Case Diagram..........................................................................18

2.2.11 Activity Diagram.............................................................................20

2.2.12 Sequence Diagram...........................................................................21

2.2.13 Class Diagram.................................................................................23

BAB III PERANCANGAN.................................................................................25

3.1 Requirement Gathering..........................................................................25

3.1.1 Tahapan Pengumpulan Data...........................................................25

3.1.2 Tahapan Analisisis Kebutuhan Sistem............................................26

3.1.3 Tahapan Pengembangan Sistem......................................................29

3.2 Perancangan Sistem / Aplikasi...............................................................32


3.2.1 Flowchart........................................................................................32

3.2.2 Use Case Diagram..........................................................................34

3.2.3 Activity Diagram.............................................................................41

3.2.4 Sequence Diagram..........................................................................56

3.2.5 Class Diagram................................................................................68

3.2.6 Entity Relationship Diagram (ERD)...............................................69

3.2.7 Desain Antarmuka Sistem...............................................................71

BAB IV HASIL DAN PENGUJIAN....................................................................82

4.1 Hasil Implementasi.................................................................................82

4.1.1 Hasil Implementasi Database.........................................................82

4.1.2 Hasil Implementasi Program...........................................................88

4.2 Pengujian..............................................................................................118

4.2.1 Level Super Admin.......................................................................118

4.2.2 Level Admin.................................................................................119

4.2.3 Level Pimpinan.............................................................................122

4.2.4 Level Mahasiswa...........................................................................122

BAB V PENUTUP..............................................................................................125

5.1 Kesimpulan...........................................................................................125

5.2 Saran.....................................................................................................125

DAFTAR PUSTAKA.........................................................................................127
LAMPIRAN........................................................................................................128
DAFTAR GAMBAR

Gambar 2.1 Alur SPK..........................................................................................10

Gambar 2.2 Rumus Normalisasi..........................................................................12

Gambar 2.3 Nilai Preferensi................................................................................13

Gambar 2.4 logo PHP..........................................................................................14

Gambar 2.5 Logo Laravel....................................................................................15

Gambar 2.6 Logo MySQL...................................................................................16

Gambar 3.1 Metode Model Fountain..................................................................29

Gambar 3.2 Flowchart Sistem.............................................................................33

Gambar 3.3 Use Case Diagram...........................................................................34

Gambar 3.4 Activity Diagram Registrasi.............................................................42

Gambar 3.5 Activity Diagram Login...................................................................43

Gambar 3.6 Activity Diagram Mengelola Data Akun.........................................44

Gambar 3.7 Activity Diagram Mengelola Data Mahasiswa................................45

Gambar 3.8 Activity Diagram Mengelola Data Kriteria......................................46

Gambar 3.9 Activity Diagram Mengelola Bobot Kriteria....................................47

Gambar 3.10 Activity Diagram Mengelola Data Prodi........................................48

Gambar 3.11 Activity Diagram Mengelola Konten Dashboard...........................49

Gambar 3.12 Activity Diagram Mengelola Periode Beasiswa.............................50

Gambar 3.13 Activity Diagram Mengelola Pengumuman...................................51

Gambar 3.14 Activity Diagram Menghitung Metode SAW................................52

Gambar 3.15 Activity Diagram Melihat Kriteria.................................................52

Gambar 3.16 Activity Diagram Mengelola Profile..............................................53

xvi
Gambar 3.17 Activity Diagram Menginput Kebutuhan Kriteria.........................54

Gambar 3.18 Activity Diagram Mengesahkan Pengumuman..............................54

Gambar 3.19 Activity Diagram Mendownload Pengumuman.............................55

Gambar 3.20 Sequence Diagram Registrasi........................................................56

Gambar 3.21 Sequence Diagram Login...............................................................57

Gambar 3.22 Sequence Diagram Data Akun.......................................................57

Gambar 3.23 Sequence Diagram Data Mahasiswa..............................................58

Gambar 3.24 Sequence Diagram Data Kriteria...................................................59

Gambar 3.25 Sequence Diagram Bobot Kriteria.................................................60

Gambar 3.26 Sequence Diagram Data Prodi.......................................................61

Gambar 3.27 Sequence Diagram Konten Dashboard..........................................62

Gambar 3.28 Sequence Diagram Periode Beasiswa............................................63

Gambar 3.29 Sequence Diagram Data Pengumuman..........................................64

Gambar 3.30 Sequence Menghitung Metode SAW............................................65

Gambar 3.31 Sequence Diagram Melihat Kriteria..............................................65

Gambar 3.32 Sequence Diagram Mengelola Profile...........................................66

Gambar 3.33 Sequence Diagram Input Kebutuhan Kriteria................................67

Gambar 3.34 Sequence Diagram Mengesahkan Pengumuman...........................67

Gambar 3.35 Sequence Diagram Download Pengumuman...............................68

Gambar 3.36 Class Diagram...............................................................................69

Gambar 3.37 Desain ERD...................................................................................70

Gambar 3.38 Landing Page.................................................................................71

Gambar 3.39 Super Admin Data Admin.............................................................72

xvii
Gambar 3.40 Pimpinan Data Pengumuman........................................................72

Gambar 3.41 Admin Dashboard.........................................................................73

Gambar 3. 42 Konten Dashboard.......................................................................73

Gambar 3.43 Halaman Data Prodi.......................................................................74

Gambar 3.44 Admin Data Mahasiswa.................................................................74

Gambar 3.45 Admin Data Kriteria.....................................................................75

Gambar 3.46 Admin Data Periode......................................................................76

Gambar 3.47 Admin Data Pengumuman.............................................................77

Gambar 3.48 Halaman Register..........................................................................77

Gambar 3.49 Halaman Login..............................................................................78

Gambar 3.50 Mahasiswa Halaman Dashboard...................................................78

Gambar 3.51 Mahasiswa Profile.........................................................................79

Gambar 3.52 Mahasiswa Beasiswa.....................................................................79

Gambar 3.53 Mahasiswa Form Daftar Beasiswa................................................80

Gambar 3.54 Mahasiswa Kriteria Beasiswa........................................................81

Gambar 3.55 Mahasiswa Halaman Pengumuman...............................................81

Gambar 4.1 Tabel admins....................................................................................82

Gambar 4.2 Tabel users.......................................................................................83

Gambar 4.3 Tabel anouncements........................................................................83

Gambar 4.4 Tabel criterias..................................................................................84

Gambar 4.5 Tabel mahasiswas............................................................................84

Gambar 4.6 Tabel periods...................................................................................85

Gambar 4.7 Tabel user_periods..........................................................................85

xviii
Gambar 4.8 Tabel values.....................................................................................86

Gambar 4.9 Tabel weights...................................................................................86

Gambar 4.10 Tabel periods.................................................................................87

Gambar 4.11 Tabel dashboards..........................................................................87

Gambar 4.12 Halaman Landing Page.................................................................88

Gambar 4.13 Halaman Login Mahasiswa...........................................................89

Gambar 4.14 Halaman Register Mahasiswa.......................................................89

Gambar 4.15 Halaman Profil Mahasiswa............................................................90

Gambar 4.16 Halaman Ganti Password..............................................................91

Gambar 4.17 Halaman Dashboard Mahasiswa...................................................92

Gambar 4.18 Halaman Periode Beasiswa...........................................................92

Gambar 4.19 Halaman Form Daftar Beasiswa....................................................93

Gambar 4.20 Halaman Kriteria...........................................................................94

Gambar 4. 21 Halaman Pengumuman.................................................................95

Gambar 4.22 Halaman Login Super Admin........................................................95

Gambar 4.23 Halaman Dashboard Super Admin...............................................96

Gambar 4.24 Form Tambah Akun.......................................................................96

Gambar 4.25 Form Edit Data Akun....................................................................97

Gambar 4.26 Halaman Data Admin....................................................................98

Gambar 4.27 Halaman Dashboard Admin..........................................................99

Gambar 4.28 Halaman Pengelolaan Dashboard Mahasiswa..............................99

Gambar 4.29 Form Tambah Data Dashboard...................................................100

Gambar 4.30 Edit Data Dashboard...................................................................100

xix
Gambar 4.31 Halaman Data Mahasiswa...........................................................101

Gambar 4.32 Halaman Detail Mahasiswa.........................................................102

Gambar 4.33 Form Import Excel Data Mahasiswa...........................................102

Gambar 4.34 Halaman Data Prodi.....................................................................103

Gambar 4.35 Form Tambah Prodi.....................................................................104

Gambar 4.36 Form Edit Prodi...........................................................................104

Gambar 4.37 Halaman Data Kriteria & Bobot..................................................105

Gambar 4.38 Form Tambah Kriteria.................................................................106

Gambar 4.39 Form Edit Kriteria.......................................................................106

Gambar 4.40 Form Tambah Bobot....................................................................107

Gambar 4.41 Form Edit Bobot..........................................................................108

Gambar 4.42 Halaman Periode Beasiswa.........................................................108

Gambar 4.43 Form Tambah Periode Beasiswa.................................................109

Gambar 4.44 Form Edit Periode Beasiswa........................................................110

Gambar 4.45 Halaman Peserta Beasiswa..........................................................110

Gambar 4.46 Halaman Nilai Mahasiswa...........................................................111

Gambar 4 47 Halaman Kuota Beasiswa............................................................112

Gambar 4.48 Halaman Analisis Prodi...............................................................113

Gambar 4.49 Halaman Analisis Beasiswa.........................................................114

Gambar 4.50 Form Ganti Status Periode...........................................................115

Gambar 4.51 Halaman Pengumuman................................................................115

Gambar 4.52 Form Tambah Pengumuman.......................................................116

Gambar 4.53 Halaman Login Pimpinan............................................................116

xx
Gambar 4.54 Halaman Dashboard Pimpinan...................................................117

Gambar 4.55 Halaman Data Pengumuman.......................................................117

Gambar 4.56 Form Pengesahan.........................................................................118

xxi
DAFTAR TABEL

Tabel 2.1 Simbol Use Case..................................................................................19

Tabel 2.2 Simbol Activity Diagram......................................................................20

Tabel 2.3 Komponen Sequence Diagram.............................................................22

Tabel 2.4 Komponen Class Diagram...................................................................23

Tabel 3.1 Kriteria Perhitungan.............................................................................27

Tabel 3.2 Deskripsi Aktor Use Case....................................................................35

Tabel 3.3 Deskripsi Use Case Registrasi.............................................................35

Tabel 3.4 Deskripsi Use Case Login....................................................................35

Tabel 3.5 Deskripsi Use Case Mengelola Data Akun..........................................36

Tabel 3.6 Deskripsi Use Case Mengelola Data Mahasiswa.................................36

Tabel 3.7 Deskripsi Use Case Mengelola Kriteria...............................................37

Tabel 3.8 Deskripsi Use Case Mengelola Bobot Kriteria....................................37

Tabel 3.9 Deskripsi Use Case Mengelola Data Prodi..........................................37

Tabel 3.10 Deskripsi Use Case Mengelola Konten Dashboard...........................38

Tabel 3.11 Deskripsi Use Case Mengelola Periode Beasiswa.............................38

Tabel 3.12 Deskripsi Use Case Mengelola Pengumuman...................................38

Tabel 3.13 Deskripsi Use Case Menghitung Metode SAW.................................39

Tabel 3.14 Deskripsi Use Case Melihat Kriteria.................................................39

Tabel 3.15 Deskripsi Use Case Mengelola Profile..............................................40

Tabel 3.16 Deskripsi Use Case Menginput Kebutuhan Kriteria..........................40

Tabel 3.17 Deskripsi Use Case Mengesahkan Pengumuman..............................40

xxii
Tabel 3.18 Deskripsi Use Case Mendownload Pengumuman.............................41

Tabel 4.1 Tabel Pengujian Level Super Admin 119


Tabel 4.2 Tabel Pengujian Level Admin............................................................119

Tabel 4.3 Tabel Pengujian Level Pimpinan.......................................................122

Tabel 4.4 Pengujian Level Mahasiswa...............................................................122

xxiii
DAFTAR LAMPIRAN

Lampiran 1 Lembar Monitoring Dosen Pembimbing 1...................................132

Lampiran 2 Lembar Monitoring Dosen Pembimbing 2...................................134

xxiv
BAB I
PENDAHULUAN
1.1 Latar Belakang

Pemerintah melalui Direktorat Jenderal Pendidikan Tinggi –

Kementerian Pendidikan Nasional, mengusahakan pemberian bantuan biaya

pendidikan bagi mahasiswa yang orang tua atau walinya mengalami

masalah ekonomi saat membiayai Pendidikan sesuai dalam Undang-undang

Nomor 20 Tahun 2003 tentang Sistem Pendidikan Nasional, Bab V pasal

12 Ayat 1, salah satunya dalam bentuk Bantuan Biaya Mahasiswa dan

Beasiswa Peningkatan Prestasi Akademik atau disebut PPA (PEDOMAN

PROGRAM BEASISWA PPA DAN BBM).

Beasiswa Peningkatan Prestasi Akademik (PPA) merupakan bantuan

beasiswa dari pemerintah kepada mahasiswa di perguruan tinggi, terutama

yang mempunyai prestasi akademik (Sariati, 2019). Sesuai dengan

pengumuman pendaftaran beasiswa PPA tahun 2019, beasiswa PPA

memiliki kualifikasi seperti Surat keterangan penghasilan orang tua atau

wali, Indeks Prestasi Kumulatif (IPK) yang paling rendah 3,00 dan lain

sebagainya.

Sistem penerimaan beasiswa PPA pada Politeknik Negeri Madiun

masih menggunakan metode konvensional dimana mahasiswa harus

memasukkan berkas yang dibutuhkan ke dalam amplop A4 berwarna coklat

dan diserahkan ke Sub Bag Akademik, dan admin harus menyortir surat

permohonan, fotokopi kartu tanda mahasiswa, fotokopi transkrip nilai

akademik yang sudah dilegalisir oleh Sub Bag Akademik, surat pernyataan

1
2

tidak menerima beasiswa dari sumber APBN/APBD yang diketahui Wakil

Direktur III, surat rekomendasi dari Ketua Jurusan, fotokopi kartu keluarga

dan KTP orang tua, surat keterangan penghasilan orang tua dari instansi

tempat kerja, surat keterangan tidak mampu, fotokopi sertifikat yang pernah

diperoleh satu-persatu. Sehingga dalam pengolahan data dan melakukan

pertimbangan penentuan penerimaan beasiswa PPA menyebabkan beasiswa

yang kurang efisien dari segi waktu dan tenaga. Menurut Supriyanti, W

(2015), pengolahan data beasiswa yang belum terintegrasi dengan database

juga menyebabkan kesulitan dalam pengarsipan data.

Peneliti ingin mengembangkan sebuah sistem pengambilan keputusan

berbasis web menggunakan metode SAW untuk mencari penerima

beasiswa PPA berdasarkan dari penjelasan diatas. Sistem Pengambilan

Keputusan (SPK) sebuah sistem informasi berbasis komputer

mengkombinasikan model dan data untuk menyediakan dukungan kepada

pengambil keputusan dalam memecahkan masalah semi terstruktur atau

masalah ketergantungan yang melibatkan user secara mendalam (Oktavia,

2018). Berfungsi untuk memudahkan admin dalam mengambil keputusan

sesuai dengan nilai dari kriteria – kriteria yang telah dibuat.

Sistem pendukung keputusan penentuan calon penerima beasiswa

bagi mahasiswa berprestasi ini akan menggunakan metode Simple Additive

Weighting (SAW). Metode ini dipilih karena menurut Ramadhani (2019),

metode ini dapat menentukan nilai bobot untuk setiap kriteria, kemudian

dilanjutkan dengan proses perangkingan yang akan menyeleksi alternatif


3

terbaik dari sejumlah alternatif. Dalam hal ini alternatif yang dimaksud

adalah mahasiswa yang mempunyai nilai terbaik berdasarkan kriteria-

kriteria pemberian beasiswa (Ramadhani, 2019) .

Berdasarkan permasalahan tersebut peneliti mengambil sebuah judul

“Implementasi Metode Simple Additive Weight Pada Sistem Pengambilan

Keputusan Penerima Beasiswa PPA Menggunakan Framework Laravel”

dimana sistem pendukung keputusan penentuan calon penerima beasiswa

bagi mahasiswa berprestasi ini akan berbasis web, peneliti memilih sistem

ini berbasis web agar memudahkan mahasiswa dan admin dalam

pengelolaan data yang akan dilakukan. Menurut Supriyanti, W (2015),

beasiswa PPA harus disesuaikan dengan prinsip 3T, yaitu : Tepat sasaran,

Tepat Jumlah, dan Tepat Waktu.

1.2 Rumusan Masalah

Berdasarkan latar belakang diatas, maka permasalahan dapat

dirumuskan sebagai berikut :

1. Bagaimana membangun sistem pengambilan keputusan penerima

beasiswa PPA berbasis web menggunakan framework Laravel ?

2. Bagaimana cara menerapkan metode Simple Additive Weight pada

sistem pengambilan keputusan penerima beasiswa PPA ?

1.3 Batasan Masalah

Batasan masalah pada Tugas Akhir sebagai berikut :

1. Implementasi pada Politeknik Negeri Madiun.


4

2. Penggunaan bahasa pemrograman PHP dengan menggunakan

framework Laravel dan database MySQL.

3. Sistem pengambilan keputusan hanya untuk penerimaan beasiswa PPA.

4. Perancangan Sistem Pengambilan Keputusan ini menggunakan metode

Simple Additive Weighting (SAW) dengan 4 kriteria penghitungan

yang sudah ditentukan yaitu : IPK, Gaji Orang Tua, Tanggungan Orang

Tua, dan Prestasi / Organisasi internal apabila mempunyai. 5 kriteria

upload berupa pdf yaitu : Surat Permohonan, Fotocopy KTM, Surat

Pernyataan Tidak Menerima Beasiswa, Surat Rekomendfasi dari Ketua

Jurusan, Surat Keterangan Tidak Mampu.

1.4 Tujuan dan Manfaat

Tujuan dalam penelitian ini adalah menghasilkan sebuah aplikasi

yang merupakan sistem pengambilan keputusan beasiswa PPA berbasis

web menggunakan framework Laravel menggunakan metode Simple

Additive Weight.

Manfaat dalam penelitian ini adalah memberikan kemudahan bagi

Sub bag Akademik dalam menyeleksi peserta beasiswa PPA sehingga

mempercepat proses penerimaan beasiswa PPA.


BAB II
TINJAUAN PUSTAKA
2.1 Tinjauan Pustaka

Berikut ini adalah teori penunjang perancangan dan pembuatan

tugas akhir yang berjudul “Implementasi Metode Simple Additive Weight

Pada Sistem Pengambilan Keputusan Penerima Beasiswa PPA

Menggunakan Framework Laravel” berikut ini adalah Penelitian Terdahulu

dan Landasan Teori yang dapat digunakan sebagai tinjauan, yaitu :

2.1.1 Penelitian Terdahulu

Beberapa penelitian terdahulu yang digunakan sebagai

referensi dalam pembuatan “Implementasi Metode Simple Additive

Weight Pada Sistem Pengambilan Keputusan Penerima Beasiswa

PPA Menggunakan Framework Laravel” adalah sebagai berikut :

a. Implementasi Algoritma SAW (Simple Additive Weighting) Untuk

Mendukung Keputusan Penerimaan Beasiswa PPA Pada

Universitas Dian Nuswantoro.

Implementasi Algoritma SAW (Simple Additive

Weighting) Untuk Mendukung Keputusan Penerimaan Beasiswa

PPA Pada Universitas Dian Nuswantoro yang ditulis oleh Dio

Pujatama mengungkapkan bahwa Metode SAW dipilih karena

mencari penjumlahan terbobot dari rating kinerja setiap alternatif

pada semua atribut. FMADM dipilih untuk melakukan

pembobotan. Pada penelitian ini aplikasi berbentuk desktop.

Menggunakan 4 kriteria yaitu : IPK, Penghasilan Orang Tua,

5
6

Jumlah Tanggungan, Nilai PKM. Dan 1 level user saja, maka dari

itu peneliti ingin membuat sistem dengan 4 level user.

b. Sistem Pendukung Keputusan Penerimaan Beasiswa Peningkatan

Prestasi Akademik (PPA) Berbasis Web.

Sistem Pendukung Keputusan Penerimaan Beasiswa

Peningkatan Prestasi Akademik (PPA) Berbasis Web oleh Sariati

dkk, 2019. Menyatakan bahwa penerapan metode Weighted

Product pada sistem ini dapat memberikan informasi hasil

perangkingan yang dapat membantu kemahasiswaan dalam

menentukan urutan penerima beasiswa yang memenuhi kuota.

Pada sistem ini juga menyediakan tampilan grafik untuk

memudahkan admin dalam memonitor data2 yang telah masuk.

Hanya memiliki 1 level user saja yaitu admin. Kriteria pada sistem

ini ada 3. Yaitu : IPK, Penghasilan Orang tua, Jumlah

Tanggungan.

c. Sistem Pendukung Keputusan Mahasiswa Penerima Beasiswa

Menggunakan Metode SAW (Simple Additive Weight).

Sistem Pendukung Keputusan Mahasiswa Penerima

Beasiswa Menggunakan Metode SAW (Simple Additive Weight)

ditulis oleh Dinda Putri Ramadhani, Herny Februariyanti, 2019.

Menyatakan penerapan metode SAW dalam rancang bangun

sistem pendukung keputusan berbasis web ini memudahkan

sistem, karena dapat membantu kerja tim penyeleksi dan


7

mempercepat proses penyeleksi beasiswa dan mengurangi

kesalahan dalam menentukan penerima beasiswa. Pengambilan

keputusan berdasarkan 4 kriteria yang ditentukan, antara lain :

SKS, IPK, prestasi mahasiswa, dan pendapatan orang tua. Hasil

uji verifikasi menunjukan perhitungan menghasilkan keluaran

berupa rangking calon penerima beasiswa yang sudah diurutkan

berdasarkan total nilai terbobot yang terbesar hingga terkecil,

sistem ini masih bisa dikembangkan dengan menggunakan metode

lain untuk dapat meningkatkan nilai akurasi yang lebih baik dalam

menentukan penerima beasiswa dengan mempertimbangkan faktor

faktor lain yang mempengaruhi. Dan juga dalam sistem ini

terdapat fitur export data berupa pdf. Maka dari itu peneliti

berinisiatif untuk menambahkan menu berupa import data

mahasiswa pendaftar berupa excel agar mempermudah admin.

d. Rancang Bangun Aplikasi Sistem Pendukung Keputusan Penerima

Beasiswa dengan Metode SAW.

Rancang Bangun Aplikasi Sistem Pendukung Keputusan

Penerima Beasiswa dengan Metode SAW ditulis oleh Wiwit

Supriyanti, 2013. Menyatakan penggunaan metode Simple

Additive Weighting (SAW) dapat mempercepat proses menentukan

penerimaan beasiswa dengan perhitungan yang akurat dalam

memberikan rekomendasi penerima beasiswa, Pemberian skala

konversi dan bobot preferensi dari setiap bobot kriteria


8

mempengaruhi penilaian dan hasil perhitungan SAW, dalam

penelitian ini Wiwit Supriyanti selaku peneliti membangun

aplikasi ini berbasis desktop serta menggunakan bilangan fuzzy

dalam pemberian nilai bobot dengan 5 kriteria yaitu : IPK,

Penghasilan Orang tua, Prestasi yang pernah diraih, Organisasi

yang diikuti, Jumlah Tanggungan Orang tua. maka dari itu peneliti

juga menggunakan bilangan tersebut pada pengembangan sistem

yang akan dibangun.

e. Sistem Pendukung Keputusan Seleksi Penerima Beasiswa Dengan

Metode Weighted Product Pada SMP Negeri 1 Parung Berbasis

Web.

Sistem Pendukung Keputusan Seleksi Penerima Beasiswa

Dengan Metode Weighted Product Pada SMP Negeri 1 Parung

Berbasis web ditulis oleh Petricia Oktavia tahun 2018. Pada sistem

ini hanya terdapat 1 level user yaitu staff, terdapat 6 kriteria yaitu :

Usia Siswa, Perilaku Siswa Disekolah, Jumlah Saudara Kandung,

Jumlah Tanggungan, Nilai Rata rata raport, Gaji Orang tua. Pada

penelitian ini menggunakan metode FMADM maka dari itu

peneliti juga menggunakan metode FMADM dengan pendekatan

Simple Additive Weight. Karena pada penelitian ini hanya terdapat

1 level user maka peneliti ingin menggunakan multi level user

agar pendaftar beasiswa juga dapat menggunakan sistem ini.


9

2.2 Landasan Teori

Berikut adalah beberapa landasan teori yang digunakan peneliti

dalam pembuatan “Implementasi Metode Simple Additive Weight Pada

Sistem Pengambilan Keputusan Penerima Beasiswa PPA Menggunakan

Framework Laravel”.

2.2.1 Sistem Pengambilan Keputusan

Menurut Pujatama, D. (2014), SPK sebagai sebuah

sistem berbasis komputer yang membantu dalam proses

pengambilan keputusan. SPK sebagai sistem informasi yang

adaptif, interaktif, fleksibel, yang secara khusus dikembangkan

untuk mendukung solusi dari permasalahan manajemen yang

tidak terstruktur untuk meningkatkan kualitas pengambilan

keputusan. Dengan demikian dapat ditarik satu definisi tentang

SPK yaitu sebuah sistem berbasis komputer yang adaptif,

fleksibel, dan interaktif yang digunakan untuk memecahkan

masalah-masalah tidak terstruktur sehingga meningkatkan nilai

keputusan yang diambil (Pujatama, 2014).

Proses pengambilan keputusan terdiri dari 4 tahapan

yang diperkenalkan oleh penemu Herbert A. Simon. Tahapan

tersebut adalah :
10

Gambar 2.1 Alur SPK


Sumber : (Ramadhani, 2019)

i. Intelligence

Tahap ini adalah proses dimana penelusuran dan

pendeteksian dari lingkup masalah serta proses pengenalan

masalah. Data masukan diperoleh, diproses, dan diuji

dalam rangka mengidentifikasi masalah.

ii. Design

Tahap ini merupakan proses menemukan,

mengembangkan, dan menganalisis alternatif tindakan

yang bisa dilakukan. Tahap ini meliputi proses untuk

mengerti masalah, menurunkan solusi dan menguji

kelayakan solusi tersebut.

iii. Choice

Tahap choice ini dilakukan proses pemilihan

diantara berbagai alternatif tindakan yang mungkin


11

dijalankan. Hasil pemilihan tersebut kemudian di

implementasikan dalam proses pengambilan keputusan.

iv. Implementation

Tahap implementasi adalah tahap pelaksanaan dari

keputusan yang telah diambil. Tahap ini diperlukan

penyusunan serangkaian tindakan, sehingga hasil

keputusan dapat dipantau dan disesuaikan apabila

diperlukan perbaikan.

2.2.2 Fuzzy Multiple Attribute Decision Making (FMADM)

Menurut Supriyanti, W (2015), Fuzzy Multiple Attribute

Decision Making (FMADM) adalah suatu metode yang

digunakan untuk mencari alternatif optimal dari sejumlah

alternatif kriteria tertentu. Dari FMADM adalah menentukan

nilai bobot untuk setiap atribut, kemudian dilanjutkan dengan

proses perangkingan yang akan menyeleksi alternatif yang sudah

diberikan (Supriyanti, 2015).

Ada beberapa metode yang dapat digunakan untuk

menyelesaikan masalah FMADM :

 Simple Additive Weighting

 Weighted Product

 Elimination Et Choix Traduisant la Realite

 Technique for Order Preference by Similarity to Ideal

Solution
12

 Analytical Hierarchy Process

2.2.3 Metode Simple Additive Weighting (SAW)

Metode Simple Additive Weighting (SAW) dikenal dengan

istilah metode penjumlahan terbobot. Konsep dasar pada metode

SAW adalah mencari penjumlahan terbobot dari rating kinerja

pada setiap alternatif di semua atribut. Metode SAW

membutuhkan proses normalisasi matriks keputusan (X) ke

suatu skala yang dapat diperbandingkan dengan semua rating

alternatif yang ada (Ramadhani, 2019).

Rumus dalam normalisasi matriks keputusan sebagai

berikut:

Gambar 2.2 Rumus Normalisasi

Keterangan :

 rij = Rating kinerja ternormalisasi

 Max Xij = Nilai maksimum dari setiap baris dan kolom

 Min Xij = Nilai minimum dari setiap baris dan kolom

 Xij = Baris dan kolom dari matriks


13

Nilai preferensi untuk setiap alternatif (Vi) diberikan sebagai

berikut :

Gambar 2.3 Nilai Preferensi


Sumber : (https://raharja.ac.id/)

Keterangan :

 Vi = nilai preferensi

 wj = nilai bobot dari setiap kriteria

 rij = rating kinerja ternormalisasi

Nilai Vi yang lebih besar mengindikasikan bahwa alternatif Ai

lebih terpilih.

Langkah – Langkah dalam penyelesaian metode Simple

Additive Weight :

i. Menentukan Kriteria-kriteria yang dijadikan acuan

dalam pendukung keputusan yaitu Ci.

ii. Menentukan rating kecocokan setiap alternatif pada

setiap kriteria.

iii. Membuat matriks keputusan berdasarkan kriteria (Ci).

iv. Melakukan normalisasi matriks berdasarkan persamaan

yang disesuaikan dengan jenis atribut (atribut benefit


14

maupun cost) sehingga diperoleh matriks ternormalisasi

r.

Hasil akhir diperoleh dari proses perangkingan yaitu

penjumlahan dari perkalian matriks ternormalisasi r dengan vektor

bobot sehingga diperoleh nilai terbesar yang dipilih sebagai

alternatif terbaik (Ai).

2.2.4 PHP

Gambar 2.4 Logo PHP.


Sumber : (https://id.wikipedia.org/)

PHP Adalah Bahasa yang dirancang secara khusus untuk

penggunaan pada web. PHP adalah tool untuk pembuatan

halaman web dinamis, Pertama kali dibuat oleh Rasmus Lerdorf

pada tahun 1995 (Lutfi, 2017).

Fungsi PHP adalah membuat atau mengembangkan situs

web statis atau situs web dinamis atau aplikasi web. PHP

digunakan karena dalam pembuatan web dinamis dapat

digunakan untuk menyimpan data ke dalam database, membuat


15

halaman yang dapat berubah-ubah sesuai dengan input user,

memproses form, dll.

2.2.5 Framework Laravel

Gambar 2.5 Logo Laravel


Sumber : (https://id.wikipedia.org/)

Laravel adalah sebuah framework PHP yang dirilis

dibawah lisensi MIT, dibangun dengan konsep MVC (Model

View Controller). Laravel adalah pengembangan web berbasis

MVP dan ditulis dalam PHP yang dirancang untuk

meningkatkan kualitas perangkat lunak dengan mengurangi

biaya pengembangan awal, biaya pemeliharaan, serta untuk

meningkatkan pengalaman bekerja menggunakan aplikasi

dengan menyediakan syntax yang ekspresif, jelas dan

menghemat waktu. (Pengertian Dan Keunggulan Framework

Laravel | IDCloudHost.).
16

MVC adalah sebuah pendekatan perangkat lunak yang

memisahkan aplikasi logika dari presentasi. MVC memisahkan

aplikasi berdasarkan komponen-komponen aplikasi, seperti :

1. Model mewakili struktur data. Model berisi fungsi-fungsi yang

membantu seseorang dalam pengelolaan basis data seperti

memasukkan data ke basis data, pembaruan data dan lain-lain.

2. View adalah bagian yang mengatur tampilan ke pengguna.

Bisa dikatakan berupa halaman web.

3. Controller merupakan bagian yang menjembatani model dan

view.

2.2.6 MySQL

Gambar 2.6 Logo MySQL


Sumber : (https://id.wikipedia.org/)

Menurut Lutfi, A. (2017), MySQL adalah salah satu

aplikasi DBMS (Database Management System) yang banyak

digunakan oleh para pemrogram aplikasi web, yang open source

dengan dua bentuk lisensi, yaitu Free Software dan Shareware.

Jadi MySQL adalah database server yang gratis dengan lisensi


17

GNU General Public License (GPL) sehingga dapat digunakan

untuk keperluan pribadi atau komersil tanpa harus membayar

lisensi yang ada.

MySQL merupakan sebuah sistem database relasional,

sehingga dalam mengelompokkan informasi ke dalam tabel-

tabel informasi yang berkaitan. Setiap tabel memuat bidang-

bidang terpisah, yang mempresentasikan setiap bit informasi.

MySQL menggunakan indeks untuk mempercepat proses

pencarian terhadap baris informasi tertentu. MySQL

memerlukan sedikitnya satu indeks pada tiap tabel. Biasanya

akan menggunakan primary key untuk membentuk penjejakan

data (Lutfi, 2017).

2.2.7 Text Editor

Menurut Adieb, M. (2020), Text editor adalah suatu

software yang memungkinkan seseorang untuk membuka,

melihat, dan mengedit file plain text atau teks biasa. Tidak

seperti software pengolah kata seperti Microsoft Word, text

editor tidak memiliki fungsi untuk memformat dan hanya fokus

pada mengolah teks biasa. Ini sangat berguna bagi programmer

atau developer untuk membaca bahasa pemrograman. Tidak

hanya membaca saja, text editor juga memudahkan penggunanya

untuk menulis kode.


18

2.2.8 XAMPP

Menurut Widyawati (2016), XAMPP adalah sebuah

software yang berfungsi untuk menjalankan web berbasis PHP

dan menggunakan pengolah data MySQL di komputer lokal.

XAMPP berperan sebagai web server pada komputer. XAMPP

berperan sebagai server web pada komputer lokal. XAMPP dapat

disebut server virtual, yang dapat membantu melakukan preview

sehingga dapat dimodifikasi web tanpa harus online (Widyawati,

2016).

2.2.9 UML (Unified Modelling Language)

Menurut Putra & Andriani, (2019) UML adalah salah satu

standar bahasa yang banyak digunakan di dunia industri untuk

mendefinisikan requirement, membuat analisis dan desain, serta

menggambarkan arsitektur dalam pemrograman berorientasi

objek. UML digunakan apabila pengembang sistem memilih

menggunakan OOP (Object Oriented Programming) sebagai

struktur sistem yang akan dibangun.

2.2.10 Use Case Diagram

Use case diagram merupakan pemodelan untuk kelakuan

sistem informasi yang akan dibuat. Use case bekerja dengan

mendeskripsikan tipikal interaksi antara user sebuah sistem

dengan sistemnya sendiri melalui sebuah cerita bagaimana sistem

itu dipakai (Putra & Andriani, 2019). Diagram use case


19

merupakan permodelan untuk menggambarkan kelakuan actor

yang ada dalam sebuah sistem yang akan dibuat. Diagram use

case juga digunakan untuk mengetahui fungsi apa saja yang ada

di dalam sebuah sistem dan aktor siapa saja yang menggunakan

fungsi tersebut.

Komponen yang terdapat di Use Case sebagai berikut :

Tabel 2.1 Simbol Use Case

Simbol Nama Keterangan


Aktor Orang yang
berinteraksi dengan
sistem yang akan
dibuat.
Asosiasi Komunikasi antara actor
dan use case yang
berpartisipasi pada use case
atau use case memiliki
interaksi dengan aktor
Extend Relasi use case tambahan
ke sebuah use case dimana
use case yang ditambahkan
dapat berdiri sendiri
walaupun use case
tambahan.
Generalisasi Hubungan generalisasi dan
spesialisasi antara dua buah
use case.
Use Case Fungsionalitas yang
disediakan sistem
sebagai unit-unit yang
20

Simbol Nama Keterangan


saling bertukar pesan
antar unit atau aktor
Include Relasi tambahan ke sebuah
use case dimana yang
ditambahkan memerlukan
use case ini untuk
menjalankan fungsinya atau
sebagai syarat dijalankan
use case.

2.2.11 Activity Diagram

Activity diagram merupakan diagram yang

menggambarkan workflow atau aktivitas dari sebuah sistem yang

ada pada perangkat lunak (Putra & Andriani, 2019). Diagram

aktivitas atau Activity Diagram juga banyak digunakan untuk

mendefinisikan rancangan proses bisnis dimana setiap urutan

aktivitas yang digambar merupakan proses bisnis sistem.

Komponen yang terdapat di Activity Diagram sebagai berikut :

Tabel 2.2 Simbol Activity Diagram

Simbol Nama Keterangan


Status Awal Status awal
aktivitas sistem.
Aktivitas Aktivitas yang
dilakukan sistem.

Percabangan Asosiasi
percabangan
dimana jika ada
21

Simbol Nama Keterangan


pilihan aktivitas
lebih dari satu.
Penggabungan Asosiasi
penggabungan
dimana lebih dari
satu aktivitas
digabungkan
menjadi satu.
Status akhir Status akhir yang
dilakukan sistem.
Swimlane Memisahkan
organisasi bisnis
yang bertanggung
jawab terhadap
proses yang
terjadi.
Fork Digunakan untuk
menunjukan kegiatan
yang dilakukan
parallel.

2.2.12 Sequence Diagram

Sequence diagram menggambarkan kelakuan objek pada

use case dengan mendeskripsikan waktu hidup objek dan pesan

yang dikirimkan dan diterima antar objek (Putra & Andriani,

2019). Dalam menggambar diagram sekuen maka harus diketahui

objek-objek yang terlibat dalam sebuah use case beserta metode-


22

metode yang dimiliki kelas yang diinstansiasi menjadi objek itu.

Penggambaran sequence dibuat sebanyak pendefinisian use case.

Komponen yang terdapat di Sequence Diagram sebagai berikut :

Tabel 2.3 Komponen Sequence Diagram

Simbol Nama Keterangan


Aktor Orang / proses yang
berinteraksi dengan
sistem informasi yang
akan dibuat.
Garis hidup / Menyatakan kehidupan
lifeline
suatu objek.

Objek Menyatakan objek yang


berinteraksi pesan.
Waktu aktif Menyatakan objek
dalam keadaan aktif dan
berinteraksi pesan.
Pesan tipe Menyatakan suatu objek
create membuat objek yang
lain.
Pesan tipe call Menyatakan suatu objek
memanggil metode yang
ada pada objek lain.
Pesan tipe Menyatakan bahwa
send suatu objek
mengirimkan data ke
objek lain.
Pesan tipe Menyatakan bahwa
return suatu objek telah
23

Simbol Nama Keterangan


menjalankan suatu
operasi yang
menghasilkan pada
objek tertentu.
Pesan tipe Menyatakan suatu objek
destroy mengakhiri hidup objek
yang lain.

2.2.13 Class Diagram

Class diagram merupakan gambaran struktur sistem dari

segi pendefinisian kelas- kelas yang akan dibuat untuk

membangun sistem. Terdiri dari atribut dan operasi dengan

tujuan pembuat pembuat program dapat membuat hubungan

antara dokumentasi perancangan sesuai.

Komponen yang terdapat di Class Diagram sebagai berikut :

Tabel 2.4 Komponen Class Diagram

Simbol Nama Keterangan


Package Package merupakan sebuah
bungkusan dari satu atau lebih
kelas.
Kelas Kelas pada struktur sistem.

Antarmuka Sama dengan konsep


interface dalam
pemrograman berorientasi
objek.
24

Simbol Nama Keterangan


Asosiasi Relasi antar kelas dengan
makna umum.
Asosiasi Relasi antar kelas dengan
Berarah makna kelas yang satu
digunakan oleh kelas yang
lain.
Generalisasi Relasi antar kelas dengan
makna generalisasi-
spesialisasi.
Dependency Relasi antar kelas dengan
makna kebergantungan
antar kelas.
Agregasi Relasi antar kelas dengan
makna semua bagian.
BAB III
PERANCANGAN

3.1 Requirement Gathering

3.1.1 Tahapan Pengumpulan Data

Tahap pengumpulan data ini peneliti melakukan pengumpulan

kebutuhan data sebagai kriteria dan bobot nilai kriteria, peneliti

menggunakan 3 tahap :

a. Observasi

Observasi adalah pengumpulan data melalui

pengamatan pada kegiatan yang diteliti yaitu penerimaan

beasiswa PPA yang telah berlangsung selama ini di Politeknik

Negeri Madiun. Dari yang didapatkan oleh peneliti sistem

pendaftaran beasiswa PPA masih berlangsung menggunakan

metode konvensional.

b. Studi Pustaka

Studi Pustaka merupakan tahapan yang dilakukan oleh

peneliti guna mengumpulkan data dari sumber literasi. Dalam

melakukan tahapan ini peneliti mencari mengenai jurnal

penelitian terdahulu dan referensi terkait kebutuhan data tentang

topik yang dipilih.

c. Wawancara

Wawancara merupakan tahapan yang dilakukan oleh

peneliti terhadap pihak yang berwenang dalam penentuan

25
26

penerimaan beasiswa PPA terkait kriteria-kriteria serta bobot

nilainya.

3.1.2 Tahapan Analisisis Kebutuhan Sistem

Analisis kebutuhan sistem dalam perencanaan pembuatan

sistem ini adalah sebagai berikut :

1. Analisis dan kebutuhan fungsional.

Analisis kebutuhan fungsional adalah kebutuhan yang

berisi proses-proses apa saja yang nantinya harus disediakan

oleh sistem. Analisis ini meliputi kebutuhan data dan

pemodelan sistem. Berikut analisis dan kebutuhan fungsional :

a. Analisis Kebutuhan Sistem

Sebelum melakukan perancangan sistem, terlebih

dahulu melakukan analisis kebutuhan sistem dengan cara

melakukan observasi pada studi kasus. Adapun kebutuhan

sistem yang diperlukan adalah :

1) Sistem dapat mengelola data.

2) Sistem dapat melakukan keputusan dengan metode SAW.

3) Sistem dapat mengekspor hasil dari keputusan dengan

format pdf.

4) Sistem dapat melakukan import data mahasiswa pendaftar

beasiswa dalam format excel.


27

b. Analisis Kebutuhan Data

Analisis ini bertujuan memudahkan untuk

mengembangkan suatu sistem informasi dengan

memperhatikan data yang didapat setelah melalui tahap

pengumpulan data. Adapun yang dibutuhkan adalah :

1) Data Mahasiswa

2) Data Kriteria Perhitungan Beasiswa

Tabel 3.1 Kriteria Perhitungan

Inisial Nama Bobot Sifat


C1 IPK 0,3 Benefit
C2 Penghasilan Orang 0,23 Cost
Tua
C3 Tanggungan Orang 0,22 Benefit
Tua
C4 Prestasi / Organisasi 0,25 Cost

c. Gambaran Umum Sistem

Sistem Pengambilan Keputusan Penerimaan

Beasiswa ini dibangun untuk memudahkan admin dalam

menyeleksi mahasiswa penerima beasiswa secara cepat dan

akurat dengan menggunakan metode SAW.

2. Analisis dan kebutuhan non-fungsional.

Analisis kebutuhan non-fungsional adalah kebutuhan

sistem yang menitikberatkan pada properti perilaku yang

dimiliki oleh sistem. Berikut analisis dan kebutuhan non-

fungsional :
28

a. Analisis Kebutuhan Perangkat Lunak

Berikut adalah spesifikasi perangkat lunak yang

digunakan oleh peneliti untuk merancang sistem ini, yaitu :

1) Sistem Operasi Windows 10.

2) Visual Studio Code Versi 1.52.1.

3) Xampp Versi 3.2.2.

4) PHP Versi 7.4.10.

5) Browser Google Chrome.

b. Analisis Kebutuhan Perangkat Keras

Berikut adalah spesifikasi perangkat keras minimal

yang digunakan guna mengimplementasikan sistem ini,

yaitu :

1) Procesor : Intel Core i3.

2) RAM : 2GB.

3) VGA : Intel HD Graphic.

4) VRAM : 500MB.

5) Hardisk : 250GB.

c. Analisis Pengguna Sistem

Analisis ini dimaksudkan untuk mengetahui aktor

yang terlibat dalam sistem ini. Yaitu :

1) User yaitu mahasiswa yang akan mendaftar beasiswa

PPA.
29

2) Admin yang berperan dalam mengelola data.

3) Super Admin yang berperan dalam mengelola akun

admin.

4) Pimpinan yang berperan dalam pengesahan

pengumuman hasil perhitungan menggunakan metode

SAW.

3.1.3 Tahapan Pengembangan Sistem

Teknik pengembangan sistem yang digunakan peneliti adalah

model Fountain dalam pembuatan sistem “Implementasi Metode

Simple Additive Weight Pada Sistem Pengambilan Keputusan

Penerima Beasiswa PPA Menggunakan Framework Laravel”.

Tahapan model Fountain dapat dilihat pada gambar berikut :


30

Gambar 3.1 Metode Model Fountain

Penjelasan terkait model Fountain sebagai berikut :

1. User Requirements Analysis

Tahap User Requirements Analysis atau Analisis

Kebutuhan Pengguna ini digunakan peneliti untuk menganalisa

kebutuhan terhadap pengguna baik dalam penggunaan yang

mudah atau efisiensi terhadap sistem yang dibutuhkan

pengguna.

2. User Requirements Specification

Tahap User Requirements Specification atau Spesifikasi

Kebutuhan Pengguna ini digunakan peneliti untuk mengetahui


31

apa saja yang dibutuhkan pengguna dalam sistem yang

dikembangkan.

3. Software Requirements Specification

Tahap Software Requirements Specification atau

Spesifikasi Persyaratan Perangkat Lunak ini digunakan peneliti

untuk menyesuaikan sistem yang di kembangkan apabila dilihat

dari sisi pengguna.

4. Systems / Broad Design

Tahap Systems / Broad Design ini peneliti melakukan

desain sistem sesuai dengan sistem yang akan dikembangkan.

Disini peneliti membuat desain sistem menggunakan UML.

5. Program / Physical Design

Tahap Program / Physical Design ini peneliti

melakukan desain sistem sesuai dengan sistem yang akan

dikembangkan. Pada tahap ini peneliti menggunakan mockup

untuk melihat gambaran sistem. Setelah itu peneliti membuat

user interface dari sistem yang dikembangkan.

6. Coding

Tahap Coding ini peneliti melakukan implementasi kode

dalam bahasa pemrograman php menggunakan framework

Laravel. Ini disesuaikan berdasarkan desain sistem dan analisis

kebutuhan yang telah dilakukan.

7. Program Testing: Units


32

Tahap Program Testing: Units ini peneliti melakukan

pengujian terhadap coding apakah berjalan sesuai dengan yang

dibutuhkan.

8. Program Testing: System

Tahap Program Testing: System ini peneliti menguji

dari sistem yang telah dikembangkan menggunakan metode

Black Box untuk menguji apakah sistem berjalan sesuai dengan

tahap analisis

9. Program Use

Tahap Program Use ini peneliti mengajarkan kepada

pengguna sistem dan membuat buku pedoman penggunaan

sistem.

10. Software Maintenance

Tahap Software Maintenance ini peneliti apabila sistem

terdapat error dapat segera diperbaiki.

3.2 Perancangan Sistem / Aplikasi

Perancangan sistem ini dilakukan setelah melakukan analisis

kebutuhan sistem, Ini bertujuan untuk menggambarkan bagaimana jalannya

sistem yang akan dibangun agar mempermudah dalam memahami alur

kerja sistem. Berikut adalah perancangan dari sistem yang akan dibangun :
33

3.2.1 Flowchart

Flowchart adalah penggambaran secara grafik dari Langkah-

langkah dan urut-urutan prosedur suatu program. Flowchart

menolong analis dan programmer untuk memecahkan masalah

kedalam segmen-segmen lebih kecil dan menolong dalam

menganalisis alternatif-alternatif lain dalam pengoperasian.

Flowchart sistem yang akan dibangun peneliti dapat dilihat pada

gambar dibawah.

Gambar 3.2 Flowchart Sistem


34

Flowchart sistem diatas menggambarkan alur kerja yang

dilakukan mahasiswa dalam menggunakan sistem pendukung

keputusan ini. Mahasiswa pertama melakukan pendaftaran atau

registrasi lalu kemudian memilih periode beasiswa yang tersedia,

setelah itu melakukan pendaftaran. Setelah beasiswa ditutup akan

diupload pengumuman hasil dari sistem pengambilan keputusan ini.

3.2.2 Use Case Diagram

Use Case Diagram atau diagram use case merupakan

pemodelan untuk menggambarkan kelakuan (behavior) sistem yang

akan dibuat. Diagram use case mendeskripsikan sebuah interaksi

antara satu atau lebih aktor dengan sistem yang akan dibuat. Use

Case yang akan dibangun oleh peneliti dapat dilihat pada gambar 6

dibawah ini :
35

Gambar 3.3 Use Case Diagram

Tabel 3.2 Deskripsi Aktor Use Case

No. Aktor Deskripsi


1. Pimpinan Orang yang bertugas mengesahkan
pengumuman dan memiliki otoritas
tertinggi.
2. Super Orang yang bertugas mengelola akun
Admin admin dan memonitor admin.
3. Admin Orang yang bertugas menyeleksi
mahasiswa penerima beasiswa, melakukan
36

No. Aktor Deskripsi


pengelolaan data pada sistem yang akan
dibangun.
4. Mahasiswa Mahasiswa yang akan mendaftar beasiswa.

Tabel 3.3 Deskripsi Use Case Registrasi


Nama Use Case Registrasi
Aktor Mahasiswa
Deskripsi Proses dimana user dapat mendaftar dengan npm
dan data diri lengkap yang kemudian akan
digunakan untuk login.
Pre-kondisi Membuka laman sistem
Post-kondisi Sistem dapat menyimpan data diri user pada
database.
Extends -

Tabel 3.4 Deskripsi Use Case Login

Nama Use Case Login


Aktor Pimpinan, Super Admin, Admin,
Mahasiswa.
Deskripsi Proses dimana Super Admin, Admin,
Mahasiswa memasukkan email / npm agar
dapat melewati autentikasi sehingga dapat
masuk kedalam sistem.
Pre-kondisi Super Admin, Admin, Mahasiswa belum
memiliki hak autentikasi.
Post-kondisi Super Admin, Admin, Mahasiswa
memiliki hak akses dan dapat masuk
kedalam sistem.
Extends -
37

Tabel 3.5 Deskripsi Use Case Mengelola Data Akun


Nama Use Case Mengelola Data Akun
Aktor Super Admin
Deskripsi Proses dimana super admin dapat
melakukan proses CRUD terhadap data
admin.
Pre-kondisi Buka Halaman Data akun setelah login

Post-kondisi Database dapat menyimpan record create, read,


update, delete yang sudah dilakukan.
Extends -

Tabel 3.6 Deskripsi Use Case Mengelola Data Mahasiswa


Nama Use Case Mengedit Data Mahasiswa
Aktor Admin
Deskripsi Proses dimana admin dapat melakukan import excel
data mahasiswa, dan melakukan hapus data
mahasiswa.
Pre-kondisi Buka Halaman Dashboard admin setelah login

Post-kondisi Database dapat menyimpan record create, read,


delete yang sudah dilakukan.

Tabel 3.7 Deskripsi Use Case Mengelola Kriteria


Nama Use Case Mengelola Kriteria
Aktor Admin
Deskripsi Proses dimana admin dapat melakukan proses
Create Read Update Delete pada kriteria beasiswa.
Pre-kondisi Buka Halaman Kriteria setelah login

Post-kondisi Database dapat menyimpan record CRUD yang


sudah dilakukan.
Extends -
38

Tabel 3.8 Deskripsi Use Case Mengelola Bobot Kriteria


Nama Use Case Mengelola Bobot Kriteria
Aktor Admin
Deskripsi Proses dimana admin dapat melakukan proses
Create Read Update Delete pada bobot tiap kriteria
beasiswa.
Pre-kondisi Buka Halaman Kriteria setelah login

Post-kondisi Database dapat menyimpan record CRUD yang


sudah dilakukan.
Extends -

Tabel 3.9 Deskripsi Use Case Mengelola Data Prodi


Nama Use Case Mengelola Data Prodi
Aktor Admin
Deskripsi Proses dimana admin dapat melakukan proses
Create Read Update Delete pada data program
studi.
Pre-kondisi Buka Halaman Prodi setelah login

Post-kondisi Database dapat menyimpan record CRUD yang


sudah dilakukan.
Extends -
Tabel 3.10 Deskripsi Use Case Mengelola Konten Dashboard
Nama Use Case Mengelola Konten Dashboard
Aktor Admin
Deskripsi Proses dimana admin dapat melakukan proses
Create Read Update pada konten dashboard yang
tampil pada halaman user.
Pre-kondisi Buka Halaman Dashboard setelah login

Post-kondisi Database dapat menyimpan record CRUD yang


sudah dilakukan.
Extends -
39

Tabel 3.11 Deskripsi Use Case Mengelola Periode Beasiswa


Nama Use Case Mengelola Periode Beasiswa
Aktor Admin
Deskripsi Proses dimana admin dapat melakukan proses
Create Read Update Delete pada data periode
beasiswa.
Pre-kondisi Buka Halaman Periode beasiswa setelah login

Post-kondisi Database dapat menyimpan record CRUD yang


sudah dilakukan.
Extends -

Tabel 3.12 Deskripsi Use Case Mengelola Pengumuman


Nama Use Case Mengelola Pengumuman
Aktor Admin
Deskripsi Proses dimana admin dapat melakukan proses
Create Read Update Delete pada Pengumuman dan
melakukan upload file berupa pdf.
Pre-kondisi Buka Halaman Pengumuman setelah login

Post-kondisi Database dapat menyimpan record CRUD yang


sudah dilakukan.
Extends -

Tabel 3.13 Deskripsi Use Case Menghitung Metode SAW


Nama Use Case Menghitung metode SAW
Aktor Admin
Deskripsi Proses dimana perhitungan dari kriteria-
kriteria menggunakan metode SAW.
Pre-kondisi Data kriteria belum terhitung.
Post-kondisi Data kriteria sudah terhitung menggunakan
metode SAW.
Extends -
40

Tabel 3.14 Deskripsi Use Case Melihat Kriteria


Nama Use Case Melihat Kriteria
Aktor Mahasiswa
Deskripsi Proses dimana user dapat melihat kriteria yang
dibuthukan untuk melakukan perhitungan dalam
menentukan penerima beasiswa.
Pre-kondisi Login sebagai mahasiswa.

Post-kondisi Sistem dapat menampilkan data kriteria dari


database.
Extends -

Tabel 3.15 Deskripsi Use Case Mengelola Profile


Nama Use Case Mengedit Profile
Aktor Mahasiswa.
Deskripsi Proses dimana user dapat melakukan proses read,
update profile yang dimiliki mahasiswa.
Pre-kondisi Login sebagai mahasiswa.

Post-kondisi Sistem dapat menyimpan profile yang sudah diedit


pada database.
Extends -

Tabel 3.16 Deskripsi Use Case Menginput Kebutuhan Kriteria


Nama Use Case Menginput Kebutuhan Kriteria
Aktor Mahasiswa
Deskripsi Proses dimana user menginputkan data yang
dibutuhkan kriteria dari sistem dan mengupload
bukti validnya berupa pdf.
Pre-kondisi Login sebagai mahasiswa.

Post-kondisi Sistem dapat menyimpan data user yang kemudian


akan dihitung oleh sistem dengan metode saw.
Extends -
41

Tabel 3.17 Deskripsi Use Case Mengesahkan Pengumuman


Nama Use Case Mengesahkan Pengumuman
Aktor Pimpinan
Deskripsi Proses dimana pimpinan mengesahkan
pengumuman yang sudah diupload oleh
admin.
Pre-kondisi Login sebagai pimpinan

Post-kondisi Sistem dapat mengupdate status pada


pengumuman dan dapat diunduh user.
Extends -

Tabel 3.18 Deskripsi Use Case Mendownload Pengumuman


Nama Use Case Mendownload Pengumuman
Aktor Mahasiswa
Deskripsi Proses dimana mahasiswa mendownload
pengumuman penerima beasiswa yang
sudah diupload oleh admin.
Pre-kondisi Membuka laman sistem
Post-kondisi Sistem dapat menampilkan pengumuman
dan dapat diunduh oleh mahasiswa.
Extends -

3.2.3 Activity Diagram

Diagram aktivitas atau activity diagram menggambarkan

workflow (aliran kerja) atau aktivitas dari sebuah sistem atau

proses bisnis. Diagram aktivitas menggambarkan aktivitas sistem


42

bukan apa yang dilakukan aktor. Diagram aktivitas mendukung

perilaku paralel, activity diagram yang akan dibangun oleh peneliti

dapat dilihat dibawah ini :

a. Activity Diagram Registrasi

Gambar 3.4 Activity Diagram Registrasi

Activity diagram diatas menjelaskan alur registrasi yang

dilakukan mahasiswa sebelum melakukan login pada sistem

ini, dimana mahasiswa menginputkan data diri mahasiswa dan

mengupload foto.
43

b. Activity Diagram Login

Gambar 3.5 Activity Diagram Login

Activity diagram diatas menjelaskan pengguna melakukan

login dengan menginputkan email dan password, dalam sistem

agar dapat menggunakan sistem berdasarkan level user

masing-masing.
44

c. Activity Diagram Mengelola Data Akun

Gambar 3.6 Activity Diagram Mengelola Data Akun

Activity diagram diatas menggambarkan super admin dalam

mengelola data akun admin dan pimpinan yang berfungsi

untuk login kedalam sistem. Proses yang dapat dilakukan

meliputi create, read, update, delete.


45

d. Activity Diagram Mengelola Data Mahasiswa

Gambar 3.7 Activity Diagram Mengelola Data Mahasiswa

Activity diagram diatas menjelaskan admin melakukan

pengelolaan data mahasiswa yang mendaftar dalam sistem ini.

Proses yang dapat dilakukan meliputi create, read, delete.


46

e. Activity Diagram Mengelola Data Kriteria

Gambar 3.8 Activity Diagram Mengelola Data Kriteria

Activity diagram diatas menjelaskan admin dalam

pengelolaan data kriteria yang digunakan dalam beasiswa

ppa. Proses yang dapat dilakukan meliputi create, read,

update, delete.
47

f. Activity Diagram Mengelola Bobot Kriteria

Gambar 3.9 Activity Diagram Mengelola Bobot Kriteria

Activity diagram diatas menjelaskan admin dalam

mengelola bobot tiap kriteria yang digunakan dalam


48

beasiswa ppa. Proses ini meliputi create, read, update,

delete.
49

g. Activity Diagram Mengelola Data Prodi

Gambar 3.10 Activity Diagram Mengelola Data Prodi

Activity diagram diatas menjelaskan admin dalam

mengelola data prodi yang digunakan mahasiswa dalam


50

proses registrasi. Proses ini meliputi create, read, update,

delete.

h. Activity Diagram Mengelola Konten Dashboard

Gambar 3.11 Activity Diagram Mengelola Konten Dashboard

Activity diagram diatas menjelaskan admin dalam

mengelola konten dashboard yang ditampilkan pada

halaman mahasiswa. Proses ini meliputi create, read,

update.
51

i. Activity Diagram Mengelola Periode Beasiswa

Gambar 3.12 Activity Diagram Mengelola Periode Beasiswa

Activity diagram diatas menjelaskan admin dalam

mengelola periode beasiswa PPA. Proses ini meliputi

create, read, update, delete.


52

j. Activity Diagram Mengelola Pengumuman

Gambar 3.13 Activity Diagram Mengelola Pengumuman

Activity diagram diatas menjelaskan admin dalam mengelola

pengumuman hasil beasiswa PPA, yang kemudian akan

disahkan oleh pimpinan. Proses ini meliputi create, read,

update, delete.
53

k. Activity Diagram Menghitung Metode SAW

Gambar 3.14 Activity Diagram Menghitung Metode SAW

Activity diagram diatas menjelaskan dimana sistem

menghitung dengan metode SAW sesuai dengan kriteria

dan bobot yang telah ditentukan oleh admin sebelumnya.

l. Activity Diagram Melihat Kriteria

Gambar 3.15 Activity Diagram Melihat Kriteria

Activity diagram diatas menjelaskan mahasiswa dalam

melihat kriteria yang harus dipenuhi oleh mahasiswa dalam

pendaftaran beasiswa PPA.


54

m. Activity Diagram Mengelola Profile

Gambar 3.16 Activity Diagram Mengelola Profile

Activity diagram diatas menjelaskan mahasiswa dalam

mengelola profile pada sistem ini. Proses ini meliputi edit

dan update data profile yang dimiliki oleh mahasiswa.


55

n. Activity Diagram Menginput Kebutuhan Kriteria

Gambar 3.17 Activity Diagram Menginput Kebutuhan Kriteria

Activity diagram diatas menjelaskan mahasiswa dalam

menginputkan kebutuhan kriteria pada beasiswa PPA yang

didaftar.

o. Activity Diagram Mengesahkan Pengumuman

Gambar 3.18 Activity Diagram Mengesahkan Pengumuman

Activity diagram diatas menjelaskan pimpinan dalam

mengesahkan pengumuman hasil penghitungan sistem.


56

Dimana dalam mengesahkan ini harus ada pengumuman

yang telah dibuat oleh admin kemudian disahkan oleh

pimpinan agar tampil dalam halaman pengumuman yang

dilihat mahasiswa.

p. Activity Diagram Mendownload Pengumuman

Gambar 3.19 Activity Diagram Mendownload Pengumuman

Activity diagram diatas menjelaskan mahasiswa dalam

mendownload pengumuman hasil perhitungan sistem.

Dimana pengumuman ini telah disahkan oleh pimpinan di

dalam sistem sehingga dapat tertampil pada halaman yang

dapat dilihat oleh mahasiswa.


57

3.2.4 Sequence Diagram

Diagram sekuen menggambarkan kelakuan/perilaku objek

pada use case dengan mendeskripsikan waktu hidup objek dan

message yang dikirimkan dan diterima antar objek. Untuk

menggambar diagram sekuen harus diketahui objek-objek yang

terlibat dalam sebuah use case beserta metode-metode yang dimiliki

kelas yang diinstansiasi menjadi objek itu.

a. Sequence Registrasi

Gambar 3.20 Sequence Diagram Registrasi

Sequence diagram diatas menjelaskan alur registrasi yang

dilakukan mahasiswa sebelum melakukan login pada sistem

ini. Pada sequence ini mahasiswa menginputkan dahulu data

yang dibutuhkan lalu sistem mengirimkan data pada database

apabila berhasil mahasiswa akan mendapat konfirmasi

registrasi berhasil.
58

b. Sequence Login

Gambar 3.21 Sequence Diagram Login

Sequence diagram diatas menjelaskan alur login yang

dilakukan pengguna untuk mendapatkan hak akses

berdasarkan akun masing-masing. Pada sequence ini

pengguna melakukan login dengan menginputkan npm / email

dan password kemudian sistem akan memberikan hak akses

sesuai dengan data yang login.

c. Sequence Data Akun

Gambar 3.22 Sequence Diagram Data Akun


59

Sequence diagram diatas menjelaskan super admin dalam

mengelola data akun yang digunakan login oleh admin dan

pimpinan. Pada sequence diagram ini super admin mengelola

data dari admin dan pimpinan pada sistem. Mengelola disini

meliputi proses create, edit, delete data.

d. Sequence Data Mahasiswa

Gambar 3.23 Sequence Diagram Data Mahasiswa

Sequence diagram diatas menjelaskan admin dalam mengelola

data mahasiswa yang mendaftar dalam sistem ini. Pada

diagram sequence ini admin mengelola data dari mahasiswa

yang telah registrasi pada sistem. Proses mengelola disini

meliputi import data excel, delete data.


60

e. Sequence Data Kriteria

Gambar 3.24 Sequence Diagram Data Kriteria

Sequence diagram diatas menjelaskan admin dalam mengelola

data kriteria yang digunakan dalam beasiswa PPA. Pada

diagram sequence ini admin mengelola data kriteria

berdasarkan data yang diperoleh. Proses mengelola disini

meliputi create, edit, delete data.


61

f. Sequence Bobot Kriteria

Gambar 3.25 Sequence Diagram Bobot Kriteria

Sequence diagram diatas menjelaskan admin dalam mengelola

bobot tiap kriteria yang digunakan dalam beasiswa PPA. Pada

diagram sequence ini admin mengelola bobot tiap kriteria

yang telah dibuat bobot ini akan menjadi dropdown atau

pilihan untuk mahasiswa ketika mendaftarkan beasiswa.

Proses mengelola disini meliputi create, edit, delete data.


62

g. Sequence Data Prodi

Gambar 3.26 Sequence Diagram Data Prodi

Sequence diagram diatas menjelaskan admin dalam mengelola

data program studi yang digunakan mahasiswa untuk

melakukan registrasi sebelum mendaftar beasiswa. Proses

mengelola disini meliputi create, edit, delete data.


63

h. Sequence Konten Dashboard

Gambar 3.27 Sequence Diagram Konten Dashboard

Sequence diagram diatas menjelaskan admin dalam mengelola

konten yang akan tampil pada halaman dashboard mahasiswa.

Hanya terdapat 1 data pada dashboard sehingga apabila sudah

ada data maka tombol tambah akan hilang. Proses mengelola

disini meliputi create, edit data.


64

i. Sequence Periode Beasiswa

Gambar 3.28 Sequence Diagram Periode Beasiswa

Sequence diagram diatas menjelaskan admin dalam mengelola

periode beasiswa PPA. Pada diagram sequence ini admin

melakukan pengelolaan data periode beasiswa dimana periode

ini adalah batas waktu pendaftaran beasiswa untuk mahasiswa.

Proses mengelola disini meliputi create, edit, delete data.


65

j. Sequence Data Pengumuman

Gambar 3.29 Sequence Diagram Data Pengumuman

Sequence diagram diatas menjelaskan admin dalam mengelola

pengumuman hasil perhitungan sistem. Pada diagram sequence

ini akan berjalan apabila telah menyelesaikan proses

sebelumnya yaitu perhitungan dengan metode SAW. Setelah

dihitung maka akan keluar daftar mahasiswa siapa saja yang

menerima berdasarkan nilai tertinggi. Admin akan mengupload

pengumuman tersebut, kemudian menunggu peninggi untuk

mengesahkan pengumuman agar mahasiswa dapat mengakses

melalui sistem ini. Proses mengelola ini meliputi create, edit,

delete data.
66

k. Sequence Menghitung Metode SAW

Gambar 3.30 Sequence Menghitung Metode SAW

Sequence diagram diatas menjelaskan admin dalam

penggunaan sistem untuk menghitung dengan metode SAW.

Pada diagram sequence ini sistem melakukan perhitungan

metode SAW berdasarkan rule atau kriteria yang telah

ditentukan sebelumnya, kemudian admin tinggal menentukan

total mahasiswa yang menerima lalu pada file pdf

pengumuman hanya mahasiswa yang berhak mendapat

beasiswa akan muncul namanya pada pdf tersebut.

l. Sequence Menghitung Metode SAW

Gambar 3.31 Sequence Diagram Melihat Kriteria


67

Sequence diagram diatas menjelaskan mahasiswa dalam melihat

kriteria yang digunakan pada beasiswa PPA. Pada diagram

sequence ini sistem menampilkan data kriteria yang telah

ditentukan admin dalam proses sebelumnya. Disini hanya

terjadi proses read.

m. Sequence Mengelola Profile

Gambar 3.32 Sequence Diagram Mengelola Profile

Sequence diagram diatas menjelaskan admin dalam mengelola

data mahasiswa yang mendaftar dalam sistem ini. Pada

diagram sequence ini mahasiswa mengelola data diri pada

halaman profile, proses mengelola ini hanya seputar edit data.


68

n. Sequence Input Kebutuhan Kriteria

Gambar 3.33 Sequence Diagram Input Kebutuhan Kriteria

Sequence diagram diatas menjelaskan mahasiswa dalam

menginputkan kriteria yang dibutuhkan dalam beasiswa PPA.

Pada diagram sequence ini akan berjalan apabila pertama

melakukan proses memilih periode beasiswa kemudian akan

muncul form inputan berdasarkan kriteria yang telah

ditentukan oleh admin.

o. Sequence Mengesahkan Pengumuman

Gambar 3.34 Sequence Diagram Mengesahkan Pengumuman

Sequence diagram diatas menjelaskan piminan dalam

mengesahkan pengumuman hasil dari sistem ini. Pada diagram


69

sequence ini akan berjalan apabila telah melakukan proses

sebelumnya yaitu admin membuat pengumuman berdasarkan

hasil analisis menggunakan metode SAW oleh sistem. Pada

proses ini pimpinan melihat pengumuman kemudian

mengesahkan pengumuman tersebut by system.

p. Sequence Menghitung Metode SAW

Gambar 3.35 Sequence Diagram Download Pengumuman

Sequence diagram diatas menjelaskan mahasiswa dalam

mendownload pengumuman yang telah disahkan oleh

pimpinan. Pada diagram sequence ini berjalan apabila

pengumuman telah disahkan oleh pimpinan, apabila belum

makan tidak akan muncul pengumuman pada halaman

mahasiswa. Pengumuman disini berisi daftar nama mahasiswa

yang telah dianalisis oleh sistem.

3.2.5 Class Diagram

Diagram kelas atau class diagram menggambarkan struktur

sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk

membangun sistem. Kelas memiliki apa yang disebut atribut dan

method atau operasi.


70

Gambar 3.36 Class Diagram

Class diagram diatas terdapat 9 class yang diambil dari

model pada framework laravel berdasarkan sistem yang dibangun

peneliti. Class tersebut meliputi : User, Mahasiswa,

User_periode, Value, Criteria, Periode, Admin, Anouncement,

Prodi, Dashboard dan Weight. Masing-masing class memiliki

method sendiri-sendiri.

3.2.6 Entity Relationship Diagram (ERD)

Entity Relationship Diagram adalah sebuah penggambaran

relasi antar tabel yang digunakan dalam perancangan database pada

sistem yang akan dibangun.


71

Gambar 3.37 Desain ERD

Desain ERD diatas menunjukan users mempunyai

relationships melengkapi mahasiswa dengan kardinalitas one to one,

mahasiswa mempunyai relationships menginput values dengan

kardinalitas one to many, mahasiswa mempunyai relationships

memilih prodis dengan kardinalitas one to one, values mempunyai

relationships mendaftar periods dengan kardinalitas many to one,

periods mempunyai relationships mengatur admins dengan

kardinalitas many to one, admins mempunyai relationships

membuat anouncements dan mengelola criterias dengan kardinalitas

masing-masing one to many, admin juga mempunyai relationships

mengelola dashboards dengan kardinalitas one to one, criterias

mempunyai relationships memiliki criteria_weights dengan

kardinalitas one to many.


72

3.2.7 Desain Antarmuka Sistem

Desain Antarmuka Sistem berfungsi untuk melihat gambaran

sistem yang akan dibangun menggunakan mockup. Peneliti

menggunakan aplikasi balsamiq dalam membangun mockup. Ada

beberapa rancangan desain sistem yang akan dibangun.

a. Desain Landing Page

Gambar 3.38 Landing Page

Gambar 3.38 adalah rancangan halaman landing page dimana

admin maupun mahasiswa mengakses sistem sebelum login

maka halaman ini akan muncul, terdapat 2 tombol pada

halaman ini Login dan Register yang masing-masing digunakan

untuk mengakses halaman login dan register.


73

b. Desain Halaman Data Admin

Gambar 3.39 Super Admin Data Admin

Gambar 3.39 adalah rancangan halaman Data Admin, halaman

ini hanya bisa diakses oleh super admin. Halaman ini terdapat 2

tombol edit, delete untuk mengelola data admin.

c. Desain Halaman Data Pengumuman

Gambar 3.40 Pimpinan Data Pengumuman

Gambar 3.40 adalah rancangan halaman Data Pengumuman

yang hanya bisa diakses oleh pimpinan. Halaman ini hanya

terdapat tombol pengesahan dan link untuk mendownload

pengumuman.
74

d. Desain Halaman Dashboard Admin

Gambar 3.41 Admin Dashboard

Gambar 3.41 adalah rancangan halaman Dashboard apabila

admin, pimpinan, super admin berhasil login maka halaman ini

akan tampil. Halaman ini hanya menampilkan jumlah dari

admin, mahasiswa, kriteria, dan periode yang ada dalam sistem.

e. Desain Halaman Konten Dashboard

Gambar 3. 42 Konten Dashboard

Gambar 3.42 adalah rancangan halaman untuk mengelola

konten dashboard mahasiswa. Pada halaman ini tombol tambah


75

hanya berfungsi apabila belum ada data pada database, apabila

sudah ada tombol tersebut akan hilang.

f. Desain Halaman Data Prodi

Gambar 3.43 Halaman Data Prodi

Gambar 3.43 adalah rancangan halaman data prodi, dimana data

prodi ini digunakan mahasiswa untuk memilih prodi dalam

proses registrasi. Proses dalam halaman ini terdapat tambah,

edit, delete.

g. Desain Halaman Data Mahasiswa

Gambar 3.44 Admin Data Mahasiswa


76

Gambar 3.44 adalah rancangan halaman Data Mahasiswa yang

hanya bisa diakses oleh admin. Halaman ini terdapat banyak

fungsi seperti import excel untuk data mahasiswa, ekstrak file

pdf, form pencarian, info untuk melihat detail mahasiswa, dan

tombol delete.

h. Desain Halaman Data Kriteria

Gambar 3.45 Admin Data Kriteria

Gambar 3.45 adalah rancangan halaman Data Kriteria yang

hanya bisa diakses oleh admin. Halaman ini terdapat beberapa

fungsi seperti menambah data kriteria, tombol untuk

menampilkan kriteria perhitungan, tombol untuk menampilkan

kriteria beasiswa, edit, delete, tambah nilai untuk kriteria.

Untuk bobot atau weight terdapat fungsi CRUD untuk tiap-tiap

bobot.
77

i. Desain Halaman Data Pengumuman

Gambar 3.46 Admin Data Periode

Gambar 3.46 adalah rancangan halaman Data Periode yang

hanya bisa diakses oleh admin. Halaman ini terdapat beberapa

fungsi tombol tambah data untuk menambah data periode, link

untuk mendownload pengumuman, tombol edit, tombol delete,

tombol peserta untuk melihat peserta yang mendaftar, tombol

analisis untuk menganalisis pendaftar, ganti status untuk

mengganti status beasiswa.


78

j. Desain Halaman Data Pengumuman Admin

Gambar 3.47 Admin Data Pengumuman

Gambar 3.47 adalah rancangan halaman Data Pengumuman

yang hanya bisa diakses oleh admin. Halaman ini terdapat

fungsi menambah pengumuman dan delete pengumuman.

k. Desain Halaman Data Pengumuman

Gambar 3.48 Halaman Register


79

Gambar 3.48 adalah rancangan halaman Register yang

berfungsi untuk menginputkan data mahasiswa apabila ingin

mendaftarkan dan membuat akun pada sistem.

l. Desain Halaman Login

Gambar 3.49 Halaman Login

Gambar 3.49 adalah rancangan halaman Login yang berfungsi

untuk menginputkan email/npm dan password sebelum masuk

kedalam sistem.

m. Desain Halaman Dashboard Mahasiswa

Gambar 3.50 Mahasiswa Halaman Dashboard

Gambar 3.50 adalah rancangan halaman Dashboard apabila

login sebagai mahasiswa. Pada halaman ini menampilkan

pengertian dari beasiswa PPA.


80

n. Desain Halaman Profile Mahasiswa

Gambar 3.51 Mahasiswa Profile

Gambar 3.51 adalah rancangan halaman Profile apabila login

sebagai mahasiswa. Pada halaman ini terdapat fungsi

menampilkan data diri mahasiswa, tombol ganti password,

tombol edit untuk mengedit data mahasiswa.

o. Desain Halaman Beasiswa Mahasiswa

Gambar 3.52 Mahasiswa Beasiswa

Gambar 3.52 adalah rancangan halaman Beasiswa apabila login

sebagai mahasiswa. Halaman ini menampilkan periode

beasiswa yang berstatus buka, terdapat beberapa fungsi seperti


81

tombol file untuk mendownload pengumuman beasiswa, tombol

daftar untuk mendaftar pada periode tersebut.

p. Desain Form Daftar Beasiswa

Gambar 3.53 Mahasiswa Form Daftar Beasiswa

Gambar 3.53 adalah rancangan halaman Form Daftar Beasiswa

yang hanya bisa diakses oleh mahasiswa. Pada form daftar

beasiswa, form input dan form upload file sesuai dengan data

kriteria yang telah dibuat admin.


82

q. Desain Halaman Kriteria Beasiswa

Gambar 3.54 Mahasiswa Kriteria Beasiswa

Gambar 3.54 adalah rancangan halaman kriteria beasiswa yang

hanya bisa diakses oleh mahasiswa. Halaman ini menampilkan

keterangan dari tiap-tiap kriteria yang telah dibuat oleh admin.

r. Desain Halaman Pengumuman Mahasiswa

Gambar 3.55 Mahasiswa Halaman Pengumuman

Gambar 3.55 adalah rancangan halaman pengumuman yang

hanya bisa diakses oleh mahasiswa. Halaman ini menampilkan

pengumuman beasiswa yang telah disahkan oleh pimpinan.


BAB IV
HASIL DAN PENGUJIAN
4.1 Hasil Implementasi

Berikut ini merupakan hasil implementasi dari sistem yang

dibangun peneliti. Hasil Implementasi dibagi menjadi 2 sesuai yaitu hasil

implementasi database dan hasil implementasi program :

4.1.1 Hasil Implementasi Database

Berikut ini merupakan hasil implementasi desain basis data

dari sistem yang dibangun peneliti. Hasil implementasi database

dapat dilihat sebagai berikut :

1. Tabel admins

Tabel admins terdapat delapan kolom, diantaranya : id,

name, email, password, role, remember_token, created_at,

updated_at. Tabel ini dalam sistem berfungsi untuk login

admin.

Gambar 4.1 Tabel admins

83
84

2. Tabel users

Tabel users terdapat 7 kolom, diantaranya : id, npm,

email, password, remember_token, created_at, updated_at.

Tabel users dalam sistem berfungsi untuk login mahasiswa.

Gambar 4.2 Tabel users

3. Tabel anouncements

Tabel anouncements terdapat 7 kolom, diantaranya :

id, admin_id, period_id, status, file, crated_at, updated_at.

Tabel anouncements dalam sistem berfungsi untuk

menyimpan data pengumuman.

Gambar 4.3 Tabel anouncements

4. Tabel criterias
85

Tabel criterias terdapat 10 kolom diantaranya : id,

admin_id, code, name, weight, character, information, status,

created_at, updated_at. Tabel criterias dalam sistem

berfungsi untuk menyimpan data kriteria beasiswa.

Gambar 4.4 Tabel criterias

5. Tabel mahasiswas

Tabel mahasiswas terdapat 12 kolom diantaranya : id,

prodi_id, name, semester, photo, address, gender, phone,

religion, created_at, updated_at, user_id. Tabel mahasiswas

dalam sistem berfungsi untuk menyimpan data diri mahasiswa

yang mendaftar dalam sistem.

Gambar 4.5 Tabel mahasiswas

6. Tabel periods
86

Tabel periods terdapat 8 kolom, diantaranya : id,

admin_id, start, end, file, status, created_at, updated_at

.Tabel periods dalam sistem berfungsi untuk menyimpan data

beasiswa.

Gambar 4.6 Tabel periods

7. Tabel user_periods

Tabel user_periods terdiri dari 6 kolom, diantaranya :

id, user_id, period_id, status, created_at, updated_at. Tabel

user_periods dalam sistem berfungsi untuk melakukan record

mahasiswa siapa saja yang mendaftar dalam beasiswa.

Gambar 4.7 Tabel user_periods


87

8. Tabel values

Tabel values terdiri dari 8 kolom, diantaranya : id,

period_id, criteria_id, mahasiswa_id, value, file, created_at,

updated_at. Tabel values dalam sistem berfungsi untuk

menyimpan inputan mahasiswa yang dibutuhkan pada kriteria

beasiswa.

Gambar 4.8 Tabel values

9. Tabel weights

Tabel weights terdiri dari 6 kolom, diantaranya : id,

criteria_id, information, value, created_at, updated_at. Tabel

weights dalam sistem berfungsi untuk menyimpan berat nilai

dari masing-masing kriteria pada beasiswa.

Gambar 4.9 Tabel weights


88

10. Tabel prodis

Tabel prodis terdapat 5 kolom, diantaranya : id, name,

total, created_at, updated_at. Tabel prodis dalam sistem

berfungsi untuk menyimpan data dari program studi

universitas yang digunakan mahasiswa dalam proses

mendaftar.

Gambar 4.10 Tabel periods

11. Tabel dashboards

Tabel dashboards terdapat 6 kolom, diantaranya : id,

admin_id, title, content, created_at, updated_at. Tabel

dashboards dalam sistem berfungsi untuk menyimpan data

konten yang akan ditampilkan pada halaman dashboard

mahasiswa dalam sistem.

Gambar 4.11 Tabel dashboards


89

4.1.2 Hasil Implementasi Program

Pada tahap ini menampilkan desain yang telah dirancang

sesuai dengan desain mockup sebelumnya. Ini dimudahkan agar

user atau pemakai dipermudah dalam pemakaian sistem

pengambilan keputusan tanpa harus berurusan dengan coding

program yang rumit. Berikut tampilan aplikasi Sistem Pengambilan

Keputusan Penerima Beasiswa PPA.

A. Level User Mahasiswa

1. Halaman Landing Page

Halaman Landing Page adalah halaman awal apabila

pengguna mengakses aplikasi sistem pengambilan

keputusan.

Gambar 4.12 Halaman Landing Page

2. Halaman Login Mahasiswa


90

Halaman login mahasiswa terdapat inputan npm dan

password serta tombol register untuk mengakses halaman

register apabila pengguna belum mempunyai akun.

Gambar 4.13 Halaman Login Mahasiswa

3. Halaman Register Mahasiswa

Halaman register adalah halaman dimana pengguna

akan melakukan pendaftaran, terdapat beberapa input field

untuk memenuhi data pengguna. Terdapat checkbox show

password untuk menampilkan inputan password.


91

Gambar 4.14 Halaman Register Mahasiswa

4. Halaman Profil Mahasiswa

Halaman profil mahasiswa adalah halaman untuk

menampilkan data diri mahasiswa. Terdapat juga input field

apabila mahasiswa ingin melakukan edit data diri

mahasiswa.
92

Gambar 4.15 Halaman Profil Mahasiswa

Gambar diatas adalah halaman profil yang mengambil data

dari database. Apabila ingin mengganti data user hanya

perlu menggantinya pada form inputan sebelah kanan. data

prodi pada dropdown input field diambil dari database prodi.

Apabila user tidak memasukkan foto maka menampilkan

foto default.

5. Halaman Ganti Password

Halaman ini tampil setelah menekan tombol change

password pada halaman profile mahasiswa. Halaman ini

menampilkan form current password, new password, dan


93

confirm password. Form current password untuk

memasukkan password dahulu dan new password untuk

password yang baru.

Gambar 4.16 Halaman Ganti Password

Gambar diatas menampilkan form ganti password. Proses

yang terjadi adalah user menginputkan password lama

kemudian user menginputkan password baru di bawahnya

bertujuan agar database mengupdate password tersebut.

6. Halaman Dashboard Mahasiswa

Halaman Dashboard Mahasiswa adalah halaman

awal apabila mahasiswa berhasil login. Halaman ini

menampilkan data dashboard dari database. Halaman ini

diambil dari database dashboard yang dikelola admin.


94

Gambar 4.17 Halaman Dashboard Mahasiswa

Gambar diatas menampilkan informasi tentang beasiswa

PPA. Proses pada halaman tersebut hanya sistem mengambil

data dari database dashboard dan menampilkan nya pada

halaman ini.

7. Halaman Periode Beasiswa

Halaman periode beasiswa adalah halaman yang

menampilkan periode beasiswa yang sedang tersedia atau terbuka.

Gambar 4.18 Halaman Periode Beasiswa

Gambar diatas menampilkan halaman periode beasiswa yang

berstatus terbuka. Pada halaman tersebut terdapat tombol file

pengumuman untuk mendownload pengumuman terkait

periode beasiswa tersebut. Terdapat juga tombol daftar


95

beasiswa apabila mahasiswa belum mendaftar, setelah

menekan tombol tersebut mahasiswa akan diarahkan pada

halaman form pendaftaran beasiswa. Apabila mahasiswa

sudah mendaftar makan tombol daftar beasiswa akan

berubah menjadi sudah terdaftar.

8. Halaman Form Daftar Beasiswa

Halaman ini menampilkan form pendaftaran

beasiswa. halaman form daftar beasiswa tampil apabila

mahasiswa menekan tombol daftar beasiswa pada halaman

sebelumnya.

Gambar 4.19 Halaman Form Daftar Beasiswa

Gambar diatas adalah halaman form daftar beasiswa. Form

ini berasal dari data kriteria dan bobot yang telah dibuat oleh

admin pada halaman admin. Untuk kriteria perhitungan

terdapat dropdown nilai yang harus diisi mahasiswa. Untuk

kriteria pendaftaran tidak terdapat dropdown nilai tetapi tetap


96

harus mengupload file scan terkait kriteria tersebut. Proses

pada halaman ini yaitu mahasiswa harus memasukkan nilai

berdasarkan data yang telah dipunyai dan sistem akan

menyimpan data tersebut kemudian akan diolah

menggunakan metode SAW.

9. Halaman Kriteria

Halaman ini menampilkan data kriteria perhitungan

dan kriteria pendaftaran.

Gambar 4.20 Halaman Kriteria

10. Halaman Pengumuman

Halaman ini menampilkan pengumuman yang telah

diupload oleh admin dan disetujui oleh pimpinan. Data disini

tidak akan tampil apabila pimpinan tidak mengesahkan

pengumuman pada halaman pimpinan.


97

Gambar 4. 21 Halaman Pengumuman

B. Level User Super Admin

1. Halaman Login Super Admin

Halaman ini adalah halaman login yang digunakan

oleh admin, pimpinan, dan super admin. Halaman login

dibedakan antara mahasiswa dan admin.

Gambar 4.22 Halaman Login Super Admin

Proses pada halaman ini user hanya menginputkan username

dan password. Sistem akan menangkap inputan user tersebut

dan memvalidasi apakah user tersebut admin, super admin,

atau pimpinan.
98

2. Halaman Dashboard Super Admin

Halaman ini tampil apabila login sebagai super admin

atau pimpinan. Halaman ini menampilkan jumlah admin,

jumlah mahasiswa, jumlah kriteria, dan jumlah beasiswa

yang tersedia.

Gambar 4.23 Halaman Dashboard Super Admin

3. Form Tambah Data

Form ini tampil apabila menekan tombol tambah data

pada halaman data admin. Form ini berisi tentang data akun

admin seperti nama, email, password, dan role admin atau

pimpinan.

Gambar 4.24 Form Tambah Akun


99

Proses pada form ini sistem akan menangkap inputan user

kemudian akan menyimpan kedalam database.

4. Form Edit Data

Form ini tampil apabila menekan tombol edit pada

halaman data akun admin. Pada form ini hanya terdapat

nama, dan email.

Gambar 4.25 Form Edit Data Akun

Proses pada form ini user akan mengganti data yang terdapat

dalam form kemudian sistem akan mengupdate berdasarkan

data yang diedit.

5. Halaman Data Admin

Halaman ini menampilkan data akun admin dan data

akun pimpinan. Disini super admin memiliki otoritas

tertinggi pada sistem. Dapat melakukan proses CRUD pada

data akun admin dan data akun pimpinan.


100

Gambar 4.26 Halaman Data Admin

Proses pada halaman ini yaitu sistem menampilkan data

login dari admin dan pimpinan. Pada halaman ini terdapat

tombol add untuk menambah data login admin atau

pimpinan. Tombol edit untuk menampilkan modal edit data,

dan tombol hapus untuk menghapus data tersebut.

C. Level User Admin

1. Dashboard Admin

Pada halaman ini menampilkan seperti dashboard

super admin & pimpinan. Menampilkan jumlah data admin,

jumlah data mahasiswa, jumlah data kriteria, jumlah data

kriteria, dan jumlah beasiswa.


101

Gambar 4.27 Halaman Dashboard Admin

2. Halaman Pengelolaan Dashboard Mahasiswa

Halaman ini menampilkan data yang akan tampil

pada dashboard mahasiswa.

Gambar 4.28 Halaman Pengelolaan Dashboard Mahasiswa

Proses pada halaman ini adalah mengelola data dashboard

yang akan ditampilkan pada dashboard mahasiswa. Data

disini hanya dibatasi 1 data. Apabila sudah ada data pada

database maka tombool tambah akan hilang. Hanya terdapat

tombol edit tidak ada hapus.


102

3. Form Tambah Data Dashboard

Form ini akan tampil apabila menekan tombol

tambah. Form ini menampilkan form title dan form content.

Gambar 4.29 Form Tambah Data Dashboard

4. Edit Data Dashboard

Form ini akan tampil apabila menekan tombol edit.

Menampilkan form title dan content yang sudah berisi data.

Gambar 4.30 Edit Data Dashboard

5. Halaman Data Mahasiswa

Halaman ini menampilkan data mahasiswa yang

sudah melakukan pendaftaran pada sistem.


103

Gambar 4.31 Halaman Data Mahasiswa

Pada halaman ini terdapat tombol untuk menampilkan form

import data mahasiswa, tombol untuk melakukan export pdf,

form dropdown untuk memfilter berdasarkan prodi, tombol

info untuk mengakses halaman detail mahasiswa, tombol

delete untuk menghapus data mahasiswa dari sistem.

6. Halaman Detail Mahasiswa

Halaman ini akan tampil apabila menekan tombol

info pada halaman data mahasiswa. Halaman ini

menampilkan data mahasiswa secara detail.


104

Gambar 4.32 Halaman Detail Mahasiswa

7. Form Import Excel Data Mahasiswa

Form ini akan tampil apabila menekan tombol import

pada halaman data mahasiswa. form ini menampilkan

tombol contoh format excel untuk mendownload contoh

format. Input field file untuk mengupload file excel.

Gambar 4.33 Form Import Excel Data Mahasiswa

Proses pada halaman ini yaitu user menekan tombol contoh

format excel untuk mendownload format excel yang dapat

diterima sistem. Tombol choose file apabila user sudah

membuat file excel berisi data mahasiswa yang sesuai

dengan format yang telah ditentukan.


105

8. Halaman Data Prodi

Halaman ini menampilkan data prodi. Halaman ini

terdapat tombol tambah, tombol edit, dan tombol data.

Gambar 4.34 Halaman Data Prodi

Proses pada halaman ini yaitu create, read, update, delete.

Data yang dikelola pada halaman ini ditampilkan berupa

dropdown pada halaman registrasi awal mahasiswa. Juga

data total mahasiswa pada halaman ini berguna untuk

menghitung kuota beasiswa yang akan diterima tiap prodi.

9. Form Tambah Prodi

Form ini tampil apabila menekan tombol tambah

pada halaman prodi. Terdapat 2 form yaitu nama prodi dan

total mahasiswa.
106

Gambar 4.35 Form Tambah Prodi

10. Form Edit Prodi

Form ini tampil apabila menekan tombol edit pada

halaman data prodi. Form ini sudah terdapat data sehingga

admin tinggal mengedit data tersebut.

Gambar 4.36 Form Edit Prodi

11. Halaman Data Kriteria & Bobot

Halaman ini menampilkan data kriteria dan data

bobot tiap kriteria. Halaman ini sangat penting guna

perhitungan metode SAW.


107

Gambar 4.37 Halaman Data Kriteria & Bobot

Pada halaman ini terdapat tombol tambah kriteria, tombol

kriteria perhitungan untuk menampilkan data kriteria

perhitungan, tombol kriteria beasiswa untuk menampilkan

data kriteria yang tidak masuk perhitungan, tombol edit

untuk mengedit kriteria, tombol hapus, tombol tambah nilai

untuk menambah nilai pada kriteria tersebut. Terdapat juga

data nilai tiap kriteria yang terdapat tombol edit dan tombol

hapus.

12. Form Tambah Kriteria

Form ini tampil apabila menekan tombol tambah

kriteria. Terdapat form inisial, form nama, form bobot, form


108

sifat, form keterangan. Apabila ingin menambah data tanpa

perhitungan tidak perlu menginput bobot dan sifat.

Gambar 4.38 Form Tambah Kriteria

13. Form Edit Kriteria

Form edit ini tampil apabila menekan tombol edit

pada halaman data kriteria. Terdapat form yang sama seperti

form tambah tetapi terdapat data di dalam form tersebut,

sehingga admin tinggal mengedit data tersebut.

Gambar 4.39 Form Edit Kriteria


109

14. Form Tambah Bobot

Form ini tampil apabila menekan tombol tambah

nilai. Terdapat nama kriteria, form keterangan dan form

nilai.

Gambar 4.40 Form Tambah Bobot

15. Form Edit Bobot

Form ini tampil apabila menekan tombol edit pada

bobot. Terdapat form yang sama dengan form tambah bobot

tetapi terdapat data di dalam form tersebut, sehingga admin

tinggal mengedit data tersebut.


110

Gambar 4.41 Form Edit Bobot

16. Halaman Periode Beasiswa

Halaman ini menampilkan data periode beasiswa.

Data periode beasiswa ini akan tampil pada halaman

mahasiswa apabila berstatus buka.

Gambar 4.42 Halaman Periode Beasiswa

Pada halaman ini terdapat tombol untuk menambah periode,

tombol edit, tombol hapus, tombol peserta untuk

menampilkan data mahasiswa yang mendaftar pada periode

ini, tombol kuota untuk menampilkan halaman kuota yang

diterima per prodi pada periode ini, tombol ganti status untuk

mengganti status periode ini.


111

17. Form Tambah Periode Beasiswa

Form ini tampil apabila menekan tombol tambah

periode. Terdapat beberapa form seperti tanggal dimulai,

tanggal selesai beasiswa, form kuota mahasiswa yang

diterima beasiswa tersebut, form status, dan form input file

untuk mengupload file pengumuman beasiswa tersebut.

Gambar 4.43 Form Tambah Periode Beasiswa

18. Form Edit Periode Beasiswa

Form ini tampil apabila menekan tombol edit pada

halaman data periode beasiswa. Terdapat form yang sama

dengan form tambah dan ada data dalam form tersebut

sehingga admin tinggal mengedit data tersebut.


112

Gambar 4.44 Form Edit Periode Beasiswa

19. Halaman Peserta Beasiswa

Halaman ini terdapat halaman mahasiswa yang sudah

mendaftar pada beasiswa terkait.

Gambar 4.45 Halaman Peserta Beasiswa


113

Pada halaman ini terdapat form cari untuk mencari peserta,

tombol nilai untuk menampilkan halaman nilai peserta, dan

tombol hapus untuk menghapus peserta dari beasiswa

tersebut.

20. Halaman Nilai Mahasiswa

Halaman ini tampil apabila menekan tombol nilai

pada halaman peserta. Halaman ini menampilkan nilai yang

sudah di input mahasiswa pada halaman pendaftaran

beasiswa. Ada tombol nilai untuk mendownload file scan

yang sudah di upload mahasiswa.

Gambar 4.46 Halaman Nilai Mahasiswa

21. Halaman Kuota Beasiswa

Halaman ini menampilkan data prodi yang sudah

terdapat jumlah kuota penerimaan beasiswa tersebut


114

Gambar 4 47 Halaman Kuota Beasiswa

Proses pada halaman ini adalah sistem mengambil data prodi

dan menghitung kuota penerimaan prodi berdasarkan total

mahasiswa prodi dan total penerima beasiswa periode

tersebut.Terdapat tombol analisis untuk menganalisis dan

menampilkan data peserta yang sudah dihitung secara

metode SAW, terdapat tombol analisis pada prodi untuk

menampilkan perhitungan metode SAW per-prodi.

22. Halaman Analisis Prodi

Halaman ini tampil apabila menekan tombol analisis

pada prodi. Halaman ini menampilkan proses perhitungan

metode SAW.
115

Gambar 4.48 Halaman Analisis Prodi

Proses pada halaman ini adalah sistem mengambil data dari

database. Tabel pertama menampilkan bobot nilai yang

sudah ditetapkan admin pada halaman bobot & kriteria.

Tabel kedua menampilkan nilai mahasiswa prodi tersebut

yang telah mendaftar pada beasiswa. Tabel ketiga

menampilkan data nilai yang sudah di normalisasi,

perhitungan normalisasi dilakukan otomatis oleh sistem.

Tabel keempat menampilkan data hasil hitung yang sudah

dihitung menggunakan metode SAW, data hasil hitung

ditampilkan setelah sistem melakukan penghitungan dengan

mengalikan hasil normalisasi dengan bobot per-kriteria


116

kemudian menjumlahkannya, kemudian sistem akan

melakukan sort data ascending. Disini sistem masih

menampilkan semua mahasiswa yang mendaftar pada

periode beasiswa tersebut.

23. Halaman Analisis Beasiswa

Halaman ini tampil apabila menekan tombol analisis.

Halaman ini menampilkan data mahasiswa yang sudah

dihitung dengan metode SAW.

Gambar 4.49 Halaman Analisis Beasiswa

Proses pada halaman ini sistem mengambil data hasil analisis

tiap prodi kemudian sistem akan mengambil berdasarkan

kuota penerimaan tiap prodi, kemudian sistem akan

menampilkan data berdasarkan prodi. Terdapat tombol cetak

pdf untuk melakukan proses export file berupa pdf.

24. Form Ganti Status Periode

Form ini tampil apabila menekan tombol ganti status

periode. Terdapat 1 form yaitu status dibuka atau ditutup.


117

Gambar 4.50 Form Ganti Status Periode

25. Halaman Pengumuman

Pada halaman ini menampilkan data pengumuman.

Halaman ini terdapat tombol tambah dan tombol hapus.

Gambar 4.51 Halaman Pengumuman

Proses pada halaman ini yaitu admin hanya dapat membuat

data pengumuman tersebut dan belum tampil pada halaman

mahasiswa. pimpinan akan meninjau pengumuman ini dan

melakukan pengesahan pada halaman pimpinan.

26. Form Tambah Pengumuman

Form ini tampil apabila menekan tombol tambah.

Terdapat 2 form yaitu dropdown data periode beasiswa, dan

form file untuk mengupload file pengumuman.


118

Gambar 4.52 Form Tambah Pengumuman

D. Level User Pimpinan

1. Halaman Login Pimpinan

Halaman ini adalah halaman login yang digunakan

oleh admin, pimpinan, dan super admin. Halaman login

dibedakan antara mahasiswa dan admin.

Gambar 4.53 Halaman Login Pimpinan

Proses pada halaman ini user hanya menginputkan username

dan password. Sistem akan menangkap inputan user tersebut

dan memvalidasi apakah user tersebut admin, super admin,

atau pimpinan.
119

2. Halaman Dashboard Pimpinan

Halaman ini tampil apabila login sebagai super admin

atau pimpinan. Halaman ini menampilkan jumlah admin,

jumlah mahasiswa, jumlah kriteria, dan jumlah beasiswa

yang tersedia.

Gambar 4.54 Halaman Dashboard Pimpinan

3. Halaman Data Pengumuman

Halaman ini hanya dapat diakses oleh pimpinan.

Halaman ini menampilkan data pengumuman yang telah

dibuat oleh admin.

Gambar 4.55 Halaman Data Pengumuman


120

Proses pada halaman ini adalah mengupdate status pada tabel

pengumuman pada database. Data pengumuman akan tampil

pada halaman mahasiswa apabila status disini disahkan.

4. Form Pengesahan

Form ini akan tampil apabila menekan tombol

pengesahan. Form ini terdapat dropdown untuk

mengesahkan pengumuman.

Gambar 4.56 Form Pengesahan

4.2 Pengujian

Berikut ini merupakan hasil pengujian dari sistem yang dibangun

peneliti. Pengujian menggunakan metode blackbox. Pengujian dibagi

menjadi 4 sesuai dengan level yang terdapat di dalam sistem :

4.2.1 Level Super Admin

Pengujian pada sub bab ini dilakukan pada sistem level

Super Admin. Hasil pengujian dapat dilihat sebagai berikut :


121

Tabel 4.1 Tabel Pengujian Level Super Admin

Komponen Scenario dan Hasil Uji


No
yang Diuji Tampilan Aplikasi Kesimpulan
1. Form Penguji mencoba
Tambah menginputkan pada
input field email. Jika
Akun tidak sesuai akan tampil
Admin dan notifikasi error.
Pimpinan

2. Notifikasi Notifikasi error berhasil


Error. tampil saat sistem gagal
mengupdate data pada
halaman admin.

4.2.2 Level Admin

Pengujian pada sub bab ini dilakukan pada sistem level

Admin. Hasil pengujian dapat dilihat sebagai berikut :

Tabel 4.2 Tabel Pengujian Level Admin

Komponen Scenario dan Hasil Uji


No
yang Diuji Tampilan Aplikasi Kesimpulan
1. Form Import Notifikasi error
Data berhasil tampil saat
mahasiswa user mengupload file
yang bukan bertipe
xlxx,xls,cvs.
2. Form Input Penguji mencoba
Data Prodi menginputkan nama
prodi yang sudah ada.
Jika prodi sudah ada
akan tampil notifikasi
error.
3. Form Input Notifikasi error
Data Kriteria berhasil tampil saat
peneliti menginputkan
inisial dengan yang
sama pada database.
122

Komponen Scenario dan Hasil Uji


No
yang Diuji Tampilan Aplikasi Kesimpulan
4. Notifikasi Notifikasi error bobot
Error bobot kriteria berhasil
kriteria tampil saat inputan
inisial sama pada
database.

5. Form Input Notifikasi error


Data Bobot berhasil tampil saat
Kriteria menginput bilangan
fuzzy dengan nilai
lebih dari 1 pada form
input data bobot
kriteria.

6. Form Input Notifikasi error pada


Data Periode form input data
Beasiswa. periode beasiswa
berhasil tampil saat
menginputkan tanggal
dimulai dengan yang
sudah ada pada
database.

7. Notifikasi Notifikasi error


Error periode periode beasiswa
beasiswa berhasil tampil saat
peneliti mencoba
mengganti status
tanpa memilih dibuka
atau ditutup.

8. Halaman Notifikasi error


Peserta periode beasiswa
berhasil tampil saat
Beasiswa peneliti mencoba
mengganti status
tanpa memilih dibuka
atau ditutup.

9. Form Notifikasi error pada


Tambah form tambah
pengumuman berhasil
Pengumuman tampil saat mencoba
memilih periode
beasiswa yang sudah
ada pada database.
123

Komponen Scenario dan Hasil Uji


No
yang Diuji Tampilan Aplikasi Kesimpulan
10. Halaman Halaman ini
Analisis berhasil
Beasiswa menampilkan
hasil analisis
berdasarkan
kriteria dan bobot
yang telah
ditentukan admin
juga berdasarkan
nilai mahasiswa
terkait kriteria dan
bobot tersebut.

4.2.3 Level Pimpinan

Pengujian pada sub bab ini dilakukan pada sistem level

Pimpinan. Hasil pengujian dapat dilihat sebagai berikut :

Tabel 4.3 Tabel Pengujian Level Pimpinan

Komponen Scenario dan Hasil Uji


No
yang Diuji Tampilan Aplikasi Kesimpulan
1. Form Dalam pengujian ini
pengesahan peneliti mencoba
memilih data
pengumuma dropdown yang
n kecuali disahkan dan
belum disahkan.
124

4.2.4 Level Mahasiswa

Pengujian pada sub bab ini dilakukan pada sistem level

mahasiswa. Hasil pengujian dapat dilihat sebagai berikut :

Tabel 4.4 Pengujian Level Mahasiswa

Komponen Scenario dan Hasil Uji


No
yang Diuji Tampilan Aplikasi Kesimpulan
1. Halaman Penguji mencoba
Registrasi memasukan npm
mahasiswa yang
Mahasiswa sudah ada di dalam
database. Apabila
sudah ada npm
tersebut maka
menampilkan error

2. Halaman Penguji
Registrasi menginputkan
password dibawah 6
Mahasiswa digit. Apabila
password dibawah 6
akan menampilkan
error

3. Halaman Penguji mencoba


Login menginputkan npm
dan password salah.
apabila salah
menampilkan error.
125

Komponen Scenario dan Hasil Uji


No
yang Diuji Tampilan Aplikasi Kesimpulan
4. Form Edit Penguji mencoba
Mahasiswa mengedit dengan
npm yang sudah
terdaftar pada
database. apabila
npm sudah ada
menampilkan error.

5. Form Ganti Penguji mencoba


Password menginputkan
current password
berbeda dengan
password lama
mahasiswa. apabila
berbeda akan
menampilkan error.

6. Form Daftar Penguji mencoba


Beasiswa mengupload file
yang tidak bertipe
jpeg atau pdf.
apabila tidak
termasuk tipe file
pdf atau jpeg
menampilkan error.
BAB V
PENUTUP
5.1 Kesimpulan

Berdasarkan perancangan dan pengujian yang telah dilakukan pada

Implementasi Metode Simple Additive Weight Pada Sistem Pengambilan

Keputusan Penerima Beasiswa PPA Menggunakan Framework Laravel

maka dapat diambil kesimpulan sebagai berikut :

1. Sistem Pengambilan Keputusan Penerima Beasiswa menggunakan

Framework Laravel dalam pengembangannya.

2. Sistem Pengambilan Keputusan Penerima Beasiswa menggunakan

metode Simple Additive Weight.

3. Sistem Pengambilan Keputusan Penerima Beasiswa memberikan

efisiensi waktu dan kemudahan dalam melakukan seleksi penerima

beasiswa.

4. Sistem Pengambilan Keputusan Penerima Beasiswa memberikan

kemudahan dalam pengelolaan data pendaftar beasiswa.

5.2 Saran

Saran untuk kemajuan aplikasi yang telah dibuat agar

dikembangkan lebih baik adalah :

1. Sistem Pengambilan Keputusan Penerima Beasiswa merupakan sistem

informasi yang belum sempurna, sehingga masih bisa dilakukan

pengembangan.

126
127

2. Perlu dilakukan backup data berkala untuk memperkecil kemungkinan

kehilangan data.

3. Secara berkala memperbarui desain UI untuk menarik minat user

dalam menggunakan Sistem Pengambilan Keputusan Beasiswa.

4. Menambah fitur dalam User Experience agar pengguna sistem semakin

dipermudah dalam penggunaan.


DAFTAR PUSTAKA

Adieb, M. (2020). Text Editor: Pengertian, Fitur-fitur, Fungsi, serta Contoh-


contohnya.
https://glints.com/id/lowongan/text-editor-adalah/#.YBCa2egzbIU
Lutfi, A. (2017). Sistem Informasi Akademik Madrasah Aliyah Salafiyah
Syafi’Iyah Menggunakan Php Dan Mysq. AiTech, 3(2), 104–112.
Oktavia, P. (2018). Sistem Pendukung Keputusan Seleksi Penerima Beasiswa
Dengan Metode Weighted Product Pada SMP Negeri 1 Parung Berbasis
WEB. 67.
PEDOMAN PROGRAM BEASISWA PPA DAN BBM. (n.d.). Retrieved January 3,
2021, from https://www.kopertis6.or.id/component/content/article/59/224-
pedoman-program-beasiswa-ppa-dan-bbm-.html
Pengertian dan Keunggulan Framework Laravel | IDCloudHost. (n.d.). Retrieved
December 25, 2020, from https://idcloudhost.com/pengertian-dan-
keunggulan-framework-laravel/
Pujatama, D. (2014). Implementasi Algoritma SAW ( Simple Additive Weighting )
Untuk Mendukung Keputusan Penerimaan Beasiswa Ppa Pada Universitas
Dian.
Putra, D. W. T., & Andriani, R. (2019). Unified Modelling Language (UML)
dalam Perancangan Sistem Informasi Permohonan Pembayaran Restitusi
SPPD. Jurnal TeknoIf, 7(1), 32. https://doi.org/10.21063/jtif.2019.v7.1.32-
39
Ramadhani, D. P. (2019). Sistem Pendukung Keputusan Penerimaan Beasiswa
Mahasiswa Menggunakan Metode SAW (Simple Additive Weighting).
Bangkalan: Tugas Akhir …, 1–8.
http://pta.trunojoyo.ac.id/uploads/journals/090451100005/090451100005.pd
f
Sariati, S., Aprianti, W., & Fathurrahmani, F. (2019). Sistem Pendukung
Keputusan Penerimaan Beasiswa Peningkatan Prestasi Akademik (PPA)
Berbasis Web. Jurnal Sains Dan Informatika, 5(1), 1–10.
https://doi.org/10.34128/jsi.v5i1.169
Supriyanti, W. (2015). Rancang Bangun Aplikasi Sistem Pendukung Keputusan
Penerima Beasiswa dengan Metode SAW. Creative Information Technology
Journal, 1(1), 67. https://doi.org/10.24076/citec.2013v1i1.11
Widyawati, E. (2016). Rancang Bangun Aplikasi Kependudukan Berbasis Web
Di Desa Kedungrejo Waru-Sidoarjo. Jurnal Manajemen Informatika, 6(1).

128
129

LAMPIRAN

1. Lembar Monitoring Dosen Pembimbing 1


130
131
132
133

Lampiran 1 Lembar Monitoring Dosen Pembimbing 1


134

2. Lembar Monitoring Dosen Pembimbing 2


135
136

Lampiran 2 Lembar Monitoring Dosen Pembimbing 2


137

3. Source Code Controller Mahasiswa


<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Mahasiswa;
use App\User;
use App\Prodi;
use Carbon\Carbon;
use Importer;
use \PDF;
use File;
use Illuminate\Support\Facades\Crypt;

class MahasiswaController extends Controller
{
    public function index()
    {
        $mahasiswas = Mahasiswa::orderBy('semester', 'ASC')-
>paginate(10);
        $prodis = Prodi::orderBy('name', 'ASC')->get();
        return view('admin.mahasiswa.index', compact('mahasisw
as', 'prodis'));
    }

    public function search(Request $request) 
    {
        if($request->input('prodi_id') != 'All') {
            $mahasiswas = Mahasiswa::where('prodi_id', 'lik
e', '%' . $request->input('prodi_id') . '%')
            ->orderBy('semester', 'ASC')
            ->paginate(10);
        } else {
            $mahasiswas = Mahasiswa::orderBy('semester', 'ASC'
)->paginate(10);
        }
        $prodis = Prodi::orderBy('name', 'ASC')->get();
        return view('admin.mahasiswa.index', compact('mahasisw
as', 'prodis'));
    }
138

    public function cetak_pdf()
    {
   $mahasiswas = Mahasiswa::orderBy('semester', 'ASC')->get();
        $now = Carbon::now();
        $pdf = PDF::loadview('admin.mahasiswa.mahasiswa_pdf', 
compact('mahasiswas', 'now'));
return $pdf->download('Data Mahasiswa Tahun '.$now-
>year.'.pdf');
    }

    public function detail($id)
    {
        $id = Crypt::decrypt($id);
        $mahasiswa = Mahasiswa::findOrFail($id);
  return view('admin.mahasiswa.detail', compact('mahasiswa'));
    }

    public function delete($id)
    {
        $mahasiswa = Mahasiswa::findOrFail($id);
        File::delete('profile_images/'. $mahasiswa->user->npm 
. '/' .$mahasiswa->photo);
        User::where('id', $mahasiswa->user_id)->delete();
        $mahasiswa -> delete();
        return redirect()->back()->with(['success' => 'Data ' 
. $mahasiswa->name . ' Berhasil Dihapus!' ]);
    }

    public function store(Request $request)
    {
      try {
           $this->validate($request, [
    'file'  => 'required|max:5000|mimes:xlsx,xls,csv',
            ], [
                'file.required' =>  'File Harus Diisi!',
                'file.max'      =>  'File Max 5MB!',
         'file.mimes'    =>  'File Harus Bertipe xlsx,xls,csv'
            ]);

            $file = $request->file('file');
            $extension = $file->getClientOriginalExtension();
            $nama_file = Carbon::now()->format('Y-m-d') . '_' . 
'data_mahasiswa' . '.' . $extension;
139

            $request->file('file')->move('data_mahasiswa/', $n
ama_file);

            $excel = Importer::make('Excel');
            $excel->load('data_mahasiswa/'.$nama_file);
            $collection = $excel->getCollection();

            if(sizeof($collection[1]) == 10) {
                for($row=1; $row<sizeof($collection); $row++) 
{
             try {
               $user = User::create([
                  'npm' => $collection[$row][0],
                  'email'   => $collection[$row][1],
                  'password'  => bcrypt($collection[$row][2]),
                ]);

               Mahasiswa::create([
                 'user_id'   => $user->id,
                 'name'      => $collection[$row][3],
                 'prodi_id'  => Prodi::where('name', $collecti
on[$row][4])->first()->id,
                 'semester'  => $collection[$row][5],
                 'address'   => $collection[$row][6],
                 'gender'    => $collection[$row][7],
                 'phone'     => $collection[$row][8],
                 'religion'  => $collection[$row][9],
                        ]);
                  return redirect()->back()->with(['success' =
> 'Berhasil Upload Excel!']);
                    }catch(\Exception $e) {
                        $user1 = User::findOrFail($user->id);
                        $user1->delete();
return redirect()->back()->with(['error' => $e-
>getMessage()]);
                    }
                }
            }
        } catch(\Exception $e) {
          return redirect()->back()->with(['error' => $e-
>getMessage()]);
        }    } }
4. Source Code Controller Prodi
<?php
140

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Prodi;

class ProdiController extends Controller
{
    public function index()
    {
        $prodis = Prodi::orderBy('name', 'ASC')->paginate(10);
        return view('admin.prodi.index', compact('prodis'));
    }

    public function save(Request $request)
    {
      try{
         $this->validate($request, [ 
             'name'       => 'required|unique:prodis',
             'total'      => 'required|numeric'
         ],[
             'name.required' =>  'Nama Prodi harus Diisi!',
             'name.unique'=>  'Nama Prodi Tidak Boleh Sama',
             'total.required'=>'Total Mahasiswa Harus Diisi!',
      'total.numeric'=>'Total Mahasiswa Harus Berbentuk Angka'
            ]);

            $prodi = Prodi::create([
                'name'  =>  $request->name,
                'total' =>  $request->total
            ]);
            return redirect()->back()->with(['success' => 'Ber
hasil Menambah Prodi ' . $prodi->name]);
        } catch(\Exception $e) {
            return redirect()->back()->with(['error' => $e-
>getMessage()]);
        }
    }

    public function update(Request $request, $id)
    {
        if($request->isMethod('post')) { 
            $data = $request->all();
141

            Prodi::where(['id'=>$id])-
>update(['name'=>$data['name'], 'total'=>$data['total']]); 
            return redirect()->back()->with(['success' => 'Upd
ate ' . $request->name . ' Berhasil!']);
        }
    }

    public function delete($id)
    {
        $prodi = Prodi::findOrFail($id);
        $prodi -> delete();
        return redirect()->back()->with(['success' => 'Data ' 
. $prodi->name . ' Berhasil Dihapus!' ]);
    }
}

5. Source Code Controller Kriteria


<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Criteria;
use App\Weight;
use Auth;
use DB;

class CriteriaController extends Controller
{
    public function index()
    {
        $criterias = Criteria::all();
    return view('admin.criteria.index', compact('criterias'));
    }

    public function save(Request $request) 
    {
        $limit = DB::table('criterias')->select('weight')-
>sum('weight');
        try {
if($request->weight && $request->weight + $limit <= '1.0') {
        $this->validate($request, [
        'code'     => 'required|alpha_num|unique:criterias',
142

        'name'     => 'required|max:40',
        'weight'    => 'required|numeric|between: 0.0 , 0.5',
        'character' => 'required',
        'information'   => 'required'
        ], [
   'code.alpha_num'=>'Kode Harus Berupa Karakter dan Angka',
   'code.required' =>  'Kode Harus Diisi!',
   'code.unique'   =>  'Kode Harus Unik!',
   'name.required' =>  'Nama Harus Diisi!',
   'name.alpha'    =>  'Nama Harus Berupa Karakter',
   'weight.required' =>  'Bobot Harus Diisi!',
   'character.alpha' =>  'Karakter Harus Berupa Karakter',
   'name.max'        =>  'Nama Maksimal 40 Huruf!',
   'weight.between'    =>  'Bobot Harus  0 <= 0.5',
   'information.alpha' => 'Keterangan Harus Berupa Karakter',
   'information.required'  => 'Keterangan Harus Diisi!',
          ]);    
                $criteria = Criteria::create([
                    'admin_id'      =>  Auth::user()->id,
                    'code'          =>  $request->code,
                    'name'          =>  $request->name,
                    'weight'        =>  $request->weight,
                    'character'     =>  $request->character,
                    'information'   =>  $request->information,
                    'status'        =>  1
                ]);
            } elseif(empty($request->weight)) {
               $this->validate($request, [
                'code'=>'required|alpha_num|unique:criterias',
                'name'          => 'required|max:40',
                'character'     => 'required',
                'information'   => 'required'
                ], [
   'code.alpha_num'=>'Kode Harus Berupa Karakter dan Angka',
                    'code.required' =>  'Kode Harus Diisi!',
                    'code.unique'   =>  'Kode Harus Unik!',
                    'name.required' =>  'Nama Harus Diisi!',
   'name.regex'    =>  'Nama Harus Berupa Karakter',
     'name.max'          =>  'Nama Maksimal 40 Huruf!',
     'character.regex'   =>  'Karakter Harus Berupa Karakter',
     'information.regex'=>'Keterangan Harus Berupa Karakter',
     'information.required' => 'Keterangan Harus Diisi!',
                ]);    
                $criteria = Criteria::create([
143

                    'admin_id'      =>  Auth::user()->id,
                    'code'          =>  $request->code,
                    'name'          =>  $request->name,
                    'weight'        =>  $request->weight,
                    'character'     =>  $request->character,
                    'information'   =>  $request->information,
                    'status'        =>  0
                ]);
            } else {
                return redirect()->back()->with(['error' => 'W
eight total sudah 1.0!']);
            }

            return redirect()->back()->with(['success' => 'Ber
hasil Menambah Data ' . $criteria->name]);
        } catch(\Exception $e) {
            return redirect()->back()->with(['error' => $e-
>getMessage()]);
        }
    }

    public function delete($id)
    {
        try {
            $criteria = Criteria::findOrFail($id);
            $criteria -> delete();
            return redirect()->back()->with(['success' => 'Dat
a ' . $criteria->name . ' Berhasil Dihapus!' ]);
        } catch(\Exception $e) {
            return redirect()->back()->with(['error' => 'Gagal 
Menghapus Data!']);
        }
    }

    public function update(Request $request, $id)
    {
       $limit = DB::table('criterias')->select('weight')-
>sum('weight');
        $weight = DB::table('criterias')->where('id', $id)-
>select('weight')->sum('weight');
        $criteria_status = Criteria::where('id', $id)-
>pluck('status')->first();

        if($request->isMethod('post')) {
144

            try {
              $this->validate($request, [
              'code' => 'required|unique:criterias,code,'.$id,
              'name' => 'required|unique:criterias,name,'.$id,
              ], [
                    'code.unique'   =>  'Kode Harus Unik!',
                    'name.unique'   =>  'Nama Harus Unik!',
                ]);  

                $data = $request->all();
          if($criteria_status != 0) {
             if(($limit - $weight) + $data['weight'] <= '1') {
                        Criteria::where(['id'=>$id])-
>update(['code'=>$data['code'], 'name'=>$data['name'], 'weight
'=>$data['weight'], 'character'=>$data['character'], 'informat
ion'=>$data['information']]);
                        return redirect()->back()-
>with(['success' => 'Update ' . $request->name . ' Berhasil!']
);
                    } else {
                        return redirect()->back()-
>with(['error' => 'Weight total sudah Melebihi Batas 1.0']);
                    }
                } else {
                    Criteria::where(['id'=>$id])-
>update(['code'=>$data['code'], 'name'=>$data['name'], 'inform
ation'=>$data['information']]);
                    return redirect()->back()->with(['success' 
=> 'Update ' . $request->name . ' Berhasil!']);
                }
            } catch(\Exception $e) {
                return redirect()->back()->with(['error' => $e
->getMessage()]);
            }
        }
    }
}

6. Source Code Controller Weight


<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;
145

use App\Http\Controllers\Controller;
use App\Weight;
use Auth;

class WeightController extends Controller
{
    public function save(Request $request) 
    {
        try {
            $this->validate($request, [ 
            'criteria_id'   => 'required|exists:criterias,id',
            'information'   => 'required',
            'value'         => 'required|numeric|between:0,1'
            ],[
            'information.required'=>'Keterangan harus Diisi!',
            'value.required'=>  'Nilai Harus Diisi!',
            'value.between' =>  'Nilain Harus Bernilai 0 =< 1'
            ]);
            $weight = Weight::create([
                'criteria_id'   =>  $request->criteria_id,
                'information'   =>  $request->information,
                'value'         =>  $request->value
            ]);
            return redirect()->back()->with(['success' => 'Ber
hasil Menambah Nilai Kriteria ' . $weight->information]);
        } catch(\Exception $e) {
return redirect()->back()->with(['error'=>$e->getMessage()]);
        }
    }

    public function update(Request $request, $id) 
    {
        if($request->isMethod('post')) { //jika method post
            try {
                $this->validate($request, [
    'information'=>'required|unique:weights,information,'.$id,
    'value'      => 'required|unique:weights,value,'.$id,
                ], [
    'information.unique'   =>  'Keterangan Tidak Boleh Sama!',
    'value.unique'   =>  'Nilai Tidak Boleh Sama!',
                ]);  
                $data = $request->all(); 
146

    Weight::where(['id'=>$id])-
>update(['information'=>$data['information'], 'value'=>$data['
value']]); 
                return redirect()->back()->with(['success' => 
'Update ' . $request->information . ' Berhasil!']);
            } catch(\Exception $e) {
                return redirect()->back()->with(['error' => $e
->getMessage()]);
            }
        }
    }

    public function delete($id)
    {
        try {
            $weight = Weight::findOrFail($id);
            $weight -> delete();
            return redirect()->back()->with(['success' => 'Dat
a ' . $weight->information . ' Berhasil Dihapus!']);
        } catch(\Exception $e) {
return redirect()->back()->with(['error'=>$e->getMessage()]);
        }
    }
}

7. Source Code Controller Dashboard


<?php

namespace App\Http\Controllers\admin;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Mahasiswa;
use App\Admin;
use App\Criteria;
use App\Period;
use App\Dashboard;
use Auth;

class DashboardController extends Controller
{
    public function index()
    {
        $admin_count = Admin::all()->count();
147

        $mahasiswa_count = Mahasiswa::all()->count();
        $criteria_count = Criteria::all()->count();
        $period_count = Period::all()->count();
        return view('admin.index', compact('admin_count', 'mah
asiswa_count', 'criteria_count', 'period_count'));
    }

    public function user()
    {
        $dashboard = Dashboard::all();
return view('admin.dashboard_user.index',compac('dashboard'));
    }

    public function save(Request $request) 
    {
        try {
            $this->validate($request, [ 
                'title'         => 'required',
                'content'        => 'required'
            ],[
                'title.required'  =>  'Judul harus Diisi!',
                'content.required'  =>  'Konten Harus Diisi!'
            ]);
            Dashboard::create([
                'admin_id'      =>  Auth::user()->id,
                'title'         =>  $request->title,
                'content'       =>  $request->content
            ]);
            return redirect()->back()->with(['success' => 'Ber
hasil Menambah Konten Dashboard User!']);
        } catch(\Exception $e) {
            return redirect()->back()->with(['error' => $e-
>getMessage()]);
        }
    }

    public function update(Request $request, $id) 
    {
        if($request->isMethod('post')) { //jika method post
            $data = $request->all(); 
            Dashboard::where(['id'=>$id])->
update(['title'=>$data['title'],'content'=>$data['content']]); 
            return redirect()->back()->with(['success' => 'Upd
ate ' . $request->title . ' Berhasil!']);
148

        }
    }
}

8. Source Code Controller Beasiswa


<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\User_period;
use App\Period;
use App\Mahasiswa;
use App\Value;
use App\Criteria;
use App\Prodi;
use App\User;
use \PDF;
use File;

class BeasiswaController extends Controller
{
    public function peserta($id)
    {   
        $beasiswa = Period::where('id', $id)->first();
   $user_period = User_period::where('period_id', $id)->get();
        $pendaftar = Mahasiswa::whereIn('user_id', $user_perio
d->pluck('user_id'))->orderBy('semester', 'ASC')-
>paginate(10);
        $period_id = $id;
        return view('admin.period.peserta', compact('pendaftar
', 'beasiswa', 'period_id'));
    }

    public function search($id, Request $request) 
    {
        $beasiswa = Period::where('id', $id)->first();
  $user_period = User_period::where('period_id', $id)->get();
        $period_id = $id;
        $pendaftar = Mahasiswa::whereIn('user_id', $user_perio
d->pluck('user_id'))->where('name', 'like', '%' . $request-
>input('name').'%')->orderBy('semester', 'ASC')->paginate(10);
149

        return view('admin.period.peserta', compact('pendaftar
', 'beasiswa', 'period_id'));
    }

    public function delete($id, $mahasiswa_id)
    {
        try {
            $mahasiswa = Mahasiswa::findOrFail($mahasiswa_id);
            $period = Period::findOrFail($id);
            $user_period = User_period::where('period_id', $id
)->where('user_id', $mahasiswa->user->id);
            $values = Value::where('period_id', $period->id)-
>where('mahasiswa_id', $mahasiswa->id);
            File::deleteDirectory('periode/' . $period->start 
. '_' . $period->end . '/' . $mahasiswa->user->npm);

            $user_period->delete();
            $values->delete();

            return redirect()->back()->with(['success' => 'Dat
a Pendaftar ' . $mahasiswa->name . ' Berhasil Dihapus!' ]);
        } catch(\Exception $e) {
return redirect()->back()->with(['error'=>$e->getMessage()]);
        }
    }

    public function kuota($id)
    {
        $prodis = Prodi::orderBy('name', 'ASC')->get();
   $user_period = User_period::where('period_id', $id)->get();
        $period = Period::findOrFail($id);
$mahasiswas = Mahasiswa::whereIn('user_id', $user_period-
>pluck('user_id'))->whereIn('prodi_id', $prodis->pluck('id'))-
>get();
        return view('admin.period.kuota', compact('prodis', 'm
ahasiswas', 'period', 'id'));
    }

    public function analisisProdi($id, $prodi_id)
    {
        $prodi = Prodi::where('id', $prodi_id)-
>orderBy('name', 'ASC')->first();
  $user_period = User_period::where('period_id', $id)->get();
150

        $mahasiswas = Mahasiswa::whereIn('user_id', $user_peri
od->pluck('user_id'))->where('prodi_id', $prodi_id)->get();
        $criterias = Criteria::where('status',1)->get();
$criterias_count=Criteria::where('status',1)->get()->count();
        $values = Value::whereIn('mahasiswa_id', $mahasiswas-
>pluck('id'))->get();
        return view('admin.period.analisis_prodi', compact('pr
odi', 'mahasiswas', 'criterias', 'criterias_count', 'values', 
'prodi_id'));
    }

    public function analisisFull($id)
    {
   $prodi = Prodi::orderBy('name', 'ASC')->get();
   $user_period = User_period::where('period_id', $id)->get();
        $mahasiswas = Mahasiswa::whereIn('user_id', $user_peri
od->pluck('user_id'))->get();
        $criterias = Criteria::where('status',1)->get();
$criterias_count=Criteria::where('status',1)->get()->count();
        $values = Value::whereIn('mahasiswa_id', $mahasiswas-
>pluck('id'))->get();
        $period = Period::findOrFail($id);

        return view('admin.period.analisis_full', compact('pro
di', 'mahasiswas', 'criterias', 'criterias_count', 'period', '
values', 'id'));
    }

    public function analisis_cetak_pdf($id)
    {
        $prodi = Prodi::orderBy('name', 'ASC')->get();
  $user_period = User_period::where('period_id', $id)->get();
        $mahasiswas = Mahasiswa::whereIn('user_id', $user_peri
od->pluck('user_id'))->get();
        $criterias = Criteria::where('status',1)->get();
$criterias_count=Criteria::where('status',1)->get()->count();
        $values = Value::whereIn('mahasiswa_id', $mahasiswas-
>pluck('id'))->get();
        $period = Period::findOrFail($id);

        $pdf = PDF::loadview('admin.period.perhitungan2', comp
act('prodi', 'mahasiswas', 'criterias', 'criterias_count', 'va
lues', 'period'));
151

        return $pdf->download('Hasil Analisis Beasiswa PPA Per
iode ' . date('Y', strtotime($period->start)) . '.pdf');
    }

    public function nilai($period_id, $mahasiswa_id)
    {   
        //Mengambil data dari inputan mahasiswa 
        $values = Value::where([
            ['mahasiswa_id', $mahasiswa_id], 
            ['period_id', $period_id] 
            ])->get();
        $mahasiswa = Mahasiswa::findOrFail($mahasiswa_id);
return view('admin.period.nilai',compact('values', 'mahasiswa'
));
    }
}

9. Source Code Controller Period


<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use App\Http\Controllers\Controller;
use App\Period;
use Carbon\Carbon;
use Auth;
use \PDF;
use File;

class PeriodController extends Controller
{
    public function index()
    {
        $periods = Period::all();
        return view('admin.period.index', compact('periods'));
    }

    public function save(Request $request)
    {

        try {
            $this->validate($request, [
152

                'start'  => 'required|unique:periods,start',
                'end'    => 'required|unique:periods,end',
                'file'   => 'required|mimes:pdf|max:2000',
                'status' => 'required',
                'quota'  => 'required|numeric'
            ], [
           'start.required' => 'Tanggal Mulai Harus Diisi!',
           'end.required'   => 'Tanggal Selesai Harus Diisi!',
           'file.required'  => 'File Pengumuman Harus Diisi!',
           'file.mimes' =>'File Pengumuman Harus Berupa PDF!',
           'quota.required' => 'Kuota Beasiswa Harus Diisi!',
           'quota.numeric'   => 'Kuota Beasiswa Harus Angka!'
            ]);

            if($request->hasFile('file')){
                $file = $request->file('file'); 
           $extension = $file->getClientOriginalExtension(); 
           $nama_file = 'Pengumuman Pendaftaran PPA' . ' ' . C
arbon::now()->format('Y') . '.' . $extension; 
           $request->file('file')->move('periode/' . $request-
>start . '_' . $request->end . '/pengumuman/', $nama_file);
               $item = $nama_file; //memasukkan dalam variable
            }

            if(!empty($item)) {  
                $periods = Period::create([
                    'admin_id'  =>  Auth::user()->id,
                    'start'     =>  $request->start,
                    'end'       =>  $request->end,
                    'file'      =>  $item,
                    'status'    =>  $request->status,
                    'quota'     =>  $request->quota 
                ]);

            } else {
                return redirect()->back()->with(['error' => 'F
ile Jawaban Terlalu Besar.']); 
            }

return redirect()->back()->with(['success' => 'Berhasil Menamb
ah Periode Pada ' . $periods->start]);
        } catch(\Exception $e) {
return redirect()->back()->with(['error'=>$e->getMessage()]);
        }
153

    }

    public function delete($id)
    {
        try {
            $period = Period::findOrFail($id);
            File::deleteDirectory('periode/' . $period->start 
. '_' . $period->end); //melakukan delete file pada server
            $period -> delete(); 
            return redirect()->back()->with(['success' => 'Dat
a ' . $period->start . ' Berhasil Dihapus!' ]);
        } catch(\Exception $e) {
            return redirect()->back()->with(['error' => 'Gagal 
Menghapus Data!']);
        }
    }

    public function update(Request $request, $id)
    {
        $period = Period::findOrFail($id); 
        if($request->isMethod('post')) { 
         if($request->file('file') == "") { 
                $this->validate($request, [
             'start'  => 'required|unique:periods,start,'.$id,
             'end'    => 'required|unique:periods,end,'.$id,
                ], [
             'start.required' => 'Tanggal Mulai Harus Diisi!',
             'end.required' => 'Tanggal Selesai Harus Diisi!',
              'start.unique' =>'Tanggal Mulai Harus Berbeda!',
              'end.unique'=>'Tanggal Selesai Harus Berbeda!',
              ]);

                $data = $request->all(); 
                rename(public_path('periode/' . $period->start 
. '_' . $period->end), public_path('periode/' . $request-
>start . '_' . $request->end));
                Period::where(['id'=>$id])-
>update(['start'=>$data['start'], 'end'=>$data['end'], 'quota'
=>$data['quota']]); //melakukan proses update
                return redirect()->back()->with(['success' => 
'Update ' . date('d', strtotime($period->start)) . ' ' . date(
'F', strtotime($period->start)) . ' ' . date('Y', strtotime($p
eriod->start)) . ' Berhasil!']);
            } else { 
154

                $this->validate($request, [
            'start' => 'required|unique:periods,start,'.$id,
            'end'    => 'required|unique:periods,end,'.$id,
            'file'   => 'mimes:pdf|max:2000',
                ], [
            'start.required'  => 'Tanggal Mulai Harus Diisi!',
            'end.required'  => 'Tanggal Selesai Harus Diisi!',
            'start.unique'  => 'Tanggal Mulai Harus Berbeda!',
            'end.unique'  => 'Tanggal Selesai Harus Berbeda!',
            'file.mimes'=>'File Pengumuman Harus Berupa PDF!',
                ]);

                File::delete('periode/' . $period->start . '_' 
. $period->end . '/pengumuman/', $period->file);

                $file = $request->file('file');
         $extension = $file->getClientOriginalExtension();
                $nama_file = 'Pengumuman Pendaftaran PPA' . ' 
' . Carbon::now()->format('Y') . '.' . $extension;
                $request->file('file')->move('periode/' . $req
uest->start . '_' . $request->end . '/pengumuman/', $nama_file
);
                $item = $nama_file;
                $data = $request->all();
                Period::where(['id'=>$id])-
>update(['start'=>$data['start'], 'end'=>$data['end'],'quota'=
>$data['quota'], 'file' => $item]); 
                return redirect()->back()->with(['success' => 
'Update ' . date('d', strtotime($period->start)) . ' ' . date(
'F', strtotime($period->start)) . ' ' . date('Y', strtotime($p
eriod->start)) . ' Berhasil!']);
            }
        }
    }

    public function changeStatus(Request $request, $id)
    {
        $period = Period::findOrFail($id); 
        if($request->isMethod('post')) { 
            $data = $request->all(); 
            if($data['status'] == '-') 
            {
155

                return redirect()->back()->with(['error' => 'S
tatus Harus Diisi!']);
            } else {
                Period::where(['id' => $id])-
>update(['status'=>$data['status']]); 
                return redirect()->back()->with(['success' => 
'Status Periode ' . $request->start . ' Berhasil Diganti!']);
            }
        }
    }
}
156

10. Source Code Controller Registrasi


<?php

namespace App\Http\Controllers\Auth;

use App\User;
use App\Mahasiswa;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Http\Request;
use Illuminate\Auth\Events\Registered;
use App\Prodi;
use Auth;
use Carbon\Carbon;

class RegisterController extends Controller
{

    use RegistersUsers;
    protected $redirectTo = '/user';

    public function __construct()
    {
        $this->middleware('guest');
    }

    protected function validator(array $data)
    {
        return Validator::make($data, [
            'prodi_id'     => 'required|exists:prodis,id',
            'npm'=>'required|min:9|max:9|unique:users,npm|
digits_between:1,10',
         'email'=>'required|email|max:255|unique:users,email',
            'password'  => 'required|min:6|confirmed',
            'name'      => 'required|max:50',
            'semester'  => 'required',
            'address'   => 'required|max:100',
            'gender'    => 'required',
            'phone'     => 'required|max:12|min:11',
            'religion'  => 'required',
            'photo'     => 'mimes:jpg,jpeg,png|max:20000'
        ],[
            'prodi_id.required' => 'Prodi Harus Dipilih !',
157

            'password.min'    => 'Password Minimal Harus 6 !',
            'password.confirmed'=>'Password & Password Konfirm
asi Harus Sama !',
            'npm.unique'        => 'NPM Sudah Terdaftar !',
            'npm.numeric'       => 'NPM Harus Berupa Angka !',
            'npm.max'        => 'NPM Harus 9 !',
            'npm.digits_between'        => 'NPM Angka !',
            'name.required'     => 'Nama Harus Diisi !',
            'email.required'    => 'Email Harus Diisi !',
            'email.unique'      => 'Email Sudah Terdaftar !',
            'phone.required'    => 'No Hp Harus Diisi !',
            'phone.max'        => 'No Hp Maksimal 12 !',
            'address.required'  => 'Alamat Harus Diisi !',
            'prodi_id.exists'  => 'Prodi Harus Dipilih !',
         'photo.mimes'=>'Foto Harus Berformat jpg,jpeg,png !',
        ]);
    }
    
    public function showRegistrationForm()
    {
        $prodis = Prodi::orderBy('name', 'ASC')->get();
        return view('auth.register', compact('prodis'));
    }

    protected function create(array $data)
    {
        $user = User::create([
            'npm'       => $data['npm'],
            'email'     => $data['email'],
            'password'  => bcrypt($data['password']),
        ]);

        if(isset($data['photo'])) {
            (is_array($file = $data['photo']));
            $extension = $file->getClientOriginalExtension();
            $nama_file = 'profile' . '.' . $extension;
            $data['photo']->move('profile_images/'. $data['npm
'] . '/', $nama_file);
            $profile = $nama_file;
        } else {
            $profile = NULL;
        }
        Mahasiswa::create([
            'user_id'   => $user->id,
158

            'prodi_id'     => $data['prodi_id'],
            'name'      => $data['name'],
            'semester'  => $data['semester'],
            'address'   => $data['address'],
            'gender'    => $data['gender'],
            'phone'     => $data['phone'],
            'religion'  => $data['religion'],
            'photo'     => $profile,
        ]);
        return ($user);
    }

    public function register(Request $request)
    {
        $this->validator($request->all())->validate();

        event(new Registered($user = $this->create($request-
>all())));

        return redirect($this->redirectPath());
    }
}

11. Source Code Controller Login Mahasiswa


<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;

class LoginController extends Controller
{

    use AuthenticatesUsers;

    protected $redirectTo = '/user';

    public function __construct()
    {
        $this->middleware('guest', ['except' => 'logout']);
    }
159

    protected function credentials(Request $request)
    {
        if(is_numeric($request->get('email'))){
            return ['npm'=>$request-
>get('email'),'password'=>$request->get('password')];
        }
        return $request->only($this->username(), 'password');
    }
    
}

12. Source Code Controller Login Mahasiswa


<?php

namespace App\Http\Controllers\Auth;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Auth;

class AdminLoginController extends Controller
{
    public function __construct()
    {
        $this->middleware('guest:admin');
    }
    
    public function showLoginForm()
    {
        return view('auth.admin-login');
    }

    public function login(Request $request)
    {
        $this->validate($request, [
            'email' => 'required',
            'password' => 'required|min:6'
        ],[
            'email.required' => 'Email Harus Diisi!',
            'password.required' => 'Password Harus Diisi!'
        ]);

        $loginType = filter_var($request->email, FILTER_VALIDA
TE_EMAIL) ? 'email' : 'name';
160

        $login = [
            $loginType => $request->email,
            'password' => $request->password
        ];

        if(Auth::guard('admin')->attempt($login, $request-
>remember)) {
            return redirect()->route('admin.dashboard');
        }

        return redirect()->back()->withInput($request-
>only('email'));
    }
}

13. Source Code Controller Login Admin


<?php

namespace App\Http\Controllers\Auth;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Auth;

class AdminLoginController extends Controller
{
    public function __construct()
    {
        $this->middleware('guest:admin');
    }
    
    public function showLoginForm()
    {
        return view('auth.admin-login');
    }

    public function login(Request $request)
    {
        $this->validate($request, [
            'email' => 'required',
            'password' => 'required|min:6'
        ],[
            'email.required' => 'Email Harus Diisi!',
161

            'password.required' => 'Password Harus Diisi!'
        ]);

        $loginType = filter_var($request->email, FILTER_VALIDA
TE_EMAIL) ? 'email' : 'name';

        $login = [
            $loginType => $request->email,
            'password' => $request->password
        ];

if(Auth::guard('admin')->attempt($login,$request->remember)){
            return redirect()->route('admin.dashboard');
        }

        return redirect()->back()->withInput($request-
>only('email'));
    }
}

14. Source Code Controller Profile Mahasiswa


<?php

namespace App\Http\Controllers\user;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Mahasiswa;
use App\User;
use App\Prodi;
use Auth;
use File;
use Carbon\Carbon;
use Illuminate\Support\Facades\Crypt;

class ProfileController extends Controller
{
    public function index($id)
    {
        $id = Crypt::decrypt($id);
$mahasiswa=Mahasiswa::where('user_id',Auth::user()->id)-
>first();
        $prodis = Prodi::orderBy('name', 'Asc')->get();
162

    return view('user.profile.index', compact('mahasiswa', 'pr
odis'));
    }

    public function edit($id)
    {
        $id = Crypt::decrypt($id);
        $mahasiswa = Mahasiswa::where('id', $id)->first();
        $prodis = Prodi::orderBy('name', 'Asc')->get();
        return view('user.profile.edit', compact('mahasiswa', 
'prodis'));
    }

    public function update(Request $request, $id)
    {
        $id = Crypt::decrypt($id);
        try {
            $this->validate($request, [
                'prodi_id'     => 'required',
                'npm'       => 'required|digits:9|
unique:users,npm,' . auth()->user()->id . ',id',
                'email'     => 'required|email|max:255|
unique:users,email,' . auth()->user()->id . ',id',
                'name'      => 'required|max:50',
                'semester'  => 'required',
                'address'   => 'required|max:100',
                'gender'    => 'required',
                'phone'     => 'required|max:12|min:11',
                'religion'  => 'required',
        'photo'  => 'nullable|mimes:jpg,jpeg,png|max:20000'
            ],[
                'prodi_id.required' => 'Prodi Harus Diisi!',
                'npm.unique'        => 'NPM Sudah Terdaftar!',
                'npm.digits'        => 'NPM Harus 9!',
                'name.required'     => 'Nama Harus Diisi!',
                'email.required'    => 'Email Harus Diisi!',
                'phone.required'    => 'No Hp Harus Diisi!',
                'address.required'  => 'Alamt Harus Diisi!',
            ]);

            $mahasiswa = Mahasiswa::findOrFail($id);
        $user=User::where('id', $mahasiswa->user_id)->first();
            if($request->file('photo') == "") {
                $mahasiswa->update([
163

                    'prodi_id'     => $request->prodi_id,
                    'name'      => $request->name,
                    'semester'  => $request->semester,
                    'address'   => $request->address,
                    'gender'    => $request->gender,
                    'phone'     => $request->phone,
                    'religion'  => $request->religion,
                ]);

                $user->update([
                    'npm'       => $request->npm,
                    'email'     => $request->email
                ]);
            } else {
                File::delete('profile_images/'. $mahasiswa-
>user->npm . '/' .$mahasiswa->photo);
                
                $file = $request->file('photo');
           $extension = $file->getClientOriginalExtension();
                $nama_file = 'profile' . '.' . $extension;
                $request->file('photo')-
>move('profile_images/'. $mahasiswa->user->npm . '/', $nama_fi
le);
                $profile = $nama_file;

                $mahasiswa->update([
                    'prodi_id'     => $request->prodi_id,
                    'name'      => $request->name,
                    'semester'  => $request->semester,
                    'address'   => $request->address,
                    'gender'    => $request->gender,
                    'phone'     => $request->phone,
                    'religion'  => $request->religion,
                    'photo'     => $profile,
                ]);

                $user->update([
                    'npm'       => $request->npm,
                    'email'     => $request->email
                ]);
            }
            $id = Crypt::encrypt($id);
            return redirect()->route('user.profile', $id)-
>with(['success' => 'Data Berhasil Diupdate!']);
164

        } catch(\Exception $e) {
        return redirect()->back()->with(['error' => $e-
>getMessage()]);
        }
    }
}

15. Source Code Controller Pendaftaran Beasiswa Mahasiswa


<?php

namespace App\Http\Controllers\User;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Period;
use App\Criteria;
use App\Weight;
use App\Value;
use App\User_period;
use Auth;
use Illuminate\Support\Facades\Crypt;

class PeriodController extends Controller
{
    public function index()
    {
        $periods = Period::where('status', 1)->get();
        return view('user.period.index', compact('periods'));
    }

    public function register($id)
    {
        $criterias = Criteria::orderBy('code', 'ASC')->get();
        $period_id =  Crypt::decrypt($id);
        $period = Period::where('id', $period_id)->first();
        return view('user.period.daftar', compact('criterias', 
'id', 'period'));
    }

    public function save(Request $request, $id)
    {
        $id =  Crypt::decrypt($id);
        try {
            $this->validate($request, [
165

                'file.*'     => 'mimes:pdf|max:2000|required'
            ], [
                'file.required' => 'File Harus Ada !',
     'file.*.mimes'    =>  'File Harus Berjenis JPEG atau PDF'
            ]);

            $data = $request->all();
            
    if($data['value']['0']['0'] <= $data['value']['0']['1']) {
     $data['value']['0'] = $data['value']['0']['1'] + "0.25" ; 
            } else {
               $data['value']['0'] = $data['value']['0']['1'];
            }

            foreach ($data['criteria_id'] as $item => $value) 
{

$criteria = Criteria::findOrFail($data['criteria_id'][$item]);
                $period = Period::findOrFail($id);
                
                $extension =  $data['file'][$item]-
>extension();
                $nama_file = Auth::user()->npm. '_' .
$criteria->name.  '.'. $extension; 
               
                $data['file'][$item]->move('periode/' . $perio
d->start . '_' . $period->end . '/' . Auth::user()->npm . '/', 
$nama_file);
                $file_upload = $nama_file;  variable

                $data2 = array(
                    'period_id' => $id,
                 'criteria_id' => $data['criteria_id'][$item],
             'mahasiswa_id'  =>  Auth::user()->mahasiswa->id,
                    'value'  => $data['value'][$item],
                    'file' => $file_upload,
                );
                Value::create($data2);
            }
    
            User_period::create([
                'user_id'   =>  Auth::user()->id,
                'period_id' =>  $id,
            ]);
166

            return redirect()->route('user.period')-
>with(['success' => 'Berhasil Mendaftar Beasiswa!']);
        } catch(\Exception $e) {
            return redirect()->back()->with(['error' => $e-
>getMessage()]);
        }
    }
}

16. Source Code Helper Analisis Prodi


<?php
function analisis_prodi($values,$mahasiswas,$criterias_count)
{            
    $hasil = array();
    foreach($mahasiswas as $row) {
        foreach($row->values as $value) {
            if($value->criteria->status == 1)
            {
                if($value->criteria->character == 'Cost')
                {
                    $minimum = (min($values-
>where('criteria_id', $value->criteria_id)->pluck('value')-
>toArray()));
                    $cost = $minimum / $value->value;
                    $nilai = round($cost, 3) * $value-
>criteria->weight;
                    array_push($hasil,round($nilai, 3));
                } else {
                    $maximum = (max($values-
>where('criteria_id', $value->criteria_id)->pluck('value')-
>toArray()));
                    $benefit = $value->value / $maximum;
                    $nilai = round($benefit, 3) * $value-
>criteria->weight;              
                    array_push($hasil,round($nilai, 3));
                }
            }
        }
    }

    $nama = array();
    $np = array();

    foreach($mahasiswas as $row){
167

        array_push($nama, $row->user->npm);
        array_push($nama, $row->name);
        array_push($nama, $row->prodi->name);

        $coba = array_chunk($nama, 3);

        foreach($coba as $cob){
            $co = implode(" - ",$cob);  
        }
        array_push($np,$co);
    }

    $nilai = array();
    $result = array_chunk($hasil, $criterias_count);
    foreach($result as $r) {
        $hasil_pembobotan = array_sum($r);
        array_push($nilai,$hasil_pembobotan);
    }
    $hasil = array_combine($np,$nilai);
    return $hasil;
}

17. Source Code Helper Analisis Prodi


<?php
function analisis_full($prod,$values,$mahasiswas,
$criterias_count)
{            
    $hasil = array();
    foreach($mahasiswas->where('prodi_id', $prod->id) as $row) 
{
        foreach($row->values as $value) {
            if($value->criteria->status == 1)
            {
                if($value->criteria->character == 'Cost')
                {
                    $minimum = (min($values-
>where('criteria_id', $value->criteria_id)-
>whereIn('mahasiswa_id', $mahasiswas->where('prodi_id', $prod-
>id)->pluck('id'))->pluck('value')->toArray()));
                    $cost = $minimum / $value->value;
                    $nilai = round($cost, 3) * $value-
>criteria->weight;
                    array_push($hasil,round($nilai, 3));
                } else {
168

                    $maximum = (max($values-
>where('criteria_id', $value->criteria_id)-
>whereIn('mahasiswa_id', $mahasiswas->where('prodi_id', $prod-
>id)->pluck('id'))->pluck('value')->toArray()));
                    $benefit = $value->value / $maximum;
                    $nilai = round($benefit, 3) * $value-
>criteria->weight;   
                    array_push($hasil,round($nilai, 3));
                }
            }
        }
    }

    $nama = array();
    $np = array();
    foreach($mahasiswas->where('prodi_id', $prod->id) as $row)
{
        array_push($nama, $row->user->npm);
        array_push($nama, $row->name);
        array_push($nama, $row->prodi->name);
        $coba = array_chunk($nama, 3);
        foreach($coba as $cob){
            $co = implode(" - ",$cob);  
        }
        array_push($np,$co);
    }

    $nilai = array();
    $result = array_chunk($hasil, $criterias_count);
    foreach($result as $r) {
        $hasil_pembobotan = array_sum($r);
        array_push($nilai,$hasil_pembobotan);
    }
    $hasil = array_combine($np,$nilai);

    return $hasil;
}

Anda mungkin juga menyukai