165 lines
3.5 KiB
Markdown
165 lines
3.5 KiB
Markdown
# Questionnaire
|
|
|
|
Aplikasi berbasis web untuk publikasi kuesioner pada lingkup Yayasan Widya
|
|
Anindya (Perguruan Tinggi, SMK dan lainnya).
|
|
|
|
## Latar Belakang
|
|
|
|
Guna melancarkan akreditasi Perguruan Tinggi LEPISI pada 2018, aplikasi ini
|
|
dibuat untuk memenuhi kebutuhan akan dokumen-dokumen:
|
|
- dokumen #1
|
|
- dokumen #2
|
|
- ...
|
|
|
|
### Kebutuhan Perangkat Lunak
|
|
|
|
- PHP 7.0
|
|
- nginx
|
|
|
|
## Design
|
|
|
|
### Use Case Diagram
|
|
|
|
#### UC Diagram pembuatan kuesioner
|
|
|
|
```plantuml
|
|
left to right direction
|
|
actor Admin
|
|
|
|
Admin -- (Membuat Kuesioner)
|
|
Admin -- (Mengubah Kuesioner)
|
|
Admin -- (Membuat Seksi)
|
|
Admin -- (Mengubah Seksi)
|
|
Admin -- (Membuat Pertanyaan)
|
|
Admin -- (Mengubah Pertanyaan)
|
|
Admin -- (Membuat Pilihan)
|
|
Admin -- (Mengubah Pilihan)
|
|
```
|
|
|
|
##### Membuat Kuesioner
|
|
|
|
Skenario utama:
|
|
|
|
1. Admin login ke dalam sistem
|
|
2. Admin mengisi form pembuatan kuesioner baru yang terdiri dari title,
|
|
descriptions, released_at
|
|
3. sistem menyimpan nilai form yang diisi dan menambahkan data id, created_at,
|
|
updated_at dan creator_id ke dalam database
|
|
4. sistem mengembalikan Admin ke tampilan daftar kuesioner
|
|
|
|
Ekstensi:
|
|
|
|
2. a. form tidak diisi semuanya:
|
|
- sistem mengembalikan admin ke halaman form pembuatan kuesioner baru dan
|
|
menampilkan pesan kesalahan
|
|
- Admin dapat mencoba mengirim form kembali setelah mengisi dengan lengkap
|
|
3. a. sistem tidak dapat menyimpan data ke database:
|
|
- Admin dikembalikan ke halaman pengisian form dan diberi peringatan
|
|
kesalahan
|
|
|
|
#### UC Diagram pengisian kuesioner
|
|
|
|
```plantuml
|
|
left to right direction
|
|
actor Responden
|
|
actor Admin
|
|
|
|
Responden -- (Mengisi identitas)
|
|
Responden -- (Mengisi kuesioner)
|
|
Responden -- (Menyelesaikan kuesioner)
|
|
(Menerima notifikasi pengisian) .> (Menyelesaikan kuesioner) : extends
|
|
(Menerima notifikasi pengisian) -- Admin
|
|
```
|
|
|
|
#### UC Diagram pencetakan laporan kuesioner
|
|
|
|
```plantuml
|
|
left to right direction
|
|
actor Admin
|
|
|
|
Admin -- (Mencetak rekap pengisian kuesioner)
|
|
Admin -- (Mencetak laporan hasil pengolahan kuesioner)
|
|
```
|
|
|
|
### Class Diagram
|
|
|
|
```plantuml
|
|
class Questionnaire {
|
|
id : int
|
|
title : varchar (100)
|
|
descriptions : text
|
|
creator_id : int
|
|
released_at : datetime
|
|
created_at : datetime
|
|
updated_at : datetime
|
|
deleted_at : datetime
|
|
}
|
|
|
|
class Section {
|
|
id : int
|
|
questionnaire_id : int
|
|
title : varchar (100)
|
|
descriptions : text
|
|
creator_id : int
|
|
created_at : datetime
|
|
updated_at : datetime
|
|
deleted_at : datetime
|
|
}
|
|
|
|
class Question {
|
|
id : int
|
|
section_id : int
|
|
number : int
|
|
text : varchar (300)
|
|
descriptions : text
|
|
question_type : enum ('text', 'choice', 'number')
|
|
creator_id : int
|
|
created_at : datetime
|
|
updated_at : datetime
|
|
deleted_at : datetime
|
|
}
|
|
|
|
class QuestionChoice {
|
|
id : int
|
|
question_id : int
|
|
number : int
|
|
text : varchar (300)
|
|
descriptions : text
|
|
creator_id : int
|
|
created_at : datetime
|
|
updated_at : datetime
|
|
deleted_at : datetime
|
|
}
|
|
|
|
class Respondent {
|
|
id : int
|
|
login : varchar (100)
|
|
name : varchar (100)
|
|
handphone : varchar (100)
|
|
email : varchar (100)
|
|
gender : enum ('m', 'f')
|
|
descriptions : text
|
|
created_at : datetime
|
|
updated_at : datetime
|
|
deleted_at : datetime
|
|
}
|
|
|
|
class Answer {
|
|
id : int
|
|
respondent_id : int
|
|
question_id: int
|
|
text : text
|
|
choice : int
|
|
created_at : datetime
|
|
updated_at : datetime
|
|
deleted_at : datetime
|
|
}
|
|
|
|
Questionnaire "1" -- "1..*" Section
|
|
Section "1" -- "1..*" Question
|
|
Question "1" -- "0..*" QuestionChoice
|
|
Respondent "1" -- "1..*" Answer
|
|
Question "1" - "1" Answer
|
|
```
|
|
|