1 BAB IV
PERANCANGAN DAN IMPLEMENTAS I
1.1 Sistem Yang Diusulkan
Setelah melakukan survey pada sistem yang sedang berjalan, wawancara dengan karyawan maupun kepala Dewan Kelurahan (Dekel) dan melakukan analisis kebutuhan sistem, kami melakukan perbaikan-perbaikan pada sistem tersebut.
Sistem berjalan belum terkomputerisasi dan belum berjalan dengan baik. Sistem baru yang akan diusulkan memiliki struktur database yang lebih kuat dan terintegrasi. Aplikasi yang dikembangkan memiliki fitur-fitur yang diperlukan dan mudah digunakan oleh pemakai serta memiliki output berupa laporan yang diperlukan dalam pengambilan keputusan, memantau, dan melihat keluar-masuknya dana BPM pada Kelurahan M angga Besar.
Diharapkan aplikasi yang dikembangkan dapat memenuhi kebutuhan dari Kelurahan M angga Besar khususnya bagi Dekel M angga Besar dan para staf kelurahan yang menangani PPM K.
1.1.1 Context Diagram Yang Diusulkan
1.1.2 Data Flow Diagram Yang Diusulkan
1.2 Perancangan Database PPMK
Proses perancangan Sistem Basis Data terdiri dari tiga tahap, yaitu: • Perancangan Basis Data Konseptual (Conceptual Database Design) • Perancangan Basis Data Logikal (Logical Database Design)
• Perancangan Basis Data Fisikal (Physical Database Design) 1.2.1 Perancangan Database Conceptual
Conceptual database design adalah proses merancang sebuah model informasi yang digunakan pada perusahaan, dan bebas dari semua pertimbangan fisik. Pada tahap ini, input yang dibutuhkan adalah model informasi tiap user view yang digunakan pada perusahaan. Hasil output yang dihasilkan adalah entiti-entiti beserta relasi, atribut, primary key dan deskripsi atribut. Tahap-tahap dalam perancangan conceptual database design yaitu: 1. M engidentifikasi tipe entiti (entity Type).
2. M engidentifikasi tipe relasi (relationship Type).
3. M engidentifikasi dan mengasosiasikan atribut dan domain atribut dengan entiti atau tipe relasi.
4. M enentukan atribut candidate key dan Primary Key. 5. Cek model terhadap redundansi
1.2.1.1 Mengidentifikasikan Tipe Entity
Langkah ini merupakan yang pertama dalam perancangan database. Di bawah ini akan diidentifikasikan entity-entity yang ada pada Database PPMK.
Entity Name Description Alias Occurrence jadwal_bayar Entity yang berisi
informasi mengenai pembayaran angsuran
Jadwal Bayar Setiap Jadwal Bayar berhubungan dengan pinjaman
Menu Entity yang berisi
informasi menu
Menu Setiap menu berhubungan dengan msgroup
Group Entity yang berisi jenis group pengguna
Group Setiap group berhubungan dengan user
Karyawan Entity yang berisi informasi Karyawan
Karyawan Setiap Karyawan berhubungan dengan user dan pinjaman
User Entity yang berisi nama pengguna aplikasi
User Setiap user berhubungan dengan karyawan dan group
Pembayaran Entity yang berisi informasi Pembayaran
Pembayaran Setiap pembayaran berhubungan dengan pinjaman
Peminjam Entity yang berisi informasi Peminjam
Peminjam Setiap peminjam berhuibungan dengan pinjaman
Pinjaman Entity yang berisi informasi Pinjaman
Pinjaman Setiap pinjaman berhubungan dengan peminjam, jadwal bayar, simpanan pemerintah, dan pembayaran
simpanan_pemerintah Entity yang berisi informasi Dana dari pemerintah Simpanan Pemerintah Setiap simpanan pemerintah berhubungan dengan pinjaman
1.2.1.2 Mengidentifikasi Relasi Antar Entity
Setelah menentukan tiap entity pada Database PPM K M angga Besar, sekarang akan ditentukan relasi antar entity tersebut. Berikut ini merupakan tabel yang menggambarkan relasi antar entity pada Database PPM K M angga Besar:
1.2.1.3 Menentukan Multiplicity Dari Tipe Relational
Nama Entitas Multiplicity Relationship Nama Entitas Multiplicity
karyawan 1..1 melayani pinjaman 1..*
menu 1..* dimiliki group 1..1
pinjaman 1..1 1..* 1..1 1..1 dipunyai meminjam memiliki mengembalikan peminjam simpanan_pemerintah jadwal_bayar simpanan_pemerintah 1..1 1..1 1..* 1..1 user 0..1 1..* merupakan anggota karyawan group 1..1 1..1
pembayaran 1..* membayar pinjaman 1..1
1.2.1.4 Mengidentifikasi Atribut Tiap Entity
Setelah menentukan relasi antar entity beserta multiplicity constraint antar entity, sekarang akan ditentukan atribut dari tiap entity, tipe data, dan panjangnya. Berikut ini merupakan tabel yang menggambarkan atribut dari tiap entity yang telah diidentifikasikan sebelumnya :
Nama Entity Attribute Description Data Types and Length
Null Multi Valued
JadwalID Identitas jadwal Int (11) No No PinjamanID Identitas pinjaman Int (10) No No Harus_bay ar Tanggal pembayaran
Angsuran
Date No No
Jumlah_angsuran Jumlah angsuran yang mesti dibayarkan
Bigint (20) No Yes Angsuran_ke Urutan pembayaran
angsuran
Char (2) No No
Jadwal_bay ar
Status Status tiap urutan angsuran
Char (11) No No
id_menu Identitas menu Int (5) No No
nama_menu Nama menu Varch ar (50) No No
Link Link dalam aplikasi Varch ar(100) No No static_content Berisi konten aplikasi
yang statik
Text No No
gambar Berisikan gambar Varch ar (100) No No Status Login sebagai admin
atau staf (user)
Enum (‘user’,’ admin’)
No No Aktif Penanda tombol aktif Enum (‘Y’,’N’) No No Menu
No_Urut Nomor urut tampil Int (5) No No
Code Identitas paramet er Char (5) No No
Name Nama value Varch ar (10) No No
Msgeneralp aram
Param_Value Berisi value untuk operasi-op erasi
Varch ar (10) No No
GroupID Identitas group Char (10) No No
MenuID Identitas menu Char (10) No No
Msgroup
Group_Name Nama group Varch ar (10) No No KaryawanID Identitas karyawan Int (10) No No
Nama Nama kary awan Varch ar (20) No No
Mskaryawan
Alamat Alamat karyawan Varch ar (35) No No UserID Nomor staf penggun a
aplikasi
Char (10) No No Password Kata kunci pengguna
aplikasi
Char (32) No No Msuser
Nama Entity Attribute Description Data Types and Length
Null Multi Valued
Msuser Level Jabatan Char (10) No No
Pembayaran ID Identitas Pembayaran Int (10) No No PinjamanID Identitas pinjaman Char (10) No No Tanggal_Bayar Tanggal pembayaran Date No No Pembayaran
Jumlah_Bayar Jumlah uang terbayar Big Int (20) No No PeminjamID Identitas peminjam Int (10) No No NoKK Nomor kartu keluarga Char (20) No No
NoKTP Nomor KTP Char (20) No No
Nama Nama peminjam Varch ar (20) No No
Alamat Alamat peminjam Varch ar (35) No No Tanggal_Lahir Tanggal lahir
peminjam
Date No No
Peminjam
Jenis_Kelamin Jenis kelamin peminjam
Binary (1) No No PinjamanID Identitas pinjaman Int (10) No No KaryawanID Identitas karyawan Char (10) No No Tanggal_Pinjam Tanggal peminjaman
uang
Date No No
Jumlah_Pinjaman Jumlah pinjaman uang Big Int (20) No No Pinjaman
Setelah_Bunga Jumlah Pinjaman beserta bunga
Big Int (20) No No SimpananID Identitas simpanan Int (10) No No Simpanan_Awal Dana awal yang
diberikan oleh pemerintah
Big Int (20) No No
Simpanan_Akhir Dana sisa yang akan diberikan kepad a pemerintah
Big Int (20) No No
Pokok_Pinjam Jumlah uang pokok yang dipinjamkan dan dikembalikan tanpa bunga
Big int (20) No No
Bunga_Pinjam Jumlah Bunga pinjaman
Big Int (20) No No Tanggal_Masuk Tanggal masuknya
uang simpanan
Date No No
Tanggal_Transaksi Tanggal transaksi yang terjadi
Date No No
simpanan_pemerintah
Keterangan Keterangan Varch ar(40) No No
1.2.1.5 Mengidentifikasikan Candidate Key dan Primary Key Tiap Entity
Setelah menentukan domain pada langkah sebelumnya, sekarang akan ditentukan atribut yang menjadi candidate key dan primary key dari tiap entity. Berikut ini merupakan tabel yang menggambarkan candidate key dan primary key dari tiap entity pada Database peminjaman dana PPM K M angga Besar.
Nama Entity Candidate Key Primary Key
Msgroup groupID groupID
Msuser userID userID
Mskaryawan karyawanID karyawanID
msgeneralparam code code
Peminjam PeminjamID NoKK
NoKTP
peminjamID
Pinjaman PinjamanID pinjamanID
Pembayaran PembayaranID pembayaranID
simpanan_pemerintah SimpananID simpananID M enu Id_menu Nama_menu Id_menu jadwal_bayar JadwalID PinjamanID jadwalID
1.2.1.6 Pemilihan DBMS
Pada tahap ini ditentukan DBM S yang akan digunakan. DBM S yang menjadi pilihan adalah PostgreSQL dan MySQL. Untuk menentukan pilihan, dilakukan perbandingan antara kedua DBM S tersebut.
Fitur Postgre S QL MySQL
Performa Lebih lambat Lebih cepat
View Supported Not supported
Trigger Supported Not supported
Stored Procedure Supported Not supported
Foreign Key Supported Hanya untuk tabel InnoDB
Cursor Supported Not supported
Vacuum Ya Tidak
ODBC Ya Ya
JDBC Ya Ya
Perbedaan Tipe Tabel Tidak Ya
Tabel 1-5 – Perbandingan Fitur PostgreSQL dan MySQ L
PostgreSQL mendukung fitur-fitur seperti view, trigger, dan stored procedure, namun performanya lebih lambat dibandingkan MySQL. MySQL lebih cocok untuk membuat aplikasi web dimana performa merupakan salah satu faktor penting karena kecepatannya dan didesain untuk bekerja secara baik dengan server Web-based.
Berdasarkan perbandingan di atas, DBM S yang digunakan adalah M ySQL.
1.2.2 Perancangan Database Logical
Perancangan Database Logical adalah proses membuat model dari informasi yang digunakan dalam sebuah perusahaan berdasarkan data model yang spesifik, namun tidak tergantung DBM S tertentu dan pertimbangan fisikal.
1.2.2.1 Menentukan Relasi Model Data Logikal
Pembentukan relasi model data logikal memiliki beberapa rincian tahapan antara lain:
1.2.2.1.1 S trong Entity
Strong entity adalah entitas yang keberadaannya tidak mempunyai ketergantungan terhadap entitas lain. Strong entity dalam model data logikal ini adalah:
Peminjam (PeminjamID, NoKK, NoKTP) Primary Key (PeminjamID)
Simpanan_Pemerintah (SimpananID) Primary Key (SimpananID)
Mskaryawan (KaryawanID) Primary Key (KaryawanID) MsGroup (GroupID) Primary Key (GroupID) MsGeneralParam (Code) Primary Key (Code)
1.2.2.1.2 Weak Entity
Weak Entity adalah entitas yang keberadaannya tergantungan terhadap entitas lain. Weak entity dalam model data logikal ini adalah:
Pinjaman (PinjamanID) Primary Key (PinjamanID)
Jadwal_Bayar (JadwalID, PinjamanID) Primary Key (JadwalID, PinjamanID)
Pembayaran (PembayaranID, Tanggal_Bayar) Primary Key (PembayaranID, Tanggal_Bayar) MsUser (UserID)
Primary Key (UserID) menu (Id_Menu) Primary Key (id_menu)
1.2.2.1.3 Relasi Biner One-To-Many
Pembentukan relasi One-To-Many Binary merupakan bagian dari pembentukan relasi model data logikal. Dalam pembentukan relasi One-To-Many Binary, yang harus diperhatikan adalah multiplicity dari 2 buah entitas yang ada. Entitas-entitas tersebut adalah:
mskaryawan (1..1) melayani (1..*) pinjaman
mskaryawan (KaryawanID, Nama, Alamat)
Primary Key (KaryawanID)
pinjaman (PinjamanID, PeminjamID, KaryawanID, Tanggal_Pinjam,
Jumlah_Pinjaman, Setelah_Bunga)
msgroup (1..1) memiliki (1..*) menu
Simpanan_pemerintah (1..1) dipinjam (1.*) pinjaman
Simpanan_pemerintah (SimpananID, Simpanan_Awal, Simpanan_Akhir, Pokok_Pinjam, Bunga_Pinjam, Tanggal_M asuk, Tanggal_Transaksi, Keterangan)
Primary Key (SimpananID)
Pinjaman (PinjamanID, PeminjamID, KaryawanID, Tanggal_Pinjam, Jumlah_Pinjaman, Setelah_Bunga) Primary Key (PeminjamID)
msgroup (GroupID, M enuID, Group_Name)
Primary Key (GroupID)
menu (id_menu, nama_menu, link,
static_content, gambar, status, aktif, No_Urut) Primary Key (id_menu)
pinjaman (1..1) memiliki (1..*) jadwal_bayar
msuser (1..*) anggota (1..1) ms group
pembayaran (1..*) membayar (1..1) pinjaman
Pinjaman (PeminjamID, KaryawanID, Tanggal_Pinjam, Jumlah_Pinjaman, Setelah_Bunga)
Primary Key (PeminjamID) pembayaran (PembayaranID,
PinjamanID, Tanggal_Bayar, Jumlah_Bayar)
Primary Key (PembayaranID, Tanggal_Bayar)
msgroup (GroupID, M enuID, Group_Name) Primary Key (GroupID)
msuser (UserID, Password, KaryawanID, GroupID, Level) Primary Key (UserID)
Pinjaman (PinjamanID, PeminjamID, KaryawanID, Tanggal_Pinjam,
Jumlah_Pinjaman, Setelah_Bunga)
Jadwal_bayar (JadwalID, PinjamanID,
Harus_Bayar, Jumlah_Angsuran, Angsuran_Ke, Status)
1.2.2.1.4 Relasi Biner One-To-One
Pembentukan relasi One-To-One Binary merupakan bagian dari pembentukan relasi model data logikal. Dalam pembentukan relasi One-To-One Binary, yang harus diperhatikan adalah multiplicity dari 2 buah entitas yang ada.
pinjaman (1..1) dipunyai (1..1) peminjam
pinjaman (PinjamanID,
KaryawanID, Tanggal_Pinjam, Jumlah_Pinjaman,
Setelah_Bunga)
Primary Key (PeminjamID)
Peminjam (PeminjamID, NoKK, NoKTP, Nama, Alamat, Tanggal_Lahir, Jenis_Kelamin) Primary Key (PeminjamID, NoKK, NoKTP)
pinjaman (1..1) mengembalikan (1..1) Simpanan_pemerintah
user (0..1) merupakan (1..1) karyawan Pinjaman (PeminjamID,
KaryawanID, Tanggal_Pinjam, Jumlah_Pinjaman,
Setelah_Bunga)
Primary Key (PeminjamID)
Simpanan_pemerintah (SimpananID, Simpanan_Awal, Simpanan_Akhir, Pokok_Pinjam, Bunga_Pinjam, Tanggal_M asuk, Tanggal_Transaksi, Keterangan)
Primary Key (SimpananID)
msuser (UserID, Password, GroupID, Level)
Primary Key (UserID)
mskaryawan (KaryawanID, Nama, Alamat) Primary Key (KaryawanID)
1.2.2.1.5 Relasi Biner Many-To-many
Pembentukan relasi Many-To-Many Binary merupakan bagian dari pembentukan relasi model data logikal. Dalam pembentukan relasi Many-To-Many Binary, yang harus diperhatikan adalah multiplicity dari 2 buah entitas yang ada. Dalam rancangan database kami, tidak ada relasi biner Many-To-Many.
1.2.2.1.6 Dokumentasi Relasi dan Atribut Foreign Key
Di akhir pembentukan relasi model data logikal, maka dibuatlah dokumentasi relasi dan atribut yang telah terbentuk.
Jadwal_bayar (JadwalID, PinjamanID, Harus_Bayar, Jumlah_Angsuran, Angsuran_Ke, Status) Primary Key (JadwalID, PinjamanID)
Foreign Key pinjamanID References pinjaman (pinjamanID)
menu (id_menu, nama_menu, link, static_content, gambar, status, aktif, No_Urut) Primary Key (id_menu)
Foreign Key GroupID References msgroup (GroupID) msgroup (GroupID, MenuID, Group_Name)
Primary Key (GroupID)
mskaryawan (KaryawanID, Nama, Alamat) Primary Key (KaryawanID)
msuser (UserID, Password, GroupID, Level) Primary Key (UserID)
Foreign Key GroupID References msgroup (GroupID)
pembayaran (PembayaranID, PinjamanID, T anggal_Bayar, Jumlah_Bayar) Primary Key (PembayaranID, T anggal_Bayar)
Foreign Key pinjamanID References pinjaman (pinjamanID)
Peminjam (PeminjamID, NoKK, NoKTP, Nama, Alamat, T anggal_Lahir, Jenis_Kelamin) Primary Key (PeminjamID, NoKK, NoKTP)
Pinjaman (PinjamanID, KaryawanID, SimpananID, T anggal_Pinjam, Jumlah_Pinjaman, Setelah_Bunga)
Primary Key (PinjamanID)
Foreign Key KaryawanID References mskaryawan (KaryawanID)
Simpanan_pemerintah (SimpananID, Simpanan_Awal, Simpanan_Akhir, Pokok_Pinjam, Bunga_Pinjam, Tanggal_Masuk, Tanggal_T ransaksi, Keterangan)
Primary Key (SimpananID)
1.2.3 Perancangan Database Physical
1.2.3.1 Merancang Base Relation
Tahap ini bertujuan untuk menentukan bagaimana merepresentasikan tiap relasi dasar yang telah teridentifikasi pada model data logical ke dalam DBM S.
Berikut ini adalah DBDL dari tiap entity yang ada pada perancangan basis-data ini:
jadwal_bayar
Domain JadwalID : Integer
Domain PinjamanID : Integer Domain Harus_Bayar : Date Domain Jumlah_Angsuran : Big Integer Domain Angsuran_Ke : Character
Domain Status : Character
jadwal_bayar (
JadwalID NOT NULL,
PinjamanID NOT NULL,
Harus_Bayar NOT NULL,
Jumlah_Angsuran NOT NULL,
Angsuran_Ke NOT NULL,
Status NOT NULL,
Primary Key JadwalID, PinjamanID
Menu
Domain id_menu : Integer Domain groupID : Integer
Domain nama_menu : Variable length character string, length 50 Domain link : Variable length character string,length 100 Domain static_content : Text
Domain gambar : Variable length character string, length 100
Domain status : Enum
Domain aktif : Enum
Domain No_Urut : Integer Menu (
id_menu NOT NULL,
groupID NOT NULL,
nama_menu NOT NULL,
link NOT NULL,
static_content NOT NULL,
gambar NOT NULL,
status NOT NULL,
aktif NOT NULL,
No_Urut NOT NULL,
Primary Key id_menu
Msgeneralparam
Domian Code : Character
Domain Name : Variable length character string, length 100 Domain Param_Value : Variable length character string, length 10 Msgeneralparam(
Code NOT NULL,
Name NOT NULL,
Param_Value NOT NULL,
Primary Key Code);
Msgroup
Domain GroupID : Character Domain M enuID : Character
Domain Group_Name : Variable length character string, length 10 Msgroup (
GroupID NOT NULL,
M enuID NOT NULL,
Group_Name NOT NULL,
Msuser
Domain UserID : Variable length character, length 10 Domain Password : Variable length character, length 32 Domain KaryawanID : Variable length character, length 10 Domain GroupID : Variable length character, length 10 Domain Level : Variable length character, length 10 Msuser(
UserID NOT NULL
Password NOT NULL
KaryawanID NOT NULL
GroupID NOT NULL
Level NOT NULL
Primary Key UserID
Mskaryawan
Domain KaryawanID : int
Domain Nama : Variable length character string, length 20 Domain Alamat : Variable length character string, length 35 Mskaryawan(
KaryawanID NOT NULL
Nama NOT NULL
Alamat NOT NULL
Primary key Karyawan ID);
Pembayaran
Domain PembayaranID : Variable length integer, length 10 Domain PinjamanID : Variable length character, length 10 Domain Tanggal_bayar : Date
Domain Jumlah_bayar : Big integer Pembayaran(
PembayaranID NOT NULL,
PinjamanID NOT NULL, Tanggal_bayar NOT NULL,
Jumlah_bayar NOT NULL,
Primary Key PembayaranID, Tanggal_Bayar
Peminjam
Domain PeminjamID : Variable length integer, length 10 Domain NoKK : Variable length character, length 20 Domain NoKTP : Variable length character, length 20 Domain Nama : Variable length character string, length 20 Domain Alamat : Variable length character string, length 35 Domain Tanggal_Lahir : date
Domain Jenis_Kelamin : binary Peminjam (
PeminjamID NOT NULL,
NoKK NOT NULL,
NoKTP NOT NULL,
Nama NOT NULL,
Alamat NOT NULL,
Tanggal_Lahir NOT NULL, Jenis_Kelamin NOT NULL,
Pinjaman
Domain PinjamanID : Variable length integer, length 10 Domain PeminjamID : Variable length character, length 10 Domain KaryawanID : Variable length character, length 10 Domain Tanggal_Pinjam : Date
Domain Jumlah_Pinjaman : Big Integer Domain Setelah_bunga : Big Integer Pinjaman(
PinjamanID NOT NULL,
PeminjamID NOT NULL,
KaryawanID NOT NULL,
Tanggal_Pinjam NOT NULL, Jumlah_Pinjaman NOT NULL, Setelah_bunga NOT NULL, Primary Key PinjamanID
Simpanan_pemerintah
Domain SimpananID : Variable length integer, length 10 Domain Simpanan_Awal : Big Integer
Domain Simpanan Akhir : Big Integer Domain Jumlah_Pokok : Big Integer Domain Jumlah_Bunga : Big Integer Domain Tanggal_M asuk : Date Domain Tanggal_Pinjam : Date Simpanan_pemerintah(
SimpananID NOT NULL,
Simpanan_Awal NOT NULL , Simpanan Akhir NOT NULL ,
Jumlah_Pokok NOT NULL,
Jumlah_Bunga NOT NULL,
Tanggal_M asuk NOT NULL,
Tanggal_Pinjam NOT NULL,
1.2.3.2 Analysis Transaksi
Analisis Transaksi ini bertujuan untuk memahami fungsionalitas di dalam dari transaksi terhadap relasi yang ada.Untuk memudahkan menganalisa maka akan digunakan transaction / relation cross-reference matrix (matriks referensi silang transaksi/ relasi). Transaksi dilakukan oleh dua level pengguna, yaitu Admin, dan User. Transaksi – transaksi yang terjadi adalah sebagai berikut:
1. Admin
(A) M enampilkan data user (B) M enampilkan data peminjam (C) M enampilkan data pinjaman
(D) M enampilkan data simpanan pemerintah (E) M enampilkan data pembayaran
(F) M enampilkan data jadwal_bayar (G) M enambah data user
(H) M enambah data peminjam (I) M enambah data pinjaman
(J) M enambah data simpanan pemerintah (K) M enambah data pembayaran
(L) M engupdate data user (M ) M engupdate data peminjam (N) M engupdate data pinjaman (O) M engupdate data jadwal_bayar (P) M enghapus data peminjam
(Q) M enghapus data pinjaman (R) M enghapus data user
(A) (B) (C) (D) Transaksi/ Relasi I R U D I R U D I R U D I R U D msuser X mskaryawan msgroup simpanan_pemerintah X pinjaman X jadwal_bayar peminjam X pembayaran menu msgeneralparam
(E) (F) (G) (H) Transaksi/ Relasi I R U D I R U D I R U D I R U D msuser X mskaryawan msgroup simpanan_pemerintah pinjaman jadwal_bayar X peminjam X pembayaran X menu msgeneralparam
(I) (J) (K) (L) Transaksi/ Relasi I R U D I R U D I R U D I R U D msuser X mskaryawan msgroup simpanan_pemerintah X pinjaman X jadwal_bayar peminjam pembayaran X menu msgeneralparam
(M ) (N) (O) (P) Transaksi/ Relasi I R U D I R U D I R U D I R U D msuser mskaryawan msgroup simpanan_pemerintah pinjaman X jadwal_bayar X peminjam X X pembayaran menu msgeneralparam
(Q) (R) Transaksi/ Relasi I R U D I R U D msuser X mskaryawan msgroup simpanan_pemerintah pinjaman X jadwal_bayar peminjam pembayaran menu msgeneralparam
Tabel 1-7 – Analisis Transaksi Untuk Admin
Keterangan :
2. User
(A) M enampilkan data peminjam (B) M enampilkan data pinjaman (C) M enampilkan data pembayaran (D) M enampilkan data jadwal_bayar (E) M enambah data peminjam (F) M enambah data pinjaman (G) M enambah data pembayaran (H) M engupdate data peminjam (I) M engupdate data pinjaman (J) M engupdate data jadwal_bayar (K) M enghapus data peminjam
(A) (B) (C) (D) Transaksi/ Relasi I R U D I R U D I R U D I R U D msuser mskaryawan msgroup simpanan_pemerintah pinjaman X jadwal_bayar X peminjam X X pembayaran menu msgeneralparam
(E) (F) (G) (H) Transaksi/ Relasi I R U D I R U D I R U D I R U D msuser mskaryawan msgroup simpanan_pemerintah pinjaman X jadwal_bayar peminjam X X pembayaran X menu msgeneralparam
(I) (J) (K) Transaksi/ Relasi I R U D I R U D I R U D msuser mskaryawan msgroup simpanan_pemerintah pinjaman X jadwal_bayar X peminjam X pembayaran menu msgeneralparam
Tabel 1-8 – Analisis Transaksi untuk User
Keterangan :
1.2.3.3 Mengestimasi Kapasitas Penyimpanan Yang Dibutuhkan
Tujuan dari langkah ini adalah untuk menghitung kapasitas penyimpanan yang dibutuhkan oleh basis-data. Perkiraan setiap tabel adalah sebagai berikut:
Field Type Ukuran
JadwalID Int(11) 11 bytes
PinjamanID Int(10) 10 bytes
Harus_Bayar Date 3 bytes
Jumlah_Angsuran Bigint(20) 20 bytes
Angsuran_Ke Char(2) 2 bytes
Status Char(11) 11 bytes
Kapasitas dari table jadwal_bayar adalah 57 bytes
Diperkirakan dalam satu tahun terjadi penambahan 100 jadwal bayar
Dalam satu tahun pertumbuhan dari table ini adalah (57 * 100) = 5700 bytes atau 5,5 Kbytes Tabel 1-9 – Estimasi Kapasitas Jadwal_Bayar
Field Type Ukuran
Id_menu Int (5) 5 bytes
Nama_menu Varchar (50) 51 bytes
Link Varchar (100) 101 bytes
Static_content T ext 64 Kbytes
Gambar Varchar (100) 101 bytes
Status Enum aktif Enum
No_Urut Int (5) 5 bytes
Kapasitas dari table menu adalah 65 Kbytes
Diperkirakan dalam satu tahun terjadi penambahan 1 menu
Dalam satu tahun pertumbuhan dari table ini adalah (65*1) = 65 Kbytes Tabel 1-10 – Estimasi Kapasitas Menu
Field Type Ukuran
Code Char (5) 5 bytes
Name Varchar (10) 11 bytes
Param_Value Varchar (10) 11 bytes
Kapasitas dari table msgeneralparam adalah 27 bytes T idak terjadi penambahan
Tabel 1-11 – Estimasi Kapasitas Msgeneralparam
Field Type Ukuran
GroupID Char (10) 10 bytes
MenuID Char (10) 10 bytes
Group_Name Varchar (10) 11 bytes
Kapasitas dari table msgroup adalah 31 bytes.
Jumlah data pada table msgroup sebanyak 2 total kebutuhan memory sebesar 62 byte T idak ada pertambahan dalam msgroup.
Tabel 1-12 – Estimasi Kapasitas Msgroup
Field Type Ukuran
KaryawanID Int (10) 10 bytes
Nama Varchar (20) 21 bytes
Alamat Varchar (35) 36 bytes
Kapasitas dari table mskaryawan adalah 67 bytes.
Data pada mskaryawan sebanyak 4, total kebutuhan memory sebesar 268 bytes.
Diperkirakan dalam satu tahun terjadi penambahan 1 mskaryawan 268 + (67*1) = 335 bytes. Tabel 1-13 – Estimasi Kapasitas Mskaryawan
Field Type Ukuran
UserID Char (11) 11 bytes
Password Char (32) 32 bytes
KaryawanID Char (10) 10 bytes
GroupID Char (10) 10 bytes
Level Char (10) 10 bytes
Kapasitas dari table msuser adalah 73 bytes.
Data pada msuser sebanyak 5, total kebutuhan memory sebesar 365 bytes. T idak terjadi pertambahan.
Field Type Ukuran
PembayaranID Int (10) 10 bytes
PinjamanID Char (10) 10 bytes
T anggal_Bayar Date 3 bytes
GroupID Char (10) 10 bytes
Kapasitas dari table pembayaran adalah 33 bytes.
Data pada pembayaran sebanyak 50, total kebutuhan memory sebesar 1650 bytes.
Diperkirakan dalam satu tahun terjadi penambahan 50 pembayaran 1650 + (33*50) = 3300 bytes atau.3,3 Kbytes
Tabel 1-15 – Estimasi Kapasitas Pembayaran
Field Type Ukuran
PeminjamID Int (10) 10 bytes
NoKK Char (20) 20 bytes
NoKTP Char (20) 20 bytes
Nama Varchar (20) 21 bytes
Alamat Varchar (35) 36 bytes
T anggal_Lahir Date 3 bytes
Jenis_Kelamin Binary (1) 1 bytes
Kapasitas dari table peminjam adalah 111 bytes.
Data pada peminjam sebanyak 5, total kebutuhan memory sebesar 555 bytes.
Diperkirakan dalam satu tahun terjadi penambahan 5 mskaryawan 555 + (111*5) = 1110 bytes atau 1,11 Kbytes.
Tabel 1-16 – Estimasi Kapasitas Peminjam
Field Type Ukuran
PinjamanID Int (10) 10 bytes
PeminjamID Char (10) 10 bytes
KaryawanID Char (20) 20 bytes
T anggal_Pinjam Date 3 bytes
Jumlah_Pinjam Bigint (20) 20 bytes
Setelah_Bunga Bigint (20) 20 bytes
Kapasitas dari table pinjaman adalah 83 bytes.
Data pada pinjaman sebanyak 5, total kebutuhan memory sebesar 415 bytes
Diperkirakan dalam satu tahun terjadi penambahan 5 pinjaman 415 + (83*5) = 830 bytes Tabel 1-17 – Estimasi Kapasitas Pinjaman
Field Type Ukuran
SimpananID Int (10) 10 bytes
Simpanan_Awal Bigint (20) 20 bytes
Simpanan_Akhir Bigint (20) 20 bytes
Pokok_Pinjam Bigint (20) 20 bytes
Bunga_Pinjam Bigint (20) 20 bytes
T anggal_Masuk Date 3 bytes
T anggal_T ransaksi Date 3 bytes
Keterangan Varchar (40) 41 bytes
Kapasitas dari table simpanan pemerintah adalah 137 bytes.
Data pada simpanan pemerintah sebanyak 1, total kebutuhan memory sebesar 137 bytes
Diperkirakan dalam satu tahun terjadi penambahan 1 simpanan pemerintah 137 + (137*1) = 274 bytes
Tabel 1-18 – Estimasi Kapasitas Simpanan_Pemerintah
Nama Tabel Kapasitas yang dibutuhkan dalam satu tahun
Jadwal_bayar 5,5 Kbytes Menu 65 Kbytes Msgeneralparam 27 bytes Msgroup 62 byte Mskaryawan 335 bytes Msuser 365 bytes Pembayaran 3,3 Kbytes 3300 Peminjam 1,11 Kbytes 1110 Pinjaman 830 bytes Simpanan_pemerintah 274 bytes
Total space yang dibutuhkan dalam satu tahun adalah 76803 bytes atau 76,803 Kbytes Tabel 1-19 – Estimasi Kapasitas Disk Space Dalam Setahun
Jumlah kebutuhan maksimal memory selama setahun sebesar sebesar 76,803 Kbytes. Total Kebutuhan memory maksimal untuk 5 tahun ke depan adalah sebesar (76,803 Kbytes * 5) = 384,015 Kbytes.
1.3 Perancangan Aplikasi
1.3.1 S truktur Menu
1.3.1.1 S truktur Menu Admin
1.3.1.2 S truktur Menu User
1.3.2 Rancangan S tate Transition Diagram
Gambar 1-9 – STD Home Admin
Gambar 1-11 – STD Manajemen Peminjam
Gambar 1-13 – STD Tambah Peminjam
Gambar 1-15 – STD Tambah Pinjaman
Gambar 1-17 – STD Manajemen User
Gambar 1-19 – STD Edit User
Gambar 1-21 – STD Tambah Simpanan Pemerintah
Gambar 1-23 – STD Detail Pinjaman
1.3.3 Perancangan Layar
1.3.3.1 Perancangan Layar admin
Gambar 1-26 – Rancangan Layar Home Admin
Gambar 1-28 – Rancangan Layar Tambah User
Gambar 1-30 – Rancangan Layar Manajemen Peminjam
Gambar 1-32 – Rancangan Layar Edit Peminjam
Gambar 1-34 – Rancangan Layar Detail Pinjaman
Gambar 1-36 – Rancangan Layar Manajemen Pinjaman
Gambar 1-38 – Rancangan Layar Tambah Simpanan
1.3.3.2 Perancangan Layar User
Gambar 1-40 – Rancangan Layar Home Sisi User
Gambar 1-42 – Rancangan Layar Tambah Peminjam Sisi User
Gambar 1-44 – Rancangan Layar Buka Pinjaman Sisi User
Gambar 1-46 – Rancangan Layar Pembayaran Sisi User
1.4 Implementasi
Untuk implementasi aplikasi database di Kelurahan M angga Besar, diperlukan hardware dan software yang memadai. Setelah itu, akan dilakukan instalasi dan testing.
1.4.1 S pesifikasi Hardware
Spesifikasi hardware yang disarankan untuk mengoperasikan aplikasi adalah sebagai berikut.
Jenis Hardware Server Client
Prosesor Pentium IV 2 GHz Pentium IV 2 GHz
Memory 1 GB DDR RAM 512 M B DDR RAM
M onitor 17” 15”
VGA 64 M B 64 M B
Hard disk 80 GB 60 GB
Keyboard Standard Standard
Mouse Standard Standard
Tabel 1-20 – Spesifikasi Hardware 1.4.2 S pesfikasi S oftware
Spesifikasi software yang disarankan untuk mengoperasikan aplikasi adalah sebagai berikut.
Jenis Software Server Client
Sistem Operasi Linux / Windows Linux / Windows
Browser M ozilla Firefox M ozilla Firefox
Database MySQL versi 5.0.45 -
Bahasa Pemograman PHP versi 5 -
Tabel 1-21 – Spesifikasi Software 1.4.3 Instalasi
Proses instalasi pertama kali dilakukan langsung pada kelurahan M angga Besar. Jika ada penambahan atau perubahan file, dilakukan secara langsung pada Kelurahan M angga Besar.
1.4.4 Testing And Development
Testing and development dilakukan di komputer yang menjalankan sistem operasi Windows XP SP2 dengan spesifikasi hardware sebagai berikut : Prosesor Intel Pentium IV 2,26GHz, 1GB DDR RAM , kapasitas harddisk 250GB, dan VGA 128M B ATI Radeon 9200SE.
Software yang digunakan, dari awal sampai akhir perancangan aplikasi, yaitu : WAM P5 Server, M ySQL 5.0.45, Adobe Dreamweaver CS3, PHP versi 5, HeidiSQL, TextPad, dan Adobe Photoshop CS3.
1.4.5 Jadwal Implementasi
Spesifikasi hardware dan software di perusahaan sudah mencukupi dan pelatihan akan dilakukan oleh pihak perusahaan. Berikut tabel implementasi aplikasi: M inggu No Kegiatan 1 2 1. Pengadaan Hardware x 2. Pengadaan Software x 3. Instalasi x
1.4.5.1 Halaman Index
Halaman berikut merupakan halaman utama Aplikasi PPM K. Pada layar ini, pengguna diminta untuk memasukkan Username dan Password. Fungsi dari layar login ini adalah untuk menentukan hak akses pengguna ke database. Pada layar ini cuma terdapat satu button yaitu “Login”. Jika tombol “Login” diklik maka username dan password akan divalidasi apakah sudah terisi atau belum, kemudian jika username dan password sudah terisi, dicek apakah sudah sesuai dengan database MySQL. Status dapat berupa Admin atau user. Jika sudah sesuai maka akan masuk ke dalam layar M enu Utama, jika tidak sesuai maka akan ditampilkan pesan kesalahan ”Login gagal! username & password tidak benar”, dan link ”ULANGI LAGI” untuk kembali ke halaman Index.
1.4.5.1.1 Halaman Admin
Apabila pengguna login sebagai admin maka halaman Home admin muncul, terdapat beberapa menu yang dapat dipilih, antara lain :
Home (admin)
Home (admin) berisi status pengguna, tanggal, dan jam ketika pertama kali login.
Manajemen User
Gambar 1-52 – Tampilan Halaman Manajemen User
Di dalam M anajemen User terdapat button ’Tambah User’ digunakan jika admin ingin menambah pengguna aplikasi.
Di dalam tabel AKSI terdapat link Edit menuju ke halaman Edit User, yang digunakan jika admin ingin mengubah password lama dengan password yang baru.
Manajemen Peminjam
Gambar 1-55 – Tampilan Halaman Manajemen Peminjam
Di dalam M anajemen Peminjam terdapat button ’Tambah Peminjam’ digunakan jika admin ingin menambah peminjam dana.
Pada halaman ’Tambah Peminjam’ Admin diharuskan memasukkan Nomor Kartu Keluarga, Nomor KTP, Nama, Alamat, Tanggal Lahir, dan Jenis Kelamin. Kemudian tekan button ’simpan’ untuk menyimpan ke dalam database atau ’batal’ untuk membatalkan.
Pada Tabel AKSI terdapat link Edit, yang menuju ke halaman EDIT. Halaman ini digunakan untuk mengubah Identitas Peminjam, seperti: Nomor Kartu Keluarga, Nomor KTP, Nama, Alamat, Tanggal Lahir, dan Jenis Kelamin. Kemudian tekan ’Update’ untuk megubah Database peminjam yang terbaru, atau ’batal’ untuk membatalkannya.
Pada Tabel AKSI terdapat link Pinjam, yang menuju ke halaman Buka Pinjam. Halaman ini digunakan untuk memasukkan jumlah uang yang akan dipinjam. Admin juga harus mamasukkan tanggal peminjaman. Kemudian tekan ’Simpan’ untuk memasukkan kedalam Database atau ’Batal’ untuk membatalkannya.
Apabila peminjam telah melakukan peminjaman dan belum melunasi angsuran pinjaman, maka akan muncul tulisan ” Peminjam M asih M emiliki Pinjaman Yang Belum Lunas”. Tekan ’kembali’ untuk kembali ke halaman sebelumnya.
Pada Tabel AKSI terdapat link Detail Pinjaman, yang menampilkan ID Peminjam, Nama Peminjam, Tanggal Pinjam, Jumlah Pinjaman, dan Jumlah Pinjaman dengan bunga.
Dalam kolom AKSI terdapat link ’Detail Angsuran’. Link ini menuju ke halaman Pembayaran, yang berisikan ID Peminjam, Nama Peminjam, Serta Tabel yang berisi JADWAL BAYAR, JUM LAH ANGSURAN, ANGSURAN KE (Pada kolom ini, aplikasi secara otomatis akan membagi menjadi 10 Angsuran), STATUS (Status akan berisikan Belum Lunas), serta AKSI digunakan Admin untuk melakukan transaksi pembayar. Dengan menekan link ’Bayar’, dan secara otomatis Status akan berubah, dari ’Belum Bayar’ menjadi ’Lunas’ untuk angsuran yang dibayar.
Manajemen Pinjaman
Gambar 1-62 – Tampilan Halaman Pinjaman
Pada Halaman M anajemen Pinjaman terdapat Tabel yang berisikan kolom sebagai berikut: PEM INJAM ID, PINJAMANID, TANGGAL PINJAM , JUM LAH PINJAM , SETELAH BUNGA (Jumlah pinjaman dengan bunga), serta AKSI (Detail Angsuran, Batal).
Dalam kolom AKSI terdapat link ’Detail Angsuran’. Link ini menuju ke halaman Pembayaran, yang berisikan ID Peminjam, Nama Peminjam, Serta Tabel yang berisi JADWAL BAYAR, JUM LAH ANGSURAN, ANGSURAN KE (Pada kolom ini, aplikasi secara otomatis akan membagi menjadi 10 Angsuran), STATUS (Status akan berisikan Belum Lunas), serta AKSI digunakan Admin untuk melakukan transaksi pembayaran. Dengan menekan link ’Bayar’, dan secara otomatis Status akan berubah, dari ’Belum Bayar’ menjadi ’Lunas’ untuk angsuran yang dibayar.
Manajemen S aldo
Gambar 1-64 – Tampilan Halaman Simpanan Pemerintah
Pada menu M anajemen Saldo terdapat tabel yang berisikan:
TANGGAL M ASUK, tanggal dimana terjadi transaksi masuknya dana dari pemerintah, serta Angsuran dari masyarakat dan terakumulasi dengan dana sebelumnya.
SIM PANAN AWAL, adalah dana awal yang diberikan oleh pemerintah.
TANGGAL TRANSAKSI, tanggal terjadi transaksi (keluar/ masuk) angsuran dari masyarakat.
SISA SIM PANAN, jumlah dana yang ada pada kelurahan. POKOK PINJAM AN, jumlah dana pinjaman atau angsuran masyarakat dan belum termasuk bunga pinjaman.
BUNGA PINJAMAN, Besarnya bunga pinjaman yang diberikan kepada masyarakat.
KETERANGAN, berfungsi memberikan keterangan.
Pada halaman ini terdapat tombol ’Tambah Simpanan’, yang digunakan apabila pemerintah memberikan dana kepada kelurahan, yang kemudian admin memasukkan jumlah dana yang masuk.
History Pembayaran
Gambar 1-66 – Tampilan Halaman History Pembayaran
History Pembayaran berisikan semua pembayaran yang pernah berlangsung.
1.4.5.1.2 Halaman User
Apabila pengguna login sebagai user maka halaman Home user akan muncul, terdapat beberapa menu yang dapat dipilih, antara lain :
Home (User)
Home (user) berisi status pengguna, tanggal, dan jam ketika pertama kali login.
Manajemen Peminjam
Di dalam M anajemen Peminjam terdapat button ’Tambah Peminjam’ digunakan jika user ingin menambah peminjam dana.
Pada halaman ’Tambah Peminjam’ user diharuskan memasukkan Nomor Kartu Keluarga, Nomor KTP, Nama, Alamat, Tanggal Lahir, dan Jenis Kelamin. Kemudian tekan button ’simpan’ untuk menyimpan ke dalam database atau ’batal’ untuk membatalkan.
Pada Tabel AKSI terdapat link Edit, yang menuju ke halaman EDIT. Halaman ini digunakan untuk mengubah Identitas Peminjam, seperti: Nomor Kartu Keluarga, Nomor KTP, Nama, Alamat, Tanggal Lahir, dan Jenis Kelamin. Kemudian tekan ’Update’ untuk megubah Database peminjam yang terbaru, atau ’batal’ untuk membatalkannya.
Pada Tabel AKSI terdapat link Pinjam, yang menuju ke halaman Buka Pinjam. Halaman ini digunakan untuk memasukkan jumlah uang yang akan dipinjam. User juga harus mamasukkan tanggal peminjaman. Kemudian tekan ’Simpan’ untuk memasukkan kedalam Database atau ’Batal’ untuk membatalkannya.
Apabila peminjam telah melakukan peminjaman dan belum melunasi angsuran pinjaman, maka akan muncul tulisan ” Peminjam M asih M emiliki Pinjaman Yang Belum Lunas”. Tekan ’kembali’ untuk kembali ke halaman sebelumnya.
Pada Tabel AKSI terdapat link Detail Pinjaman, yang menampilkan ID Peminjam, Nama Peminjam, Tanggal Pinjam, Jumlah Pinjaman, dan Jumlah Pinjaman dengan bunga.
Dalam kolom AKSI terdapat link ’Detail Angsuran’. Link ini menuju ke halaman Pembayaran, yang berisikan ID Peminjam, Nama Peminjam, Serta Tabel yang berisi JADWAL BAYAR, JUM LAH ANGSURAN, ANGSURAN KE (Pada kolom ini, aplikasi secara otomatis akan membagi menjadi 10 Angsuran), STATUS (Status akan berisikan Belum Lunas), serta AKSI digunakan User untuk melakukan transaksi pembayar. Dengan menekan link ’Bayar’, dan secara otomatis Status akan berubah, dari ’Belum Bayar’ menjadi ’Lunas’ untuk angsuran yang dibayar.
History Pembayaran
Gambar 1-75 – Tampilan Halaman History Pembayaran (User)
History Pembayaran berisikan semua pembayaran yang pernah berlangsung.
Setelah selesai melakukan transaksi Admin maupun User, diwajibkan untuk logout.
1.4.6 Evaluasi Aplikasi
Evaluasi dilakukan untuk mengetahui sejauh mana manfaat yang didapat dari penggunaan aplikasi peminjaman dana PPM K M angga Besar. Disamping itu evaluasi juga bertujuan untuk menganalisis dan mengetahui kinerja dari aplikasi peminjaman yang telah dibuat.
Berikut ini merupakan analisis perubahan sistem sebelum sistem diusulkan. 1) Proses pencatatan dan perekapan yang dilakukan oleh staf masih secara
manual menggunakan M icrosoft Excel.
2) Adanya kesulitan dalam mengatur angsuran pembayaran. 3) Data dapat dimanipulasi dengan mudah.
Berikut ini merupakan analisis perubahan sistem sesudah implementasi
1) Proses pencatatan dan perekapan yang dilakukan oleh staf telah menggunakan sistem yang baru. Aplikasi ini mampu menyimpan nomor kartu keluarga, nomor KTP, nama, alamat dan jumlah dana PPMK yang dipinjam.
2) Pengaturan angsuran dana secara otomatis terjadwal ketika user memasukan dana yang dipinjam.