• Tidak ada hasil yang ditemukan

IKG2I4 / Software Project I

N/A
N/A
Protected

Academic year: 2021

Membagikan "IKG2I4 / Software Project I"

Copied!
38
0
0

Teks penuh

(1)

IKG2I4 / Software Project I

Mahmud Imrona, M.T. Izzatul Ummah, M.T.

Kelompok Keahlian Algoritma dan Komputasi

LECTURE NOTE

WEEK 9

(2)

Entity Relationship Diagram (ERD)

Primary key

Foreign key

Query SQL sederhana: SELECT-FROM-WHERE

Query ke 2 tabel: JOIN

(3)

ERD atau Entity Relationship Diagram adalah diagram

yang menggambarkan entitas data (entity) dan

hubungannya.

Entity sangat mirip dengan class pada OOP, akan

tetapi entity lebih terkait dengan data yang disimpan

secara fisik pada database.

Perancangan ERD dilakukan pada tahap awal fase

pengembangan software dan harus dilakukan dengan

cermat dan detail, karena sedikit saja perubahan pada

ERD dapat berdampak besar pada proses

implementasi coding.

(4)

Ketika pengembangan software sudah mulai

masuk tahap implementasi (coding), sedikit

perubahan pada ERD dapat berakibat cukup besar

pada arsitektur software, dan programmer

mungkin harus mengubah sebagian besar source

codenya.

Oleh karena itu, tanggung jawab seorang System

Analyst sangat besar dalam merancang ERD yang

tepat untuk software yang sedang dikembangkan.

(5)

Pada kuliah ini kita akan menggunakan skema

HRM (Human Resource Management) pada Oracle

untuk studi kasus.

Sebagai bahan perbandingan, lihat juga

“BANKING SYSTEM”, pada textbook

–Silberschatz−Korth−Sudarshan. Database System Concepts, 4th ed, McGrawHill. Chapter 2.

(6)

Pada studi kasus BANKING SYSTEM, ada beberapa

entitas yang teridentifikasi (mirip seperti class

pada materi object oriented):

–Employee: pegawai bank

–Customer: semua nasabah yang tercatat di bank

–Depositor: nasabah yang menyimpan uang di bank

–Borrower: nasabah yang meminjam uang dari bank

–Account: rekening penyimpanan

–Loan: rekening peminjaman

Catatan: sistem di atas hanya asumsi saja, dan mungkin tidak sesuai dengan sistem banking sebenarnya.

(7)

Tiap entity memiliki atribut (mirip seperti

attribute class):

–Employee: employee-id, name, telephone number, dsb

–Customer: customer-id, name, address (street & city)

–Depositor: daftar nasabah yang menyimpan uang di bank

–Borrower: daftar nasabah yang meminjam uang dari bank

–Account: rekening penyimpanan

–Loan: rekening peminjaman

Atribut pada entity bersifat atomic yaitu hanya mengandung sebuah nilai. Bila yang dibutuhkan adalah beberapa nilai,

ENTITY DAN ATRIBUT

(8)

Tiap entity utama memiliki primary key. Primary

key yaitu atribut yang bersifat unique. Contoh:

–Untuk tabel mahasiswa, primary key-nya adalah NIM

–Untuk tabel employee: employee-id, name, telephone number, dsb

–Customer: customer-id, name, address (street & city)

–Depositor: daftar nasabah yang menyimpan uang di bank

–Borrower: daftar nasabah yang meminjam uang dari bank

–Account: rekening penyimpanan

–Loan: rekening peminjaman

PRIMARY KEY

(9)

ENTITY

RELATIONSHIP

DIAGRAM

(10)

Hubungan antar entity dapat berupa:

–One-to-one: relasi 11

 Contoh: tiap mahasiswa hanya boleh punya satu NIM

–One-to-many atau many-to-one: relasi 1N

–Many-to-many: relasi MN

Coba ingat kembali tentang multilist pada

matakuliah Pemrograman Terstruktur 2:

–Relasi 1N: hubungan list pegawai dan list anak

 Tiap pegawai boleh punya banyak anak, tiap anak hanya boleh punya 1 bapak

–Relasi NM: hubungan list dosen dan list matakuliah

HUBUNGAN ANTAR ENTITY

(11)

