ANALISIS DAN DESAIN SISTEM

37

BAB III ANALISIS DAN DESAIN SISTEM

3.1.Fase Definisi Ruang Lingkup Scope Definition Phase Garuluku – FORANDAKA adalah suatu wadah bentuk perwujudan dari pemenuhan hak-hak anak yang anggotanya yaitu seluruh anak di desa Kemadang, Gunung Kidul. Seiring dengan bertambahnya waktu dan laju pertumbuhan anak di desa Kemadang yang semakin meningkat menyebabkan data yang ada menjadi lebih banyak sehingga menyulitkan pengurus Garu Luku-FORANDAKA dalam hal pendataan anak, pendataan anggota, pencatatan kegiatan dan pendataan donatur, karena pencatatan masih bersifat manual tanpa adanya pemanfaatan sistem basis data. Pengelolaan data-data masih dicatat menggunakan media buku. Semua buku-buku yang berisi data disimpan di Pondok Sanggar Garuluku – FORANDAKA. Sehingga bisa saja buku-buku tersebut bisa tercecer, rusak, maupun hilang. Dipihak lain, terdapat juga Forum anak dari daerah lainnya, pemerintah, maupun masyarakat luas yang ingin mengetahui tentang informasi berupa data kegiatan, data anak, data donatur, dan informasi lainnya yang ada dalam Garuluku – FORANDAKA ini, sehingga mereka harus datang jauh-jauh langsung ke Pondok Sanggar Anak Garuluku – FORANDAKA yang bertempat di dusun Pucung, desa Kemadang, Gunung Kidul, sehingga bila tersedia sistem informasi 38 berbasis web diharapkan pula penyediaan informasi bisa melalui media web. Performace : Pengelolaan data-data menggunakan beberapa buku. Control : Buku yang digunakan untuk mencatat data ada banyak, sehingga kemungkinan untuk kehilangan data sangat besar Eficiency : Dalam hal waktu, sistem yang ada saat ini membutuhkan banyak waktu dan banyak kinerja dalam hal mencatat dan mencari berbagai data yang diperlukan. Service : Mencari data di dalam buku-buku menyebabkan pelayanan yang lebih lama bagi pihak-pihak tertentu yang ingin mengetahui tentang data yang ada. 3.2.Fase Analisis Masalah Problem Analysis Phase 3.2.1. Sistem Yang Ada Saat Ini Sistem pencataan yang ada di Garuluku – FORANDAKA ini menggunakan beberapa buku, yang isinya data anak-anak anggota Sanggar Garuluku dan FORANDAKA, data pengurus organisasi dan struktur organisasi. Sehingga dalam penginformasian ke masyarakat luas, pemerintah, dan organisasi anak lainnya masih menggunakan beberapa buku yang berisi data- data tersebut. Berbagai pihak yang membutuhkan informasi tentang Garuluku – FORANDAKA juga harus pergi ke 39 Sanggarnya langsung agar bisa memperoleh informasi yang mereka butuhkan. 3.2.2. Gambaran Sistem Baru Untuk menangani masalah diatas, maka akan dibuat Sistem Informasi Keanggotaan Garuluku – Forandaka berbasis Web. Sistem ini digunakan untuk mengelola data-data yang banyak dalam sistem basis data yang dapat memberikan efisiensi kerja, kecepatan dan ketelitian waktu serta memberikan informasi yang baik kepada berbagai pihak yang membutuhkan. Sistem ini akan digunakan oleh seorang admin yang mengisi semua informasi dan data-data yang ingin dibagikan kepada masyarakat luas. Untuk masuk ke dalam sistem ini pun, admin harus login terlebih dahulu, kemudian akan diperiksa oleh sistem apakah berhak untuk masuk ke sistem atau tidak. 40 3.3.Fase Analisis Kebutuhan Requirement Analysis Phase 3.3.1. Diagram Use Case Mendaftar Donatur Browsing Login Menambah Kegiatan Melihat Kegiatan Mengubah Kegiatan Menghapus Kegiatan Data Kegiatan Memasukkan data anggota Melihat Data Anggota Mengubah Data Anggota Menghapus Anggota Data Anggota Depends on Depends on ADMIN Pengunjung Menambah Donatur Melihat Donatur Mengubah Donatur Menghapus Donatur Data Donatur Depends on Donatur Depends on Memasukkan data Laporan Keuangan Melihat Data Laporan Keuangan Mengubah Data Laporan Keuangan Menghapus Laporan Keuangan Data Laporan Keuangan Depends on Menambah Materi Melihat Materi Mengubah Materi Menghapus Materi Data Materi Gambar 3. 1 Diagram Use case 3.3.2. Narasi Use Case 41 A. Narasi Use Case Login Author : Ria Riska Date : 26112013 Actor : Admin Versi : 1.00 NAMA USE CASE Login PRIORITAS Tinggi SUMBER  Template spesifikasi kebutahan perangkat lunak dan project charter.  Project Charter tahap I DESKRIPSI Use-case ini mendeskripsikan tentang Login ke dalam sistem. Jika admin ingin masuk kedalam sistem, maka admin harus melakukan login terlebih dahulu KONDISI AWAL URUTAN AKTIFITAS NORMAL AKSI AKTOR RESPON SISTEM 1. Menampilkan Halaman Login 2. Klik button Login 3. Menampilkan halaman untuk memasukkan username dan password 4. Memasukkan username dan password 5. Memerikasa username dan password 6. Menampilkan halaman yang sesuai dengan haknya AKTIFITAS LAIN Alt-step 2: Aktor klik button Batal, untuk membatalkan login Alt-step 5: Jika aktor salah memasukkan username dan pasword KESIMPULAN Use case ini terus berjalan sampai aktor melakukan logout KONDISI AKHIR Aktor masuk ke dalam sistem 42 BATASAN IMPLEMENTASI DAN SPESIFIKASI  Aktor hanya bisa masuk ke dalam sistem bila memiliki username dan password B. Narasi Use Memasukkan data anggota Author : Ria Riska Date : 26112013 Actor : Admin Versi : 1.00 NAMA USE CASE Memasukkan data anggota PRIORITAS Sedang SUMBER  Template spesifikasi kebutahan perangkat lunak dan project charter.  Project Charter tahap I DESKRIPSI Use-case ini mendeskripsikan proses aktor memasukkan data anggota kedalam sistem. KONDISI AWAL Setelah melalui use case Login URUTAN AKTIFITAS NORMAL AKSI AKTOR RESPON SISTEM 1. Menampilkan halaman Profi 2. Memilih menu Anggota 3. Memilih sub menu Tambah Anggota 4. Menampilkan halaman Tambah Anggota 5. Memasukkan data anggota kedalam form yang disediakan 6. Klik button Simpan 7. Sistem akan menyimpan data anggota ke database AKTIFITAS Alt-step 5: 43 LAIN Aktor klik button Batal, untuk membatalkan KESIMPULAN Use case ini digunakan untuk memasukkan data anggota KONDISI AKHIR Data anggota tersimpan di database BATASAN IMPLEMENTASI DAN SPESIFIKASI  Sistem hanya menampilkan form masukkan data anggota ke admin C. Narasi Use Case Melihat data anggota Author : Ria Riska Date : 26112013 Actor : Admin, Pengunjung Versi : 1.00 NAMA USE CASE Melihat data anggota PRIORITAS Sedang SUMBER  Template spesifikasi kebutahan perangkat lunak dan project charter.  Project Charter tahap I DESKRIPSI Use-case ini mendeskripsikan proses aktor melihat data anggota yang tesimpan di dalam sistem. KONDISI AWAL - URUTAN AKTIFITAS NORMAL AKSI AKTOR RESPON SISTEM 1. Menampilkan halaman Profil 2. Memilih menu Anggota 3. Memilih sub menu Lihat Anggota 4. Menampilkan halaman Pencarian 44 Anggota 5. Memasukkan kriteria pencarian atau kata kunci, atau jika ingin melihat seluruh anggota, tidak usah mengisi field pencarian 6. Klik button Lihat 7. Sistem menampilkan hasil pencarian data anggota AKTIFITAS LAIN Alt-step 5: Aktor klik button Batal, untuk membatalkan KESIMPULAN Use case ini digunakan untuk mencari data anggota KONDISI AKHIR Sistem menghasilkan data yang dicari BATASAN IMPLEMENTASI DAN SPESIFIKASI  Sistem hanya menampilkan data anggota D. Narasi Use Case Mengubah data anggota Author : Ria Riska Date : 26112013 Actor : Admin Versi : 1.00 NAMA USE CASE Mengubah data anggota PRIORITAS Sedang SUMBER  Template spesifikasi kebutahan perangkat lunak dan project charter.  Project Charter tahap I DESKRIPSI Use-case ini mendeskripsikan proses aktor mengubah data anggota KONDISI AWAL Setelah use case lihat data anggota URUTAN AKTIFITAS NORMAL AKSI AKTOR RESPON SISTEM 1. Memilih data anggota yang akan 45 diubah datanya 2. Sistem akan menampilkan form ubah data anggota 3. Mengisi data yang ingin diubah 4. Menyimpan perubahan data anggota AKTIFITAS LAIN Alt-step 3: Aktor klik button Batal, untuk membatalkan KESIMPULAN Use case ini digunakan untuk mengubah data anggota KONDISI AKHIR Sistem menyimpan perubahan data anggota BATASAN IMPLEMENTASI DAN SPESIFIKASI  Sistem hanya menampilkan form ubah data anggota kepada admin E. Narasi Use Case Menghapus data anggota Author : Ria Riska Date : 26112013 Actor : Admin Versi : 1.00 NAMA USE CASE Menghapus data anggota PRIORITAS Sedang SUMBER  Template spesifikasi kebutahan perangkat lunak dan project charter.  Project Charter tahap I DESKRIPSI Use-case ini mendeskripsikan proses aktor menghapus data anggota KONDISI AWAL Setelah use case lihat data anggota URUTAN AKTIFITAS NORMAL AKSI AKTOR RESPON SISTEM 1. Memilih data anggota yang akan dihapus datanya 2. Menampilkan anggota yang dipilih aktor 46 3. Memilih button Hapus Anggota 4. Menghapus data anggota dari database AKTIFITAS LAIN Alt-step 3: Aktor klik button Batal, untuk membatalkan KESIMPULAN Use case ini digunakan untuk menghapus data anggota KONDISI AKHIR Sistem menghapus data anggota BATASAN IMPLEMENTASI DAN SPESIFIKASI  Sistem hanya menampilkan pilihan hapus kepada admin F. Narasi Use Menambah kegiatan Author : Ria Riska Date : 26112013 Actor : Admin Versi : 1.00 NAMA USE CASE Menambah kegiatan PRIORITAS Sedang SUMBER  Template spesifikasi kebutahan perangkat lunak dan project charter.  Project Charter tahap I DESKRIPSI Use-case ini mendeskripsikan proses aktor menambah data kegiatan kedalam sistem. KONDISI AWAL Setelah use case Login URUTAN AKTIFITAS NORMAL AKSI AKTOR RESPON SISTEM 1. Menampilkan halaman Kegiatan 2. Memilih menu Arsip Kegiatan 3. Memilih sub menu Tambah Kegiatan 4. Menampilkan halaman Tambah Kegiatan 5. Memasukkan data 47 kegiatan kedalam form yang disediakan 6. Klik button Simpan 7. Sistem akan menyimpan data kegiatan ke database AKTIFITAS LAIN Alt-step 5: Aktor klik button Batal, untuk membatalkan KESIMPULAN Use case ini digunakan untuk memasukkan data kegiatan KONDISI AKHIR Data kegiatan tersimpan di database BATASAN IMPLEMENTASI DAN SPESIFIKASI  Sistem hanya menampilkan form tambah kegiatan ke admin G. Narasi Use Case Mengubah kegiatan Author : Ria Riska Date : 26112013 Actor : Admin Versi : 1.00 NAMA USE CASE Mengubah kegiatan PRIORITAS Sedang SUMBER  Template spesifikasi kebutahan perangkat lunak dan project charter.  Project Charter tahap I DESKRIPSI Use-case ini mendeskripsikan proses aktor mengubah kegiatan KONDISI AWAL Setelah use case lihat kegiatan URUTAN AKTIFITAS NORMAL AKSI AKTOR RESPON SISTEM 1. Memilih data kegiatan yang akan diubah datanya 2. Sistem akan menampilkan form ubah data kegiatan 3. Mengisi data yang 48 ingin diubah 4. Menyimpan perubahan data kegiatan AKTIFITAS LAIN Alt-step 3: Aktor klik button Batal, untuk membatalkan KESIMPULAN Use case ini digunakan untuk mengubah data kegiatan KONDISI AKHIR Sistem menyimpan perubahan data kegiatan BATASAN IMPLEMENTASI DAN SPESIFIKASI  Sistem hanya menampilkan form ubah data kegiatan kepada admin H. Narasi Use Case Menghapus kegiatan Author : Ria Riska Date : 26112013 Actor : Admin Versi : 1.00 NAMA USE CASE Menghapus kegiatan PRIORITAS Sedang SUMBER  Template spesifikasi kebutahan perangkat lunak dan project charter.  Project Charter tahap I DESKRIPSI Use-case ini mendeskripsikan proses aktor menghapus kegiatan KONDISI AWAL Setelah use case lihat kegiatan URUTAN AKTIFITAS NORMAL AKSI AKTOR RESPON SISTEM 1. Memilih kegiatan yang akan dihapus datanya 2. Menampilkan kegiatan yang dipilih aktor 3. Memilih button Hapus Kegiatan 4. Menghapus data kegiatan dari database 49 AKTIFITAS LAIN Alt-step 3: Aktor klik button Batal, untuk membatalkan KESIMPULAN Use case ini digunakan untuk menghapus data kegiatan KONDISI AKHIR Sistem menghapus data kegiatan BATASAN IMPLEMENTASI DAN SPESIFIKASI  Sistem hanya menampilkan pilihan hapus kepada admin I. Narasi Use Menambah Laporan Keuangan Author : Ria Riska Date : 26112013 Actor : Admin, Donatur Versi : 1.00 NAMA USE CASE Menambah Laporan Keuangan PRIORITAS Sedang SUMBER  Template spesifikasi kebutahan perangkat lunak dan project charter.  Project Charter tahap I DESKRIPSI Use-case ini mendeskripsikan proses aktor memasukkan data Laporan Keuangan kedalam sistem. KONDISI AWAL - URUTAN AKTIFITAS NORMAL AKSI AKTOR RESPON SISTEM 1. Menampilkan halaman Kegiatatan 2. Memilih menu edit halaman 3. Memilih sub menu Tambah Laporan keuangan 4. Menampilkan halaman Tambah Laporan keuangan 5. Memasukkan data Laporan keuangan ke dalam form yang disediakan 50 6. Klik button Simpan 7. Sistem akan menyimpan data laporan keuangan ke database AKTIFITAS LAIN Alt-step 5: Aktor klik button Batal, untuk membatalkan KESIMPULAN Use case ini digunakan untuk memasukkan data laporan keuangan KONDISI AKHIR Data laporan keuangan tersimpan di database BATASAN IMPLEMENTASI DAN SPESIFIKASI  Sistem hanya menampilkan form masukkan data laporan keuangan ke admin J. Narasi Use Case Melihat Laporan keuangan Author : Ria Riska Date : 26112013 Actor : Admin, Donatur Versi : 1.00 NAMA USE CASE Melihat Laporan keuangan PRIORITAS Sedang SUMBER  Template spesifikasi kebutahan perangkat lunak dan project charter.  Project Charter tahap I DESKRIPSI Use-case ini mendeskripsikan proses aktor melihat data laporan keuangan yang tesimpan di dalam sistem. KONDISI AWAL - URUTAN AKTIFITAS NORMAL AKSI AKTOR RESPON SISTEM 1. Menampilkan halaman Kegiatan 2. Memilih menu arsip kegiatan berdasarkan tanggal kegiatan 3. Memilih sub menu lihat laporan keuangan 51 4. Menampilkan halaman laporan keuangan 5. Memasukkan kriteria pencarian atau kata kunci, atau jika ingin melihat seluruh donatur, tidak usah mengisi field pencarian 6. Klik button Lihat 7. Sistem menampilkan hasil pencarian data laporan keuangan AKTIFITAS LAIN Alt-step 5: Aktor klik button Batal, untuk membatalkan KESIMPULAN Use case ini digunakan untuk mencari data donatur KONDISI AKHIR Sistem menghasilkan data yang dicari BATASAN IMPLEMENTASI DAN SPESIFIKASI  Sistem hanya menampilkan data donatur K. Narasi Use Case Mengubah Laporan keuangan Author : Ria Riska Date : 26112013 Actor : Admin Versi : 1.00 NAMA USE CASE Mengubah Laporan keuangan PRIORITAS Sedang SUMBER  Template spesifikasi kebutahan perangkat lunak dan project charter.  Project Charter tahap I DESKRIPSI Use-case ini mendeskripsikan proses aktor mengubah data laporan keuangan KONDISI AWAL Setelah use case lihat data laporan keuangan URUTAN AKSI AKTOR RESPON SISTEM 52 AKTIFITAS NORMAL 1. Memilih data laporan keuangan yang akan diubah datanya 5. Sistem akan menampilkan form ubah data laporan keuangan 6. Mengisi data yang ingin diubah 7. Menyimpan perubahan data laporan keuangan AKTIFITAS LAIN Alt-step 3: Aktor klik button Batal, untuk membatalkan KESIMPULAN Use case ini digunakan untuk mengubah data laporan keuangan KONDISI AKHIR Sistem menyimpan perubahan data laporan keuangan BATASAN IMPLEMENTASI DAN SPESIFIKASI  Sistem hanya menampilkan form ubah data laporan keuangan kepada admin L. Narasi Use Case Menghapus Laporan keuangan Author : Ria Riska Date : 26112013 Actor : Admin Versi : 1.00 NAMA USE CASE Menghapus Laporan keuangan PRIORITAS Sedang SUMBER  Template spesifikasi kebutahan perangkat lunak dan project charter.  Project Charter tahap I DESKRIPSI Use-case ini mendeskripsikan proses aktor menghapus laporan keuangan KONDISI AWAL Setelah use case lihat data laporan keuangan 53 URUTAN AKTIFITAS NORMAL AKSI AKTOR RESPON SISTEM 5. Memilih data laporan keuangan yang akan dihapus datanya 6. Menampilkan laporan keuangan yang dipilih aktor 7. Memilih button Hapus laporan keuangan 8. Menghapus data laporan keuangan dari database AKTIFITAS LAIN Alt-step 3: Aktor klik button Batal, untuk membatalkan KESIMPULAN Use case ini digunakan untuk menghapus data donatur KONDISI AKHIR Sistem menghapus data donatur BATASAN IMPLEMENTASI DAN SPESIFIKASI  Sistem hanya menampilkan pilihan hapus kepada admin 3.4.Fase Desain Logikal Logical Design 3.4.1. Diagram Aktifitas A. Diagram Aktifitas untuk proses Login 54 Menampilkan halaman Login User System Memasukkan username dan password Click button LOGIN Menampilkan halaman Home Admin salah Masuk ke halaman Login Mengecek username dan password yang dimasukkan benar Gambar 3. 2 Diagram aktifitas proses login B. Diagram Aktifitas untuk proses memasukkan data anggota 55 Menampilkan halaman Home User System Memilih menu Tambah Anggota Menampilkan form penambahan anggota Memasukkan data-data yang ditambahkan Click button Simpan Melakukan penyimpanan data ke database Gambar 3. 3 Diagram aktifitas tambah anggota C. Diagram Aktifitas untuk proses melihat data anggota Menampilkan menu hasil pencarian User System Memilih menu Lihat Data Anggota Menampilkan halaman Data Anggota Gambar 3. 4 Diagram aktifitas lihat data anggota D. Diagram Aktifitas untuk proses mengubah data anggota 56 Menampilkan hasil pencarian anggota yang ingin diubah User System Memilih menu ubah data anggota Menampilkan halaman form ubah data anggota Mengisi data yang ingin diubah Click buton Ubah Anggota Menyimpan perubahan data anggota Gambar 3. 5 Diagram aktifitas ubah data anggota E. Diagram Aktifitas untuk proses menghapus data anggota Menampilkan hasil pencarian anggota yang ingin dihapus User System Memilih button hapus anggota Menghapus data anggota dari database Gambar 3. 6 Diagram aktifitas hapus data anggota 57 F. Diagram Aktifitas untuk proses menambah kegiatan Menampilkan halaman Kegiatan User System Memilih menu Tambah Kegiatan Menampilkan form penambahan kegiatan Memasukkan data- data yang ditambahkan Click button Simpan Melakukan penyimpanan data ke database Gambar 3. 7 Diagram aktifitas tambah kegiatan G. Diagram Aktifitas untuk proses melihat kegiatan Menampilkan menu hasil pencarian User System Memilih menu Lihat Kegiatan Menampilkan halaman Data Kegiatan Gambar 3. 8 Diagram aktifitas lihat kegiatan H. Diagram Aktifitas untuk proses mengubah kegiatan 58 Menampilkan hasil pencarian kegiatan yang ingin diubah User System Memilih menu ubah data kegiatan Menampilkan halaman form ubah data kegiatan Mengisi data yang ingin diubah Click buton Ubah kegiatan Menyimpan perubahan data kegiatan Gambar 3. 9 Diagram aktifitas ubah kegiatan I. Diagram Aktifitas untuk proses menghapus kegiatan Menampilkan hasil pencarian kegiatan yang ingin dihapus User System Memilih button hapus kegiatan Menghapus data kegiatan dari database Gambar 3. 10 Diagram aktifitas hapus kegiatan J. Diagram Aktifitas untuk proses menambah laporan keuangan 59 Menampilkan halaman Kegiatan User System Memilih menu Tambah laporan keuangan Menampilkan form penambahan laporan keuangan Memasukkan data-data yang ditambahkan Click button Simpan Melakukan penyimpanan data ke database Gambar 3. 11 Diagram aktifitas tambah laporan keuangan K. Diagram Aktifitas untuk proses melihat laporan keuangan Menampilkan menu hasil pencarian User System Memilih menu Lihat Laporan keuangan Menampilkan halaman Data laporan keuangan Gambar 3. 12 Diagram aktifitas lihat laporan keuangan L. Diagram Aktifitas untuk proses mengubah laporan keuangan 60 Menampilkan hasil pencarian lap keuangan yang ingin diubah User System Memilih menu ubah data laporan keuangan Menampilkan halaman form ubah data lap keuangan Mengisi data yang ingin diubah Click buton Ubah Menyimpan perubahan data laporan keuangan Gambar 3. 13 Diagram aktifitas ubah laporan keuangan M. Diagram Aktifitas untuk proses menghapus laporan keuangan Menampilkan hasil pencarian lap keuangan yang ingin dihapus User System Memilih button hapusr Menghapus data lap keuangan dari database Gambar 3. 14 Diagram hapus laporan keuangan 61 3.4.2. Desain Logikal Data 3.4.2.1. Object Relational Diagram Pengurus Posisi Periode Jenis Anggota_SA Sekolah Status_keaktifitan Anggota_FA Sekolah Status_keaktifitan PengajarTetap HariAjar Materi Id_Materi Nama_Materi PengajarRelawan Asal_PR AnggotaGaruluku Nama_ortu_ayah Nama_ortu_ibu Pekerjaan_ayah Pekerjaan_ibu Hobi Tahun_bergabung Kegiatan Id_Kegiatan Nama Kegiatan Tanggal Waktu Tempat Deskripsi LapKeuangan Id_Lap TotalPemasukan TotalPengeluaran DetailPengeluaran DetailPengeluaran Id_DP Keperluan Volume HargaSatuan HargaTotal Donatur Id_Donatur Nama_Donatur Dari No_tlp Tanggal_beri Jumlah People ID Nama TTL Umur Alamat No_Tlp Menyelenggarakan 1 . . . 1 . . . punya punya sponsor 1 . . . 1 . . . 1 1 1 1 ajar ajar 1 . . . 1 . . . 1 1 Gambar 3. 15 Object Relational Diagram 62 People dapat dikategorikan ke dalam 2 jenis, yaitu sebagai Pengajar Relawan dan Anggota Garuluku. Tiap anggota dari People harus milik salah satu dari setiap sub kelasnya, yaitu PengajarRelawan atau AnggotaGaruluku, sehingga merupakan partition inheritance . Anggota Garuluku dapat dikategorikan ke dalam 3 jenis anggota, yaitu sebagai : Pengurus, Anggota Sanggar Anak, Anggota Forum Anak. Seorang anggota forum anak bisa juga merupakan seorang pengurus, sehingga merupakan union inheritance . Ada pengurus yang dapat dikategorikan lebih detail sebagai seorang pengajar tetap di Balai Anak Garuluku. Sehingga pengajar tetap merupakan warisan dari Pengurus. Materi diajarkan oleh pengajar tetap dan pengajar relawan. Untuk mengimplementasikan relasi ini, menggunakan fitur oracle REF, untuk melakukan referensi dari satu objek ke objek lainnya. Setiap laporan keuangan memiliki detail pengeluarannya lebih dari satu, setiap kegiatan juga memiliki donatur lebih dari satu, relasi ini akan menggunakan fitur nested table. Setiap kegiatan memiliki hanya satu laporan kegiatan begitupun sebaliknya, untuk mengimplementasikan relasi ini, menggunakan fitur oracle REF. 63 Relasi antara tabel anggota garuluku dan tabel kegiatan adalah many to many sehingga muncul tabel baru yaitu panitia selenggara yang menyimpan id anggota dan id kegiatan. Design objek di sini hanya terdiri dari atribut saja, dan tidak menggunakan method, karena method bersifat optional dalam tipe objek lihat halaman 28. 3.5.Fase Analisis Keputusan Decision Analysis Phase Dari hasil analisa sistem di atas, keputusan yang diambil adalah membuat sistem baru yang dapat menggantikan sistem yang lama. Sistem yang baru akan dibuat sendiri oleh penulis. Sistem yang baru akan berbasis web. 3.6.Fase Desain Fisikal dan Integrasi Physical Design and Integration 3.6.1. Desain User Interface a. User interface form input data anggota sanggar anak garuluku dan data anggota forum anak. 64 Gambar 3. 16 User interface tambah data anggota forum anak dan anggota sanggar anak. b. User interface form input data pengurus HEADER ID Anggota : Nama Anggota : TTTL : Umur : Nama ayah : Nama ibu : Pekerjaan ayah : Pekerjaan ibu : Alamat : No Telepon : Hobi : Tahun bergabung: Sekolah : Status Keaktifan: Tambah 65 Gambar 3. 17 User interface tambah data pengurus c. User interface form tambah data pengajar tetap Gambar 3. 18 User interface tambah data pengajar tetap HEADER ID Anggota : Nama Anggota : TTTL : Umur : Nama ayah : Nama ibu : Pekerjaan ayah : Pekerjaan ibu : Alamat : No Telepon : Hobi : Tahun bergabung: Posisi : Periode : Tambah HEADER ID Anggota : Hari Ajar : Tambah 66 d. User interface form tambah data pengajar relawan Gambar 3. 19 User interface tambah data pengajar relawan e. User interface form tambah data materi Gambar 3. 20 User interface form tambah data materi f. User interface form input data kegiatan dan data donatur HEADER ID pengajar Relawan: Nama : TTL : Umur : Jenis Kelamin : Umur : Alamat : No HP : Asal : Tambah HEADER ID Materi : Nama Materi : ID pengajar Tetap : ID pengajar Relawan: Tambah 67 Gambar 3. 21 User interface form tambah data kegiatan g. User interface form input data laporan keuangan Gambar 3. 22 User interface form tambah data laporan keuangan HEADER ID kegiatan : Nama kegiatan : Tanggal : Waktu : Tempat : Id Lap Keuangan : Deskripsi : Tambah Data Donatur Id Donatur Nama Donatur Dari No tlp Tanggal beri jumlah HEADER ID Lap Keuangan : Total Pemasukan : Total Pengeluaran : Tambah Detail Pengeluaran ID Keperluan Volume Harga satuan Harga total 68 h. User Interface input data peyelenggara kegiatan Gambar 3. 23 User interface form tambah data penyelenggara kegiatan i. User interface form Login Gambar 3. 24 User interface form login Login Username : Password : Login HEADER ID Anggota : ID Kegiatan : Tambah 69 j. User interface menampilkan data anggota forum anak dan sanggar anak Gambar 3. 25User interface tampil data anggota sanggar anak dan forum anak Header Nama : Diana Prafitasari TTL : Gunung Kidul, 9 april 1997 Jenis Kelamin : Perempuan Umur : 16 tahun Nama Ayah : Wasidi Nama Ibu : Suratmi Pekerjaan Ayah : Petani Pekerjaan Ibu : Petani Alamat : Dusun Ngasem RT 01 RW 11 Kemadang Tanjungsari Gunung Kidul No HP : 081904007301 Hobi : Menggambar Tahun bergabung : 2010 Sekolah : SMA Kemadang Status Keaktifan : Aktif 70 k. User interface untuk menampilkan data pengurus: Gambar 3. 26 User interface tampil data pengurus l. User interface menampilkan data kegiatan Header Nama : Diana Prafitasari TTL : Gunung Kidul, 9 april 1997 Jenis Kelamin : Perempuan Umur : 16 tahun Nama Ayah : Wasidi Nama Ibu : Suratmi Pekerjaan Ayah : Petani Pekerjaan Ibu : Petani Alamat : Dusun Ngasem RT 01 RW 11 Kemadang Tanjungsari Gunung Kidul No HP : 081904007301 Hobi : Menggambar Tahun bergabung : 2010 Posisi : SMA Periode : 2014-2016 Jenis : Forum Anak 71 Gambar 3. 27 User interface tampil data kegiatan Header Nama Kegiatan : Ulang Tahun Garuluku Tanggal : 10 november 2013 Waktu : 18.00-selesai Tempat : Halaman Pondok Garuluku Penyelenggara : Sanggar Anak dan Forum Anak Id Lap Keuangan: LP01 Deskripsi : Menginjak keberadaannya yang ke 2 tahun, komunitas Garuluku dalam memberi sumbangsih kepada masyarakat desa kemadang melalui berbagai kegiatan pendampingan, oleh karena itu untuk memperingati lahirnya komunitas Garuluku yang jatuh pada bulan oktober, maka menyelenggarakan rangkaian kegiatan hari ulang tahun serta peringatan sumpah pemuda pada tahun 2013 ini, diantaranya pensi, napak tilas program garuluku, pemberian bantuan sembako kepada keluarga kurang mampu, tetrikal sumpah pemuda, dan lomba kreatifitas pemanfaatan sampah antar kampung se desa kemadang. Data Donatur: Id Donatur Nama Dari No telepon Tanggal Beri Jumlah D01 Murhadi Yogyakarta 08134567 1 novemb er 2013 100000 D02 Indah Dusun Pucung 081234567 1 novemb er 2013 100000 72 m. User interface menampilkan data laporan keuangan Gambar 3. 28 User interface tampil data laporan keuangan n. User interface menampilkan data penyelenggara kegiatan Gambar 3. 29 User interface tampil data penyelenggara kegiatan Header Id laporan : LP01 Total Pemasukkan : 1000000 Total Pengeluaran : 1000000 Detail Pengeluaran: Id Keperluan Volume Harga Satuan Harga Total 1 Konsumsi 100 10000 1000000 2 Atribut 100 100 100000 Header ID Anggota Nama Anggota Id Kegiatan Nama Kegiatan FA01 Amri Raez KG01 Gelar Budaya FA01 Amri Raez KG02 Ulang Tahun FORANDAKA 17 73 BAB IV IMPLEMENTASI SISTEM Implementasi sistem merupakan suatu tahap pengkodean dari hasil tahap perancangan. Pada bab ini dibahas mengenai implementasi dari penerapan Basis Data Relational Objek pada Sistem Informasi LSM Garuluku-FORANDAKA. 4.1. Lingkungan Implementasi Pada tahap implementasi ini didefinisikan lingkungan perangkat yang mendukung dalam proses penerapan konsep Basis Data Relasional Objek dalam Sistem Informasi LSM Garuluku-FORANDAKA. Lingkungan- lingkungan perangkat yang mendukung antara lain : lingkungan perangkat lunak dan lingkungan perangkat keras. 4.1.1. Lingkungan perangkat lunak Perangkat lunak yang digunakan dalam penerapan Basis Data Relasional Objek dalam Sistem Informasi LSM Garuluku-FORANDAKA ini adalah sebagai berikut: a. Sistem Operasi : Windows 7 64 bit. b. Pengelolaan basis data : Oracle Database 10g Enterprise Edition Release 10.2.0.3.0. c. Bahasa pemprograman : JSP Java Servlet Page. 74 4.1.2. Lingkungan perangkat keras Perangkat keras yang digunakan dalam penerapan Basis Data Relasional Objek dalam Sistem Informasi LSM Garuluku-FORANDAKA ini adalah sebagai berikut: a. Processor Intel Core i3 b. Memori 2 GB c. Hard disk 500 GB d. Monitor NVIDIA 2 GB e. Alat masukan input berupa keyboard dan mouse. f. Alat keluaran berupa monitor. 4.2. Implementasi Basis Data Data Definition Language DDL Berikut merupakan implementasi basis data dari sebuah penerapan Basis Data Relasional Objek pada Sistem Informasi LSM Garuluku-FORANDAKA. Langkah pertama yang harus dilakukan adalah melakukan koneksi basis data oracle. Pemakai melakukan koneksi ke Oracle melalui SQL-plus atau Oracle SQL Developer. Dalam hal ini penulis melakukan koneksi ke oracle menggunakan Oracle SQL Developer. Pada gambar 4.1 koneksi ke Oracle menggunakan Connection Name : Skripsi, Username : system, password : sys, hostname : localhost, Port : 1521, SID : orcl. Dengan demikian pemakai sudah terkoneksi dengan basis data oracle. 75 Gambar 4. 1 Implementasi koneksi ke basis data oracle 4.2.1. Pendefinisian tipe objek object type Dalam membuat tipe objek pada sistem ini, tipe objek hanya terdiri dari atribut saja, dan tidak menggunakan method, karena method bersifat optional dalam tipe objek lihat halaman 28. Untuk membuat suatu tipe objek, menggunakan pernyataan “CREATE OR REPLACE” TYPE untuk melengkapi tipe objek yang belum lengkap atau untuk menggantinya dengan yang sudah lengkap. Pernyataan “AS OBJECT” digunakan setelah membuat tipe objek. Dalam mendefinisikan suatu tipe objek harus berurutan karena bersifat dependents saling ketergantungan. Dalam hal ini dapat dilihat pada tipe objek People_T didefinisikan terlebih dahulu, lalu tipe objek PengajarRelawan_T dan tipe objek AnggotaGaruluku_T, lalu dilanjutkan dengan membuat tipe objek PengajarTetap_T. Pada bagian ini menggunakan fitur Relasional Objek yaitu Hubungan Pewarisan Partition 76 menggunakan ‘Under’ Partition Inheritance Relationship Using Under. lalu dilanjutkan dengan mendefinisikan tipe objek Pengurus_T, AnggotaFA_T, AnggotaSA_T, lalu dilanjutkan dengan membuat tipe objek PengajarTetap_T. Pada bagian ini menggunakan fitur Relasional Objek yaitu Hubungan Pewarisan Union menggunakan ‘Under’ Union Inheritance Relationship Using Under . Dilanjutkan dengan membuat tipe objek tipe objek Materi_T yang adalah relasi asosiasi one to many dengan objek PengajarTetap dan PengajarRelawan, disini menggunakan fitur Relasional Objek yaitu ”REF”. Selain itu juga mendefinisikan tipe objek untuk fitur Relasional Objek yaitu collection type menggunakan nested table, yang mana tipe objek DetailPengeluaran_T harus didefinisikan terlebih dahulu, untuk membuat tabel objek ini, gunakan “create type” diikuti dengan nama dari tabel objek. Objek tabel ini akan digunakan pada satu kolom tabel. Ketika tipe tabel muncul sebagai tipe dari kolom pada tabel, atau sebagai atribut yang didasari oleh tipe objek, Oracle akan menyimpan semua data nested table pada satu tabel, yang berhubungan dengan tipe objek. Setelah itu mendefinisikan tipe objek LapKeuangan_T, yang salah satu atributnya terdapat atribut DetailPengeluaran yang menyimpan data nested table. Lalu setelah itu mendefinisikan tipe objek Donatur_T yang menggunakan fitur Basis Data Relational Objek yaitu collection type menggunakan nested table , dilanjutkan membuat tipe objek Kegiatan_T yang didalamnya terdapat atribut Donatur yang menyimpan data nested table, dan atribut 77 punya_LapKeuangan yan g mana menggunakan “REF” untuk menghubungkan dengan tipe objek Lap_Keuangan_T. 4.2.1.1 Tipe People Pernyataan di atas mendefinisikan suatu tipe objek bernama People_T untuk merepresentasikan suatu data seseorang. Tipe People_T mempunyai atribut Id, Nama, TTL, Umur, Alamat, NoTlp. Masing-masing atribut bertipe data VARCHAR2. CREATE OR REPLACE TYPE People_T AS OBJECT Id VARCHAR2 100, Nama VARCHAR2 200, TTL VARCHAR2 200, Umur VARCHAR2 50, Alamat VARCHAR2 200, NoTlp VARCHAR2 100, P_Type VARCHAR2 50, STATIC FUNCTION show_super people_obj in People_T RETURN VARCHAR2, MEMBER FUNCTION show RETURN VARCHAR2 NOT FINAL; --method implementation: CREATE TYPE BODY People_T AS STATIC FUNCTION show_super people_obj in People_T RETURN VARCHAR2 IS BEGIN RETURN Id: || people_obj.Id || , Nama: || people_obj.Nama || , TTL: || people_obj.TTL|| , Umur: || people_obj.Umur || , Alamat: || people_obj.Alamat|| , NoTlp: || people_obj.NoTlp || , P_Type: || people_obj.P_Type; END; MEMBER FUNCTION show RETURN VARCHAR2 IS BEGIN RETURN People_T.show_super SELF ; END; END; 78 Untuk mengimplementasikan bahwa sebuah objek mempunyai subtypes, objek harus didefinisikan sebagai “not final” pada akhir deklarasi tipe. Secara default , tanpa keyword “not final”, objek tipe akan diperlakukan sebagai objek final dan tidak ada subtypes yang dapat diperoleh dari tipe tersebut. Implementasi method show digunakan untuk menampilkan data. 4.2.1.2 Tipe PengajarRelawan_T Pernyataan di atas mendefinisikan suatu tipe objek bernama PengajarRelawan_T yang merupakan subtype dari People_T, yang di tandai dengan kata kunci “Under”. Tipe PengajarRelawan _T mempunyai atribut Asal_PR, bertipe data VARCHAR2. Terdapat method show untuk menampilkan data Pengajar Relawan. 4.2.1.3 Tipe AnggotaGaruluku_T CREATE OR REPLACE TYPE PengajarRelawan_T UNDER People_T Asal_PR VARCHAR2200, OVERRIDING MEMBER FUNCTION show RETURN VARCHAR2; CREATE TYPE BODY PengajarRelawan_T AS OVERRIDING MEMBER FUNCTION show RETURN VARCHAR2 IS BEGIN RETURN People_T.show_super SELF ||, Asal_PR: || Asal_PR; END; END; 79 Pernyataan di atas mendefinisikan suatu tipe objek bernama AnggotaGaruluku_T untuk merepresentasikan suatu data seorang Anggota Garuluku. Tipe AnggotaGaruluku_T mempunyai atribut NamaAyah, NamaIbu, PekerjaanAyah. PekerjaanIbu, Hobi, TahunBergabung. Masing- masing atribut bertipe data VARCHAR2. Untuk mengimplementasikan bahwa sebuah objek mempunyai subtypes, objek harus didefinisikan sebagai “not final” pada akhir deklarasi tipe. Secara default , tanpa keyword “not final”, objek tipe akan diperlakukan sebagai objek final dan tidak ada subtypes yang dapat diperoleh dari tipe tersebut. Terdapat method show untuk menampilkan data Anggota Garuluku. CREATE OR REPLACE TYPE AnggotaGaruluku_T UNDER People_T NamaAyah VARCHAR2 200, NamaIbu VARCHAR2 200, PekerjaanAyah VARCHAR2 200, PekerjaanIbu VARCHAR2 200, Hobi VARCHAR2 200, TahunBergabung VARCHAR2 20, OVERRIDING MEMBER FUNCTION show RETURN VARCHAR2 NOT FINAL; CREATE TYPE BODY AnggotaGaruluku_T AS OVERRIDING MEMBER FUNCTION show RETURN VARCHAR2 IS BEGIN RETURN People_T.show_super SELF || , NamaAyah: || NamaAyah || , NamaIbu: || NamaIbu || , PekerjaanAyah: || PekerjaanAyah || , PekerjaanIbu: || PekerjaanIbu || , Hobi: || Hobi || , TahunBergabung: || TahunBergabung ; END; END; 80 4.2.1.2. Tipe Pengurus_T Pernyataan di bawah ini mendefinisikan suatu tipe objek bernama Pengurus_T. Tipe data Pengurus_T untuk merepresentasikan suatu data seorang Anggota Garuluku yang merupakan pengurus Sanggar Anak Garuluku atau pengurus Forum Anak Desa Kemadang FORANDAKA. Tipe objek Pengurus_T merupakan warisan dari AnggotaGaruluku_T, oleh karena itu, menggunakan kata kunci “UNDER” pada pendefinisian tipe objek Pengurus_T. Tipe Objek Pengurus_T mempunyai atribut Posisi, Periode, Jenis. Masing-masing atribut bertipe data VARCHAR2. Tipe objek Pengurus_T mempunyai sub tipe yang bernama PengajarTetap_T, oleh karena itu tipe objek ini harus didefinisikan sebagai “not final” pada akhir deklarasi tipe. Secara default, tanpa keyword “not final ”, objek tipe akan diperlakukan sebagai objek final dan tidak ada subtypes yang dapat diperoleh dari tipe tersebut. 4.2.1.3. Tipe AnggotaFA_T Pernyataan di bawah ini mendefinisikan suatu tipe objek bernama AnggotaFA_T untuk merepresentasikan suatu data seorang Anggota CREATE OR REPLACE TYPE Pengurus_T UNDER AnggotaGaruluku_T Posisi VARCHAR2 200, Periode VARCHAR2 100, Jenis VARCHAR2 50 NOT FINAL 81 Garuluku yang merupakan anggota dari Forum Anak Desa Kemadang FORANDAKA. Tipe objek AnggotaFA_T merupakan pewarisan dari AnggotaGaruluku_T, sehingga menggunakan kata kunci “UNDER” pada pendefinisian tipe objek AnggotaFA_T. Kata kunci “UNDER” digunakan bersama statement “create type” untuk membuat subtype AnggotaFA_T dari supertype AnggotaGaruluku_T. AnggotaFA_T mempunyai atribut Sekolah, StatusKeaktifan. Masing-masing atribut bertipe data VARCHAR2. 4.2.1.4. Tipe AnggotaSA_T Pernyataan di bawah ini mendefinisikan suatu tipe objek bernama AnggotaSA_T untuk merepresentasikan suatu data seorang Anggota Garuluku yang merupakan anggota dari Sanggar Anak Garuluku. Tipe objek AnggotaSA_T merupakan pewarisan dari AnggotaGaruluku_T , sehingga menggunakan queri “UNDER” pada pendefinisian tipe objek AnggotaSA_T. Kata kunci “UNDER” digunakan bersama statement “create type” untuk membuat subtype AnggotaSA_T dari supertype AnggotaGaruluku_T. AnggotaSA_T mempunyai atribut CREATE OR REPLACE TYPE AnggotaFA_T UNDER AnggotaGaruluku_T Sekolah VARCHAR2 200, StatusKeaktifan VARCHAR2 100 82 Sekolah, StatusKeaktifan. Masing-masing atribut bertipe data VARCHAR2. 4.2.1.5. Tipe PengajarTetap_T Pernyataan di bawah ini mendefinisikan suatu tipe objek bernama PengajarTetap_T untuk merepresentasikan suatu data seorang Anggota Garuluku yang merupakan pengurus Sanggar Anak Garuluku atau pengurus Forum Anak Desa Kemadang FORANDAKA, dan merupakan Pengajar tetap untuk anak-anak di desa Kemadang. Tipe objek PengajarTetap_T adalah pewarisan dari Pengurus_T, sehingga menggunakan queri “UNDER” pada pendefinisian tipe objek PengajarTetap_T. Kata kunci “UNDER” digunakan bersama statement “create type” untuk membuat subtype PengajarTetap_T dari supertype Pengurus_T. Tipe Objek PengajarTetap_T mempunyai atribut HariAjar yang bertipe data VARCHAR2. 4.2.1.6. Tipe Materi_T CREATE OR REPLACE TYPE AnggotaSA_T UNDER AnggotaGaruluku_T Sekolah VARCHAR2 200, StatusKeaktifan VARCHAR2 100 CREATE OR REPLACE TYPE PengajarTetap_T UNDER Pengurus_T HariAjar VARCHAR2 500 83 Pernyataan di bawah ini mendefinisikan suatu tipe objek bernama Materi_T. Tipe objek Materi_T untuk merepresentasikan suatu data materi pelajaran apa saja yang diajarkan kepada anggota Sanggar Anak Garuluku dan anggota Forum Anak Desa Kemadang FORANDAKA. Tipe objek ini mempunyai hubungan asosiasi One to Many dengan PengajarTetap_T dan mempunyai hubungan asosiasi One to Many dengan PengajarRelawan_T, untuk mengimplementasikan hubungan asosiasi ini menggunakan fitur BDRO: Object References, menggunakan kata kunci “REF”. Tipe Objek PengajarRelawan_T mempunyai atribut Id_Materi, Nama_Materi, yang bertipe data VARCHAR2, dan atribut PengajarT yang ditulis dengan diikuti kata “REF PengajarTetap_T” untuk menghubungkan dengan objek PengajarTetap_T, dan atribut PengajarR yang ditulis dengan diikuti kata “REF PengajarRelawan_T” untuk menghubungkan dengan objek PengajarRelawan_T 4.2.1.7. Tipe DetailPengeluaran_T dan Tipe DetailPengeluaran_Table_T Pernyataan di bawah ini terlebih dahulu mendefinisikan suatu tipe objek bernama DetailPengeluaran_T. Tipe objek DetailPengeluaran_T untuk CREATE OR REPLACE TYPE Materi_T AS OBJECT Id_Materi VARCHAR220, Nama_Materi VARCHAR2200, PengajarT REF PengajarTetap_T, PengajarR REF PengajarRelawan_R 84 merepresentasikan data detail pengeluaran apa saja yang ada dalam laporan keuangan. Lalu diikuti dengan mendefinisikan tabel objek DetailPengeluaran_Table_T sebagai tabel untuk tipe objek DetailPengeluaran_T. Tipe Objek DetailPengeluaran_T mempunyai atribut Id_DP, Keperluan, Volume, yang bertipe data VARCHAR2, dan atribut HargaSatuan dan HargaTotal, yang bertipe data NUMBER. 4.2.1.8. Tipe LapKeuangan_T Pernyataan di bawah ini mendefinisikan suatu tipe objek bernama LapKeuangan_T. Tipe objek LapKeuangan_T untuk merepresentasikan suatu data laporan keuangan dari suatu kegiatan. Di dalam tipe objek LapKeuangan_T terdapat atribut objek DetailPengeluaran yang berisi data nested table bertipe DetailPengeluaran_Table_T. Tipe Objek LapKeuangan_T mempunyai atribut Id_Lap yang bertipe data VARCHAR2, TotalPemasukan dan TotalPengeluaran yang bertipe NUMBER. CREATE OR REPLACE TYPE DetailPengeluaran_T AS OBJECT Id_DP VARCHAR2 10, Keperluan VARCHAR2100, Volume VARCHAR250, HargaSatuan NUMBER, HargaTotal NUMBER; CREATE OR REPLACE TYPE DetailPengeluaran_Table_T AS TABLE OF DetailPengeluaran_T; 85 4.2.1.9. Tipe Donatur_T Pernyataan di bawah ini terlebih dahulu mendefinisikan suatu tipe objek bernama Donatur_T. Tipe data Donatur_T untuk merepresentasikan data donatur yang ikut berpartisipasi dalam suatu kegiatan. Lalu diikuti dengan mendefinisikan tabel objek Donatur_Table_T sebagai tabel untuk tipe objek Donatur_T. Tipe Objek Donatur_T mempunyai atribut Id_Donatur, Nama_Donatur, Dari, Alamat_d, No_tlp, yang masing-masing bertipe data VARCHAR2, lalu atribut Tanggal_beri yang bertipe data DATE, dan atribut Jumlah yang bertipe data NUMBER. 4.2.1.10. Tipe Kegiatan_T CREATE OR REPLACE TYPE LapKeuangan_T AS OBJECT Id_Lap VARCHAR2 10, TotalPemasukan NUMBER, TotalPengeluaran NUMBER, DetailPengeluaran DetailPengeluaran_Table_T; CREATE OR REPLACE TYPE DONATUR_T AS OBJECT Id_Donatur VARCHAR2 10, Nama_Donatur VARCHAR2 100, Dari VARCHAR2 100, Alamat_d VARCHAR2 100, No_tlp VARCHAR2 20, Tanggal_beri DATE, Jumlah NUMBER; CREATE OR REPLACE TYPE Donatur_Table_T AS TABLE OF Donatur_T; 86 Pernyataan di bawah ini mendefinisikan suatu tipe objek bernama Kegiatan_T. Tipe objek Kegiatan_T untuk merepresentasikan data suatu kegiatan. Didalam tipe objek Kegiatan_T terdapat atribut objek Donatur yang berisi data nested table yang bertipe Donatur_Table_T. Tipe Objek LapKeuangan_T juga mempunyai atribut Id_Kegiatan, Nama_Kegiatan, Waktu, Tempat, Deskripsi yang bertipe data VARCHAR2, lalu atribut Tanggal yang bertipe DATE. Lalu terdapat atribut punya_LapKeuangan yang merupakan hubungan asosiasi one to one, sehingga menggunakan kata kunci REF LapKeuangan_T. 4.2.2. Pembuatan tabel objek object table Sebuah tabel objek adalah tabel database yang dibuat berdasarkan tipe objek. Masing-masing baris dalam tabel merepresentasikan nilai dari objeknya. Membuat suatu objek tidak sama dengan membuat suatu tabel objek. Membuat tipe objek hanya mendefinisikan suatu struktur logical, tidak membuat suatu tempat penyimpanan. Data-data yang ada disimpan dalam suatu tabel objek object table. Tabel objek menyimpan baris-baris dari satu jenis instance objek object instance dari tipe yang sama yang CREATE OR REPLACE TYPE Kegiatan_T AS OBJECT Id_Kegiatan VARCHAR2 10, Nama_Kegiatan VARCHAR2 100, Tanggal DATE, Waktu VARCHAR2 50, Tempat VARCHAR2 100, Deskripsi VARCHAR2 4000, Donatur Donatur_Table_T, punya_LapKeuangan REF LapKeuangan_T 87 dideklarasikan sebagai sebuah tabel. Di dalam tabel objek data disimpan dan dapat diambil kembali di dalam struktur yang didefinisikan oleh tipe tabel. 4.2.2.1. Tabel People Pernyataan di bawah ini mendefinisikan suatu tabel objek bernama People untuk menyimpan objek dari tipe People_T, AnggotaGaruluku_T, dan PengajarRelawan_T. Tabel People membuat sebuah kolom untuk setiap atribut dari tipe People_T. Atribut Id sebagai primary key dan tidak boleh null. 4.2.2.2. Tabel Pengurus Pernyataan di bawah ini mendefinisikan suatu tabel objek bernama Pengurus untuk menyimpan objek dari tipe Pengurus_T. Tabel Pengurus membuat sebuah kolom untuk setiap atribut dari tipe Pengurus_T. Atribut Id_AG sebagai primary key dan tidak boleh null. CREATE TABLE People OF People_T id NOT NULL, P_Type NOT NULL CHECK P_Type in AnggotaGaruluku,PengajarRelawan, PRIMARY KEY id; CREATE TABLE Pengurus OF Pengurus_T Id_AG NOT NULL, PRIMARY KEY Id_AG; 88 4.2.2.3. Tabel AnggotaFA Pernyataan di bawah ini mendefinisikan suatu tabel objek bernama AnggotaFA untuk menyimpan objek dari tipe AnggotaFA_T. Tabel AnggotaFA membuat sebuah kolom untuk setiap atribut dari tipe AnggotaFA_T. Atribut Id_AG sebagai primary key dan tidak boleh null. 4.2.2.4. Tabel AnggotaSA Pernyataan di bawah ini mendefinisikan suatu tabel objek bernama AnggotaSA untuk menyimpan objek dari tipe AnggotaSA_T. Tabel AnggotaSA membuat sebuah kolom untuk setiap atribut dari tipe AnggotaSA_T. Atribut Id_AG sebagai primary key dan tidak boleh null. 4.2.2.5. Tabel PengajarTetap CREATE TABLE AnggotaFA OF AnggotaFA_T Id_AG NOT NULL, PRIMARY KEY Id_AG; CREATE TABLE AnggotaSA OF AnggotaSA_T Id_AG NOT NULL, PRIMARY KEY Id_AG; 89 Pernyataan di bawah ini mendefinisikan suatu tabel objek bernama PengajarTetap untuk menyimpan objek dari tipe PengajarTetap_T. Tabel PengajarTetap membuat sebuah kolom untuk setiap atribut dari tipe PengajarTetap_T. Atribut Id_AG sebagai primary key dan tidak boleh null. 4.2.2.6. Tabel Materi Pernyataan di bawah ini mendefinisikan suatu tabel objek bernama Materi untuk menyimpan objek dari tipe Materi_T. Tabel Materi membuat sebuah kolom untuk setiap atribut dari tipe Materi_T. Atribut Id_Materi sebagai primary key dan tidak boleh null. 4.2.2.7. Tabel LapKeuangan Pernyataan di bawah ini mendefinisikan suatu tabel objek bernama LapKeuangan untuk menyimpan objek dari tipe LapKeuangan_T. CREATE TABLE PengajarTetap OF PengajarTetap_T Id_AG NOT NULL, PRIMARY KEY Id_AG; CREATE TABLE Materi OF Materi_T Id_Materi NOT NULL, PRIMARY KEY Id_Materi; 90 Tabel LapKeuangan membuat sebuah kolom untuk setiap atribut dari tipe LapKeuangan_T. Baris pertama mengindikasikan setiap baris dari tabel adalah suatu objek LapKeungan_T. Atribut Id_Lap sebagai primary key dan tidak boleh null. Setiap kali membuat tabel dengan atribut kolom yang tipenya adalah nested table, maka harus memasukkan klausa penyimpanan nested table , “NESTED TABLE skema kolom tabel objek, bernama DetailPengeluaran STORE AS ” diikuti oleh nama tabel penyimpanan yang terpisah, bernama DetailPengeluaran_Tab. Pernyataan STORE AS juga mengijinkan untuk mengalokasikan ruang penyimpanan untuk tabel penyimpanan. 4.2.2.8. Tabel Kegiatan Pernyataan di bawah ini mendefinisikan suatu tabel objek bernama Kegiatan untuk menyimpan objek dari tipe Kegiatan_T. Baris pertama mengindikasikan setiap baris dari tabel adalah suatu objek Kegiatan_T CREATE TABLE LapKeuangan OF LapKeuangan_T Id_Lap NOT NULL, PRIMARY KEY Id_Lap NESTED TABLE DetailPengeluaran STORE AS DetailPengeluaran_Tab; CREATE TABLE Kegiatan OF Kegiatan_T Id_Kegiatan NOT NULL, PRIMARY KEY Id_Kegiatan NESTED TABLE Donatur STORE AS Donatur_Tab; 91 Tabel Kegiatan membuat sebuah kolom untuk setiap atribut dari tipe Kegiatan_T. Baris pertama mengindikasikan setiap baris dari tabel adalah suatu objek Kegiatan_T. Atribut Id_Kegiatan sebagai primary key dan tidak boleh null. Setiap kali membuat tabel dengan atribut kolom yang tipenya adalah nested table, maka harus memasukkan klausa penyimpanan nested table , “NESTED TABLE skema kolom tabel objek, bernama : Donatur STORE AS ” diikuti oleh nama tabel penyimpanan tersendiri, bernama : Donatur_Tab. Pernyataan STORE AS juga mengijinkan untuk mengalokasikan ruang penyimpanan untuk tabel penyimpanan 4.2.2.9. Tabel PanitiaSelenggara Pernyataan di bawah ini mendefinisikan suatu tabel objek bernama PanitiaSelenggara, yang muncul karena adanya hubungan asosiasi relasi many to many antara AnggotaGaruluku dan Kegiatan. Terdapat dua atribut yaitu Id dan Id_Kegiatan yang keduanya sebagai primary key untuk tabel, juga merupakan foreign key. “FOREIGN KEY Id REFERENCES People Id ON DELETE CASCADE ”, menspesifikasikan CREATE TABLE PanitiaSelenggara Id VARCHAR2 20 NOT NULL, Id_Kegiatan VARCHAR2 20 NOT NULL, PRIMARY KEY Id, Id_Kegiatan, FOREIGN KEY Id REFERENCES People Id ON DELETE CASCADE, FOREIGN KEY Id_Kegiatan REFERENCES Kegiatan Id_Kegiatan ON DELETE CASCADE ; 92 sebuah referential contraint pada kolom Id, yang mengijinkan untuk referensi yang menunjuk hanya ke objek baris dalam tabel objek AnggotaGaruluku. “FOREIGN KEY Id_Kegiatan REFERENCES Kegiatan Id_Kegiatan ON DELETE CASCADE ”, menspesifikasikan sebuah referential contraint pada kolom Id_Kegiatan, yang mengijinkan untuk referensi yang menunjuk hanya ke objek baris dalam tabel objek Kegiatan. 4.3. Implementasi penerapan Basis Data Relational Objek ke dalam Sistem Informasi LSM Garuluku-FORANDAKA 17 Pada implementasi penerapan Basis Data Relational Objek ke dalam Sistem Informasi LSM Garuluku-FORANDAKA 17 ini, pengguna dapat mengakses sistem informasi melalui web browser. Home merupakan halaman pertama kali pengguna mengakses sistem ini. Pada halaman ini terdapat beberapa content yang dapat digunakan untuk melihat informasi yang ada. Content yang ada yaitu Home, Profil, Services, Kegiatan, Hubungi Kami, dan Login. Berikut tampilan halaman utama Home: 93 ‘ Gambar 4. 2 Tampilan halaman utama 4.3.1. Implementasi Fitur Inheritance Relationships: Union Inheritance dan Partition Inheritance 4.3.1.1. Halaman Profil admin. 4.3.1.1.1. Tab Menu Pengurus Forum Anak Menu ini berada di sebelah kiri halaman, isi dari tab menu ini adalah fitur-fitur untuk admin dapat melakukan penggantian gambar struktur organisasi, mencari dan menampilkan data pengurus FORANDAKA, 94 menambah data, mengubah data, dan menghapus data. Berikut ini adalah tampilan menu pilihan untuk fitur-fitur tersebut: Gambar 4. 3 Halaman admin untuk pengurus FORANDAKA Implementasi dari fitur union inheritance ada pada menu Tambah Data, Ubah Data, dan Hapus Data. a. Menu Tambah Data Pada menu ini, admin melakukan penambahan data pengurus FORANDAKA. Berikut adalah tampilan admin dalam memasukkan data: 95 Gambar 4. 4 Form tambah data pengurus forum anak Karena pengurus ini adalah merupakan union inheritance dari Anggota Garuluku. Anggota Garuluku adalah partition inheritance dari People, sehingga memasukkan data ke tabel People dengan subtype AnggotaGaruluku_T, sehingga kueri yang digunakan untuk menambahkan data ke tabel superclass People yang subtypenya AnggotaGaruluku_T adalah: Lalu menambahkan data ke tabel subclass Pengurus. Tabel objek Pengurus berdasarkan tipe objek Pengurus_T sehingga kueri yang digunakan untuk menambahkan data ke tabel subclass Pengurus adalah : String query = INSERT INTO People valuesanggotaGaruluku_T + prosesbean.getId_AG + , + prosesbean.getNama_AG + , + prosesbean.getTtl + , + prosesbean.getUmur + , + prosesbean.getAlamat + , + prosesbean.getNoTlp + , AnggotaGaruluku, + prosesbean.getNamaAyah + , + prosesbean.getNamaIbu + , + prosesbean.getPekerjaanAyah + , + prosesbean.getPekerjaanIbu + , + prosesbean.getHobi + , + prosesbean.getTahunBergabung + ; 96 Kedua query tersebut dijalankan langsung pada satu method yaitu method InsertPengurus yang terdapat dalam javabean, dan di panggil oleh kelas servlet controller. Tetapi karena ini adalah union inheritance, maka akan ada kemungkinan bahwa seorang anggota garuluku adalah merupakan pengurus dan juga merupakan seorang anggotaFA atau anggotaSA, sehingga ketika ingin memasukkan data dengan ID anggota yang sama ke dalam subclasses lainnya akan terjadi gagal dalam menjalankan method insert pada bagian execute query insert into people , karena terdapat ID_AG sebagai Primary Key yang sama, oleh karena itu sebelum menambahkan data, perlu menghapus terlebih dahulu data dengan ID yang sama pada tabel superclass. Queri untuk menghapus data di tabel superclass adalah: String query1 = INSERT INTO pengurus valuespengurus_T + prosesbean.getId_AG + , + prosesbean.getNama_AG + , + prosesbean.getTtl + , + prosesbean.getUmur + , + prosesbean.getNamaAyah + , + prosesbean.getNamaIbu + , + prosesbean.getPekerjaanAyah + , + prosesbean.getPekerjaanIbu + , + prosesbean.getAlamat + , + prosesbean.getNoTlp + , + prosesbean.getHobi + , + prosesbean.getTahunBergabung + , + prosesbean.getPosisi + , + prosesbean.getPeriode + , + prosesbean.getJenis + ; 97 Queri tersebut terdapat pada method DeleteAG yang ada di javabean. Berikut adalah bagian dari listing program pada kelas servlet controller: Gambar 4. 5 Servlet controller insert pengurus forum anak Jika data berhasil dimasukkan, akan masuk ke halaman yang menampilkan seluruh data pengurus forum anak yang sudah dimasukkan: Gambar 4. 6 Hasil tambah data pengurus Forum Anak b. Menu Ubah Data String query1 = DELETE From People where id = + prosesbean.getId_AG + or nama = + prosesbean.getNama_AG + ; 98 Pada menu ini, admin dapat mengubah data seorang pengurus FORANDAKA. Berikut adalah tampilan admin dalam mengubah data, pertama memilih dahulu berdasarkan ID atau Nama yang mau diubah datanya: Gambar 4. 7 Ubah data pengurus Lalu akan masuk ke halaman yang berisi form yang berisi data seorang pengurus yang dipilih tadi, admin dapat langsung merubah data pada text box yang disediakan: Gambar 4. 8 form ubah data 99 Untuk union inheritance, jika data subclass diubah, data superclass tidak akan ikut berubah secara otomatis, maka untuk menanganinya proses mengubah data harus dilakukan juga pada data di superclass agar tidak terjadi perbedaan data anggota. Jadi kueri pertama untuk mengupdate data di di subclass Pengurus, lalu mengupdate data di superclass AnggotaGaruluku. Berikut ini adalah queri untuk mengubah data: String query = UPDATE pengurus SET Nama= + prosesbean.getNama_AG_after + , TTL= + prosesbean.getTtl + , UMUR= + prosesbean.getUmur + , NamaAyah= + prosesbean.getNamaAyah + , NamaIbu= + prosesbean.getNamaIbu + , PekerjaanAyah= + prosesbean.getPekerjaanAyah + , PekerjaanIbu= + prosesbean.getPekerjaanIbu + , Alamat= + prosesbean.getAlamat + , NoTlp= + prosesbean.getNoTlp + , Hobi= + prosesbean.getHobi + , TahunBergabung= + prosesbean.getTahunBergabung + , Posisi= + prosesbean.getPosisi + , Periode= + prosesbean.getPeriode + , Jenis= + prosesbean.getJenis + WHERE Id= + prosesbean.getId_AG + or Nama= + prosesbean.getNama_AG + ; String query1 = DELETE FROM People WHERE Id= + prosesbean.getId_AG + String query2 = INSERT INTO People valuesanggotaGaruluku_T + prosesbean.getId_AG + , + prosesbean.getNama_AG_after + , + prosesbean.getTtl + , + prosesbean.getUmur + , + prosesbean.getAlamat + , + prosesbean.getNoTlp + , AnggotaGaruluku, + prosesbean.getNamaAyah + , + prosesbean.getNamaIbu + , + prosesbean.getPekerjaanAyah + , + prosesbean.getPekerjaanIbu + , + prosesbean.getHobi + , + prosesbean.getTahunBergabung + ; 100 Ketiga queri ini dijalankan langsung pada satu method yaitu method UpdatePengurus yang terdapat dalam javabean, dan di panggil oleh kelas servlet controller. Berikut adalah bagian dari listing program pada kelas servlet controller : Gambar 4. 9 Servlet controller ubah pengurus forum anak Jika data berhasil diupdate, akan masuk ke halaman yang menampilkan seluruh data pengurus, sebagai berikut: Gambar 4. 10 Hasil ubah data pengurus c. Menu Hapus Data Pada menu ini, admin dapat menghapus data seorang pengurus FORANDAKA. Berikut adalah tampilan admin dalam 101 menghapus data, pertama memilih dahulu ID atau Nama yang mau dihapus datanya: Gambar 4. 11 Hapus data pengurus forum anak Untuk menghapus data, hanya menghapus data pada subclass yaitu tabel pengurus saja. Jadi datanya di superclass AnggotaGaruluku masih tetap ada. Berikut ini adalah kueri untuk menghapus data pengurus: Queri ini dijalankan langsung pada satu method yaitu method DeletePengurus yang terdapat dalam javabean, dan di panggil oleh kelas servlet controller. Berikut adalah bagian dari listing program pada kelas servlet controller : String query = DELETE From pengurus where ID = + prosesbean.getId_AG + or nama = + prosesbean.getNama_AG + ; 102 Gambar 4. 12 Servlet controller hapus pengurus forum anak Jika data berhasil dihapus, akan masuk ke halaman yang menampilkan seluruh data pengurus, sebagai berikut: Gambar 4. 13 Hasil hapus data pengurus forum anak 4.3.1.1.2. Tab menu Pengurus Sanggar Anak Menu ini berada di sebelah kiri halaman, isi dari tab menu ini adalah untuk mengubah gambar struktur organisasi Sanggar Anak Garuluku, menambah data pengurus, mengubah data pengurus, dan menghapus data pengurus. Yang tampilannya adalah sebagai berikut: 103 Gambar 4. 14 Tampilan menu pengurus sanggar anak Implementasi dari fitur union inheritance ada pada menu Tambah Data, Ubah Data, dan Hapus Data. e. Menu Tambah Data Pada menu ini, admin melakukan penambahan data pengurus Sanggar Anak Garuluku. Berikut adalah tampilan admin dalam memasukkan data: Gambar 4. 15 Form tambah data pengurus sanggar anak 104 Karena pengurus adalah merupakan union inheritance dari Anggota Garuluku. Anggota Garuluku adalah partition inheritance dari People, sehingga memasukkan data ke tabel People dengan subtype AnggotaGaruluku_T, seperti berikut: Lalu menambahkan data ke tabel subclass Pengurus. Tabel objek Pengurus berdasarkan tipe objek Pengurus_T sehingga kueri yang digunakan untuk menambahkan data ke tabel subclass Pengurus adalah : Kedua query tersebut dijalankan langsung pada satu method yaitu method InsertPengurus yang terdapat dalam javabean, dan di panggil oleh kelas servlet controller. String query = INSERT INTO People valuesanggotaGaruluku_T + prosesbean.getId_AG + , + prosesbean.getNama_AG + , + prosesbean.getTtl + , + prosesbean.getUmur + , + prosesbean.getAlamat + , + prosesbean.getNoTlp + , AnggotaGaruluku, + prosesbean.getNamaAyah + , + prosesbean.getNamaIbu + , + prosesbean.getPekerjaanAyah + , + prosesbean.getPekerjaanIbu + , + prosesbean.getHobi + , + prosesbean.getTahunBergabung + ; String query1 = INSERT INTO pengurus valuespengurus_T + prosesbean.getId_AG + , + prosesbean.getNama_AG + , + prosesbean.getTtl + , + prosesbean.getUmur + , + prosesbean.getAlamat + , + prosesbean.getNoTlp + , AnggotaGaruluku, + prosesbean.getNamaAyah + , + prosesbean.getNamaIbu + , + prosesbean.getPekerjaanAyah + , + prosesbean.getPekerjaanIbu + , + prosesbean.getHobi + , + prosesbean.getTahunBergabung + , + prosesbean.getPosisi + , + prosesbean.getPeriode + , + prosesbean.getJenis + ; 105 Tetapi karena ini adalah union inheritance, maka akan ada kemungkinan bahwa seorang anggota garuluku adalah merupakan pengurus dan juga merupakan seorang anggotaFA atau anggotaSA, sehingga ketika ingin memasukkan data dengan ID anggota yang sama ke dalam subclasses lainnya akan terjadi gagal dalam menjalankan method insert pada bagian execute query insert into people , karena terdapat ID sebagai Primary Key yang sama, oleh karena itu sebelum menambahkan data, perlu menghapus terlebih dahulu data dengan ID yang sama pada tabel superclass. Queri untuk menghapus data di tabel superclass adalah: Queri tersebut terdapat pada method DeleteAG yang ada di javabean. Berikut adalah bagian dari listing program pada kelas servlet controller: Gambar 4. 16 Servlets controller insert data pengurus sanggar anak Jika data berhasil dimasukkan, akan masuk ke halaman yang menampilkan seluruh data pengurus yang sudah dimasukkan: String query1 = DELETE From People where id = + prosesbean.getId_AG + or nama = + prosesbean.getNama_AG + ; 106 Gambar 4. 17 Hasil tambah data pengurus sanggar anak f. Menu Ubah Data Pada menu ini, admin dapat mengubah data seorang pengurus Sanggar Anak Garuluku. Berikut adalah tampilan admin dalam mengubah data, pertama memilih dahulu ID atau Nama yang mau diubah datanya: Gambar 4. 18 Ubah data pengurus sanggar anak Lalu akan masuk ke halaman yang berisi form yang berisi data seorang pengurus yang dipilih tadi, admin dapat langsung merubah data pada text box yang disediakan: 107 Gambar 4. 19 Form ubah data pengurus sanggar anak Untuk union inheritance, jika data subclass diubah, data superclass tidak akan ikut berubah secara otomatis, maka untuk menanganinya proses mengubah data harus dilakukan juga pada data di superclass agar tidak terjadi perbedaan data anggota. Jadi kueri pertama untuk mengupdate data di subclass Pengurus, lalu mengupdate data di superclass AnggotaGaruluku Berikut ini adalah queri untuk mengubah data: 108 Ketiga queri ini dijalankan langsung pada satu method yaitu method UpdatePengurus yang terdapat dalam javabean, dan di panggil oleh kelas servlet controller. Berikut adalah bagian dari listing program pada kelas servlet controller : String query = UPDATE pengurus SET Nama= + prosesbean.getNama_AG_after + , TTL= + prosesbean.getTtl + , UMUR= + prosesbean.getUmur + , NamaAyah= + prosesbean.getNamaAyah + , NamaIbu= + prosesbean.getNamaIbu + , PekerjaanAyah= + prosesbean.getPekerjaanAyah + , PekerjaanIbu= + prosesbean.getPekerjaanIbu + , Alamat= + prosesbean.getAlamat + , NoTlp= + prosesbean.getNoTlp + , Hobi= + prosesbean.getHobi + , TahunBergabung= + prosesbean.getTahunBergabung + , Posisi= + prosesbean.getPosisi + , Periode= + prosesbean.getPeriode + , Jenis= + prosesbean.getJenis + WHERE Id= + prosesbean.getId_AG + or Nama= + prosesbean.getNama_AG + ; String query1 = DELETE FROM People WHERE Id= + prosesbean.getId_AG + ; String query2 = INSERT INTO People valuesanggotaGaruluku_T + prosesbean.getId_AG + , + prosesbean.getNama_AG_after + , + prosesbean.getTtl + , + prosesbean.getUmur + , + prosesbean.getAlamat + , + prosesbean.getNoTlp + , AnggotaGaruluku, + prosesbean.getNamaAyah + , + prosesbean.getNamaIbu + , + prosesbean.getPekerjaanAyah + , + prosesbean.getPekerjaanIbu + , + prosesbean.getHobi + , + prosesbean.getTahunBergabung + ; 109 Gambar 4. 20 Servlet controller ubah data pengurus sanggar anak Jika data berhasil diupdate, akan masuk ke halaman yang menampilkan seluruh data pengurus, sebagai berikut: Gambar 4. 21 Hasil ubah data pengurus sanggar anak g. Menu Hapus Data Pada menu ini, admin dapat menghapus data seorang pengurus FORANDAKA. Berikut adalah tampilan admin dalam menghapus data, pertama memilih dahulu ID atau Nama yang mau dihapus datanya: 110 Gambar 4. 22 Hapus data pengurus sanggar anak Untuk menghapus data, hanya menghapus data pada subclass yaitu tabel pengurus saja. Jadi datanya di tabel superclass AnggotaGaruluku masih tetap ada. Berikut ini adalah kueri untuk menghapus data pengurus: Queri ini dijalankan langsung pada satu method yaitu method DeletePengurus yang terdapat dalam javabean, dan di panggil oleh kelas servlet controller. Berikut adalah bagian dari listing program pada kelas servlet controller : Gambar 4. 23 Servlet controller insert data pengurus sanggar anak String query = DELETE From pengurus where ID = + prosesbean.getId_AG + or nama = + prosesbean.getNama_AG + ; 111 Jika data berhasil dihapus, akan masuk ke halaman yang menampilkan seluruh data pengurus, sebagai berikut: Gambar 4. 24 Hasil hapus data pengurus sanggar anak 4.3.1.1.3. Tab menu Data Anggota Forum Anak Menu ini berada di sebelah kiri halaman isi dari tab menu ini adalah untuk menampilkan dan mencari data anggota FORANDAKA, menambah data, mengubah data, dan menghapus data anggota FORANDAKA. Gambar 4. 25 Tampilan menu data anggota forum anak Implementasi dari fitur union inheritance ada pada menu Tambah Data, Ubah Data, dan Hapus Data. a. Menu Tambah Data 112 Pada menu ini, admin dapat melakukan penambahan data Anggota FORANDAKA. Berikut adalah tampilan admin dalam memasukkan data: Gambar 4. 26 Form tambah anggota forum anak Karena anggota forum anak ini adalah merupakan union inheritance dari Anggota Garuluku. Anggota Garuluku adalah partition inheritance dari People, sehingga memasukkan data ke tabel People dengan subtype AnggotaGaruluku_T.. Tabel People berdasarkan tipe objek AnggotaGaruluku_T sehingga kueri yang digunakan untuk menambahkan adalah: 113 Lalu menambahkan data ke tabel subclass AnggotaFA. Tabel objek AnggotaFA berdasarkan tipe objek AnggotaFA_T sehingga kueri yang digunakan untuk menambahkan data ke tabel subclass AnggotaFA adalah : Kedua query tersebut dijalankan langsung pada satu method yaitu method InsertAFA yang terdapat dalam javabean, dan di panggil oleh kelas servlet controller. Tetapi karena ini adalah union inheritance, maka akan ada kemungkinan bahwa seorang anggota garuluku adalah merupakan anggotaFA dan juga merupakan seorang pengurus, sehingga ketika ingin memasukkan data dengan ID anggota yang String query = INSERT INTO people valuesanggotaGaruluku_T + prosesbean.getId_AG + , + prosesbean.getNama_AG + , + prosesbean.getTtl + , + prosesbean.getUmur + , + prosesbean.getAlamat + , + prosesbean.getNoTlp + , AnggotaGaruluku , + prosesbean.getNamaAyah + , + prosesbean.getNamaIbu + , + prosesbean.getPekerjaanAyah + , + prosesbean.getPekerjaanIbu + , + prosesbean.getHobi + , + prosesbean.getTahunBergabung + ; String query1 = INSERT INTO anggotaFA valuesanggotaFA_T + prosesbean.getId_AG + , + prosesbean.getNama_AG + , + prosesbean.getTtl + , + prosesbean.getUmur + , + prosesbean.getAlamat + , + prosesbean.getNoTlp + , AnggotaGaruluku , + prosesbean.getNamaAyah + , + prosesbean.getNamaIbu + , + prosesbean.getPekerjaanAyah + , + prosesbean.getPekerjaanIbu + , + prosesbean.getHobi + , + prosesbean.getTahunBergabung + , + prosesbean.getSekolah + , + prosesbean.getStatusKeaktifan + ; 114 sama ke dalam subclasses lainnya akan terjadi gagal dalam menjalankan method insert pada bagian execute query insert into anggotaGaruluku , karena terdapat ID sebagai Primary Key yang sama, oleh karena itu sebelum menambahkan data, perlu menghapus terlebih dahulu data dengan ID yang sama pada tabel superclass . Queri untuk menghapus data di tabel superclass adalah: Queri tersebut terdapat pada method DeleteAG yang ada di javabean. Berikut adalah bagian dari listing program pada kelas servlet controller: Gambar 4. 27 Servlet controller tambah data anggota forum anak Jika data berhasil dimasukkan, akan masuk ke halaman yang menampilkan seluruh data anggota FORANDAKA yang sudah dimasukkan: String query1 = DELETE From People where id = + prosesbean.getId_AG + or nama = + prosesbean.getNama_AG + ; 115 Gambar 4. 28 Hasil tambah data anggota forum anak b. Menu Ubah Data Pada menu ini, admin dapat mengubah data seorang anggota Forum Anak. Berikut adalah tampilan admin dalam mengubah data, pertama memilih dahulu ID atau Nama yang mau diubah datanya: Gambar 4. 29 Ubah data anggota forum anak Lalu akan masuk ke halaman yang berisi form yang berisi data seorang pengurus yang dipilih tadi, admin dapat langsung merubah data pada text box yang disediakan: 116 Gambar 4. 30 Form ubah data anggota forum anak Untuk union inheritance, jika data subclass diubah, data superclass tidak akan ikut berubah secara otomatis, maka untuk menanganinya proses mengubah data harus dilakukan juga pada data di superclass agar tidak terjadi perbedaan data anggota. Jadi kueri pertama untuk mengupdate data di subclass AnggotaFA, lalu mengupdate data di superclass AnggotaGaruluku. Berikut ini adalah queri untuk mengubah data: 117 Ketiga queri ini dijalankan langsung pada satu method yaitu method UpdateAFA yang terdapat dalam javabean, dan di panggil oleh kelas servlet controller. Berikut adalah bagian dari listing program pada kelas servlet controller : String query = UPDATE anggotaFA SET Nama= + prosesbean.getNama_AG_after + , TTL= + prosesbean.getTtl + , UMUR= + prosesbean.getUmur + , Alamat= + prosesbean.getAlamat + , NoTlp= + prosesbean.getNoTlp + , NamaAyah= + prosesbean.getNamaAyah + , NamaIbu= + prosesbean.getNamaIbu + , PekerjaanAyah= + prosesbean.getPekerjaanAyah + , PekerjaanIbu= + prosesbean.getPekerjaanIbu + , Hobi= + prosesbean.getHobi + , TahunBergabung= + prosesbean.getTahunBergabung + , Sekolah= + prosesbean.getSekolah + , StatusKeaktifan= + prosesbean.getStatusKeaktifan + WHERE Id= + prosesbean.getId_AG + or Nama= + prosesbean.getNama_AG + ; String query1 = DELETE FROM People WHERE Id= + prosesbean.getId_AG + ; String query2 = INSERT INTO People valuesanggotaGaruluku_T + prosesbean.getId_AG + , + prosesbean.getNama_AG_after + , + prosesbean.getTtl + , + prosesbean.getUmur + , + prosesbean.getAlamat + , + prosesbean.getNoTlp + , AnggotaGaruluku , + prosesbean.getNamaAyah + , + prosesbean.getNamaIbu + , + prosesbean.getPekerjaanAyah + , + prosesbean.getPekerjaanIbu + , + prosesbean.getHobi + , + prosesbean.getTahunBergabung + ; 118 Gambar 4. 31 Servlet controller ubah data anggota forum anak Jika data berhasil diupdate, akan masuk ke halaman yang menampilkan seluruh data Anggota Forum Anak, sebagai berikut: Gambar 4. 32 Hasil ubah data anggota forum anak c. Menu Hapus Data Pada menu ini, admin dapat menghapus data seorang anggota Forum Anak. Berikut adalah tampilan admin dalam menghapus data, pertama memilih dahulu ID atau Nama yang mau dihapus datanya: 119 Gambar 4. 33 Hapus data anggota forum anak Untuk menghapus data, hanya menghapus data pada subclass yaitu tabel AnggotaFA saja. Jadi datanya di tabel superclass AnggotaGaruluku masih tetap ada. Berikut ini adalah kueri untuk menghapus data pengurus: Queri ini dijalankan langsung pada satu method yaitu method DeleteAFA yang terdapat dalam javabean, dan di panggil oleh kelas servlet controller. Berikut adalah bagian dari listing program pada kelas servlet controller : Gambar 4. 34 Servlet controller hapus data anggota forum anak String query = DELETE From anggotaFA where ID = + prosesbean.getId_AG + or nama = + prosesbean.getNama_AG + ; 120 Jika data berhasil dihapus, akan masuk ke halaman yang menampilkan seluruh data anggota FORANDAKA, sebagai berikut: Gambar 4. 35 Hasil hapus data anggota forum anak 4.3.1.1.4. Tab menu Data Anggota Sanggar Anak Menu ini berada di sebelah kiri halaman, isi dari tab menu ini adalah untuk menampilkan dan mencari data anggota Sanggar Anak Garuluku, menambah data, mengubah data, dan menghapus data anggota Sanggar Anak Garuluku. Gambar 4. 36 Menu anggota sanggar anak 121 Implementasi dari fitur union inheritance ada pada menu Tambah Data, Ubah Data, dan Hapus Data. a. Menu Tambah Data Pada menu ini, admin dapat melakukan penambahan data anggota Sanggar Anak Garuluku. Berikut adalah tampilan admin dalam memasukkan data: Gambar 4. 37 Form insert data anggota sanggar anak Karena anggota sanggar anak ini adalah merupakan union inheritance dari AnggotaGaruluku, maka langkah pertama menambahkan data ke superclass AnggotaGaruluku. Anggota Garuluku adalah partition inheritance dari People, sehingga memasukkan data ke tabel People dengan subtype AnggotaGaruluku_T, sebagai berikut: 122 Lalu menambahkan data ke tabel subclass AnggotaSA. Tabel objek AnggotaSA berdasarkan tipe objek AnggotaSA_T sehingga kueri yang digunakan untuk menambahkan data ke tabel subclass AnggotaSA adalah : Kedua query tersebut dijalankan langsung pada satu method yaitu method InsertASA yang terdapat dalam javabean, dan di panggil oleh kelas servlet controller. Tetapi karena ini adalah union inheritance, maka akan ada kemungkinan bahwa seorang anggota garuluku adalah merupakan anggotaSA dan juga merupakan seorang pengurus, String query = INSERT INTO People valuesanggotaGaruluku_T + prosesbean.getId_AG + , + prosesbean.getNama_AG + , + prosesbean.getTtl + , + prosesbean.getUmur + , + prosesbean.getAlamat + , + prosesbean.getNoTlp + , AnggotaGaruluku, + prosesbean.getNamaAyah + , + prosesbean.getNamaIbu + , + prosesbean.getPekerjaanAyah + , + prosesbean.getPekerjaanIbu + , + prosesbean.getHobi + , + prosesbean.getTahunBergabung + ; String query1 = INSERT INTO pengurus valuespengurus_T + prosesbean.getId_AG + , + prosesbean.getNama_AG + , + prosesbean.getTtl + , + prosesbean.getUmur + , + prosesbean.getAlamat + , + prosesbean.getNoTlp + , AnggotaGaruluku, + prosesbean.getNamaAyah + , + prosesbean.getNamaIbu + , + prosesbean.getPekerjaanAyah + , + prosesbean.getPekerjaanIbu + , + prosesbean.getHobi + , + prosesbean.getTahunBergabung + , + prosesbean.getPosisi + , + prosesbean.getPeriode + , + prosesbean.getJenis + ; 123 sehingga ketika ingin memasukkan data dengan ID anggota yang sama ke dalam subclasses lainnya akan terjadi gagal dalam menjalankan method insert pada bagian execute query insert into anggotaGaruluku , karena terdapat ID sebagai Primary Key yang sama, oleh karena itu sebelum menambahkan data, perlu menghapus terlebih dahulu data dengan ID yang sama pada tabel superclass . Queri untuk menghapus data di tabel superclass adalah: Queri tersebut terdapat pada method DeleteAG yang ada di javabean. Berikut adalah bagian dari listing program pada kelas servlet controller : Gambar 4. 38 Servlet controller tambah data anggota sanggar anak Jika data berhasil dimasukkan, akan masuk ke halaman yang menampilkan seluruh data anggota Sanggar Anak Garuluku yang sudah dimasukkan: String query1 = DELETE From anggotaGaruluku where ID = + prosesbean.getId_AG + or nama = + prosesbean.getNama_AG + ; 124 Gambar 4. 39 Hasil tambah data anggota sanggar anak b. Menu Ubah Data Pada menu ini, admin dapat mengubah data seorang anggota Sanggar Anak Garuluku. Berikut adalah tampilan admin dalam mengubah data, pertama memilih dahulu ID atau Nama yang mau diubah datanya: Gambar 4. 40 Ubah data anggota sanggar anak Lalu akan masuk ke halaman yang berisi form yang berisi data seorang anggota Sangar Anak yang dipilih tadi, admin dapat langsung merubah data pada text box yang disediakan: 125 Gambar 4. 41 Form ubah data anggota sanggar anak Untuk union inheritance, jika data subclass diubah, data superclass tidak akan ikut berubah secara otomatis, maka untuk menanganinya proses mengubah data harus dilakukan juga pada data di superclass agar tidak terjadi perbedaan data anggota. Jadi kueri pertama untuk mengupdate data di subclass AnggotaSA, lalu mengupdate data di superclass AnggotaGaruluku. Berikut ini adalah queri untuk mengubah data: String query = UPDATE anggotaSA SET Nama= + prosesbean.getNama_AG_after + , TTL= + prosesbean.getTtl + , UMUR= + prosesbean.getUmur + , Alamat= + prosesbean.getAlamat + , NoTlp= + prosesbean.getNoTlp + , NamaAyah= + prosesbean.getNamaAyah + , NamaIbu= + prosesbean.getNamaIbu + , PekerjaanAyah= + prosesbean.getPekerjaanAyah + , PekerjaanIbu= + prosesbean.getPekerjaanIbu + , Hobi= + prosesbean.getHobi + , TahunBergabung= + prosesbean.getTahunBergabung + , Sekolah= + prosesbean.getSekolah + , StatusKeaktifan= + prosesbean.getStatusKeaktifan + WHERE Id= + prosesbean.getId_AG + or Nama= + prosesbean.getNama_AG + ; 126 Kedua queri ini dijalankan langsung pada satu method yaitu method UpdateASA yang terdapat dalam javabean, dan di panggil oleh kelas servlet controller. Berikut adalah bagian dari listing program pada kelas servlet controller : Gambar 4. 42 Srvlet controller ubah data anggota sanggar anak Jika data berhasil diupdate, akan masuk ke halaman yang menampilkan seluruh data anggota Sanggar Anak Garuluku, sebagai berikut: String query1 = DELETE FROM People WHERE Id= + prosesbean.getId_AG + ; String query2 = INSERT INTO People valuesanggotaGaruluku_T + prosesbean.getId_AG + , + prosesbean.getNama_AG_after + , + prosesbean.getTtl + , + prosesbean.getUmur + , + prosesbean.getAlamat + , + prosesbean.getNoTlp + , AnggotaGaruluku , + prosesbean.getNamaAyah + , + prosesbean.getNamaIbu + , + prosesbean.getPekerjaanAyah + , + prosesbean.getPekerjaanIbu + , + prosesbean.getHobi + , + prosesbean.getTahunBergabung + ; 127 Gambar 4. 43 Hasil ubah data sanggar anak c. Menu Hapus Data Pada menu ini, admin dapat menghapus data seorang anggota Sanggar Anak Garuluku. Berikut adalah tampilan admin dalam menghapus data, pertama memilih dahulu ID atau Nama yang mau dihapus datanya: Gambar 4. 44 Hapus data anggota sanggar anak Untuk menghapus data, hanya menghapus data pada subclass yaitu tabel AnggotaSA saja. Jadi datanya di tabel superclass AnggotaGaruluku masih tetap ada. Berikut ini adalah kueri untuk menghapus data pengurus: String query = DELETE From anggotaSA where ID = + prosesbean.getId_AG + or nama = + prosesbean.getNama_AG + ; 128 Queri ini dijalankan langsung pada satu method yaitu method DeleteASA yang terdapat dalam javabean, dan di panggil oleh kelas servlet controller. Berikut adalah bagian dari listing program pada kelas servlet controller : Gambar 4. 45 Servlet controller hapus data anggota sanggar anak Jika data berhasil dihapus, akan masuk ke halaman yang menampilkan seluruh data anggota Sanggar Anak Garuluku, sebagai berikut: Gambar 4. 46 Hasil hapus data sanggar anak 4.3.1.1.5. Tab menu Data Pengajar Tetap Menu ini berada di sebelah kiri halaman, isi dari tab menu ini adalah untuk mencari dan menampilkan data pengajar tetap, menambah data, mengubah data, dan menghapus data pengajar tetap. Seorang pengajar 129 tetap adalah merupakan pengurus, tabel pengajar tetap merupakan inheritance dari tabel pengurus. Gambar 4. 47 Menu data pengajar tetap Implementasi dari fitur union inheritance ada pada menu Tambah Data, Ubah Data, dan Hapus Data. a. Menu Tambah Data Pada menu ini, admin dapat melakukan penambahan data pengajar tetap. Pertama-tama admin memilih pengurus mana yang ingin dijadikan pengajar tetap: Gambar 4. 48 Tambah data pengajar tetap 130 Berikut adalah tampilan admin dalam memasukkan data pengajar tetap, admin hanya memasukkan hari ajar saja pada text box yang disediakan: Gambar 4. 49 Form tambah data pengajar tetap Queri untuk menambah data pengajar tetap adalah : Query tersebut dijalankan langsung pada satu method yaitu method InsertPT yang terdapat dalam javabean, dan di panggil oleh kelas servlet controller. Berikut adalah bagian dari listing program pada kelas servlet controller : String query = INSERT INTO PengajarTetap valuesPengajarTetap_T + prosesbean.getId_AG + , + prosesbean.getNama_AG + , + prosesbean.getTtl + , + prosesbean.getUmur + , + prosesbean.getAlamat + , + prosesbean.getNoTlp + , AnggotaGaruluku, + prosesbean.getNamaAyah + , + prosesbean.getNamaIbu + , + prosesbean.getPekerjaanAyah + , + prosesbean.getPekerjaanIbu + , + prosesbean.getHobi + , + prosesbean.getTahunBergabung + , + prosesbean.getPosisi + , + prosesbean.getPeriode + , + prosesbean.getJenis + , + prosesbean.getHariAjar + ; 131 Gambar 4. 50 Servlet controller tambah data pengajar tetap Jika data berhasil dimasukkan, akan masuk ke halaman yang menampilkan seluruh data pengajar tetap yang sudah dimasukkan: Gambar 4. 51 Hasil tambah data pengajar tetap b. Menu Ubah Data Pada menu ini, admin dapat mengubah data seorang pengajar tetap. Berikut adalah tampilan admin dalam mengubah data, pertama memilih dahulu ID atau Nama yang mau diubah datanya: 132 Gambar 4. 52 Ubah data pengajar tetap Lalu akan masuk ke halaman yang berisi form yang berisi data seorang pengajar tetap yang dipilih tadi, admin dapat langsung merubah data pada text box yang disediakan: Gambar 4. 53 Form ubah data pengajar tetap Untuk mengubah data pada tabel PengajarTetap, data yang diubah hanya data di atribut HariAjar saja, karena jika ingin mengubah data seorang pengajarTetap yang atributnya bukan HariAjar dapat dilakukan di tabel pengurus yang merupakan superclass dari t abel ini. Berikut ini adalah queri untuk mengubah data : 133 Queri ini dijalankan langsung pada satu method yaitu method UpdatePT yang terdapat dalam javabean, dan di panggil oleh kelas servlet controller. Berikut adalah bagian dari listing program pada kelas servlet controller : Gambar 4. 54 Servlet controller ubah data pengajar tetap Jika data berhasil diupdate, akan masuk ke halaman yang menampilkan seluruh data pengajar tetap, sebagai berikut: Gambar 4. 55 Hasil ubah data pengajar tetap c. Menu Hapus Data String query = UPDATE PengajarTetap SET HariAjar = + prosesbean.getHariAjar + WHERE Id= + prosesbean.getId_AG + ; 134 Pada menu ini, admin dapat menghapus data seorang pengajar tetap. Berikut adalah tampilan admin dalam menghapus data, pertama memilih dahulu ID atau Nama yang mau dihapus datanya: Gambar 4. 56 Hapus data pengajar tetap Berikut ini adalah queri untuk menghapus data pengajar tetap: Untuk menghapus data, hanya menghapus data pada subclass yaitu tabel pengajarTetap saja. Jadi datanya di superclass AnggotaGaruluku dan tabel pengurus masih tetap ada. Queri ini dijalankan langsung pada satu method yaitu method DeletePT yang terdapat dalam javabean, dan di panggil oleh kelas servlet controller . Berikut adalah bagian dari listing program pada kelas servlet controller : String query = DELETE FROM PengajarTetap WHERE Id= + prosesbean.getId_AG + or nama = + prosesbean.getNama_AG + ; 135 Gambar 4. 57 Servlet controller hapus data pengajar tetap Jika data berhasil dihapus, akan masuk ke halaman yang menampilkan seluruh data pengajar tetap, sebagai berikut: Gambar 4. 58 Hasil hapus data pengajar tetap 4.3.1.1.6. Tab menu Data Anggota Garuluku Menu ini berada di sebelah kiri halaman, isi dari tab menu ini adalah menu untuk menghapus data dan menu untuk melihat data lengkap dari seluruh anggota garuluku. 136 Gambar 4. 59 Menu data anggota garuluku Anggota Garuluku merupakan data subclass dari People, hubungan keduanya yaitu Partition Inheritance. Yang dilakukan dalam menu ini adalah menghapus data dan meilhat data. karena subclass dari anggota garuluku hanya menghapus data di subclass saja, tanpa menghapus data di superclass Anggota Garuluku. a. Menu Hapus Data Pada menu ini, admin dapat menghapus data seorang anggota garuluku. Berikut adalah tampilan admin dalam menghapus data, pertama memilih dahulu ID atau Nama yang mau dihapus datanya: Gambar 4. 60 Hapus data anggota garuluku 137 Berikut ini adalah queri untuk menghapus data anggota garuluku: Queri ini dijalankan pada method DeleteAG yang terdapat dalam javabean, dan di panggil oleh kelas servlet controller. Berikut adalah bagian dari listing program pada kelas servlet controller : Gambar 4. 61 Servlet controller hapus data anggota garuluku Jika data berhasil dihapus, akan masuk ke halaman yang menampilkan seluruh data anggota garuluku, sebagai berikut: Gambar 4. 62 Hasil hapus data anggota garuluku b. Menu Lihat Seluruh Data Anggota Garuluku String query1 = DELETE From People where id = + prosesbean.getId_AG + or nama = + prosesbean.getNama_AG + ; 138 Pada menu ini, admin dapat melihat seluruh data lengkap seorang anggota garuluku. Berikut ini adalah queri untuk menampilkan semua data anggota garuluku, yaitu dengan memanggil method member function show: 4.3.1.1.7 Tab menu Data Pengajar Relawan Menu ini berada di sebelah kiri halaman, isi dari tab menu ini adalah untuk mencari dan menampilkan data pengajar tetap, menambah data, mengubah data, dan menghapus data pengajar tetap. Seorang pengajar relawan adalah Partition Inheritance dari superclass People. Gambar 4. 63 Submenu Pengajar relawan a. Menu Cari dan Tampil Data String query = select from people where P_Type=AnggotaGaruluku order by id; String query1 = SELECT p.show_namaAyah,p.show_namaIbu,p.show_pekerjaanAyah ,p.show_pekerjaanIbu, p.show_hobi, p.show_tahunBergabung FROM People p WHERE id= + result.getStringid + ; 139 Pada menu ini, admin dapat melakukan pencarian data berdasarkan Nama atau ID, dan dapat melihat seluruh data pengajar tetap dengan mengklik link “Lihat Semua Data Pengajar Relawan”. Tampilannya adalah sebagai berikut: Gambar 4. 64 Cari dan lihat data pengajar relawan Jika data yang dicari ditemukan maka akan masuk ke halaman yang menampilkan data lengkap dari seorang pengajar relawan sebagai berikut ini: Gambar 4. 65 Hasil cari data pengajar relawan Berikut adalah queri yang digunakan untuk mencari data pengajar relawan: 140 b. Menu Tambah Data Pada menu ini, admin dapat melakukan penambahan data pengajar relawan. Berikut adalah tampilan admin dalam memasukkan data: Gambar 4. 66 Form tambah data pengajar relawan Queri untuk menambah data pengajar relawan adalah : Query tersebut dijalankan oleh method InsertPR yang terdapat dalam javabean, dan di panggil oleh kelas servlet controller. String query = select from people where P_Type=PengajarRelawan order by id; String query2 = SELECT p.show_asalPR FROM People p WHERE id= + result.getStringid + ; String query = INSERT INTO people VALUESpengajarRelawan_T + prosesbean.getId_PR + , + prosesbean.getNama_PR + , + prosesbean.getTtl_PR + , + prosesbean.getUmur_PR + , + prosesbean.getAlamat_PR + , + prosesbean.getNoHP_PR + , PengajarRelawan , + prosesbean.getAsal_PR + ; 141 Berikut adalah bagian dari listing program pada kelas servlet controller : Gambar 4. 67 Servlet controller tambah data pengajar relawan Jika data berhasil dimasukkan, akan masuk ke halaman yang menampilkan seluruh data pengajar relawan yang sudah sudah dimasukkan: Gambar 4. 68 Hasil tambah data pengajar relawan c. Menu Ubah Data Pada menu ini, admin dapat mengubah data seorang pengajar relawan. Berikut adalah tampilan admin dalam mengubah data, pertama memilih dahulu ID atau Nama yang mau diubah datanya: 142 Gambar 4. 69 Ubah data pengajar relawan Lalu akan masuk ke halaman yang berisi form yang berisi data seorang pengajar relawan yang dipilih tadi, admin dapat langsung merubah data pada text box yang disediakan: Gambar 4. 70 Form ubah data pengajar relawan Berikut ini adalah queri untuk mengubah data : String query = DELETE FROM People WHERE id= + prosesbean.getId_PR + ; String query1 = INSERT INTO people VALUESpengajarRelawan_T + prosesbean.getId_PR + , + prosesbean.getNama_PR_After + , + prosesbean.getTtl_PR + , + prosesbean.getUmur_PR + , + prosesbean.getAlamat_PR + , + prosesbean.getNoHP_PR + , PengajarRelawan , + prosesbean.getAsal_PR + ; 143 Queri ini dijalankan pada method UpdatePR yang terdapat dalam javabean, dan di panggil oleh kelas servlet controller. Berikut adalah bagian dari listing program pada kelas servlet controller : Gambar 4. 71 Servlet controler ubah data pengajar relawan Jika data berhasil diupdate, akan masuk ke halaman yang menampilkan seluruh data pengajar relawan, sebagai berikut: Gambar 4. 72 Hasil ubah data pengajar relawan d. Menu Hapus Data Pada menu ini, admin dapat menghapus data seorang pengajar relawan. Berikut adalah tampilan admin dalam menghapus data, pertama memilih dahulu ID atau Nama yang mau dihapus datanya: Gambar 4. 73 Hapus data pengajar relawan 144 Berikut ini adalah queri untuk menghapus data pengajar relawan: Queri ini dijalankan pada method DeletePR yang terdapat dalam javabean, dan di panggil oleh kelas servlet controller. Berikut adalah bagian dari listing program pada kelas servlet controller : Gambar 4. 74 Servlet controller hapus data pengajar relawan Jika data berhasil dihapus, akan masuk ke halaman yang menampilkan seluruh data pengajar relawan, sebagai berikut: Gambar 4. 75 Hasil hapus data pengajar relawan String query = DELETE people WHERE id= + prosesbean.getId_PR + OR nama= + prosesbean.getNama_PR + ; 145 4.3.2. Implementasi Fitur Collection Type : Nested Table 4.3.2.1. Halaman Kegiatan Di halaman kegiatan untuk admin ini terdapat implementasi dari nested table yang menangani data kegiatan apa saja yang sudah diselenggarakan beserta nested table-nya adalah tabel donatur dari kegiatan tersebut, dan data laporan keuangan dari kegiatan tersebut beserta nested teble-nya adalah tabel detailPengeluaran. Admin dapat melakukan pencarian data, penambahan data, pengubahan data, dan penghapusan data. Berikut ini adalah tampilan dari menu kegiatan: Gambar 4. 76 Halaman kegiatan admin 4.3.2.1.1. Data Laporan Keuangan 146 Menangani data laporan keuangan terdapat di dalam tab menu Edit Halaman. Bagian ini berisi menu-menu untk admin mengedit data-data, diantaranya mencari, menambah, mengubah, dan menghapus. Berikut ini isi dari menu edit halaman bagian menangani data laporan keuangan: a. Menu Lihat Laporan Keuangan Menu ini berada di sebelah kiri halaman, isi dari tab menu ini adalah untuk mencari data laporan keuangan dan melihat seluruh data laporan keuangan. Berikut adalah tampilannya: Gambar 4. 77 Cari data laporan keuangan Jika data yang dicari ditemukan maka akan masuk ke halaman berikut ini: 147 Gambar 4. 78 Hasil cari data laporan keuangan Untuk menampilkan hasil cari laporan keuangan menggunakan beberapa kueri, karena hasil yang ditampilkan tidak hanya berasal dari satu tabel. Kueri pertama yang digunakan adalah untuk menampilkan data laporan keuangan: Kueri kedua yang digunakan adalah untuk menampilkan data dari nested table detailPengeluaran, menggunakan kueri: Kueri ketiga yang digunakan adalah untuk menampilkan data nama kegiatan dan tanggal dari tabel kegiatan, karena String query = select from LapKeuangan where id_Lap = + cari.getId_Lap + ; String query1 = Select Id_DP, Keperluan, Volume, HargaSatuan, HargaTotal FROM THE SELECT DetailPengeluaran FROM LapKeuangan WHERE Id_Lap = + cari.getId_Lap + ; 148 laporan keuangan mempunyai hubungan asosiasi one to one dengan tabel kegiatan, dan agar pengguna dapat lebih mudah dalam mengetahui suatu ID laporan keuangan merupakan data dari laporan keuangan suatu kegiatan apa. Kueri yang digunakan untuk menampilkan data kegiatan menggunakan “join on ref”, sebagai berikut : b. Menu Tambah Laporan Keuangan Isi dari menu ini adalah untuk menambah data laporan keuangan. Langkah pertama yang dilakukan adalah masukkan terlebih dahulu jumlah detail pengeluarannya. Hal ini dilakukan agar mudah dalam penambahan data di nested table detailPengeluaran. Karena untuk menyimpan data detailPengeluaran, sebelum disimpan ke database, data direkamdisimpan dahulu menggunakan Array. Berikut adalah tampilannya: Gambar 4. 79 Tambah laporan keuangan String query2 = SELECT Nama_Kegiatan, Tanggal FROM Kegiatan a JOIN LapKeuangan b ON REF b = a.punya_LapKeuangan WHERE Id_Lap= + result.getStringId_Lap + ; 149 Lalu akan masuk ke halaman untuk admin mengisi data laporan keuangan: Gambar 4. 80 Form tambah data laporan keuangan 150 Jika data yang dimasukkan berhasil, maka akan masuk ke halaman yang berisi seluruh data laporan keuangan yang sudah dimasukkan: Gambar 4. 81 Hasil tambah laporan keuangan Untuk menambah data laporan keuangan menggunakan kueri insert ke tabel LaporanKeuangan dahulu, sedangkan untuk memasukkan data ke atribut DetailPengeluaran yang memiliki tipe data objek dan merupakan nested table menggunakan kueri insert data yang terpisah. Kueri yang digunakan untuk memasukkan data ke tabel lapKeuangan berada dalam method insertLapKeuanganA yang disimpan didalam javabean. Kueri ini adalah: String query = INSERT INTO LapKeuangan values + prosesbean.id_Lap + , + prosesbean.getTotalPemasukan + , + prosesbean.getTotalPengeluaran + , DetailPengeluaran_Table_TDetailPengeluaran_TNULL, NULL, NULL, NULL, NULL; 151 Kueri yang digunakan untuk memasukkan data ke tabel bersarang nested table detailPengeluaran berada dalam method insertLapKeuanganB yang disimpan didalam javabean. Kueri ini di execute sebanyak jumlah detail pengeluaran yang dimasukkan oleh admin pada langkah awal tadi. Kueri ini memasukkan data ke detailPengeluaran berdasarkan Id laporan keuangannya, sebagai berikut: Kedua method untuk memasukkan data ke database tersebut di panggil oleh kelas servlet controller. Berikut adalah bagian dari listing program pada kelas servlet controller : Gambar 4. 82 Servlet controller tambah data laporan keuangan c. Menu Ubah Laporan Keuangan String query1 = INSERT INTO THE SELECT a.DetailPengeluaran FROM LapKeuangan a WHERE a.id_lap = + prosesbean.id_Lap + VALUES + prosesbean.getId_DPi - 1 + , + prosesbean.getKeperluani - 1 + , + prosesbean.getVolumei - 1 + , + prosesbean.getHargaSatuani - 1 + , + prosesbean.getHargaTotali - 1 + ; 152 Menu ini berada di sebelah kiri halaman, isi dari tab menu ini adalah untuk mengubah data laporan keuangan. Langkah pertama masukkan dahulu Id Laporan keuangan yang ingin diubah datanya. Berikut adalah tampilannya: Gambar 4. 83 Ubah data laporan keuangan Lalu akan masuk ke halaman yang menampilkan form untuk mengubah data dari laporan keuangan yang telah dipilih: Gambar 4. 84 Form ubah data laporan keuangan 153 Jika data berhasil diubah maka akan masuk ke halaman yang menampilkan seluruh data laporan keuangan: Gambar 4. 85 Hasil ubah laporan keuangan Untuk mengubah data laporan keuangan menggunakan dua kueri. Pertama kueri untuk mengubah data di laporan keuangan dan kedua adalah kueri untuk mengubah data di nested table detail pengeluaran. Kueri yang digunakan untuk mengubah data ke tabel lapKeuangan berada dalam method updateLapKeuangan yang disimpan didalam javabean. Queri tersebut adalah: Kueri yang digunakan untuk mengubah data tabel bersarang nested table detailPengeluaran, pertama-tama select String query = Update LapKeuangan SET TotalPemasukan= + prosesbean.getTotalPemasukan + , TotalPengeluaran= + prosesbean.getTotalPengeluaran + WHERE Id_Lap = + prosesbean.getId_Lap + ; 154 data detailPengeluaran dahaulu berdasarkan id laporan keuangan yang dimilikinya, setelah itu baru mengeset perubahan data atribut didalam nested table detailPengeluaran yang berdasarkan dari hasil select detailPengeluaran sebelumnya. Kueri ini berada dalam method updateDetailPengeluaran yang disimpan didalam javabean. Queri ini di execute sebanyak jumlah detail pengeluaran. Queri tersebut adalah: Agar sistem dapat mengetahui seberapa banyak execute queri untuk update detailPengeluaran, dan berapa banyak baris di tabel untuk form ubah detailPengeluaran, menggunakan queri untuk menghitung berapa banyak Id Detail Pengeluaran sebagai berikut: String query = UPDATE theSELECT a.DetailPengeluaran FROM LapKeuangan a WHERE a.Id_lap = + prosesbean.getId_Lap + b SET b.Keperluan= + prosesbean.getKeperluani - 1 + , b.Volume= + prosesbean.getVolumei - 1 + , b.HargaSatuan= + prosesbean.getHargaSatuani - 1 + , b.HargaTotal= + prosesbean.getHargaTotali - 1 + WHERE b.id_DP = + prosesbean.getId_DPi - 1 + ; String query1 = Select COUNT Id_DP AS JumlahDP FROM THE SELECT DetailPengeluaran FROM LapKeuangan WHERE Id_Lap = + ubah.getId_Lap + ; 155 Kedua method untuk memasukkan data ke database tersebut di panggil oleh kelas servlet controller. Berikut adalah bagian dari listing program pada kelas servlet controller: Gambar 4. 86 Servlet controller ubah data laporan keuangan d. Menu Hapus Laporan Keuangan Isi dari menu ini adalah untuk menghapus data laporan keuangan. Berikut adalah tampilannya: Gambar 4. 87 Hapus data laporan keuangan Setelah memasukkan Id Laporan keuangan yang ingin dihapus, maka akan masuk ke halaman yang menyatakan data sudah dihapus dan menampilkan seluruh data laporan keuangan yang masih ada, seperti berikut ini: 156 Gambar 4. 88 Hasil hapus data laporan keuangan Queri untuk menghapus data Laporan Keuangan adalah: Queri tersebut berada pada method deleteLapKeuangan, dan di panggil oleh kelas servlet controller. Berikut adalah bagian dari listing program pada kelas servlet controller: Gambar 4. 89 Servlet controller hapus data laporan keuangan e. Menu Hapus Detail Pengeluaran Isi dari menu ini adalah untuk menghapus data detail pengeluaran. Pertama masukkan dahulu id laporan keuangan dan id detail pengeluarannya. Berikut adalah tampilannya: String query = DELETE FROM LapKeuangan WHERE Id_Lap = + prosesbean.getId_Lap + ; 157 Gambar 4. 90 Hapus detail pengeluaran Setelah memasukkan Id Laporan keuangan dan Id Datail pengeluaran yang ingin dihapus, maka akan masuk ke halaman yang menyatakan data sudah dihapus dan menampilkan seluruh data laporan keuangan yang masih ada, seperti berikut ini: Gambar 4. 91 Hasil hapus data detail pengeluaran Queri untuk menghapus data detail pengeluaran, pertama- tama adalah select atribut detailengeluaran berdasarkan Id laporan keuangan yang dimilikinya dahulu, setelah itu menghapus berdasarkan Id detail pengeluaran yang berada didalam detail pengeluaran hasil select atribut detailPengeluaran sebelumnya, sebagai berikut: 158 Queri tersebut berada pada method deleteDetailPengeluaran, dan di panggil oleh kelas servlet controller . Berikut adalah bagian dari listing program pada kelas servlet controller: Gambar 4. 92 Servlet controller hapus data detail pengeluaran 4.3.2.1.2. Data Kegiatan Menangani data kegiatan terdapat di dalam tab menu Edit Halaman. Bagian ini berisi menu-menu untk admin mengedit data-data, diantaranya mencari, menambah, mengubah, dan menghapus. Berikut ini isi dari menu edit halaman bagian menangani data kegiatan: a. Menu Lihat Berita Kegiatan Menu ini berada di sebelah kiri halaman, isi dari tab menu ini adalah untuk mencari data kegiatan dan melihat seluruh data kegiatan. Langkah pertama adalah mengisi id kegiatan yang ingin dicari, berikut adalah tampilannya: String query = DELETE the SELECT a.DetailPengeluaran FROM LapKeuangan a WHERE a.Id_lap= + prosesbean.getId_Lap + b WHERE b.id_DP = + prosesbean.getHapusId_DP + ; 159 Gambar 4. 93 Cari data kegiatan Jika data yang dicari ditemukan maka akan masuk ke halaman berikut ini: Gambar 4. 94 Hasil cari data kegiatan Queri yang digunakan untuk menampilkan data kegiatan adalah: Karena informasi yang disajikan bukan hanya dari tabel kegiatan, tetapi berkaitan juga dengan tabel lapKeuangan yang String query = select from Kegiatan where id_Kegiatan = + cari.getId_Kegiatan + ; 160 mempunyai hubungan asosiasi one to one, dan nested table donatur. Untuk menampilkan data dari informasi di tabel lapKeuangan menggunakan sintaks “join on ref” sebagai berikut: Untuk menampilkan data nested table donatur menggunakan queri select dari atribut yang dimiliki oleh nested table donatur, berdasarkan id kegiatan yang dicari, sebagai berikut: b. Menu Tambah Berita Kegiatan Isi dari menu ini adalah untuk menambah data kegiatan. Langkah pertama yang dilakukan adalah masukkan terlebih dahulu jumlah donatur untuk kegiatan ini. Hal ini dilakukan agar mudah dalam penambahan data di nested table donatur. Karena untuk menyimpan data donatur, sebelum disimpan ke database, data direkamdisimpan dahulu menggunakan Array. Berikut adalah tampilannya: String query1 = SELECT FROM LapKeuangan a JOIN Kegiatan b ON REF a = b.punya_LapKeuangan WHERE b.Id_Kegiatan= + result.getStringId_Kegiatan + ; String query2 = Select Id_Donatur, Nama_Donatur, Dari, No_tlp, Tanggal_beri, Jumlah FROM THE SELECT Donatur FROM Kegiatan WHERE Id_Kegiatan = + result.getStringId_Kegiatan + ; 161 Gambar 4. 95 Tambah data kegiatan Lalu akan masuk ke halaman untuk admin mengisi data kegiatan: 162 Gambar 4. 96 Form tambah data kegiatan Jika data yang dimasukkan berhasil, maka akan masuk ke halaman yang berisi seluruh data laporan keuangan yang sudah dimasukkan: Gambar 4. 97 Hasil tambah data kegiatan Kueri yang digunakan untuk memasukkan data ke tabel kegiatan, menggunakan satu kueri saja, pertama-tama untuk memasukkan data ke atribut tabel kegiatan, lalu memasukkan data ke atribut di dalam nested table donatur, lalu memasukkan data id laporan keuangan yang dimiliki oleh data kegiatan menggunakan kata kunci “REF” yang adalah fitur BDRO Relationships using REF. Kueri ini berada dalam method 163 insertKegiatan yang disimpan didalam javabean. Queri tersebut adalah: Method insertKegiatan tersebut di panggil oleh kelas servlet controller. Berikut adalah bagian dari listing program pada kelas servlet controller: String query = INSERT INTO Kegiatan SELECT + prosesbean.getId_Kegiatan + , + prosesbean.getNama_Kegiatan + , + prosesbean.getTanggal + , + prosesbean.getWaktu + , + prosesbean.getTempat + , + prosesbean.getDeskripsi + , Donatur_Table_T; int jml; jml = Integer.parseIntprosesbean.jumlahD; int i; for i = 1; i = jml; i++ { System.out.printlni; if i jml { query = query + Donatur_T + prosesbean.getId_Donaturi - 1 + , + prosesbean.getNama_Donaturi - 1 + , + prosesbean.getDarii - 1 + , + prosesbean.getNo_tlpi - 1 + , + prosesbean.getTanggal_berii - 1 + , + prosesbean.getJumlahi - 1 + ,; } else { query = query + Donatur_T + prosesbean.getId_Donaturi - 1 + , + prosesbean.getNama_Donaturi - 1 + , + prosesbean.getDarii - 1 + , + prosesbean.getNo_tlpi - 1 + , + prosesbean.getTanggal_berii - 1 + , + prosesbean.getJumlahi - 1 + ,; } } query = query + REF a From LapKeuangan a where a.id_Lap= + prosesbean.getId_Lap + ; 164 Gambar 4. 98 Servlet controller insert data kegiatan c. Menu Ubah Berita Kegiatan Isi dari tab menu ini adalah untuk mengubah data kegiatan. Langkah pertama masukkan dahulu Id kegiatan yang ingin diubah datanya. Berikut adalah tampilannya: Gambar 4. 99 Ubah data kegiatan Lalu akan masuk ke halaman yang menampilkan form untuk mengubah data dari id kegiatan yang telah dipilih: 165 Gambar 4. 100 Form ubah data kegiatan Jika data berhasil diubah maka akan masuk ke halaman yang menampilkan seluruh data kegiatan: Gambar 4. 101 Hasil ubah kegiatan Queri yang digunakan untuk mengubah data ke tabel kegiatan berada dalam method updateKegiatan yang disimpan didalam javabean. Queri tersebut adalah: 166 Queri yang digunakan untuk mengubah data ke tabel bersarang nested table donatur berada dalam method updateDonatur yang disimpan didalam javabean. Queri ini di execute sebanyak jumlah donatur. Langkah awal dari queri ini adalah select dahulu data dari atribut donatur berdasarkan id kegiatan yang dipilih, lalu mengupdate data didalam nested table donatur berdasarkan hasil select data donatur sebelumnya, sebagai berikut: Agar sistem dapat mengetahui seberapa banyak execute queri untuk update donatur, dan berapa banyak baris di tabel untuk form ubah donatur, menggunakan queri untuk menghitung berapa banyak Id Donatur sebagai berikut: String query = UPDATE Kegiatan SET Nama_Kegiatan= + prosesbean.getNama_Kegiatan_after + , Tanggal= + prosesbean.getTanggal + , Waktu= + prosesbean.getWaktu + , Tempat= + prosesbean.getTempat + , Deskripsi= + prosesbean.getDeskripsi + WHERE Id_Kegiatan = + prosesbean.getId_Kegiatan + ; String query = UPDATE theSELECT a.Donatur FROM Kegiatan a WHERE a.Id_Kegiatan= + prosesbean.getId_Kegiatan + b SET b.Nama_Donatur = + prosesbean.getNama_Donaturi - 1 + , b.Dari= + prosesbean.getDarii - 1 + , b.No_tlp= + prosesbean.getNo_tlpi - 1 + , b.Tanggal_beri= + prosesbean.getTanggal_berii - 1 + , b.jumlah= + prosesbean.getJumlahi - 1 + WHERE b.id_Donatur = + prosesbean.getId_Donaturi - 1 + ; 167 Kedua method untuk memasukkan data ke database tersebut di panggil oleh kelas servlet controller. Berikut adalah bagian dari listing program pada kelas servlet controller: Gambar 4. 102 Servlet controller ubah data kegiatan d. Menu Hapus Berita Kegiatan Isi dari menu ini adalah untuk menghapus data kegiatan. Berikut adalah tampilannya: Gambar 4. 103 Hapus data kegiatan Setelah memasukkan Id kegiatan yang ingin dihapus, maka akan masuk ke halaman yang menyatakan data sudah dihapus String query1 = Select COUNT Id_Donatur AS JumlahDonatur FROM THE SELECT Donatur FROM Kegiatan WHERE Id_Kegiatan = + ubah.getId_Kegiatan + ; 168 dan menampilkan seluruh data kegiatan yang masih ada, seperti berikut ini: Gambar 4. 104 Hasil hapus data kegiatan Queri untuk menghapus data kegiatan adalah: Queri tersebut berada pada method deleteKegiatan, dan di panggil oleh kelas servlet controller. Berikut adalah bagian dari listing program pada kelas servlet controller: Gambar 4. 105 Servlet controller hapus data kegiatan e. Menu Hapus Donatur String query = DELETE From Kegiatan where id_Kegiatan = + prosesbean.getId_Kegiatan + or nama_Kegiatan= + prosesbean.getNama_Kegiatan + ; 169 Isi dari menu ini adalah untuk menghapus data donatur. Pertama masukkan dahulu id kegiatan id donatur. Berikut adalah tampilannya: Gambar 4. 106 Hapus donatur Setelah memasukkan id kegiatan dan id donatur yang ingin dihapus, maka akan masuk ke halaman yang menyatakan data sudah dihapus dan menampilkan seluruh data kegiatan yang masih ada, seperti berikut ini: Gambar 4. 107 Hasil hapus donatur Queri untuk menghapus data donatur pertama-tama melakukan select donatur dari tabel kegiatan tersebut 170 berdasarkan id kegiatan yang sudah dipilih, lalu menghapus data donatur berdasarkan id donatur dari id kegiatan yang sudah dipilih, sebagai berikut: Queri tersebut berada pada method deleteDonatur, dan di panggil oleh kelas servlet controller. Berikut adalah bagian dari listing program pada kelas servlet controller: Gambar 4. 108 Servlet controller hapus data donatur 4.3.3. Implementasi Fitur Relationships using REF 4.3.3.1. Halaman Profil Di halaman profil untuk admin ini terdapat implementasi dari relationships using ref untuk menangani hubungan asosiasi antara tabel materi dengan tabel pengajarTetap, dan hubungan asosiasi antara tabel materi dengan tabel pengajarRelawan. 4.3.3.1.1. Tab menu Materi Menu ini berada di sebelah kiri halaman, isi dari tab menu ini adalah untuk mencari dan menampilkan data materi, menambah data, mengubah data, dan menghapus data materi. Implementasi String query = DELETE theSELECT a.Donatur FROM Kegiatan a WHERE a.Id_Kegiatan = + prosesbean.getId_Kegiatan + b WHERE b.id_Donatur= + prosesbean.getHapusId_Donatur + ; 171 menggunakan fitur relationships using ref terdapat pada implementasi menampilkan data dan menambah data. Gambar 4. 109 Menu materi a. Menu Cari dan Tampil Data Pada menu ini, admin dapat melakukan pencarian data berdasarkan Nama atau ID, dan dapat melihat seluruh data materi dengan mengklik link “Lihat semua data materi yang diajarkan”. Tampilannya adalah sebagai berikut: Gambar 4. 110 Cari dan lihat data materi Jika data yang dicari ditemukan maka akan masuk ke halaman yang menampilkan data lengkap dari materi, sebagai berikut ini: 172 Gambar 4. 111 Hasil cari materi Berikut adalah queri yang digunakan untuk mencari data materi: Berikut adalah queri yang digunakan untuk menampilkan data pengajar tetap, menggunakan sintaks “JOIN ON REF” berdasarkan hasil dari Id Materi: Berikut adalah queri yang digunakan untuk menampilkan data pengajar relawan, menggunakan sintaks “JOIN ON REF” berdasarkan hasil dari Id Materi: b. Menu Tambah Data Pada menu ini, admin dapat melakukan penambahan data materi. Berikut adalah tampilan admin dalam memasukkan data: String query = select from Materi where id_Materi = + cari.getId_Materi + or nama_Materi = + cari.getNama_Materi + ; String query1 = SELECT FROM PengajarTetap a JOIN Materi c ON REF a = c.pengajarT WHERE c.Id_Materi= + result.getStringId_Materi + ; String query2 = SELECT FROM People b JOIN Materi c ON REF b = c.people WHERE c.Id_Materi= + result.getStringId_Materi + ; 173 Gambar 4. 112 Form tambah data materi Queri untuk menambah data materi terdiri dari tiga bagian, bagian pertama adalah untuk memasukkan data di atribut id materi dan nama materi menggunakan sintaks insert biasa, lalu bagian kedua memasukkan data pengajar tetap menggunakan sintaks select ref berdasarkan id anggota garuluku, bagian ketiga adalah memasukkan data pengajar relawan menggunakan sintaks select ref berdasarkan id pengara relawan, sebagai berikut: Query tersebut dijalankan pada method InserMateri yang terdapat dalam javabean, dan di panggil oleh kelas servlet controller. Berikut adalah bagian dari listing program pada kelas servlet controller : String query = INSERT INTO Materi values + prosesbean.getId_Materi + , + prosesbean.getNama_Materi + , the select REF a From PengajarTetap a where a.id_AG= + prosesbean.getId_AG + , theselect REF b From People b where b.id= + prosesbean.getId_PR + ; 174 Gambar 4. 113 Servlet controller tambah data materi Jika data berhasil dimasukkan, akan masuk ke halaman yang menampilkan seluruh data materi yang sudah dimasukkan: Gambar 4. 114 Hasil tambah data materi 4.3.3.2. Halaman Kegiatan 4.3.3.2.1. Tab menu edit halaman bagian menangani data Selenggara Di halaman kegiatan untuk admin ini terdapat implementasi dari relationships using ref yang menangani hubungan many to many antara tabel People yang jenis anggotanya adalah AnggotaGaruluku dan tabel Kegiatan, sehingga muncul tabel baru yaitu tabel PanitiaSelenggara yang isinya adalah Id anggota dan Id Kegiatan, yaitu untuk menyimpan data seorang anggota garuluku sudah berpartisipasi pada kegiatan apa saja, atau suatu kegiatan diselenggarakan oleh anggota garuluku siapa saja. Berikut ini adalah tampilan dari menu kegiatan: 175 Gambar 4. 115 Halaman kegiatan admin a. Menu Lihat Selenggara Implementasi Isi dari tab menu ini adalah untuk mencari data panitia penyelenggara suatu kegiatan dan melihat seluruh data penyelenggara kegiatan. Berikut adalah tampilannya: Gambar 4. 116 Lihat dan cari data penyelenggara kegiatan Jika ingin mencari data kegiatan diselenggarakan oleh anggota garuluku siapa saja, dapat mengetik di pencarian bagian id kegiatan, jika data ditemukan akan masuk ke halaman berikut ini: 176 Gambar 4. 117 Hasil cara data penyelenggara kegiatan Queri yang digunakan untuk menampilkan data yang dicari adalah sebagai berikut: b. Menu Tambah Selenggara Isi dari menu ini adalah untuk menambah data penyelenggara suatu kegiatan. Berikut adalah tampilannya: Gambar 4. 118 Tambah data penyelenggara kegiatan Admin memasukkan id anggota dan id kegiatan mana yang ia telah ikut berpartisipasi sebagai panitia penyelenggara. Jika data berhasil dimasukkan maka akan masuk ke halaman yang berisi seluruh data penyelenggara kegiatan, sebagai berikut ini: String query = select from PanitiaSelenggara where id = + cari.getId_AG + or id_Kegiatan = + cari.getId_Kegiatan + ; 177 Gambar 4. 119 Hasil tambah data penyelenggara kegiatan Queri yang digunakan untuk memasukkan data penyelenggara kegiatan adalah sebagai berikut: c. Menu Hapus Selenggara Isi dari menu ini adalah untuk menghapus data penyelenggara suatu kegiatan. Berikut adalah tampilannya: Gambar 4. 120 Hapus data penyelenggara kegiatan String query = INSERT INTO PanitiaSelenggara VALUES + prosesbean.getId_AG + , + prosesbean.getId_Kegiatan + ; 178 Admin mengisi id anggota dan id kegiatan mana yang ia telah ikut berpartisipasi sebagai panitia penyelenggara yang ingin dihapus datanya. Jika data berhasil dihapus maka akan masuk ke halaman yang berisi seluruh data penyelenggara kegiatan, sebagai berikut ini: Gambar 4. 121 Hasil hapus data penyelenggara kegiatan Queri yang digunakan untuk menghapus data penyelenggara kegiatan adalah sebagai berikut: 4.4. Implementasi Sistem Informasi LSM Garuluku-FORANDAKA Secara Umum 4.4.1. Implementasi Web untuk Pengunjung 4.4.1.1. Halaman Profil. 4.4.1.1.1. Tab Profil Umum String query = DELETE FROM PanitiaSelenggara WHERE Id= + prosesbean.getId_AG + AND Id_Kegiatan= + prosesbean.getId_Kegiatan + ; 179 180 Gambar 4. 122 Halaman profil umum pada tampilan pengunjung 4.4.1.1.2. Tab Pengurus Forum Anak 181 Gambar 4. 123 Lihat dan cari data pengurus FORANDAKA Pada halaman ini, dapat melihat semua data dari pengurus FORANDAKA, dengan mengklik link bertuliskan “Lihat Semua Data Pengurus FORANDAKA 17”, maka akan muncul halaman yang berisi seluruh biodata dari seluruh pengurus, sebagai berikut: Gambar 4. 124 Halaman lihat semua data pengurus FORANDAKA Lalu di halaman ini dapat pula melihat struktur organisasi kepengurusan FORANDAKA, yaitu dengan mengklik bertuliskan “Lihat Struktur Organisasi”, maka akan ditampilkan gambar struktur organisasi sebagai berikut: 182 Gambar 4. 125 Halaman struktur organisasi FORANDAKA Lalu di halaman ini juga dapat mencari data pengurus, caranya adalah dengan melakukan pencarian melalui mengisi nama atau id anggota ada text box yang sudah disiapkan, lalu klik button cari. Berikut adalah query untuk melakukan pencarian: Jika data yang dicari ada dalam database contoh mencari pengurus dengan nama: Amri Raez maka akan masuk ke dalam halaman yang menampilkan seluruh data dari pengurus yang dicari tersebut: String query = select from pengurus where nama= + cari.getNama_AG + or id= + cari.getId_AG + AND Jenis=Pengurus Forum Anak; 183 Gambar 4. 126 Halaman hasil pencarian Di tab Pengurus FORANDAKA ini juga terdapat tabel yang menampilkan seluruh id dan nama pengurus, agar pengunjung dapat dengan mudah mencari biodata seorang pengurus dengan melihat dahulu id dan nama yang ingin dicari melalui tabel tersebut. 4.4.1.1.3. Tab Pengurus Sanggar Anak Gambar 4. 127 Lihat dan cari pengurus Sanggar Anak Garuluku Pada halaman ini, dapat melihat semua data dari pengurus Sanggar Anak Garuluku, dengan mengklik link bertuliskan “Lihat Data Lengkap Seluruh Pengurus Sanggar Anak Garuluku”, maka 184 akan muncul halaman yang berisi seluruh biodata dari seluruh pengurus, sebagai berikut: Gambar 4. 128 Halaman lihat semua data pengurus Sanggar Anak Garuluku Lalu di halaman ini dapat pula melihat struktur organisasi kepengurusan Sanggar Anak Garuluku, yaitu dengan klik tulisan “Lihat Struktur Organisasi”, maka akan ditampilkan gambar struktur organisasi sebagai berikut: Gambar 4. 129 Struktur Organisasi Sanggar Anak Garuluku Lalu di halaman ini juga dapat mencari data pengurus, caranya adalah dengan melakukan pencarian melalui mengisi nama atau id anggota ada text box yang sudah disiapkan, lalu klik button cari. Berikut adalah query untuk melakukan pencarian: 185 Jika data yang dicari ada dalam database contoh mencari pengurus dengan nama: Eva Findriaku maka akan masuk ke dalam halaman yang menampilkan seluruh data dari pengurus yang dicari tersebut: Gambar 4. 130 Halaman hasil pencarian Di tab Pengurus Sanggar Anak Garuluku ini juga terdapat tabel yang menampilkan seluruh id dan nama pengurus, agar pengunjung dapat dengan mudah mencari biodata seorang pengurus dengan melihat dahulu id dan nama yang ingin dicari melalui tabel tersebut. 4.4.1.1.4. Tab Data Anggota Forum Anak String query = select from pengurus where nama = + cari.getNama_AG + or id= + cari.getId_AG + AND Jenis=Pengurus Sanggar Anak; 186 Gambar 4. 131 Lihat dan cari data angota FORANDAKA Pada halaman ini, dapat melihat semua data dari anggota Forum Anak, dengan mengklik link bertuliskan “Lihat Data Lengkap Seluruh Anggota”, maka akan masuk ke halaman yang berisi seluruh biodata dari seluruh anggota forum anak, sebagai berikut: Gambar 4. 132 Halaman Lihat data lengkap anggota FORANDAKA Lalu di halaman ini juga dapat mencari data anggota, caranya adalah dengan melakukan pencarian melalui mengisi nama atau id anggota ada text box yang sudah disiapkan, lalu klik button cari. Berikut adalah query untuk melakukan pencarian: 187 Jika data yang dicari ada dalam database contoh mencari pengurus dengan nama: Asih Rahayu maka akan masuk ke dalam halaman yang menampilkan seluruh data dari anggota yang dicari tersebut: Gambar 4. 133 Halaman hasil pencarian Di tab Anggota Forum Anak ini juga terdapat tabel yang menampilkan seluruh id dan nama anggota forum anak, agar pengunjung dapat dengan mudah mencari biodata seseorang dengan melihat dahulu id dan nama yang ingin dicari melalui tabel tersebut. 4.4.1.1.5. Tab Data Anggota Sanggar Anak String query = select from anggotaFA where nama_AG = + cari.getNama_AG + or id_AG = + cari.getId_AG + ; 188 Gambar 4. 134 Lihat dan cari data anggota Sanggar Anak Garuluku Pada halaman ini, dapat melihat semua data dari anggota Sanggar Anak, dengan mengklik link bert uliskan “Lihat Semua Data Anggota Sanggar Anak Garuluku”, maka akan masuk ke halaman yang berisi seluruh biodata dari seluruh anggota sanggar anak, sebagai berikut: Gambar 4. 135 Halaman lihat semua data anggota Sanggar Anak Garuluku Lalu di halaman ini juga dapat mencari data anggota, caranya adalah dengan melakukan pencarian melalui mengisi nama atau id 189 anggota ada text box yang sudah disiapkan, lalu klik button cari. Berikut adalah query untuk melakukan pencarian: Jika data yang dicari ada dalam database contoh mencari anggota dengan nama: Agam Tri Eluario maka akan masuk ke dalam halaman yang menampilkan data dari anggota yang dicari tersebut: Gambar 4. 136 Halaman hasil pencarian Di tab Anggota Sanggar Anak ini juga terdapat tabel yang menampilkan seluruh id dan nama anggota forum anak, agar pengunjung dapat dengan mudah mencari biodata seseorang dengan melihat dahulu id dan nama yang ingin dicari melalui tabel tersebut. String query = select from anggotaSA where nama= + cari.getNama_AG + or id= + cari.getId_AG + ; 190 4.4.1.1.6. Tab Data Pengajar Tetap Gambar 4. 137 Lihat dan cari data pengajar tetap Pada halaman ini, dapat melihat semua data dari pengurus yang juga menjadi pengajar, dengan mengklik link bertuliskan “Lihat Semua Data Pengajar Tetap”, maka akan muncul halaman yang berisi seluruh biodata dari seluruh pengurus, sebagai berikut: Gambar 4. 138 Halaman lihat semua data pengajar Lalu di halaman ini juga dapat mencari data pengajar tetap, caranya adalah dengan melakukan pencarian melalui mengisi id atau hari ajar pengajar di text box yang sudah disiapkan, lalu klik button cari. Berikut adalah query untuk melakukan pencarian: 191 Jika data yang dicari ada dalam database contoh mencari pengajar yang hari ajarnya adalah hari: Sabtu maka akan masuk ke dalam halaman yang menampilkan seluruh data dari pengajar yang dicari tersebut: Gambar 4. 139 Halaman hasil pencarian Di tab Pengajar Tetap ini juga terdapat tabel yang menampilkan seluruh id dan nama pengajar tetap, agar pengunjung dapat dengan mudah mencari biodata seseorang dengan melihat dahulu id dan nama yang ingin dicari melalui tabel tersebut. 4.4.1.1.7. Tab Data Pengajar Relawan String query = select from PengajarTetap where id= + cari.getId_AG + or hariAjar = + cari.getHariAjar + ; 192 Gambar 4. 140 Lihat dan cari data pengajar relawan Pada halaman ini, dapat melihat semua data pengajar relawan, dengan mengklik link bertuliskan “Lihat Semua Data Pengajar Relawan”, maka akan muncul halaman yang berisi seluruh biodata dari seluruh pengajar relawan, sebagai berikut: Gambar 4. 141 Halaman lihat semua data pengajar relawan Lalu di halaman ini juga dapat mencari data pengajar relawan, caranya adalah dengan melakukan pencarian melalui mengisi id atau nama pengajar di text box yang sudah disiapkan, lalu klik button cari. Berikut adalah query untuk melakukan pencarian: String query = select from People where id= + cari.getId_PR + or nama= + cari.getNama_PR + ; 193 Jika data yang dicari ada dalam database contoh mencari pengajar relawan yang memiliki id: PR02 maka akan masuk ke dalam halaman yang menampilkan data dari pengajar yang dicari tersebut: Gambar 4. 142 Halaman hasil pencarian Di tab Pengajar Relawan ini juga terdapat tabel yang menampilkan seluruh id dan nama pengajar relawan, agar pengunjung dapat dengan mudah mencari biodata seseorang dengan melihat dahulu id dan nama yang ingin dicari melalui tabel tersebut. 4.4.1.1.8. Tab Data Anggota Garuluku Halaman ini menampilkan id dan nama seluruh anggota garuluku, baik yang dari forum anak desa kemadang, maupun sanggar anak garuluku, tampilannya adalah sebagai berikut: 194 Gambar 4. 143 Tab menu Data Anggota Garuluku Pada halaman ini, dapat melihat data lengkap dari semua anggota garuluku, dengan mengklik link bertuliskan “Lihat data lengkap seluruh anggota”, maka akan muncul halaman yang berisi seluruh biodata dari seluruh anggota, sebagai berikut: Gambar 4. 144 Halaman semua data anggota Garuluku 4.4.1.1.9. Tab Materi 195 Gambar 4. 145 Tab menu Materi Pada halaman ini, dapat melihat semua data materi, dengan m engklik link bertuliskan “Lihat semua materi yang diajarkan”, maka akan muncul halaman yang berisi seluruh materi juga pengajar yang mengajarkan materi tersebut, sebagai berikut: Gambar 4. 146 Halaman lihat semua materi yang diajarkan Lalu di halaman ini juga dapat mencari data materi, caranya adalah dengan melakukan pencarian melalui mengisi id atau nama materi di text box yang sudah disiapkan, lalu klik button cari. Berikut adalah query untuk melakukan pencarian: String query = select from Materi where id_Materi = + cari.getId_Materi + or nama_Materi = + cari.getNama_Materi + ; 196 Jika data yang dicari ada dalam database contoh mencari materi yang memiliki nama: Melukis maka akan masuk ke dalam halaman yang menampilkan data dari pengajar yang dicari tersebut: Gambar 4. 147 Halaman hasil pencarian Di tab Materi ini juga terdapat tabel yang menampilkan seluruh id dan nama materi, agar pengunjung dapat dengan mudah mencari data materi dengan melihat dahulu id dan nama yang ingin dicari melalui tabel tersebut. 4.4.1.2. Halaman Services 197 Gambar 4. 148 Halaman Service 4.4.1.3. Halaman Kegiatan 4.4.1.3.1. Tab Arsip Kegiatan Pengunjung dapat memilih pada bagian arsip kegiatan, yang berisi tanggal suatu kegiatan diadakan, Setelah diklik, maka akan tampil suatu kegiatan beserta rinciannya, sebagai berikut: 198 Gambar 4. 149 Tab menu arsip kegiatan 4.4.1.3.2. Tab Lihat Selenggara Pengunjung dapat melihat seorang anggota sudah berpartisipasi sebagai panitia penyelenggara pada kegiatan apa saja. Caranya adalah klik tab “Lihat Selenggara”, sebagai berikut: 199 Gambar 4. 150 Tab menu selenggara Lalu klik link “Lihat Semua Data Penyelenggara Kegiatan”, maka akan masuk ke halaman berikut: Gambar 4. 151 Halaman lihat semua data penyelenggara kegiatan Pengunjung juga dapat melakukan pencarian, dengan cara mengisi id anggota atau id kegiatan yang ingin dicari. Supaya pengguna dapat dengan mudah mengetahui data ID, maka sudah disediakan tabel dibawahnya yang berisi semua data id dan nama anggota, juga id dan nama kegiatan. Misalnya ingin mencari data panitia penyelenggara kegiatan Peringatan Dirgahayu FORANDAKA dan Hari Perempuan Internasional, dengan ID Kegiatan adalah KG02, Hasil pencariannya adalah sebagai berikut: 200 Gambar 4. 152 Halaman hasil pencarian 4.4.1.3.3. Tab Lihat Foto Galeri Kegiatan Pengunjung dapat melihat seluruh gambar yang sudah diupload ke dalam web, melalui tab ini. Hasilnya adalah sebagai berikut: Gambar 4. 153 Lihat galeri foto kegiatan Query untuk menampilkan gambar di tab ini adalah : 4.4.1.4. Halaman Hubungi Kami String query = select Title, Photo from galeri where title =Struktur Organisasi FA and title =Struktur Organisasi SA; 201 Pada halaman ini, pengunjung dapat melihat data email garuluku, alamat balai anak garuluku, juga nomor telepon yang bisa dihubungi. Di halaman ini pengunjung dapat mengirim pesan langsung untuk ditampilkan di halaman ini juga, agar bisa dibaca oleh semua orang yang membuka halaman ini. Tampilannya adalah sebagai berikut: Gambar 4. 154 Halaman hubungi kami Query untuk menyimpan data hubungi kami di gambar di atas adalah: 4.4.2. Implementasi Web untuk Admin 4.4.2.1. Halaman Login String query = INSERT INTO ContactUs values + prosesbean.getName + , + prosesbean.getEmail + , + prosesbean.getMessage + ; 202 Halaman Login merupakan halaman login untuk admin. Agar dapat masuk ke dalam sistem ini, admin harus memasukkan username dan password . Gambar 4. 155 Halaman Login admin Pada halaman berikut akan muncul pesan error yakni adalah jika admin salah memasukkan username atau password. Gambar 4. 156 Halaman pesan login error Pada halaman berikut adalah jika admin berhasil login, akan masuk ke halaman bahwa admin telah masuk ke sistem. Pada halaman ini terdapat 203 button Logout jika admin ingin keluar dari sistem, dan terdapat menu “Ubah akun admin” untuk mengubah akun username dan password admin. Gambar 4. 157 Halaman sukses login admin 4.4.2.2. Halaman Services Halaman Service disini berisi tentang kesediaan pengunjung atau masyarakat luas yang ingin mendaftarkan diri menjadi donatur. Admin dapat melihat siapa saja yang sudah mendaftar menjadi donatur. 204 Gambar 4. 158 Halaman service admin 4.4.2.2.1. Menu Lihat Donatur yang sudah mendaftar Menu ini berada di paling bawah setelah keterangan mengenai info untuk pengunjung yang ingin menjadi donatur. Jika admin mengklik link ini, maka admin akan masuk ke halaman yang berisi donatur yang sudah mendaftar, seperti berikut ini: Gambar 4. 159 Hasil lihat data donatur yang mendaftar Queri untuk menampilkan donatur yang sudah mendaftar adalah: 205 4.4.2.3. Halaman Kegiatan Implementasi secara umum pada bagoian halaman kegiatan terletak pada menu untuk mengatur galeri foto, pada bagian edit halaman, sebagai berikut tampilannya: Gambar 4. 160 Halaman kegiatan admin 4.4.2.3.1. Menu Lihat Foto Kegiatan Isi dari tab menu ini adalah seluruh foto galeri kegiatan yang sudah dimasukkan. Berikut adalah tampilannya: String query = select from DonaturL order by Tanggal_beriL; 206 Gambar 4. 161 Lihat foto galeri kegiatan Queri untuk menampilkan foto galeri kegiatan adalah sebagai berikut: 4.4.2.3.2. Menu Tambah Foto Kegiatan Isi dari tab menu ini adalah untuk menambah foto di galeri kegiatan. Berikut adalah tampilannya: String query = select Title, Photo from galeri where title =Struktur Organisasi FA and title =Struktur Organisasi SA; 207 Gambar 4. 162 Tambah foto galeri kegiatan Admin mengisi Id foto, Judul foto, dan memilih foto mana yang akan dimasukkan, jika proses upload berhasil, maka akan masuk ke halaman yang menampilkan seluruh data foto yang sudah dimasukkan, sebagai berikut: Gambar 4. 163 Hasil tambah foto galeri kegiatan Queri untuk memasukkan foto galeri kegiatan adalah sebagai berikut: 4.4.2.3.3. Menu Hapus Foto Kegiatan String query = select Title, Photo from galeri where title =Struktur Organisasi FA and title =Struktur Organisasi SA; 208 Isi dari tab menu ini adalah untuk menghapus foto di galeri kegiatan. Berikut adalah tampilannya: Gambar 4. 164 Hapus data foto kegiatan Admin mengisi berdasarkan Id foto atau Judul foto apa yang ingin dihapus, jika proses hapus berhasil, maka akan masuk ke halaman yang menampilkan seluruh data foto, sebagai berikut: Gambar 4. 165 Hasil hapus foto galeri kegiatan Queri untuk menghapus foto galeri kegiatan adalah sebagai berikut: String query = DELETE FROM Galeri WHERE id= + id + OR title = + title + ; 209 4.4.3. Implementasi Web untuk Donatur 4.4.3.1. Halaman Services Jika seorang pengunjung ingin menjadi donatur, dapat mendaftarkan diri melalui Menu Service ini. Pengunjung dapat memilih link untuk mendaftar “disini” yang ada di dalam tampilan halaman service. Tampilan halaman services adalah sebagai berikut: Gambar 4. 166 Halaman service untuk donatur Setelah pengunjung klik pada link untuk mendaftar, maka akan masuk ke form untuk pengunjung mengisi data dirinya sebagai berikut: 210 Gambar 4. 167 Daftar donatur Setelah berhasil mendaftar akan masuk ke halaman berikut ini: Gambar 4. 168 Hasil daftar donatur Pengunjung yang telah mendaftar menjadi donutur akan diberikan username dan password, sehingga donatur dapat melihat data laporan keuangan dan data donatur suatu kegiatan. Username dan password yang telah diberikan dapat diubah oleh donatur pada menu ubah akun login. Jika donatur ingin login, dapat melalui services lalu klik link untuk login di sini, sebagai berikut: 211 Gambar 4. 169 Login donatur Jika berhasil login, akan masuk ke halaman berikut ini: Gambar 4. 170 Halaman sukses login donatur 4.4.3.2. Halaman Kegiatan Seorang donatur yang sudah login, dapat melihat data laporan keuangan suatu kegiatan, dan data donatur yang berpartisipasi dalam suatu kegiatan. Data tersebut dapat dilihat di menu Kegiatan, lalu klik pilihan pada bagian arsip kegiatan berdasarkan tanggal kegiatan. Tampilannya adalah sebagai berikut: 212 Gambar 4. 171 Halaman kegiatan untuk donatur Jika donatur mengklik link “Lihat Donatur” maka akan tampil data donatur kegiatan tersebut, sebagai berikut ini: Gambar 4. 172 Lihat donatur Jika donatur mengklik link “Lihat Laporan Keuangan” maka akan tampil data laporan keuangan dari kegiatan tersebut, sebagai berikut ini: 213 Gambar 4. 173 Lihat Laporan keuangaan 214

BAB V ANALISA HASIL