31
ANALISIS DAN RANCANGAN SISTEM
3.1 Analisis Sistem yang berjalan
3.1.1 Gambaran Umum
RT 04/011 berlokasi di Kompleks Perumahan Tanah Kusir, Kecamatan Kebayoran Lama Utara, Jakarta Selatan. RT 04/011 mencakup blok perumahan dari Jalan Delman Raya sampai Jl. Delman Elok I hingga Jl. Delman Elok VIII. RT ini sudah berdiri sejak tahun 1980an dan pada saat ini terdapat 93 Kepala Keluarga di perumahan Kavling dan 225 Kepala Keluarga di perumahan Non-Kavling.
Rincian data kependudukan di RT 04/011 adalah sebagai berikut: • Total Keluarga: 318 (93 Kavling dan 225 Non-Kavling) • Total Keluarga per blok perumahan:
o Jl. Delman Raya: 16 o Jl. Delman Elok I: 3 o Jl. Delman Elok II: 74 o Jl. Delman Elok III: 7 o Jl. Delman Elok IV: 81 o Jl. Delman Elok V: 43 o Jl. Delman Elok VI: 54 o Jl. Delman Elok VII: 16 o Jl. Delman Elok VIII: 24
Gambar 3.1 Struktur Organisasi RT 04/011
Struktur organisasi RT 04/011 terdiri dari Ketua RT, Sekretariat RT, Bendahara, Seksi Keamanan, dan Seksi Humas (Hubungan Masyarakat). Tugas masing-masing jabatan adalah sebagai berikut:
Bapak Santoso sebagai Ketua RT bertugas melayani kebutuhan data kependudukan warga di RT 04/011 dan sekaligus sebagai perantara antara administrasi tingkat RT, tingkat RW, dan Kelurahan. Ketua RT juga menerima pengaduan atau informasi dari warga sekitar dan kemudian mensosialisasikannya ke penduduk setempat.
Bapak Imam Nugroho dan Sri Mulyadi sebagai Sekretariat RT bertugas membantu pekerjaan pelayanan data penduduk, distribusi informasi umum, serta sebagai perantara antara administrasi tingkat RT, tingkat RW, dan Kelurahan.
Ibu Kunarih sebagai Bendahara bertugas untuk mengumpulkan dan mengelola keuangan dan finansial RT 04/011. Finansial yang dimaksud adalah iuran warga, biaya administrasi kependudukan, dan juga uang amal dari penduduk sekitar.
Seksi Keamanan yang terdiri dari Hansip (Pertahanan Sipil), termasuk Bapak Mat Roji, Abdul Wahab ,dan Sunarto bertugas dalam mengamankan RT 04/011 dari tindak kriminal dan hal-hal mencurigakan. Seksi keamanan juga bertugas membagikan kertas informasi dari RT kepada warga serta membantu warga dalam keadaan bencana alam seperti banjir, kebakaran, atau hal lainnya.
Seksi Humas (Hubungan Masyarakat) bertugas dalam mensosialisasikan berbagai informasi dari RT kepada warga sekitar dan juga membantu Seksi Keamanan, Sekretariat RT, Bendahara, dan Ketua RT dalam hal sosialisasi antara Administrasi RT dan Warga.
3.1.2 Sistem yang Sedang Berjalan
Sistem yang berjalan pada saat ini kebanyakan bersifat manual, yang berarti sistem umumnya sering menggunakan medium kertas untuk informasi pengumuman, pengaduan formal, dan pelayanan data penduduk. Untuk hal yang bersifat informal, warga melakukan interaksi secara verbal kepada petugas administrasi RT seperti pemberian informasi informal dan pengaduan informal, tanpa menggunakan media yang bersifat digital.
Beberapa pelayanan formal yang dilakukan oleh RT yaitu distribusi dan penerimaan Surat Permohonan Kartu Keluarga, Surat Pengantar Umum, Surat Keterangan Domisili, dan Surat Pernyataan Belum Nikah (untuk hal pernikahan). Warga hanya tinggal mengunjungi kantor Sekretariat RT setempat untuk mendapatkan pelayanan tersebut.
Pendataan warga di RT 04/011 dilakukan berdasarkan referensi dari E-KTP atau Kartu Keluarga yang dimiliki oleh warga. E-KTP dan Kartu Keluarga berperan sebagai data pendukung untuk bukti bahwa warga terdaftar sebagai Warga Negara Indonesia (WNI) atau Warga Negara Asing (WNA) di dalam data kependudukan yang dikelola oleh Pemerintah Republik Indonesia. Pendataan kependudukan warga di RT 04/011 dilakukan dengan sarana digital tanpa menggunakan database, yaitu dengan menggunakan Microsoft Word dan Microsoft Excel dan setelah itu di-print dan dibuat fotokopi sebagai data cadangan untuk arsip RT.
Distribusi informasi dan pengumuman di RT 04/011 dilakukan secara manual yaitu dikirimkan ke rumah warga dengan menggunakan kertas. Tulisan di kertas pengumuman dibuat dengan Microsoft Word dan kemudian disetujui oleh administrasi yang bersangkutan, tergantung dari jenis informasi yang disampaikan. Kertas pengumuman kemudian dikirimkan kepada warga oleh petugas keamanan (hansip).
3.1.2.1 Uraian Sistem Kerja secara Umum
Gambar 3.2 Sistem Kerja secara Umum
Pada gambar 3.2 menjelaskan Uraian sistem kerja secara umum adalah sebagai berikut:
1. Warga mengunjungi Kantor Sekretariat RT yang berlokasi di Jl. Delman Elok I. Kantor Sekretariat dibuka hari Senin sampai Kamis dari Jam 7 sampai Jam 9 malam.
2. Warga melakukan pelayanan administrasi atau hal lainnya di Sekretariat RT.
3.1.2.2 Uraian Sistem Kerja Pendataan Penduduk
Gambar 3.3 Sistem Kerja Pendataan Penduduk Warga mengunjungi Kantor Sekretariat RT Warga melakukan pelayanan administrasi Tidak
Uraian sistem kerja pendataan penduduk pada gambar 3.3 adalah sebagai berikut:
1. Warga mengunjungi Kantor Sekretariat RT.
2. Warga melengkapi kebutuhan arsip data untuk pendataan penduduk.
3. Ketua RT memeriksa kelengkapan data arsip (E-KTP atau Kartu Keluarga) warga untuk hal pendataan.
4. Bila data sudah lengkap maka pendataan bisa dilakukan. Bila belum lengkap, warga harus melakukan pelayanan administrasi untuk melengkapi data agar bisa didatakan oleh Ketua RT.
5. Pendataan penduduk dilakukan dengan Microsoft Word dan Microsoft Excel dan pendataan penduduk selesai.
3.1.2.3 Uraian Sistem Kerja Distribusi Informasi dan Pengumuman
Uraian sistem kerja distribusi informasi dan pengumuman pada gambar 3.4 adalah sebagai berikut:
1. Ketua RT mendapatkan informasi atau pengumuman tertentu dan ingin mensosialisasikannya kepada warga RT 04/011.
2. Tergantung dari jenis informasi atau pengumuman, Ketua RT meminta persetujuan dari administrasi yang bersangkutan agar informasi tersebut bisa didistribusikan kepada warga sekitar.
3. Bila sudah disetujui maka informasi akan dikirimkan kepada warga di RT 04/011.
4. Informasi didistribusikan kepada warga oleh petugas hansip.
3.1.3 Permasalahan
Permasalahan utama di dalam sistem kerja di RT 04/011 adalah hampir keseluruhan proses dilakukan secara manual tanpa menggunakan sistem database atau aplikasi online. Warga harus selalu mengunjungi Kantor Sekretariat RT untuk melakukan proses pelayanan administrasi atau pendataan warga. Sedangkan administrasi memasukkan data kependudukan tanpa menggunakan sistem database atau aplikasi online.
Distribusi informasi antar warga dan administrasi RT umumnya dilakukan secara manual, yaitu hanya dengan pengiriman kertas pengumuman ke setiap rumah warga di RT 04/011. Interaksi dan komunikasi warga dengan administrasi RT umumnya dilakukan di Kantor Sekretariat RT dan jarang dilakukan di tempat lain.
Untuk mempertajam identifikasi masalah, maka dilakukan penyebaran kuesioner. (Lihat Lampiran 1)
Berdasarkan survei yang dilakukan secara kuesioner terhadap 50 dari 318 Keluarga di RT 04/011, kebanyakan warga sudah dapat mengakses internet dan dapat mengakses berbagai informasi secara online.
Data rincian survei adalah sebagai berikut:
• Total Kuesioner: 50
• Total Keluarga dengan akses internet: 47 (94%)
• Total Keluarga dengan akses internet hanya dengan desktop: 2 (4%) • Total Keluarga dengan akses internet secara mobile: 45 (90%) • Total Keluarga tanpa akses internet (offline): 3 (6%)
Fitur yang diharapkan warga berdasarkan Kuesioner:
1. Penambahan dan distribusi pengumuman dari pengurus RT ke warga. 2. Komunikasi antar RT dengan warga.
3. Komunikasi antar warga di RT 04/011. 4. Update informasi (data) warga.
5. Memasukkan data warga dan jenis data lainnya.
Data survei menunjukkan bahwa kebanyakan keluarga di RT 04/011 sudah mendapatkan akses internet. Ketiadaan sarana untuk mengakses data dan informasi, serta sarana komunikasi antar warga dengan administrasi di RT 04/011 secara online merupakan salah satu dari permasalahan yang ada.
Berdasarkan uraian fitur-fitur yang diharapkan warga lewat kuesioner, aplikasi sudah memiliki kebanyakan fitur yang diharapkan dengan beberapa fitur belum ada karena waktu yang terbatas dalam pengerjaan Skripsi dan berada di luar Ruang Lingkup pengerjaan. Diharapkan kedepannya, fitur-fitur yang belum ada bisa ditambahkan untuk meningkatkan kualitas dan fungsionalitas aplikasi.
Hal ini juga menunjukkan kebutuhan warga dalam komunikasi ,sosialisasi, dan distribusi informasi yang lebih baik dan lebih mudah antara administrasi RT dan warga, serta antar warga RT 04/011.
3.1.3.1 Uraian Permasalahan
Uraian dari permasalahan di atas adalah sebagai berikut:
1. Warga sering mendapatkan kesulitan untuk bertemu langsung dengan pengurus RT.
2. Data komunitas warga yang tersedia saat ini masih disimpan dalam berkas yang beresiko cepat rusak atau hilang.
3. Distribusi informasi dari pengurus RT tidak sepenuhnya sampai ke rumah warga sehingga tidak semua warga mengetahui informasi yang disampaikan.
3.1.4 Usulan Pemecahan Masalah
Usulan untuk pemecahan masalah yang ada adalah sebagai berikut:
1. Berdasarkan permasalahan yang ada, solusi yang diusulkan adalah pengembangan sebuah aplikasi berbasis website yang memungkinkan warga dan administrasi RT untuk bertukar informasi, serta melihat, mencari, dan memasukkan data komunitas warga melalui website. Fokus dari pengembangan aplikasi adalah fitur-fitur komunikasi dan interaksi antar pengguna dan distribusi informasi secara digital.
2. Dengan pengembangan aplikasi ini, warga dan administrasi RT dapat melakukan perjanjian pertemuan dan bisa berkomunikasi satu sama lainnya dalam hal persiapan berkas untuk pelayanan administrasi dan pendataan warga. Pengguna (warga maupun administrasi), hanya cukup menggunakan browser dan mengakses website untuk berinteraksi satu sama lainnya.
3. Aplikasi mempunyai fitur untuk pendataan warga, dimana Admin dapat memasukkan data komunitas warga berdasarkan atribut yang ada di Kartu Keluarga (KK) atau e-KTP yang mereka miliki. Data akan disimpan di dalam suatu sistem database yang sudah ada di aplikasi untuk keamanan dan
kemudahan akses data. Atribut data yang harus dimasukkan ke dalam database dalam penambahan data warga adalah Nama Lengkap, NIK, status warga atau administrasi, Kepala Keluarga, password, dan alamat.
4. Distribusi informasi dapat dilakukan melalui aplikasi, dengan informasi yang sama dan konsisten dengan informasi yang diberikan lewat kertas pengumuman yang didistribusikan kepada warga.
5. Pengembangan aplikasi ini diharapkan bisa menjadi pemenuhan kebutuhan warga atas sarana komunikasi, distribusi informasi, dan akses data komunitas warga. Berdasarkan fitur-fitur yang diharapkan warga dalam pengembangan aplikasi, kebanyakan fitur sudah ada di dalam aplikasi dan bisa digunakan untuk memenuhi kebutuhan warga atas sarana tersebut.
3.2 Rancangan Sistem yang Diusulkan
3.2.1 Rancangan Umum Sistem
Rancangan umum sistem dapat dilihat pada Diagram Use Case pada gambar 3.5
Gambar 3.5 Use Case Diagram
Deskripsi Use Case untuk masing-masing bubble (aktivitas):
• Masuk Program: Penggunaan program dengan menggunakan browser yang dimiliki oleh pengguna.
• Tambah Pengumuman: Menambahkan pengumuman ke dalam database. • Baca Pengumuman: Membaca pengumuman yang sudah disimpan dalam
• Komentari Pengumuman: Menambahkan komentar pada pengumuman yang bersangkutan.
• Tambah Warga: Menambahkan data warga ke dalam database. • Hapus Warga: Menghapus data warga dari database.
• Ubah Password: Mengubah password dalam profil pengguna Admin. • Tambah Pengaduan: Menambahkan pengaduan ke dalam database.
• Baca Pengaduan: Membaca pengaduan yang sudah disimpan dalam database.
• Komentari Pengaduan: Menambahkan komentar pada pengaduan yang bersangkutan.
• Tambah Post: Menambahkan post ke dalam database.
• Baca Post: Membaca post yang sudah disimpan dalam database.
• Komentari Post: Menambahkan komentar pada post yang bersangkutan. • Ubah Profil: Mengubah data atribut dalam profil pengguna, seperti Nama,
NIK, Kepala Keluarga, Alamat, dan Password.
• Kirim Pesan: Mengirimkan pesan kepada pengguna lain. Pesan disimpan di dalam database setelah dikirim.
• Baca Pesan: Membaca pesan yang sudah disimpan dalam database. • Pencarian: Pencarian data warga menggunakan form pencarian. • Keluar Program: Pengguna selesai menggunakan program.
3.2.2 Rancangan Database
Rancangan database Entity Relationship Diagram yang diusulkan dapat dilihat pada gambar 3.6
Deskripsi ERD berdasarkan masing-masing entitas:
1. Users: Menyimpan data pengguna secara individual Isi dari table Users :
• user_id: Primary Key dari table Users. • nik: NIK pengguna.
• role: Peran pengguna dalam aplikasi (Admin atau warga). • family: Nama Kepala Keluarga.
• username: Nama Lengkap pengguna. • password: Password pengguna. • address: Alamat pengguna.
• phone: Nomor telepon pengguna.
2. Messages: Menyimpan data pesan pengguna. Isi dari table Messages:
• message_id: Primary Key dari table Messages.
• user_id: Foreign Key yang berhubungan dengan table Users. • message_from: Nama pengirim.
• message_to: Nama lengkap tujuan. • content: Isi pesan.
• created: Waktu data dibuat. • modified: Waktu data diganti. 3. News: Menyimpan data pengumuman.
Isi dari table News:
• news_id: Primary Key dari table News. • title: Judul pengumuman.
• category: Kategori pengumuman. • content: Isi pengumuman.
• created: Waktu data dibuat. • modified: Waktu data diganti. 4. Reports: Menyimpan data pengaduan.
Isi dari table Reports:
• report_id: Primary Key table Reports.
• user_id: Foreign Key yang berhubungan dengan table Users. • reporter: Nama pengirim.
• title: Judul pengaduan.
• category: Kategori pengaduan. • content: Isi pengaduan.
• created: Waktu data dibuat. • modified: Waktu data diganti. 5. Posts: Menyimpan data post pengguna.
Isi dari table Posts:
• post_id: Primary Key table Posts.
• user_id: Foreign Key yang berhubungan dengan table Users. • title: Judul post.
• poster: Nama penulis post. • content: Isi post.
• created: Waktu data dibuat. • modified: Waktu data diganti.
6. Comments: Menyimpan data komentar post. Isi dari table Comments:
• comment_id: Primary Key table Comments.
• post_id: Foreign Key yang berhubungan dengan table Posts. • user_id: Foreign Key yang berhubungan dengan table Users. • commenter: Nama penulis komentar
• content: Isi komentar. • created: Waktu data dibuat. • modified: Waktu data diganti.
7. Newscomments: Menyimpan data komentar pengumuman. Isi dari table Newscomments:
• newscomments_id: Primary Key table Newscomments. • news_id: Foreign Key yang berhubungan dengan table News. • user_id: Foreign Key yang berhubungan dengan table Users. • commenter: Nama penulis komentar
• content: Isi komentar. • created: Waktu data dibuat. • modified: Waktu data diganti.
8. Reportscomments: Menyimpan data komentar pengaduan. Isi dari table Reportscomments:
• reportscomments_id: Primary Key table Reportscomments. • report_id: Foreign Key yang berhubungan dengan table Reports. • user_id: Foreign Key yang berhubungan dengan table Users. • commenter: Nama penulis komentar
• content: Isi komentar. • created: Waktu data dibuat. • modified: Waktu data diganti.
Class Diagram yang diusulkan dapat dilihat pada gambar 3.7
Deskripsi Class Diagram berdasarkan masing-masing class : 1. Users: Class Model representasi table Users.
2. Messages: Class Model representasi table Messages.
3. News: Class Model representasi table News.
4. Reports: Class Model representasi table Reports.
5. Posts: Class Model representasi table Posts.
6. Comments: Class Model representasi table Comments.
7. Newscomments: Class Model representasi table Newscomments.
3.2.3 Rancangan Layar
3.2.3.1 Tampilan Layar
Bagian ini bertujuan untuk menampilkan gambaran fitur-fitur yang tersedia pada aplikasi. Rancangan tampilan layar dapat dilihat pada gambar 3.8 sampai dengan gambar 3.26
Gambar 3.8 Halaman Home sebelum Login
Gambar 3.11 Halaman Detail Pengumuman
Gambar 3.13 Halaman Detail Pengaduan
Gambar 3.15 Halaman Tampilan Pesan (Semua Pesan)
Gambar 3.16 Halaman Tambah Pesan
Gambar 3.18 Halaman Tampilan Post (Semua Post)
Gambar 3.20 Halaman Tambah Post
Gambar 3.22 Halaman Update Profil (Untuk Admin dan Warga)
Gambar 3.24 Halaman Tambah Warga (Admin)
Gambar 3.25 Halaman Daftar Pengumuman (Admin)
3.3.3.2 Navigasi Layar
Rancangan Navigasi Layar Aplikasi dengan state diagram dapat dilihat pada gambar 3.27
3.2.4 Rancangan Program
3.2.4.1 Activity Diagram
Activity diagram aplikasi secara umum dapat dilihat pada gambar 3.28
3.2.4.2 Sequence Diagram
Gambar 3.29 Sequence Diagram Tambah Data (Warga, Pesan, Pengumuman, Pengaduan, dan Post)
Sequence Diagram pada gambar 3.29 menggambarkan proses penambahan Data Warga, Pesan, Pengumuman, Pengaduan, dan Post. Penjelasan proses adalah sebagai berikut:
1. Pengguna navigasi menu untuk menambahkan data, yang secara bersamaan menjalankan method actionCreate() pada Controller untuk penambahan data.
2. Controller menjalankan proses render pada View yang menampilkan halaman penambahan data beserta form input.
3. Pengguna kemudian mengisi form tersebut dan menyimpannya ke dalam database, yang dilakukan oleh method save() pada Model.
Gambar 3.30 Sequence Diagram Tambah Komentar (Untuk Pengumuman, Pengaduan, dan Post)
Sequence Diagram pada gambar 3.30 menggambarkan proses penambahan komentar untuk Pengumuman, Pengaduan, dan Post. Penjelasan proses adalah sebagai berikut:
1. Pengguna navigasi menu untuk menambahkan komentar, yang secara bersamaan menjalankan method actionCreate($id) pada Controller untuk penambahan data. Parameter $id mengacu pada nomor identifikasi Pengumuman, Pengaduan, atau Post yang bersangkutan.
2. Controller menjalankan proses render pada View yang menampilkan halaman penambahan komentar beserta form input.
3. Pengguna kemudian mengisi form tersebut dan menyimpannya ke dalam database, yang dilakukan oleh method save() pada Model.
4. Aplikasi menampilkan hasil komentar yang sudah ditambahkan pengguna.
Gambar 3.31 Sequence Diagram Baca Data (Warga, Pesan, Pengumuman, Pengaduan, Post, dan Komentar)
Sequence Diagram pada gambar 3.31 menggambarkan proses pembacaan Data Warga, Pesan, Pengumuman, Pengaduan, Post, dan Komentar. Penjelasan proses adalah sebagai berikut:
1. Pengguna navigasi menu untuk membaca data, yang secara bersamaan menjalankan method actionIndex() pada Controller untuk pembacaan (tampilan) data.
2. Controller menjalankan proses render pada View yang menampilkan halaman tampilan data yang bersangkutan setelah dilakukan definisi Model.
3. Pengguna navigasi tampilan index untuk membaca detail dari data yang bersangkutan, yang secara bersamaan menjalankan method
actionView($id) pada Controller untuk menampilkan detail dari setiap data. Parameter $id mengacu pada nomor identifikasi data yang dipilih.
4. Controller menjalankan proses render pada View yang menampilkan halaman detail dari data yang dipilih setelah method loadModel($id) dijalankan. Parameter $id mengacu pada nomor identifikasi data yang dipilih. Method ini bekerja seperti definisi Model dan mengidentifikasi Model yang ditujukan berdasarkan input dari pengguna.
5. Aplikasi menampilkan detail dari data yang dipilih pengguna.
Gambar 3.32 Sequence Diagram Update Data (Warga, Pesan, Pengumuman, Pengaduan, Post, dan Komentar)
Sequence Diagram pada gambar 3.32 menggambarkan proses Update (Perubahan) Data Warga, Pesan, Pengumuman, Pengaduan, Post, dan Komentar. Penjelasan proses adalah sebagai berikut:
1. Pengguna navigasi menu untuk Update data, yang secara bersamaan menjalankan method actionUpdate($id) pada Controller untuk Update (Perubahan) data. Parameter $id mengacu pada nomor identifikasi data yang ingin di-Update.
2. Controller menjalankan proses render pada View yang menampilkan halaman Update data beserta form setelah method loadModel($id) dijalankan. Parameter $id mengacu pada nomor identifikasi data yang ingin di-Update.
3. Pengguna kemudian mengisi form untuk Update data tersebut dan menyimpannya ke dalam database, yang dilakukan oleh method save() pada Model.
4. Aplikasi menampilkan hasil Update data yang dilakukan pengguna.
Gambar 3.33 Sequence Diagram Hapus Data (Warga, Pesan, Pengumuman, Pengaduan, Post, dan Komentar)
Sequence Diagram pada gambar 3.33 menggambarkan proses penghapusan Data Warga, Pesan, Pengumuman, Pengaduan, Post, dan Komentar. Penjelasan proses adalah sebagai berikut:
1. Pengguna navigasi menu untuk menghapus data, yang secara bersamaan menjalankan method actionDelete($id) pada Controller untuk penghapusan data. Parameter $id mengacu pada nomor identifikasi data yang ingin dihapus.
2. Controller menjalankan proses render pada View yang menampilkan dialog box untuk konfirmasi penghapusan data setelah method loadModel($id) dijalankan. Parameter $id mengacu pada nomor identifikasi data yang ingin dihapus.
3. Setelah konfirmasi dilakukan, data yang dipilih pengguna dihapus dari database.
Gambar 3.34 Sequence Diagram Pencarian (Warga, Pesan, Pengumuman, Pengaduan, Post, dan Komentar)
Sequence Diagram pada gambar 3.34 menggambarkan proses pencarian Data Warga, Pesan, Pengumuman, Pengaduan, Post, dan Komentar. Penjelasan proses adalah sebagai berikut:
1. Pengguna navigasi menu untuk mencari data, yang secara bersamaan menjalankan method actionSearch() pada Controller untuk pencarian data.
2. Controller menjalankan proses render pada View yang menampilkan form pencarian data setelah dilakukan definisi Model.
3. Pengguna menggunakan form pencarian untuk mencari data yang diinginkan.
3.2.5 Rancangan Arsitektur Sistem
Gambar 3.35 Rancangan Arsitektur Sistem
Pada Gambar 3.35 menjelaskan topologi yang digunakan, yaitu berbasis 3 tier atau tingkatan, yang membagi proses jalannya sistem, yaitu:
1. Browser yang digunakan oleh pengguna, termasuk Ketua RT dan Warga untuk menampilkan user interface dari aplikasi web serta memproses request dari pengguna kepada server
2. Server dan Logika Pemrograman yang ada di dalam aplikasi. Aplikasi berada di dalam tingkatan server dan bekerja sebagai perantara antara user interface dan Database. Semua proses-proses yang dijalankan oleh aplikasi berpusat di server.
3. Database yang menyimpan data pengguna dan data lainnya. Data di dalam database berinteraksi langsung dengan server agar bisa ditampilkan dan diproses.
Berdasarkan arsitektur sistem, proses jalannya aplikasi diuraikan sebagai berikut:
1. Ketua RT (Admin) dan Warga berperan sebagai pengguna aplikasi. Mereka bisa berinteraksi dengan User Interface yang disediakan aplikasi.
2. Pengguna akan berinteraksi dengan user interface, dimana elemen-elemen interaktif yang ditampilkan akan memproses request dari pengguna kepada server.
3. Server lalu mengidentifikasi tipe request yang diberikan oleh pengguna dan kemudian memproses data dari database, berdasarkan tipe request dari pengguna. Request yang dimaksud seperti, penambahan data, pengurangan data, dan tampilan data.
4. Salah satu contoh, seorang pengguna ingin mengirim pesan kepada pengguna lain. Untuk melakukan hal itu, pengguna harus navigasi user interface untuk mengirimkan pesan. Setelah pesan ditulis dan dikirim, server akan memproses pengiriman pesan dan disimpan di dalam database. Pengguna bisa melihat pesan yang sudah dikirimkan kepada pengguna lain, dan pesan tersebut sudah disimpan di dalam database.
3.2.6 Rancangan Keamanan Sistem
Perancangan keamanan sistem dilakukan untuk melindungi data dari penyusup, hacker, dan bencana. Keamanan aplikasi difokuskan terhadap perlindungan terhadap data di dalam database, seperti data warga dan data lainnya.
Keamanan terhadap Penyusup:
1. Dilakukan proses hashing terhadap setiap password warga untuk menyulitkan penyusup membaca password warga dan melindungi data warga, bilamana mereka berhasil mengakses database dan mengakses data didalamnya. Proses hashing menggunakan phpass Password Hashing Framework yang sudah digunakan banyak website untuk melindungi data password pengguna. Hashing harus dilakukan untuk melindungi data warga dari penyusup. Hal ini karena fitur lengkap di aplikasi hanya bisa diakses dengan menggunakan password yang benar.
2. Password semua warga bersifat preset dan sudah dibuat pada saat pengembangan aplikasi. Karena fitur lengkap aplikasi hanya bisa didapatkan oleh warga dengan menggunakan password yang benar, maka setiap warga dibuatkan password. Password setiap warga dituliskan dalam file Microsoft Excel yang akan diberikan kepada Ketua RT. Warga yang ingin mengetahui password mereka untuk mengakses fitur lengkap bisa mengunjungi kantor sekretariat. Setelah login pertama kalinya warga diharuskan untuk mengganti password mereka untuk keamanan akun mereka.
3. Informasi password yang preset hanya dipegang oleh Ketua RT untuk melindungi akun warga, sampai akhirnya warga mengubah password mereka. Bilamana warga lupa atau kehilangan password, bisa melapor ke Ketua RT melalui aplikasi atau kunjungan kantor agar password mereka bisa di-reset.
4. Perlindungan terhadap SQL Injection sudah bersifat otomatis karena aplikasi menggunakan akses database dengan menggunakan Active Record, yang tidak menggunakan SQL Query pada saat melakukan request di dalam logika pemrograman.
5. Yii Framework yang digunakan di dalam aplikasi sudah memiliki sistem keamanan yang built-in dan secara otomatis akan melindungi data yang sensitif dari serangan penyusup. Proses validasi, penampilan, dan data insertion sudah dilindungi oleh sistem keamanan yang ada dalam framework.
Keamanan terhadap Virus/Hacker:
1. Sistem anti-virus yang di-instalasi pada hosting server untuk mencegah serangan virus terhadap website.
2. Layanan hosting server kebanyakan sudah memiliki sistem firewall didalamnya. Firewall digunakan untuk melindungi website dari hacker, penyusup, atau virus.
3. Hashing yang dilakukan terhadap setiap password warga akan mempersulit hacker dalam mendekripsi hash dan akan terpaksa harus melakukan teknik brute-force, yang akan membutuhkan waktu yang sangat lama.
Keamanan terhadap Kerusakan Data:
1. Data dari database di-backup dengan menggunakan aplikasi MySql Workbench dan data backup dalam schema akan dibuat dalam bentuk file dump agar tidak bisa diakses dengan aplikasi lain. Data backup ini kemudian disimpan dalam flash-disk, komputer, dan medium lainnya yang dimiliki oleh anggota administrasi. Data ini harus disimpan dalam lebih dari satu medium agar ada data cadangan. Proses backup data dilakukan seminggu sekali.
2. Bilamana data dalam database hilang atau rusak, recovery bisa dilakukan dengan menggunakan MySql Workbench yang dihubungkan ke hosting server, agar data bisa di-recover dari data backup yang disimpan oleh administrasi.