Setelah ERD selesai dirancang, ERD tersebut

harus dimapping atau dipetakan ke dalam table

diagram, untuk kemudian disetting di software

DBMS (Database Management System) misalnya

Microsoft SQL SERVER atau ORACLE.

Saat ini para system analyst yang sudah

berpengalaman dan punya skill biasanya langsung

merancang table diagram tanpa terlebih dahulu

merepresentasikan diagram ERD secara formal.

Contoh table diagram ada di halaman berikut.

(12)

HRM

(Oracle)

(13)

Thumb rule (aturan tak resmi) untuk melakukan

mapping ERD ke table diagram:

–Untuk 2 entitas yang memiliki relasi 1-1 maka kedua entitas itu digabungkan dalam 1 tabel

–Untuk 2 entitas yang memiliki relasi 1-N maka masing-masing entitas dibuat menjadi 1 tabel, sehingga ada 2 tabel untuk 2 entitas.

 Contoh: relasi pegawai-anak adalah relasi 1N, maka dibuat

tabel pegawai dan ada tabel anak, di mana tabel anak memiliki foreign key (asosiasikan sebagai pointer pada relasi 1N) yang mengacu pada orangtuanya di tabel pegawai

(14)

Thumb rule (aturan tak resmi) untuk melakukan

mapping ERD ke table diagram:

–Untuk 2 entitas yang memiliki relasi N-M maka masing-masing entitas dibuat menjadi 1 tabel, ditambah tabel baru yaitu tabel relasi, sehingga ada 3 tabel untuk 2 entitas.

 Contoh: relasi dosen-matakuliah adalah relasi N-M, maka

dibuat tabel dosen dan tabel matakuliah, serta tabel MKDOS di mana tabel MKDOS ini memiliki dua foreign key yang masing-masing mengacu ke tabel dosen dan ke tabel matakuliah.

Mekanisme pointer (pada kuliah PT2) sekarang

digantikan dengan mekanisme foreign key.

(15)

Foreign key adalah atribut suatu entity yang mengacu pada atribut (primary key) dari entity lain.

Contoh, tabel dosen primary key-nya NIP, tabel matakuliah primary key-nya KodeMK, maka tabel MKDOS punya dua atribut foreign key yang masing-masing mengacu ke NIP (dosen) dan ke KodeMK (matakuliah).

Semua nilai pada foreign key di tabel MKDOS harus sudah ada datanya di tabel dosen dan tabel matakuliah.

Tabel dosen dan tabel matakuliah adalah tabel master atau reference, karena tabel ini menyimpan data yang dirujuk oleh tabel lain.

(16)

Dalam proses pengembangan software, database yang

dirancang haruslah memenuhi kriteria :

– Integrity: keutuhan sistem, bila ada data berubah maka perubahan itu harus diketahui oleh keseluruhan sistem

– No redundancy: tidak ada data yang sama tersimpan di 2 tabel (repetition of information atau duplikasi data)

Ada beberapa tingkat ‘kenormalan’ database:

– 1st Normal Form: masih banyak redundancy (very loose)

– 2nd Normal Form

– 3rd Normal Form

– Boyce Codd Normal Form

– 4th Normal Form: paling sedikit redundancy (very strict)

(17)

Proses untuk menormalkan atau mengurangi

redundancy pada sebuah rancangan database

disebut normalisasi.

4

th

Normal Form menetapkan kriteria yang sangat

ketat (strict) dalam menerapkan prinsip integrity

dan no-redundancy, namun akibatnya

membutuhkan waktu yang lebiih lama untuk

query ke banyak tabel. Oleh karena itu untuk

menangani database yang sangat kompleks

terkadang 3NF atau BCNF saja sudah cukup.

(18)

Query SELECT * FROM <table>

–Digunakan untuk meretrieve atau mengambil data dari sebuah tabel database.

–Untuk memilih kolom tertentu, tuliskan nama kolomnya.

QUERY SELECT KE SATU TABLE

(19)

SELECT customer_id, customer_name FROM

customer;

SELECT * FROM customer;

(20)

Query SELECT * FROM <table> WHERE

–WHERE digunakan untuk menyeleksi atau menyaring (filter) data yang ingin ditampilkan sesuai kebutuhan.

