DAFTAR ISI
DAFTAR ISI 2
A. Deskripsi Umum website 3
B. Identifikasi Kebutuhan website 3
B.1. Identifikasi Pengguna 3
B.2. Daftar Kebutuhan Fungsional dan Non Fungsional 4
C. Identifikasi Kebutuhan website 5
C.1. Use Case Diagram 5
C.2. Use Case Scenario 7
C.3. Class Diagram 10
C.4. Sequence Diagram 11
A. Deskripsi Umum website
Berdasarkan standar WHO, Indonesia membutuhkan jumlah minimal darah sekitar 5,1 juta kantong darah per tahun, Sedangkan produksi darah saat ini sebanyak 4,0 juta kantong dari 3,4 juta donasi. Donor darah adalah elemen penting dalam sistem perawatan kesehatan yang memungkinkan penyelamatan nyawa dalam berbagai situasi medis, termasuk kecelakaan, operasi, serta pengobatan penyakit serius. Namun, meskipun penting, masih ada tantangan dalam mengkoordinasikan donor, melacak riwayat donasi, dan memberikan informasi yang relevan kepada para donor potensial. Untuk mengatasi kekurangan ini kami berinisiatif mengembangkan suatu website yang disebut
"BloodWave".
"BloodWave" adalah sebuah platform online yang inovatif dan berfungsi sebagai alat yang sangat berguna dalam mendukung dan meningkatkan kegiatan donor darah. Adanya “BloodWave” dilatar belakangi oleh kebutuhan mendesak akan manajemen donor darah yang lebih efisien dan meningkatkan partisipasi dalam kegiatan donor darah. Dengan berbagai fitur canggihnya, website ini memungkinkan para donor darah untuk dengan mudah mengelola profil pribadi mereka, melacak riwayat donasi darah, dan bahkan mengikuti berbagai event donor darah yang akan datang. Selain itu, pengguna juga dapat mengakses artikel-artikel informatif tentang donor darah melalui fitur "Let's Read", yang membantu dalam memberikan pemahaman lebih mendalam tentang proses donasi darah.
Dengan demikian, website ini tidak hanya memfasilitasi donor darah dalam berkontribusi bagi kesehatan masyarakat, tetapi juga berfungsi sebagai sumber informasi yang penting untuk meningkatkan kesadaran dan partisipasi dalam kegiatan donor darah yang sangat berarti ini.
B. Identifikasi Kebutuhan Website
Dari identifikasi diatas ada beberapa kebutuhan yang akan dijadikan menjadi website yang dapat membantu menangani permasalahan permasalahan yang ada, antara lain:
1. Profil Pengguna : Sistem yang dapat digunakan oleh para pendonor untuk membuat dan mengelola profil pribadi mereka, termasuk informasi seperti nama, golongan darah dan menampilkan informasi total donor, donor terakhir, donor kembali
2. Riwayat Donor : Sistem yang dapat digunakan oleh para pendonor untuk memasukkan riwayat donor (tanggal donor dan foto kartu donor) mereka untuk mendapatkan reminder donor selanjutnya
3. Event : Sistem yang dapat digunakan oleh pendonor untuk mengetahui event atau informasi tentang kegiatan donor darah termasuk hari, tanggal, tempat dan waktu donor darah.
4. Let’s Read : Sistem yang berisi artikel artikel tentang donor darah yang berguna untuk pendonor darah sebagai bekal mereka pada saat melakukan donor darah, artikel-artikel ini berisi tentang informasi donor darah, seperti artikel manfaat donor darah, artikel tips dan panduan untuk donor darah yang sukses dan lainnya.
B.1. Identifikasi Pengguna
Pengguna Deskripsi Pengguna
Pengelola website Pengelola memiliki tanggung jawab utama dalam mengelola situs web, serta memiliki kendali langsung terhadap penyediaan jadwal dan konten artikel yang berkaitan dengan donor darah.
Pendonor darah Pendonor darah adalah seseorang berusia minimal 17 tahun yang berkontribusi dalam donasi donor darah dan mereka nantinya dapat memanfaatkan fitur event untuk mengetahui jadwal donor darah yang akan datang.
B.2. Daftar Kebutuhan Fungsional dan Non Fungsional
1. Kebutuhan fungsional dan kebutuhan non fungsional website (PL) - Kebutuhan Fungsional
Kebutuhan fungsional website merupakan spesifikasi atau deskripsi dari perilaku sistem perangkat lunak yang akan dibangun atau dikembangkan.
Kebutuhan fungsional ini mendefinisikan apa yang seharusnya dilakukan oleh perangkat lunak tersebut. Mereka menggambarkan fungsi, operasi, tindakan, dan interaksi yang diharapkan dari perangkat lunak tersebut.
No. Kode Fungsi Nama Fungsi Deskripsi
1 BWV-F-01 Autentifikasi User ● Website memungkinkan
pengguna untuk
melakukan log in dengan akun mereka
● Website memungkinkan pengelola website mempunyai akses khusus mengelola pengguna
2 BWV-F-02 Profil Pengguna ● Website harus
menyediakan fitur profil pengguna yang berisi informasi nama, email, jenis golongan darah, total donor, tanggal donor terakhir, dan rekomendasi tanggal donor selanjutnya.
● Website memungkinkan
pengguna untuk
menambahkan nama, jenis golongan darah.
● Website memungkinkan pengelola website menampilkan tanggal donor terakhir, dan rekomendasi tanggal donor selanjutnya yang diambil dari fitur riwayat donor
3 BWV-F-03 Riwayat Donor ● Website harus
menyediakan fitur riwayat donor dimana user dapat memasukkan riwayat donor (Tanggal donor dan foto kartu
donor) mereka untuk mendapatkan reminder donor selanjutnya
4 BWV-F-04 Event ● Website harus
menyediakan fitur event dimana user dapat melihat berbagai event donor darah yang diselenggarakan di Malang, beserta detail hari, tempat dan tanggal.
● Website memungkinkan pengelola website menambahkan event donor darah yang diselenggarakan di Malang, beserta detail hari, tempat dan tanggal.
5 BWV-F-05 Let’s Read ● Website harus
menyediakan fitur Let’s
Read yang
memungkinkan user untuk membaca artikel yang berhubungan dengan donor darah.
● Website memungkinkan pengelola website untuk menambahkan artikel
- Kebutuhan Non Fungsional
Kebutuhan non-fungsional ini membantu memastikan bahwa website tidak hanya berfungsi dengan baik secara teknis, tetapi juga memberikan pengalaman yang baik bagi pengguna dan mematuhi standar etika dan hukum yang berlaku.
No. Kode Fungsi Nama Non Fungsi
Deskripsi 1 BWV-NF-01 Usability
requirement
Sistem memiliki tampilan yang mudah dipahami
2 BWV-NF-02 Reliability and security requirement
Keamanan sistem dibuatkan password untuk keamanan data pengguna agar tidak hilang
3 BWV-NF-03 Portability requirement
Sistem dapat diakses dengan mudah kapan saja, dimana saja dengan menggunakan perangkat PC atau smartphone 4 BWV-NF-04 Supportability
Requirement
Sistem dapat dioperasikan sesuai fungsinya dengan baik termasuk fitur-fitur yang diinginkan
2. Melakukan manajemen kebutuhan
1. Format pengelolaan kode kebutuhan adalah sebagai berikut : BWV-X-YY 2. BWV merepresentasikan kode umum sistem
3. X merepresentasikan nomor kode kebutuhan. Kode F merepresentasikan kebutuhan fungsional dan kode NF merepresentasikan non-fungsional.
4. YY merepresentasikan nomor nama kebutuhan B.3. Spesifikasi Kebutuhan
User Requirement A. Owner Level User
No. Deskripsi Kebutuhan 1 Mengakses semua data dan laporan dari sistem
2 Mengelola pengguna, termasuk pengelolaan akun pengguna, peran, dan hak akses
3 Mengelola konten artikel di fitur “Let’s Read”, termasuk membuat, mengedit, atau menghapus artikel
4 Mengatur dan mempublikasikan event donor darah baru, termasuk informasi hari, tempat, tanggal, dan deskripsi acara 5 Melihat statistik dan analisis data terkait aktivitas pendonor darah
dan pengguna lainnya
B. Manager Level User
No. Deskripsi Kebutuhan
1 Membuat, mengedit, atau menghapus event donor darah
2 Memperbarui informasi event, seperti tanggal, tempat, dan deskripsi
3 Memiliki akses terbatas untuk melihat statistik terkait aktivitas pendonor darah
C. Staff Level User
No. Deskripsi Kebutuhan
1 Mengakses profil pendonor darah
2 Melihat riwayat donor dan aktivitas terkait donor darah
System Requirement
No. Deskripsi Kebutuhan
1 Koneksi internet yang stabil untuk memastikan akses terus-menerus 2 Basis data yang aman dan dapat diakses dengan cepat untuk
menyimpan data pengguna dan aktivitas donor.
3 Antarmuka pengguna yang responsif dan mudah digunakan untuk mendukung semua tingkatan pengguna
4 Fitur keamanan yang kuat untuk melindungi data pribadi dan medis pendonor darah.
5 Kemampuan integrasi dengan sistem kalender untuk mengatur dan menampilkan jadwal event dengan akurat.
C. Identifikasi Kebutuhan Website C.1. Use Case Diagram
C.2. Use Case Scenario
1. Fitur Login (Autentikasi User) Overview
Title Autentikasi User
Description Pada Fitur ini Website memungkinkan pengguna untuk melakukan log in dengan akun mereka (menggunakan e-mail dan password).
Actors Pendonor Darah (User)
Precondition ● User harus memiliki jaringan internet
● User sudah melakukan pendaftaran akun
● Akun user sudah teraktivasi Basic Flow
1. User membuka aplikasi pendaftaran donor darah.
2. User mengisi username dan password yang telah dibuat sebelumnya.
Post Condition
User masuk ke halaman utama aplikasi.
Alternative Flow
- Jika terdapat kesalahan saat mengisi password, sistem akan memiliki fitur “forgot password” dan user akan diminta untuk kembali me-reset password lewat email ataupun nomor telepon.
2. Fitur Profil Pengguna Overview
Title Fitur Profil Pengguna
Description Fitur ini memungkinkan pendonor untuk membuat dan mengelola profil pribadi mereka, termasuk informasi seperti nama, golongan darah, dan menampilkan informasi total donor, donor terakhir, donor kembali.
Actors Pendonor Darah (User)
Precondition ● User harus memiliki jaringan internet.
● User sudah memiliki akun di BloodWave.
● User sudah berhasil login ke akun mereka.
Basic Flow
1. User membuka aplikasi BloodWave.
2. User memilih opsi "Profil Saya" di menu utama.
3. Sistem menampilkan halaman profil pengguna.
4. User memilih opsi "Edit Profil" untuk memperbarui informasi mereka.
5. User memasukkan atau memperbarui informasi seperti nama dan golongan darah.
6. User menyimpan perubahan yang telah mereka buat.
7. Sistem memperbarui informasi profil pengguna.
8. User melihat informasi total donor, donor terakhir, dan donor kembali yang tampil di halaman profil.
Post Condition
1. Informasi profil pengguna telah diperbarui dan tampil di halaman profil.
2. Informasi total donor, donor terakhir, dan donor kembali ditampilkan.
Alternative Flow
● Jika terdapat kesalahan saat pengguna memasukkan atau
memperbarui informasi, sistem memberikan pesan kesalahan dan memungkinkan pengguna untuk memperbaikinya.
● Jika pengguna ingin mengganti password, mereka dapat memilih opsi "Ganti Password" di halaman profil dan sistem akan memandu mereka melalui proses penggantian password.
● Jika pengguna lupa password mereka, mereka dapat menggunakan fitur "Lupa Password" yang akan mengirimkan instruksi pemulihan ke email atau nomor telepon yang terkait dengan akun mereka.
3. Fitur Riwayat Donor Overview
Title Fitur Riwayat Donor
Description Fitur ini memungkinkan pengguna (pendonor) untuk memasukkan riwayat donor (tanggal donor dan foto kartu donor) mereka ke dalam sistem. Sistem juga memberikan pengingat untuk donor selanjutnya berdasarkan riwayat donor yang telah dimasukkan.
Actors Pendonor Darah (User)
Precondition ● User harus memiliki jaringan internet.
● User sudah memiliki akun di BloodWave.
● User sudah berhasil login ke akun mereka.
Basic Flow
1. User membuka aplikasi BloodWave.
2. User memilih opsi "Riwayat Donor" di menu utama.
3. Sistem menampilkan halaman Riwayat Donor.
4. User memilih opsi "Tambahkan Rekam Donor".
5. User memasukkan tanggal donor.
6. User memasukkan foto kartu donor.
7. User menyimpan rekaman donor.
8. Sistem menyimpan informasi rekam donor dalam database.
9. Sistem menghitung tanggal donor selanjutnya berdasarkan riwayat donor yang ada.
10. User melihat pengingat tanggal donor selanjutnya di halaman Riwayat Donor.
Post Condition
● Informasi rekam donor telah disimpan dalam sistem.
● Pengingat tanggal donor selanjutnya ditampilkan.
Alternative Flow
● Jika terdapat kesalahan saat memasukkan tanggal donor atau foto kartu donor, sistem memberikan pesan kesalahan dan memungkinkan pengguna untuk memperbaikinya.
● Jika pengguna ingin menghapus rekam donor, mereka dapat memilih opsi "Hapus" pada rekam donor yang ingin dihapus, dan sistem akan menghapusnya dari riwayat donor.
● Jika pengguna ingin mengubah atau memperbarui rekam donor, mereka dapat memilih opsi "Edit" pada rekam donor yang ingin diubah, dan sistem akan memandu mereka melalui proses pembaruan informasi rekam donor tersebut.
4. Fitur Event Overview
Title Fitur Event Donor Darah
Description Fitur ini memungkinkan pengguna untuk melihat berbagai event donor darah yang diselenggarakan di Malang beserta detail seperti hari, tempat, dan tanggal. Selain itu, pengelola website dapat menambahkan
event donor darah ke dalam sistem beserta detail hari, tempat, dan tanggal.
Actors ● Pengguna (User)
● Pengelola Website (Admin)
Precondition ● Pengguna harus memiliki jaringan internet.
● Pengguna sudah memiliki akun di BloodWave
● Akun pengguna sudah teraktivasi
● Pengelola website harus memiliki akses ke pengelolaan acara.
Basic Flow
1. Pengguna Melihat Event:
● Pengguna membuka aplikasi BloodWave.
● Pengguna memilih opsi "Lihat Acara Donor" di menu utama.
● Sistem menampilkan daftar event donor darah yang diselenggarakan di Malang beserta detail seperti hari, tempat, dan tanggal.
● Pengguna memilih salah satu event untuk melihat detail lebih lanjut.
2. Pengguna Memilih Event
● Setelah melihat daftar acara, pengguna memilih salah satu event.
● Sistem menampilkan detail lengkap acara, termasuk hari, tempat, tanggal, dan informasi tambahan jika ada.
● Pengguna dapat memutuskan apakah ingin mendaftar untuk acara tersebut atau tidak.
3. Pengguna Mendaftar ke Acara (Opsional):
● Jika pengguna memutuskan untuk mendaftar ke acara, mereka memilih opsi "Mendaftar" atau "Daftar" pada halaman detail acara.
● Sistem menerima pendaftaran pengguna untuk acara tersebut.
4. Pengelola Website Menambahkan Acara (Admin):
● Pengelola website (admin) masuk ke panel pengelolaan acara.
● Admin memilih opsi "Tambahkan Acara Donor" atau "Buat
Acara Baru."
● Sistem meminta admin untuk mengisi detail acara seperti hari, tempat, tanggal, dan informasi tambahan.
● Admin menyimpan informasi acara yang baru ditambahkan.
● Acara donor darah baru sekarang tampil dalam daftar acara yang dapat dilihat oleh pengguna.
● Post Condition
● Pengguna dapat melihat daftar acara donor darah beserta detailnya.
● Pengguna dapat memutuskan apakah akan mendaftar ke acara tersebut atau tidak (jika opsi mendaftar tersedia).
● Admin dapat menambahkan acara donor darah ke dalam sistem.
Alternative Flow
● Jika terdapat kesalahan saat mengisi informasi acara (misalnya, tanggal yang salah), sistem akan memberikan pesan kesalahan dan memungkinkan admin untuk memperbaikinya.
● Jika pengguna sudah mendaftar ke suatu acara, mereka mungkin dapat membatalkan pendaftaran jika opsi ini disediakan dalam fitur.
5. Fitur Let’s Read Overview
Title Fitur Let’s Read
Description Fitur ini memungkinkan pengguna untuk membaca artikel yang berhubungan dengan donor darah. Selain itu, pengelola website dapat menambahkan artikel ke dalam sistem.
Actors ● Pengguna (User)
● Pengelola Website (Admin)
Precondition ● Pengguna harus memiliki jaringan internet.
● Pengguna sudah memiliki akun di BloodWave
● Akun pengguna sudah teraktivasi
● Pengelola website harus memiliki akses ke pengelolaan artikel.
Basic Flow
1. Pengguna Membaca Artikel
● Pengguna membuka aplikasi BloodWave.
● Pengguna memilih opsi "Let’s Read" atau "Baca Artikel" di menu utama.
● Sistem menampilkan daftar artikel yang berhubungan denganPengelola Website Menambahkan Artikel (Admin):
donor darah.
● Pengguna memilih salah satu artikel untuk membacanya.
● Sistem menampilkan isi artikel kepada pengguna.
● Pengguna membaca artikel dan dapat memberikan komentar atau feedback jika diizinkan.
2. Pengguna Memilih Event
● Pengelola website (admin) masuk ke panel pengelolaan artikel.
● Admin memilih opsi "Tambahkan Artikel Baru."
● Sistem meminta admin untuk mengisi judul artikel, isi artikel, dan mungkin informasi tambahan seperti penulis artikel atau kategori.
● Admin menyimpan artikel yang baru ditambahkan.
● Artikel baru sekarang tampil dalam daftar artikel yang dapat dilihat oleh pengguna.
Post Condition
● Pengguna dapat membaca artikel yang berhubungan dengan donor darah.
● Pengguna dapat memberikan komentar atau feedback pada artikel (jika diizinkan).
● Admin dapat menambahkan artikel ke dalam sistem.
Alternative Flow
● Jika terdapat kesalahan saat menambahkan artikel (misalnya, format artikel tidak sesuai), sistem akan memberikan pesan kesalahan dan memungkinkan admin untuk memperbaikinya.
● Jika pengguna ingin memberikan komentar pada artikel, mereka dapat memilih opsi "Komentar" atau "Berikan Feedback" pada artikel yang sedang mereka baca, dan sistem akan memandu mereka melalui proses memberikan komentar atau feedback.
C.3. Class Diagram
C.4. Sequence Diagram
a. Sequence diagramAuthentifikasi User
b. Sequence diagramProfil Pengguna
c. Sequence diagramRiwayat Donor
d. Sequence diagramEvent
e. Sequence diagramLast Read
D. Rancangan Algoritma 1. Login
STRUCTURE Pengguna nama: STRING username: STRING email: STRING password: STRING END STRUCTURE
LIST Pengguna WHILE True
DISPLAY menu with options: Register, Login INPUT choice
IF choice is "Register"
INPUT nama, username, email, password
CREATE new Pengguna WITH nama, username, email, password
APPEND new Pengguna TO penggunaList
DISPLAY "Registrasi berhasil. Silakan login."
ELSE IF choice is "Login"
INPUT username, password SET loggedIn TO False
FOR i = 0 TO LENGTH OF penggunaList
IF penggunaList[i].username is username AND penggunaList[i].password is password
SET loggedIn TO True
DISPLAY "Login berhasil. Selamat datang,
" + penggunaList[i].nama BREAK END IF END FOR
IF NOT loggedIn
DISPLAY "Username atau password salah. Coba lagi."
END IF ELSE
DISPLAY "Pilihan tidak valid"
END IF END WHILE
2. Profil Pengguna
STRUCTURE Pengguna nama: STRING
golongan_darah: STRING total_donor: INTEGER donor_terakhir: STRING donor_kembali: STRING END STRUCTURE
LIST Pengguna WHILE True
DISPLAY menu with options: "Profil Saya", "Ganti Password", "Keluar"
INPUT choice
IF choice is "Profil Saya"
IF logged_in is False
DISPLAY "Silakan login terlebih dahulu."
CONTINUE END IF
DISPLAY "Nama: " + logged_in_user.nama DISPLAY "Golongan Darah: " +
logged_in_user.golongan_darah DISPLAY "Total Donor: " + logged_in_user.total_donor
DISPLAY "Donor Terakhir: " + logged_in_user.donor_terakhir
DISPLAY "Donor Kembali: " + logged_in_user.donor_kembali
DISPLAY menu with options: "Edit Profil",
"Kembali"
INPUT profile_option
IF profile_option is "Edit Profil"
INPUT new_nama, new_golongan_darah SET logged_in_user.nama TO new_nama SET logged_in_user.golongan_darah TO new_golongan_darah
DISPLAY "Profil berhasil diperbarui."
END IF
ELSE IF choice is "Ganti Password"
IF logged_in is False
DISPLAY "Silakan login terlebih dahulu."
CONTINUE
END IF
INPUT old_password, new_password IF old_password is not equal to logged_in_user.password
DISPLAY "Password lama salah. Coba lagi."
ELSE
SET logged_in_user.password TO new_password DISPLAY "Password berhasil diganti."
END IF
ELSE IF choice is "Keluar"
ELSEEXIT
DISPLAY "Pilihan tidak valid."
END IF END WHILE
3. Riwayat Donor
STRUCTURE RekamDonor tanggal: DATE
foto_kartu_donor: IMAGE END STRUCTURE
LIST RekamDonor WHILE True
DISPLAY menu with options: "Riwayat Donor", "Keluar"
INPUT choice
IF choice is "Riwayat Donor"
IF logged_in is False
DISPLAY "Silakan login terlebih dahulu."
CONTINUE END IF
DISPLAY "Pengingat Donor Selanjutnya: " + calculate_next_donor_date(logged_in_user)
DISPLAY menu with options: "Tambahkan Rekam Donor", "Kembali"
INPUT donor_option
IF donor_option is "Tambahkan Rekam Donor"
INPUT tanggal, foto_kartu_donor CREATE new RekamDonor WITH tanggal, foto_kartu_donor
APPEND new RekamDonor TO rekamDonorList DISPLAY "Rekam Donor berhasil ditambahkan."
END IF
DISPLAY "Riwayat Donor:"
FOR i = 0 TO LENGTH OF rekamDonorList DISPLAY "Tanggal Donor: " +
rekamDonorList[i].tanggal
DISPLAY "Foto Kartu Donor: " + rekamDonorList[i].foto_kartu_donor
DISPLAY menu with options: "Edit", "Hapus",
"Kembali"
INPUT record_option
IF record_option is "Edit"
INPUT new_tanggal, new_foto_kartu_donor SET rekamDonorList[i].tanggal TO
new_tanggal
SET rekamDonorList[i].foto_kartu_donor TO new_foto_kartu_donor
DISPLAY "Rekam Donor berhasil diperbarui."
ELSE IF record_option is "Hapus"
REMOVE rekamDonorList[i]
DISPLAY "Rekam Donor berhasil dihapus."
END IF END FOR
ELSE IF choice is "Keluar"
EXIT
ELSEDISPLAY "Pilihan tidak valid."
END IF END WHILE
FUNCTION calculate_next_donor_date(pengguna) IF LENGTH OF rekamDonorList is 0
RETURN "Belum ada rekam donor."
ELSE
SET last_donor_date TO rekamDonorList[LENGTH OF rekamDonorList - 1].tanggal
SET next_donor_date TO last_donor_date + 56 days RETURN next_donor_date
END IF END FUNCTION
4. Event
STRUCTURE Event
nama_event: STRING hari: STRING
tempat: STRING tanggal: DATE
informasi_tambahan: STRING END STRUCTURE
LIST Event
STRUCTURE Pengguna nama: STRING username: STRING email: STRING password: STRING
event_terdaftar: LIST OF Event END STRUCTURE
LIST Pengguna STRUCTURE Admin
username: STRING password: STRING END STRUCTURE
LIST Admin WHILE True
DISPLAY menu with options: "Lihat Acara Donor",
"Login Admin", "Keluar"
INPUT choice
IF choice is "Lihat Acara Donor"
DISPLAY "Daftar Acara Donor:"
FOR i = 0 TO LENGTH OF eventList
DISPLAY "Event: " + eventList[i].nama_event DISPLAY "Hari: " + eventList[i].hari
DISPLAY "Tempat: " + eventList[i].tempat DISPLAY "Tanggal: " + eventList[i].tanggal DISPLAY "Informasi Tambahan: " +
eventList[i].informasi_tambahan
DISPLAY menu with options: "Lihat Detail",
"Kembali"
INPUT event_option
IF event_option is "Lihat Detail"
DISPLAY "Detail Acara Donor:"
DISPLAY "Event: " + eventList[i].nama_event
DISPLAY "Hari: " + eventList[i].hari DISPLAY "Tempat: " + eventList[i].tempat DISPLAY "Tanggal: " +
eventList[i].tanggal
DISPLAY "Informasi Tambahan: " + eventList[i].informasi_tambahan
IF logged_in is True
DISPLAY menu with options:
"Mendaftar", "Kembali"
INPUT registration_option
IF registration_option is "Mendaftar"
CREATE new Event WITH nama_event, hari, tempat, tanggal, informasi_tambahan
APPEND new Event TO logged_in_user.event_terdaftar
DISPLAY "Pendaftaran berhasil."
END IF END IF END IF END FOR
ELSE IF choice is "Login Admin"
INPUT admin_username, admin_password
IF admin_username is "admin" AND admin_password is "admin123"
DISPLAY "Selamat datang, Admin."
DISPLAY menu with options: "Tambahkan Acara Donor", "Keluar"
INPUT admin_option
IF admin_option is "Tambahkan Acara Donor"
INPUT event_nama, event_hari,
event_tempat, event_tanggal, event_informasi_tambahan CREATE new Event WITH event_nama, event_hari, event_tempat, event_tanggal,
event_informasi_tambahan
APPEND new Event TO eventList DISPLAY "Acara Donor berhasil ditambahkan."
END IF ELSE
DISPLAY "Username atau password admin salah."
END IF
ELSE IF choice is "Keluar"
EXIT
ELSEDISPLAY "Pilihan tidak valid."
END IF END WHILE
5. Let’s Read
STRUCTURE Artikel judul: STRING isi: STRING penulis: STRING kategori: STRING
komentar: LIST OF STRING END STRUCTURE
LIST Artikel
STRUCTURE Pengguna nama: STRING username: STRING email: STRING password: STRING END STRUCTURE
LIST Pengguna STRUCTURE Admin
username: STRING password: STRING END STRUCTURE
LIST Admin WHILE True
DISPLAY menu with options: "Let’s Read", "Login Admin", "Keluar"
INPUT choice
IF choice is "Let’s Read"
DISPLAY "Daftar Artikel Donor Darah:"
FOR i = 0 TO LENGTH OF artikelList
DISPLAY "Judul: " + artikelList[i].judul DISPLAY "Penulis: " + artikelList[i].penulis DISPLAY "Kategori: " +
artikelList[i].kategori
DISPLAY menu with options: "Baca Artikel",
"Kembali"
INPUT article_option
IF article_option is "Baca Artikel"
DISPLAY "Judul Artikel: " + artikelList[i].judul
DISPLAY "Penulis: " + artikelList[i].penulis
DISPLAY "Kategori: " + artikelList[i].kategori
DISPLAY "Isi Artikel: " + artikelList[i].isi
IF LENGTH OF artikelList[i].komentar > 0 DISPLAY "Komentar:"
FOR j = 0 TO LENGTH OF artikelList[i].komentar
DISPLAY artikelList[i].komentar[j]
END FOR END IF
IF logged_in is True INPUT feedback APPEND feedback TO artikelList[i].komentar
DISPLAY "Feedback berhasil ditambahkan."
END IF END IF END FOR
ELSE IF choice is "Login Admin"
INPUT admin_username, admin_password
IF admin_username is "admin" AND admin_password is "admin123"
DISPLAY "Selamat datang, Admin."
DISPLAY menu with options: "Tambahkan Artikel Baru", "Keluar"
INPUT admin_option
IF admin_option is "Tambahkan Artikel Baru"
INPUT article_judul, article_penulis, article_kategori, article_isi
CREATE new Artikel WITH article_judul, article_penulis, article_kategori, article_isi
APPEND new Artikel TO artikelList DISPLAY "Artikel baru berhasil ditambahkan."
END IF ELSE
DISPLAY "Username atau password admin salah."
END IF
ELSE IF choice is "Keluar"
EXIT
ELSEDISPLAY "Pilihan tidak valid."
END IF
END WHILE