Anda di halaman 1dari 17

UJIAN TENGAH SEMESTER

KEAMANAN BASIS DATA

Disusun Oleh:
Apep Wahyudin
L250220007

UNIVERSITAS LANGLANGBUANA
PASCASARJANA MAGISTER TEKNIK
INFORMATIKA
BANDUNG
2023
Bagian I
1.
a. Proses Bisnis
Deskripsi Perusahaan
Perusahaan ABC adalah sebuah perusahaan yang bergerak pada bidang
penjualan alat-alat perkantoran bagi berbagai instansi di Kabupaten Sumedang.
Berikut ini adalah deskripsi proses bisnis perusahaan ABC:

Proses Bisnis Penjualan Awal


Pembeli akan memberikan daftar barang yang akan dibeli kepada karyawan
(kasir). Kasir kemudian akan menerima daftar barang kemudian mengecek
ketersediaan barang di gudang. Jika daftar barang yang diberikan pembeli tidak
tersedia, maka transaksi untuk barang tersebut tidak akan diproses. Jika barang
tersedia, maka kasir akan mengambil barang yang dibutuhkan. Setelah itu,
pembeli akan melakukan pembayaran dan kasir akan menerima pembayaran
tersebut. Setelah pembayaran terkonfirmasi benar, maka kasir akan membuat
kwitansi penjualan barang. Pembeli kemudian akan menerima kwitansi tersebut
beserta barang yang dibelinya. Setiap transaksi yang terjadi kemudian akan
dicatat oleh kasir dan dilaporkan kepada manager. Setelah laporan penjualan
diterima, manager akan memeriksa laporan dan menyesuaikannya dengan uang
yang diterima. Jika laporan dinilai sudah sesuai, maka catatan laporan akan
disimpan oleh manajer. Namun, jika laporan dirasa belum sesuai, maka laporan
akan dikembalikan kepada kasir untuk diperbaiki. Proses bisnis di atas
digambarkan melalui Business Process Model and Notation sebagai berikut:
Proses Bisnis Penjualan Setelah Penggunaan Sistem Informasi
Setelah dilakukan analisis terhadap proses bisnis awal, maka dirancang proses
bisnis baru yang melibatkan penggunaan sistem informasi agar proses bisnis bisa
berjalan lebih efektif dan efisien. Pada proses bisnis yang baru, pembeli akan
melakukan pemesanan barang kepada kasir. Kemudian, kasir akan melakukan
pencarian data stock barang yang telah disimpan di database pada proses restock
yang telah dilakukan. Jika stok barang tidak tersedia, maka transaksi tidak akan
diproses. Sebaliknya, jika stok barang tersedia, maka kasir akan menginput data
pembeli dan penjualan. Setelah itu, pembeli akan melakukan pembayaran dan
kasir menerima pembayaran tersebut. Proses pembayaran bisa dilakukan secara
cash, QRIS, atau transfer bank. Setelah pembayaran dikonfirmasi, kasir akan
melakukan input pembayaran dan menyimpannya di database. Setelah itu, faktur
pembayaran akan dicetak dan pembeli menerima barang beserta faktur
pembelian. Proses bisnis baru ini digambarkan melalui Business Process Model
and Notation (BPMN) sebagai berikut:

Proses Bisnis Restock Barang Awal


Pada proses restock barang, karyawan yang bertugas di bagian gudang akan
menyiapkan daftar kebutuhan barang yang akan dibeli. Selanjutnya, daftar
tersebut akan dikirimkan kepada manajer. Jika daftar kebutuhan barang telah
dicek, manajer akan memesan barang kepada supplier. Supplier yang menerima
pemesanan barang akan mengecek ketersediaan barang yang mereka miliki.
Jika barang yang dipesan tidak tersedia, maka proses pemesanan tidak akan
dilanjutkan. Kemudian jika barang yang dipesan tersedia di supplier, maka
manajer akan melakukan pembayaran dan mengirim bukti pembayaran kepada
supplier. Supplier yang telah menerima pembayaran akan mengirimkan barang
beserta bukti pembelian barang kepada manajer. Setelah barang diterima di
gudang, maka karyawan gudang akan mencatat stok barang yang telah
dikirimkan. Proses bisnis ini digambarkan menggunakan BPMN sebagai
berikut:
Proses Bisnis Restock Setelah Penggunaan Sistem Informasi
Proses Bisnis Restock barang setelah penggunaan sistem informasi adalah
sebagai berikut:
1. Manajer akan mengecek kekurangan barang berdasarkan data yang
disimpan di dalam database
2. Manajer melakukan pemesanan barang kepada supplier
3. Supplier menerima pesanan
4. Jika barang yang dipesan tidak tersedia, maka proses pemesanan tidak
dilanjutkan
5. Jika barang tersedia, maka akan diberikan konfirmasi kepada manajer untuk
melakukan pembayaran
6. Supplier menerima pembayaran
7. Supplier mengirim barang
8. Karyawan gudang menginput data barang masuk dan melaporkannya
kepada manajer
9. Karyawan gudang menyusun stok barang berdasarkan kategori barang