–Kondisi yang dituliskan di dalam WHERE adalah

pernyataan/kalimat logika. Setiap baris data pada DBMS akan diseleksi berdasarkan kondisi tersebut. Jika

memenuhi syarat kondisi (TRUE), maka baris tersebut ditampilkan. Jika sebaliknya (FALSE), maka tidak

ditampilkan.

(21)
(22)

Query SELECT * FROM <table1> JOIN <table2>

–JOIN digunakan untuk mendapatkan data dari dua tabel. Setiap tabel dianggap sebagai himpunan, dan proses JOIN pada dasarnya adalah perkalian (cross product) antara

dua buah himpunan, dengan syarat tertentu misalnya adanya kesamaan pada salah satu atribut (foreign key).

–Contoh:

(23)

Menginstal ORACLE

Mengimport skema HUMAN RESOURCE

MANAGEMENT (file hr_master.sql) ke ORACLE

–Pada tampilan utama Web Oracle di atas

(http://127.0.0.1:8080/apex/), klik SQL Workshop -> klik SQL Scripts -> klik Upload -> Klik Choose File, arahkan ke file hr_master.sql. Isi nama script name = HR.

–Klik Upload.

(24)
(25)

–Selanjutnya akan muncul tampilan berikut:

–Klik di gambar icon di bawah Run.

TUGAS PEKAN INI

(26)

–Selanjutnya,

muncul tampilan di samping ini:

–Klik Run Now dan tunggu beberapa detik sampai

seluruh query dieksekusi.

–Bila berhasil maka akan muncul status COMPLETE (lihat

gambar di halaman berikutnya):

(27)

–Selanjutnya akan muncul tampilan berikut:

–Untuk menguji skema yang sudah Anda import, klik menu Home -> SQL Workshop -> Object Browser. Bila di situ

ada table COUNTRIES, DEPARTMENTS, EMPLOYEES, JOBS, JOB_HISTORY, LOCATIONS, dan REGIONS, maka Anda

telah berhasil meng-import skema HR.

TUGAS PEKAN INI

(28)

–Eksekusi query-query berikut, amati hasil yang muncul, dan pahami mengenai arti query tersebut:

 SELECT * FROM departments;

 SELECT department_id, location_id FROM departments;

 SELECT last_name, hire_date, salary FROM employees;

 SELECT last_name, salary, (salary + 300) FROM employees;

 SELECT last_name, salary, (12*salary+100) FROM employees;

 SELECT last_name, job_id, salary, commission_pct FROM employees;

 SELECT last_name AS name, commission_pct comm FROM employees;

(29)

–Eksekusi query-query berikut, amati hasil yang muncul, dan pahami mengenai arti query tersebut:

 SELECT first_name || last_name || ' adalah ' || job_id AS "Detail Pegawai" FROM employees;

 SELECT * FROM locations;

 SELECT * FROM countries;

 SELECT * FROM jobs;

 SELECT * FROM job_history;

(30)

–Apa perbedaan hasil antara dua query berikut?

 SELECT department_id FROM employees;

 SELECT DISTINCT department_id FROM employees;

–Apa perbedaan hasil antara dua query berikut?

 SELECT job_id FROM employees;

 SELECT DISTINCT job_id FROM employees;

–Apa perbedaan hasil antara dua query berikut?

 SELECT department_id, job_id FROM employees;

 SELECT DISTINCT department_id, job_id FROM employees;

–Apa arti perintah DESCRIBE berikut ini?

 DESCRIBE employees;

 DESCRIBE departments;

(31)

–Apa perbedaan hasil antara dua query berikut?

 SELECT department_id FROM employees;

 SELECT DISTINCT department_id FROM employees;

–Apa perbedaan hasil antara dua query berikut?

 SELECT job_id FROM employees;

 SELECT DISTINCT job_id FROM employees;

–Apa perbedaan hasil antara dua query berikut?

 SELECT department_id, job_id FROM employees;

 SELECT DISTINCT department_id, job_id FROM employees;

–Apa arti perintah DESCRIBE berikut ini?

 DESCRIBE employees;

(32)

–Eksekusi query-query berikut, amati hasil yang muncul, dan pahami mengenai arti query tersebut:

 SELECT employee_id, last_name, job_id, department_id FROM employees

WHERE department_id = 90 ;

 SELECT last_name, job_id, department_id FROM employees

WHERE last_name = 'Whalen';

 SELECT first_name, last_name, hire_date FROM employees

WHERE hire_date = '02/17/1996';

(33)

–Eksekusi query-query berikut, amati hasil yang muncul, dan pahami mengenai arti query tersebut:

 SELECT first_name, last_name, salary FROM employees

WHERE salary > 6000;

 SELECT last_name, salary FROM employees

WHERE salary BETWEEN 2500 AND 3500;

 SELECT first_name, last_name FROM employees

WHERE last_name LIKE 'Mar%';

(34)

–Eksekusi query-query berikut, amati hasil yang muncul, dan pahami mengenai arti query tersebut:

 SELECT employee_id, last_name, job_id, salary FROM employees

WHERE salary >= 10000 AND job_id LIKE '%MAN%';

 SELECT employee_id, last_name, job_id, salary FROM employees

WHERE salary >= 10000 OR job_id LIKE '%MAN%';

 SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date;

(35)

–Eksekusi query-query berikut, amati hasil yang muncul, dan pahami mengenai arti query tersebut:

 SELECT last_name, job_id, department_id, hire_date FROM employees

ORDER BY hire_date DESC;

 SELECT last_name, department_id, salary FROM employees

ORDER BY department_id, salary DESC;

(36)

–Buatlah query SQL untuk menampilkan data berikut ini:

 Create a query that displays the last name and salary of employees who earn more than 12000.

 Create a query that displays the last name and department number for employee number 176.

 Buatlah query untuk menampilkan data employees yang

memiliki salary antara 5000-12000 (>= 5000 dan <= 12000). Buat juga query untuk menampilkan data di luar range itu.

 Create a query to display the last name, job ID, and start date for the employees with the last names of Matos and Taylor. Order the query in ascending order by the start date.

 Create a query to display the last name and department

number of all employees in departments 20 or 50 in ascending alphabetical order by name.

(37)

–Buatlah query SQL untuk menampilkan data berikut ini:

 Create a query that displays the last name and hire date for all employees who were hired in 1994.

 Create a query to display the last name and job title of all employees who do not have a manager.

 Create a query to display the last name, salary, and

commission of all employees who earn commissions. Sort data in descending order of salary and commissions.

 Create a query to display the last name, job, and salary for all employees whose jobs are either those of a sales

representative or of a stock clerk, and whose salaries are not equal to 2500, 3500, or 7000.

 Create a query to display the last name, salary, and

(38)

Gambar

TABLE DIAGRAM
gambar di halaman berikutnya):

