desain database - repository.bsi.ac.id · menurut tohari(2013:83) , diagram kelas (class diagram)...

32
Desain Database PERTEMUAN 4

Upload: others

Post on 09-Jul-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Desain Database

PERTEMUAN 4

Capaian Pembelajaran

Mahasiswa mengetahui dan memahamibagaimana membuat desain databaseberdasarkan dari analisa kebutuhannya.Penggambaran database ini menggunakan classdiagram.

Materi Pertemuan 4

1. Konsep Dasar Database

2. Class Diagram

3. Pembahasan Studi Kasus

1. Konsep Dasar Database

Menurut (Indrajani, 2015) mendefinisikansebuah basis data merupakan kumpulan datayang saling berhubungan secara logis, danmerupakandata yang dibutuhkan oleh sebuahorganisasi.

Dalam database, semua data diintegrasikanuntuk menghindari adanya duplikasi data.

Konsep Dasar Database

Menurut (Indrajani, 2015), Desain database adalahproses membuat desain yang akan mendukungoperasional dan tujuan perusahaan.

Tujuan desain database :1. Menggambarkan relasi data antara yang

dibutuhkan oleh aplikasi dan user view2. Menyediakan model data yang mendukung

seluruh transaksi yang diperlukan3. Menspesifikasikan desain dengan struktur yang

sesuai kebutuhan sistem

2. Class Diagram

Menurut Tohari(2013:83) , diagram kelas (classdiagram) menggambarkan jenis-jenis dari objekdalam suatu sistem dan berbagai jenishubungan statis yang ada diantaranya.

Menurut (Akil, 2018), Class (Kelas) adalahdeskripsi dari satu set objek-objek yang berbagiatribut-atribut, operasi-operasi, relasi-relasi,semantik-semantik yang sama.

Class Diagram

Sebuah Kelas merupakan kumpulan dari objekyang memiliki karakteristik yang sama sepertiatribut, operasi hubungan dan semantik.

Kelas juga merupakan sebuah spesifikasi yangjika diinstansiasi akan menghasilkan sebuahobjek dan merupakan inti dari pengembangandan perancangan berorientasi objek (Akil,2018).

1. Class

Class terdiri dari tiga area, sebagai berikut :

class Class Model

Class Name

- Atribut: int

+ Operation()

Simbol-Simbol dalam Class Diagram

Sumber : Hasil Perancangan (2019)

Keterangan

• Class Name

❑ Nama kelas bersifat tekstual dan selalu diwalidengan huruf besar

❑ Jika terdiri dari dua suku kata, makapenamaannya harus disambung dan suku katakedua diawali dengan huruf besar

❑ Kelas bisa digunakan untuk mewakili orang,tempat atau hal-hal yang dibutuhkan olehsistem, yang digunakan untuk menangkap ataumenyimpan informasi

Keterangan

• Attribute (Atribut)

❑ Atribut adalah properti yang memiliki namadari suatu kelas yang menjadi karakteristik darikelas tersebut

❑ Atribut merepresentasikan properti yangsedang anda modelkan

❑ Sebuah atribut harus memiliki type data sesuaidengan bahasa pemrograman kelas tersebut

❑ Nama atribut biasanya diawali dengan hurufkecil dan suku kata berikutnya diawali hurufbesar (Akil, 2018).

Keterangan