Proses bisnis ini digambarkan menggunakan BPMN sebagai berikut:


b. Kebutuhan Informasi
1. Barang
Tabel ini menyimpan data barang berupa nama, informasi kategori, harga,
stok dan informasi supplier barang tersebut.
2. Kategori
Tabel kategori memuat informasi berbagai kategori barang yang tersedia.
3. Supplier
Tabel supplier digunakan untuk menyimpan data supplier berupa nama
supplier, alamat supplier, dan kontak yang bisa dihubungi.
4. Admin
Tabel admin mendata identitas admin yang menangani proses penjualan.
5. Pembeli
Tabel ini menyimpan data pembeli berupa nama, alamat, dan nomor telepon
6. Transaksi
Tabel transaksi menyimpan setiap data pembelian yang berisi informasi
pembeli, informasi barang, jumlah pembelian, total harga, tanggal dan
metode pembayaran yang digunakan.
7. Pembayaran
Tabel ini menyimpan daftar metode pembayaran yang disediakan oleh
Perusahaan ABC dalam proses transaksi penjualan barang.

c. Diagram E-R
Diagram Entity Relationship disajikan dalam bagan berikut ini.
Gambar 3 Diagram E-R Penjualan

d. Relasi Antar Tabel


Berikut adalah gambar relasi antar tabel.

Gambar 4 Relasi Antar Tabel

e. Rancangan Struktur Tabel


1. Tabel Kategori
No Nama Tipe Data Ukuran Keterangan
1 kategori_id Integer 11 Primary Key
2 kategori_name Varchar 30

2. Tabel Pembeli
No Nama Tipe Data Ukuran Keterangan
1 pembeli_id Integer 11 Primary Key
2 pembeli_name Varchar 30
3 pembeli_address Text
4 pembeli_phone Varchar 30

3. Tabel Barang
No Nama Tipe Data Ukuran Keterangan
1 barang_id Integer 11 Primary Key
2 barang_name Varchar 30
3 barang_price Integer 11
4 barang_stock Integer 11
5 kategori_id Integer 11 Foreign Key
6 supplier_id Integer 11 Foreign Key

4. Tabel Penjualan

No Nama Tipe Data Ukuran Keterangan


1 penjualan_id Integer 11 Primary Key
2 pembeli_id Integer 11 Foreign Key
3 barang_id Integer 11 Foreign Key
4 pembayaran_id Integer 11 Foreign Key
5 admin_id Integer 11 Foreign Key
6 penjualan_qty Integer 11
7 penjualan_total Integer 11
8 penjualan_date Date

5. Tabel Supplier

No Nama Tipe Data Ukuran Keterangan


1 supplier_id Integer 11 Primary Key
2 supplier_name Varchar 30
3 supplier_address Text
4 supplier_phone Varchar 15
6. Tabel Pembayaran
No Nama Tipe Data Ukuran Keterangan
1 pembayaran_id Integer 11 Primary Key
2 pembayaran_name Varchar 30

7. Tabel Admin
No Nama Tipe Data Ukuran Keterangan
1 admin_id Integer 11 Primary Key
2 admin_username Varchar 30
3 admin_password Varchar 30
4 admin_name Varchar 30
5 admin_phone varchar 15
6 admin_level Varchar 10

a. Identifikasi dan Pembuatan User


Dalam rangka mendukung operasional yang efektif dan pengelolaan sistem
informasi yang baik, Perusahaan ABC menetapkan tiga jenis pengguna utama,
yaitu Manajer, Finance, dan Kasir, masing-masing dengan hak akses dan
tanggung jawab yang berbeda. Berikut adalah identifikasi dan pembuatan user
untuk ketiga peran tersebut.
1. Manager
Hak Akses:
Hak Akses Penuh ke semua tabel. Bisa membuat, mengedit, memperbarui,
dan menghapus data dari semua tabel.

Tanggung Jawab:
● Menentukan kebijakan stok barang dan proses restock.
● Menganalisis laporan stok barang, penjualan, dan keuangan untuk
pengambilan keputusan strategis.
● Menyusun rencana bisnis berdasarkan data yang terdapat dalam sistem.
● Menetapkan target penjualan dan performa karyawan.
● Mengelola dan mengawasi seluruh operasional perusahaan untuk mencapai
tujuan.