Referensi

Dokumen terkait

Berdasarkan Pasal 55 ayat (2) Undang-Undang (UU) Nomor 1 Tahun 2004 tentang Perbendaharaan Negara dan Peraturan Menteri Keuangan Nomor 171/PMK.05/2007 sebagaimana

Sistem persediaan perpetual disebut juga dengan sistem persediaan buku (book inventory system). Akun persediaan barang pada awal periode akuntansi mengindikasikan stok pada

Oleh karena dalam penelitian ini didapatkan nilai signifikansi sebesar 0,000 (p &lt;0,05) maka dapat disimpulkan bahwa terdapat perbedaan pH saliva antara pasien

Dengan demikian hipotesis yang kedua yang menyatakan “Brand awareness yang terdiri dari unware of brand, brand recognition, brand recall dan top of mind secara

Pada bagian ini dijabarkan strategi yang akan diterapkan dalam rangka pelembagaan (institusionalisasi) industri yang dibangun sedemikian rupa dapat mendorong

Analisis spektrum 1H NMR (Gambar 3-5) senyawa hasil isolasi menunjukkan sinyal yang tidak terpisah baik pada daerah dibawah empat yang merupakan proton alisiklik dari rangka

Juga diperoleh hasil dari pengujian dengan Anova didapat bahwa jenis dan ukuran font mempengaruhi kecepatan pembacaan teks, sedangkan warna font, interaksi dua arah, serta

Untuk itulah dalam kajian skripsi ini penulis juga menekankan tentang etika pemberitaan media massa ( kode etik jurnalistik ) pada salah satu media massa yaitu Tabloid