❑ Atribut juga memiliki jangkauan visibility,baik yang bersifat public (+), private (-),protected (#) dan package (~)

❑ Visibility adalah spesifikasi yang dapatdimiliki oleh kelas, atribut dan operasi yangmenetukan hak akses atau jangkauan atributdan operasi tersebut

❑ (-) private, hanya kelas yang bersangkutanyang dapat menggunakan fitur tersebut.

❑ (+) public, kelas-kelas diluar kelas yang

bersangkutan dapat mengakses dan

menggunakannya

❑ (#) protected, setiap kelas turunannya dapat

mengakses dan menggunakannya

❑ (~) package, hanya kelas yang berada dalam

package yang sama yang dapat mengakses dan

menggunakannya

Keterangan

• Operation()

❑ Operation (operasi) adalah implementasi darilayanan yang dapat diminta dari objekmanapun dari kelas

❑ Operasi merupakan perilaku dari objek yangmempengaruhi status dari objek

❑ Dalam konteks pemrograman operasi padadasarnya sebuah fungsi atau prosedur yangdimiliki objek terkait

❑ Suatu operasi dapat mengembalikan nilai sesuaidengan type data yang kita tentukan

• Contoh Class

class Class Model

Mobil

- merk: String

- mesin: String

- model: String

- tahun: int

- warna: String

+ break(): void

+ moveBackward(): void

+ moveForward(): void

+ moveLeft(): void

+ moveRight(): void

Sumber : Hasil Perancangan (2019)

public class Mobil {

private String merk;

private String mesin;

private String model;

private int tahun;

private String warna;

public Mobil(){

}

public void finalize()throws Throwable {

}

public void break(){

}

public void moveBackward(){

}

public void moveForward(){

}

public void moveLeft(){

}

public void moveRight(){

}

}

P

e

n

e

r

a

p

a

n

k

o

d

e

Sumber : Hasil Perancangan (2019)

2. Multiplicity

Menurut (Akil, 2018), Multiplicity (baca : multiplisitas)adalah spesifikasi jangkauan kardinalitas yang diijinkanyang dimiliki suatu entitas.

Multiplisitas menunjukkan jumlah suatu objek yangdapat berhubungan dengan objek yang lain.

Multiplisitas biasanya ditunjukkan dengan satu ataubanyak, tetapi secara khusus dapat ditunjukkan puladengan bilangan integer lebih besar atau sama dengannol

Menurut (Tohari, 2014), jenis-jenis multiplisitas

sebagai berikut :

Indikator Arti

0..1 Nol atau satu

1 Hanya satu

0..* Nol atau banyak

1..* Satu atau banyak

n Hanya n (dengan n>1)

0,..n Nol sampai n (dengan n>1)

1..n Satu sampai n (dengan n>1)

Contoh

- (Cara baca dari kiri ke kanan) Setiap karyawan bisa

kemungkinan tidak memiliki mobil atau memiliki satu

mobil

- (Cara baca dari kanan ke kiri) Setiap mobil

kemungkinan tidak dimiliki oleh karyawan atau

dimiliki oleh seorang karyawan

- Kesimpulan kardinalitasnya adalah one to one

Sumber : Tohari, 2014

- (Cara baca dari kiri ke kanan) Setiap konsumen

melakukan satu atau banyak transaksi

- (cara baca dari kanan ke kiri) Setiap transaksi

dilakukan oleh satu konsumen

- Kesimpulan kardinalitasnya adalah one to many

Sumber : Tohari, 2014

• (Cara baca dari kiri ke kanan) Setiap transaksi

melibatkan satu atau banyak barang

• (Cara baca dari kanan ke kiri) Setiap barang

dilibatkan dalam satu atau banyak transaksi

• Kesimpulan kardinalitasnya adalah many to

many

Sumber :Tohari, 2014

3. Generalization

Menurut (Akil, 2018)

▪ Sebuah generalization (baca : generalisasi)

adalah hubungan antara kelas umum (parent /

superclass) dengan kelas khusus (child/

subclass)

▪ Dengan hubungan generalisasi suatu kelas

child dapat mewarisi struktur dang tingkah

laku dari kelas parentnya.

4. Association (Asosiasi)

Menurut (Akil, 2018)

▪ Asosiasi adalah hubungan struktural yang

menspesifikasikan bahwa objek-objek dari

satu hal terhubung dengan objek yang lainnya.

▪ Sebuah asosiasi biasanya memiliki nama yang

menjelaskan secara alami hubungan tersebut

▪ Dapat ditambahkan direction (arah) hubungan

asosiasi tersebut

5. Aggregation (Agregasi)

▪ Hubungan keseluruhan/bagian, dimana satu kelasmerepresentasikan hal yang lebih besarkeseluruhan yang berisi hal lebih kecil bagian,hubungan ini disebut Agregasi

▪ Agregasi merepresentasikan hubungan memilikiyang berarti bahwa objek keseluruhan memilikiobjek-objek bagian.

▪ Agregasi digambarkan sebagai asosiasi denganbelah ketupat kosong pada objek keseluruhan

Contoh

class Class Model

Perusahaan Div isi

Keseluruhan Agregasi Bagian

1*

Sumber : Hasil Perancangan (2019)

6. Composition (komposisi)

▪ Komposisi adalah bentuk agregasi dengan

hubungan kepemilikan yang lebih kuat dan

lifetimedari objek sebagai bagian dari

keseluruhan.

▪ Objek-objek yang merupakan bagian pada saat

diinstansiasi hanya dapat dimiliki oleh objek

keseluruhan dan hidup selama keseluruhan

hidup.

• Dari gambar diatas, objek KeranjangBelanja

merupakan komposisi dari objek ItemBarang

• Objek ItemBarang sepenuhnya dimiliki oleh

objek kerangjangBelanja dan hidup selama

objek KerangjangBelanja hidup

class Class Model

KeranjangBelanja ItemBarang

1..*1

Sumber : Hasil Perancangan (2019)

Class Diagram yang terbentuk untuk kasussistem pembelian sebagai berikut :

class Sistem Pembelian

Pemesanan

- noPesan: char

- tglPesan: date

- total: int

+ batal(): void

+ keluar(): void

+ simpan(): void

+ tambah(): void

DetailPesan

- kdBarang: char

- noPesan: char

- qtyPesan: int

- subTotal: int

Barang

- harga: int

- kdBarang: char

- nmBarang: char

- stok: int

+ batal(): void

+ cari(): void

+ edit(): void

+ hapus(): void

+ keluar(): void

+ simpan(): void

+ tambah(): void

Supplier

- alamat: char

- kdSupp: char

- nmSupp: char

- telepon: char

+ batal(): void

+ cari(): void

+ edit(): void

+ hapus(): void

+ keluar(): void

+ simpan(): void

+ tambah(): void

Pembelian

- noBeli: char

- noFaktur: char

- tglBeli: date

- totalBeli: double

+ batal(): void

+ keluar(): void

+ simpan(): void

+ tambah(): void

DetailPembelian

- kdBarang: char

- noBeli: char

- qtyBeli: int

- subBeli: int

ReturBeli

- noRetur: char

- tglRetur: date

- totalRetur: double

+ batal(): void

+ keluar(): void

+ simpan(): void

+ tambah(): void

DetailRetur

- kdBarang: char

- noRetur: char

- qtyRetur: int

- subRetur: double

Jurnal

- noJurnal: char

- tglJurnal: date

+ batal(): void

+ keluar(): void

+ simpan(): void

+ tambah(): void

DetailJurnal

- debet: int

- kredit: int

- noAkun: char

- noJurnal: char

Akun

- nmAkun: char

- noAkun: char

+ batal(): void

+ cari(): void

+ edit(): void

+ hapus(): void

+ keluar(): void

+ simpan(): void

+ tambah(): void

User

- hakAkses

- idUser

- nmUser

- pass

+ batal(): void

+ cari(): void

+ edit(): void

+ hapus(): void

+ keluar(): void

+ simpan(): void

+ tambah(): void

1

1

1

1..*

1

1..*

1..*

1

1..*

1

1

0..*

1 0..*

1

1..*

1..*

1

1 0..1

1 1

1 1..*

1..*

1

1..

1..*

0..*

1

1

1..*

1

1

1

1..*

1

1..*

Sumber : Hasil Perancangan (2019)

Spesifikasi fileNama File : SupplierFungsi : Untuk menyimpan data supplierAkronim : Supplier.mydTipe File : MasterMedia File : HarddiskOrganisasi File : Index SequentialAkses File : RandomPanjang Record : 71 KarakterKunci Field : kdSuppSoftware : My SQL

Elemen Data Akronim Tipe Data Panjang Keterangan

Kode Supplier kdSupp Char 3 Primary Key

Nama Supplier nmSupp Char 25

Alamat alamat Char 30

Telepon telepon Char 13

Tabel Spesifikasi File

Untuk Spesifikasi file lainnya, dosen dapatmemberikan arahan sesuai dengan Class

Diagram

Daftar Pustaka

• Akil, Ibnu. 2018. Referensi Dan Panduan UML2.4. Jakarta : Ibnu Akil

• Indrajani.2015. Database Design. Jakarta : PT.Elex Media Komputindo.

• Tohari, Hamim.2013. Analisis sertaPerancnagan Sistem Informasi melaluiPendekatan UML. Yogyakarta : Andi Offset