2. Finance
Hak Akses:
Hak Akses ke Tabel Penjualan, Tabel Pembayaran, Tabel Pembeli. Bisa
melihat dan memasukkan data transaksi penjualan dan pembayaran.

Tanggung Jawab:
● Melakukan pencatatan transaksi penjualan dan pembayaran.
● Menyusun laporan keuangan berdasarkan data transaksi.
● Memastikan keakuratan data keuangan perusahaan.
● Menyediakan informasi keuangan yang diperlukan untuk evaluasi dan
pengambilan keputusan.
● Berkomunikasi dengan manajer dan pihak terkait mengenai performa
keuangan.

3. Kasir
Hak Akses:
Hak Akses ke Tabel Penjualan, Tabel Pembayaran, Tabel Pembeli. Bisa
memasukkan data transaksi penjualan dan pembayaran.

Tanggung Jawab:
● Melakukan proses penjualan dan pencatatan transaksi harian di loket
penjualan.
● Menjaga ketersediaan stok barang di loket penjualan.
● Memberikan pelayanan pelanggan yang baik dan memastikan transaksi
berjalan lancar.
● Berkomunikasi dengan Finance mengenai masalah atau ketidaksesuaian
data transaksi.
● Memantau stok barang dan memberikan laporan kepada Manajer jika ada
kebutuhan restock.

b. Matriks CRUD

Table User

manager finance kasir gudang

kategori CRUD R R CRUD

barang CRUD R R CRUD

pembeli CRUD R CR R

penjualan R R CRUD R

pembayaran RUD CRUD R R

supplier RUD CR R R
admin CRUD R R R

c. Penerapan RBAC
1) User manager
● Memiliki akses CRUD terhadap tabel kategori
● Memiliki akses CRUD terhadap tabel barang
● Memiliki akses CRUD terhadap tabel pembeli
● Memiliki akses R terhadap tabel penjualan
● Memiliki akses RUD terhadap tabel pembayaran
● Memiliki akses RUD terhadap tabel supplier
● Memiliki akses CRUD terhadap tabel admin

2) User finance
● Memiliki akses R terhadap tabel kategori
● Memiliki akses R terhadap tabel barang
● Memiliki akses R terhadap tabel pembeli
● Memiliki akses R terhadap tabel penjualan
● Memiliki akses CRUD terhadap tabel pembayaran
● Memiliki akses CR terhadap tabel supplier
● Memiliki akses R terhadap tabel admin

3) User kasir
● Memiliki akses R terhadap tabel kategori
● Memiliki akses R terhadap tabel barang
● Memiliki akses CR terhadap tabel pembeli
● Memiliki akses CRUD terhadap tabel penjualan
● Memiliki akses R terhadap tabel pembayaran
● Memiliki akses R terhadap tabel supplier
● Memiliki akses R terhadap tabel admin

4) User Gudang
● Memiliki akses CRUD terhadap tabel kategori
● Memiliki akses CRUD terhadap tabel barang
● Memiliki akses R terhadap tabel pembeli
● Memiliki akses R terhadap tabel penjualan
● Memiliki akses R terhadap tabel pembayaran
● Memiliki akses R terhadap tabel supplier
● Memiliki akses R terhadap tabel admin

2.
a. Data Private dan Public
Data Public Data Private

Kategori (kategori_id, Pembeli (pembeli_id, pembeli_name,


kategori_name) pembeli_address, pembeli_phone)

Barang (barang_id, barang_name, Penjualan (penjualan_id, pembeli_id,


barang_price, barang_stock, barang_id, pembayaran_id, admin_id,
kategori_id, supplier_id) penjualan_qty, penjualan_total,
penjualan_date)

Supplier (supplier_id, supplier_name,


supplier_address, supplier_phone)

Pembayaran (pembayaran_id,
pembayaran_name)

Admin (admin_id, admin_username,


admin_password, admin_name,
admin_phone, admin_level)

b. Segregasi Database
Membuat schema penjualan_public

Membuat tabel kategori

Membuat schema penjualan_private

Membuat tabel supplier


Membuat tabel barang

Membuat tabel pembeli

Membuat table admin


Membuat tabel pembayaran

Membuat tabel penjualan

Pembuatan user manager, finance, kasir


DATA VALIDATION

1. Buat prosedur atau mekanisme validasi data yang diperlukan untuk


memeriksa kesalahan, inkonsistensi dan duplikasi data.
2. Buat mekanisme proses pengendalian hak akses dan authentication jika ada
field yang akan diubah (update) nilainya, atau ada record yang akan dihapus.
3. Buat pendefinisian data constraint yang mungkin ada.

Contoh Data pada tabel penjualan:

penjual pembeli barang_ pembay admin_ penjual penjual penjualan_d


an_id# _id id aran_id id an_qty an_total ate

1 12 brg12 2 1 20 200000 2023-10-13

1. Berikut ini adalah mekanisme validasi data yang diterapkan pada tabel
penjualan di atas:
a. Field penjualan_id memiliki data yang tidak boleh terduplikasi. Artinya
data dari setiap row tidak boleh sama karena ini merupakan primary key.
b. Field pembeli_id merupakan foreign key yang mengacu pada tabel
pembeli. Isi dari field ini tidak boleh salah dan tidak boleh kosong. Pada
sisi front end, data ini tidak diisi secara manual melainkan dengan cara
memilih data nama pembeli yang telah disediakan. Pada sisi back end,
terdapat proses validasi untuk mencari data pembeli dari tabel pembeli
berdasarkan pembeli_id. Jika data pembeli tidak ditemukan, maka proses
transaksi tidak akan dijalankan.
c. Field barang_id merupakan foreign key yang mengacu pada tabel barang.
Isi dari field ini tidak boleh salah dan tidak boleh kosong. Pada sisi front
end, data ini tidak diisi secara manual melainkan dengan cara memilih
data nama barang yang telah disediakan. Pada sisi back end, terdapat
proses validasi untuk mencari data barang dari tabel barang berdasarkan
barang_id. Jika data barang tidak ditemukan, maka proses transaksi tidak
akan dijalankan.
d. Field pembayaran_id merupakan foreign key yang mengacu pada tabel
pembayaran. Isi dari field ini tidak boleh salah dan tidak boleh kosong.
Pada sisi front end, data ini tidak diisi secara manual melainkan dengan
cara memilih data metode pembayaran yang telah disediakan. Pada sisi
back end, terdapat proses validasi untuk mencari data pembayaran dari
tabel pembayaran berdasarkan pembayaran_id. Jika data pembayaran
tidak ditemukan, maka proses transaksi tidak akan dijalankan.
e. Field admin_id merupakan foreign key yang mengacu pada tabel admin.
Field ini tidak diisi oleh user melainkan melalui sistem back end dengan
cara menginput admin_id berdasarkan data session admin_id yang
sedang aktif pada browser.
f. Field penjualan_qty hanya boleh diisi oleh data angka. Jenis data
divalidasi baik dari sisi front end maupun back end. Di sisi back end, data
angka yang dikirimkan akan diverifikasi dengan cara
membandingkannya dengan data stock yang ada pada tabel barang
berdasarkan barang_id yang dikirimkan. Jika data angka melebihi angka
stock, maka transaksi tidak akan dijalankan.
g. Field penjualan_total harus berisi angka integer. Field ini diisi lewat
proses back end yang mengalikan antara angka penjualan_qty dengan
harga barang.
h. Field penjualan_date berisi tanggal transaksi. Field ini diisi dengan
format YYYT-MM-DD melalui back end.

2. Berikut ini adalah mekanisme pengendalian hak akses pada proses


update dan delete row pada sebuah table:
a. Membuat Table log_activity

Table ini akan digunakan untuk mencatat aktivitas perubahan pada tabel-
tabel yang telah dibuat dengan struktur sebagai berikut:
Nama Field Tipe Data Constraint

log_id int Primary key, auto-increment

admin_id int Foreign key, not null

table_name Varchar (20) Not null

action_type Varchar (10) Not null

record_id int Not null

timestamp timestamp Default current_timestamp

b. Hak Akses Pengguna

Berikan hak akses hanya kepada pengguna tertentu yang seharusnya


dapat mengubah atau menghapus data. Proses pemberian hak akses telah
dijelaskan di bagian Penerapan RBAC di atas.

c. Otentikasi Pengguna

Pastikan bahwa hanya pengguna yang terotentikasi yang dapat


mengakses dan mengubah data. Ini dapat diimplementasikan melalui
otentikasi aplikasi.

d. Pengecekan Hak Akses dalam Aplikasi

Pastikan bahwa setiap kali aplikasi menerima permintaan untuk


memperbarui atau menghapus data, aplikasi tersebut memeriksa hak akses
pengguna dan memastikan bahwa pengguna yang terkait memiliki izin yang
diperlukan.

3. Berikut ini adalah pendefinisian data constraint pada tabel penjualan:


No Field Constraint

1 penjualan_id Primary key

2 pembeli_id Foreign key, Not Null

3 barang_id Foreign key, Not Null

4 pembayaran_id Foreign key, Not Null

5 admin_id Foreign key, Not Null

6 penjualan_qty Not Null

7 penjualan_total Not Null

8 penjualan_date Not Null

Anda mungkin juga menyukai