#Attribution1 { height:0px; visibility:hidden; display:none }

Naruto Shippuden Subtitle Indonesia

Download disini untuk menyaksikan kehebatan Naruto dan kawan-kawan.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions..

Siklus Instruksi CPU

Siklus Instruksi CPU.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions..

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions..

Selasa, 12 Mei 2015

Penggunaan Select Statment 1

MODUL 7
SELECT STATMENT PART 1

A. Tujuan
1. Mahasiswa mampu menggunakan instruksi Create Table dan options-nya menggunakan PostgreSQL untuk membuat tabel-tabel basis data sesuai kebutuhan.
2. Mahasiswa mampu memasukkan records ke dalam tabel-tabel basis data.

B. Landasan Teori
SELECT STATEMENTS digunakan untuk menentukan atau memilih data yang akan
ditampilkan ketika melakukanquery terhadap basis data. Struktur select statements di
PostgreSQL adalah sebagai berikut:
SELECT [ALL] | DISTINCT [ON (expression) [, ...] ) ] ]
*| expression [ AS output_name ] [, ...]
[ FROM from_item [, ...] ]
[ WHERE condition ]
[ GROUP BY expression [, ...] ]
[ HAVING condition [, ...] ]
[ { UNION | INTERSECT | EXCEPT } [ ALL ] select ]
[ ORDER BY expression [ ASC | DESC | USING operator ] [, ...] ]
[ FOR UPDATE [ OF tablename [, ...] ] ]
[ LIMIT { count | ALL } ]
[ OFFSET start ]
Contoh SELECT:
• Untuk melihat semua kolom dari suatu tabel:
SELECT* FROM nasabah;
• Untuk melihat kolom (-kolom) tertentu:
SELECT nama_nasabah FROM nasabah;
SELECT id_nasabah, nama_nasabah FROM nasabah;
• Secara umum:
SELECT FROM ;
- Column Alias (AS)
• AS digunakan untuk mengganti nama kolom pada tampilan SELECT.
Contoh:
- SELECT nama_nasabah AS “Nama Nasabah” FROM nasabah;
- SELECT nama_nasabah AS “Nasabah”, alamat_nasabah AS “Alamat Nasabah” FROM nasabah;
- WHERE
• Digunakan untuk membatasi hasil SELECT yang ditampilkan berdasarkan kondisi yang ditentukan.
Contoh:
- SELECT nama_nasabah FROM nasabah WHERE nama_nasabah=’Ali Topan’ ;
- SELECT nama_nasabah, alamat_nasabah FROM nasabah WHERE id_nasabah=2;
• Bisa menggunakan >, <, < > (atau !=), >=, <=
• Gunakan AND atau OR untuk lebih dari satu kondisi:
- SELECT* FROM nasabah WHERE nama_nasabah = ‘Rina Marsudi’ AND alamat_nasabah = ‘Jl. Kusumanegara 30’;
- SELECT* FROM nasabah WHERE nama_nasabah = ‘Ali Topan’ OR id_nasabah=2;
- Pencarian NULL
• Gunakan IS NULL untuk mencari NULL:
- SELECT* FROM rekening WHERE kode_cabang IS NULL;
• Gunakan IS NOT NULL untuk mencari yang tidak NULL:
- SELECT* FROM rekening WHERE kode_cabang IS NOT NULL;
- Pencarian String
• Gunakan LIKE untuk mencari string tertentu:
- SELECT* FROM nasabah WHERE nama_nasabah LIKE ‘Ali Topan’;
• Bisa menggunakan %:
- SELECT* FROM nasabah WHERE alamat_nasabah LIKE ‘%negara%’;
• Bisa menggunakan _ untuk 1 huruf:
- SELECT* FROM nasabah WHERE nama_nasabah LIKE ‘Ali T_p_n’;
• Untuk pencarian yang case insensitive (tidak mempedulikan huruf besar atau kecil), gunakan ILIKE:
- SELECT* FROM nasabah WHERE nama_nasabah ILIKE ‘%marsudi’;
- ORDER BY
• Digunakan untuk mengurutkan hasil SELECT.
• Untuk mengurutkan dari kecil ke besar:
- SELECT* FROM nasabah ORDER BY nama_nasabah;
• Untuk mengurutkan dari besar ke kecil:
- SELECT* FROM nasabah ORDER BY nama_nasabah DESC;
• Perhatian: jika ada WHERE, maka ORDER BY ditaruh sesudah WHERE.
• Untuk melakukan pengurutan lebih dari satu kolom, pisahkan dengan tanda koma:
- SELECT* FROM nasabah_has_rekening ORDER BY no_rekening, id_nasabah;
• Bisa menentukan DESC untuk kolom (-kolom) tertentu, misalnya:
- SELECT* FROM nasabah_has_rekening ORDER BY no_rekening, id_nasabah DESC;
- SELECT* FROM nasabah_has_rekening ORDER BY no_rekening DESC, id_nasabah;
- LIMIT & OFFSET
• Digunakan untuk membatasi jumlah baris yang ditampilkan dalam SELECT.
Contoh: Hanya menampilkan 3 baris pertama:
- SELECT* FROM nasabah ORDER BY id_nasabah LIMIT 3;
Menampilkan 2 baris setelah melewati 2 baris pertama:
- SELECT* FROM nasabah ORDER BY id_nasabah LIMIT 2 OFFSET 2;
• Perhatian: penggunaan LIMIT sebaiknya selalu digunakan bersama dengan ORDER BY, sehingga urutan yang ditampilkan akan selalu konsisten.
• LIMIT dan OFFSET sangat berguna dalam tampilan yang berbasis web (melalui web browser dengan menggunakan PHP atau JSP) agar tampilan data tidak terlalu besar dan bisa lebih rapi. Tampilan data yang banyak bisa diatur dan dibagi menjadi beberapa halaman (pages).
- TABLE JOIN
Macam tabel join:
• Cross Join
- Menggabungkan semua record dari tabel pertama dengan semua record di tabel kedua.
- Banyaknya record dari cross join = jumlah record tabel pertama x jumlah record tabel kedua.
Contoh:
ü SELECT* FROM rekening CROSS JOIN cabang_bank;
• Inner Join
- Menggabungkan dua (atau lebih) tabel berdasarkan attribute penghubung.
- Metode 1:
ü SELECT* FROM rekening INNER JOIN cabang_bank USING(kode_cabang);
- Metode 2:
ü SELECT* FROM rekening INNER JOIN cabang_bank ON rekening.kode_cabang = cabang_bank.kode_cabang;
- Metode 3:
ü SELECT* FROM rekening NATURAL INNER JOIN cabang_bank;
- Metode 4:
ü SELECT* FROM rekening, cabang_bank WHERE rekening.kode_cabang = cabang_bank.kode_cabang;
- Perhatian: untuk INNER JOIN, kita dapat menghilangkan kata ‘INNER’. Jadi, cukup dengan kata ‘JOIN’ saja.
- Dengan metode 4, jika kolo yang ingin ditampilkan ada di lebih dari 2 tabel, maka harus menentukan tabel mana yang diinginkan.
Contoh:
ü SELECT nasabah.id_nasabah, nama_nasabah, no_rekening FROM nasabah, nasabah_has_rekening WHERE nasabah.id_nasabah = nasabah_has_rekening.id_nasabah;
Table Alias
- Untuk kemudahan penulisan SQL, kita bisa membuat table alias.
Contoh:
ü SELECT* FROM nasabah A, nasabah_has_rekening B WHERE A.id_nasabah=B.id_nasabah;
ü SELECT* FROM A.id_nasabah, nama_nasabah, no_rekening FROM nasabah A, nasabah_has_rekening B WHERE A.id_nasabah = B.id_nasabah;
Distinct
- Dalam table join, kadang-kadang ada informasi yang berulang. Untuk menghilangkan pengulangan tersebut, gunakan DISTINCT.
Contoh:
ü SELECT DISTINCT nama_nasabah, alamat_nasabah FROM nasabah NATURAL JOIN nasabah_has_rekening;
- Perhatikan perbedaan dengan berikut:
ü SELECT nama_nasabah, alamat_nasabah FROM nasabah NATURAL JOIN nasabah_has_rekening;
• Right Outer Join
- Menampilkan hasil join tabel pertama (sisi kiri) dengan tabel kedua (sisi kanan), serta semua record di tabel kedua (sisi kanan/right):
ü SELECT* FROM rekening NATURAL RIGHT OUTER JOIN cabang_bank;
- Ketiga metode pertama yang telah disebutkan untuk INNER JOIN juga berlaku untuk RIGHT OUTER JOIN, yaitu dengan menggunakan USING, ON, atau NATURAL.
• Left Outer Join
- Menampilkan hasil join tabel pertama (sisi kiri) dengan tabel kedua (sisi kanan), serta semua record di tabel pertama (sisi kiri/left):
ü SELECT* FROM rekening NATURAL LEFT OUTER JOIN cabang_bank;
- Ketiga metode yang telah disebutkan untuk RIGHT OUTER JOIN juga berlaku untuk LEFT OUTER JOIN, yaitu dengan menggunakan USING, ON, atau NATURAL.
• Full Outer Join
- Menampilkan hasil join tabel pertama dengan tabel kedua, serta semua record di tabel tersebut:
ü SELECT* FROM rekening NATURAL FULL OUTER JOIN cabang_bank;
- Ketiga metode yang telah disebutkan untuk LEFT/RIGHT OUTER JOIN juga berlaku untuk FULL OUTER JOIN, yaitu dengan menggunakan USING, ON, atau NATURAL.
• Outer Join
- Untuk LEFT OUTER JOIN, RIGHT OUTER JOIN, dan FULL OUTER JOIN,bisa menghilangkan kata ‘OUTER’. Jadi, cukup menggunakan LEFT JOIN, RIGHT JOIN, atau FULL JOIN saja.
• Inner Join vs. Outer Join
• Dalam Inner Join: yang ditampilkan hanyalah hasil dari table join yang berhasil, yaitu semua record yang berhubungan di kedua tabel yang digabungkan.
• Dalam Outer Join: selain menampilkan hasil dari Inner Join, Outer Join juga menampilkan semua recordyang tidak berhubungan di kedua tabel yang digabungkan.
• Multiple Joins
• Untuk lebih dari 2 tabel, tinggal diteruskan saja JOINnya. Misalnya:
- SELECT* FROM nasabah NATURAL JOIN nasabah_has_rekening NATURAL JOIN rekening;
• Cara lain:
- SELECT* FROM nasabah A, nasabah_has_rekening B, rekening C where A.id_nasabah = B.id_nasabah AND B.no_rekening = C.no_rekening;
• Jika melakukan multiple join (lebih dari 2 tabel), harus memperhatikan urutan join. Urutan table join perlu mengikuti alur relationship yang tertera di ER Diagram.
• Oleh karena itu, sebaiknya menggunakan ER Diagram agar bisa menghasilkan table join yang benar.

C. Percobaan
1. Menampilkan nama bank dan alamat bank untuk semua cabang bank, urutkan berdasarkan nama bank. Untuk melakukannya dapat menggunakan kode query berikut :

   SELECT nama_cabang, alamat_cabang FROM cabang_bank ORDER BY nama_cabang;

Dengan menggunakan kode query tersebut maka hasil / tampilan yang didapatkan adalah seperti gambar 1.
Gambar 1. Tampilan dari percobaan 1

2. Menampilkan nomor rekening, pin, dan jumlah saldo untuk semua rekening dan diurutkan berdasarkan jumlah saldo dari yang terbesar ke yang terkecil. Untuk melakukannya dapat menggunakan kode query berikut :

  SELECT no_rekening, pin, saldo FROM rekening OREDER BY saldo DESC;

Dengan menggunakan kode query tersebut maka hasil/tampilkan yang didapatkan adalah seperti gambar 2.
Gambar 2. Tampilan dari percobaan 2

3. Menampilkan nomor rekening, nama nasabah, dan alamat nasabah dari semua nasabah yang memiliki rekening dan diurutkan berdasarkan nama nasabah. Untuk melakukannya dapat menggunakan kode query berikut :

SELECT rekening.no_rekening, nasabah.nama_nasabah, nasabah.alamat_nasabah FROM nasabah, rekening, nasabah_has_rekening WHERE nasabah.id_nasabah=nasabah_has_rekening.id_nasabahfk AND rekening.no_rekening=nasabah_has_rekening.no_rekeningfk ORDER BY nasabah.nama_nasabah ;

Dengan menggunakan kode query berikut maka hasil/tampilan yang didapatkan adalah seperti gambar 3.

Gambar 3. Tampilan dari percobaan 3

4. Menampilkan nomor rekening, nama nasabah, dan jumlah saldo untuk semua rekening yang diimiliki oleh nasabah da n diurutkan berdasarkan nama nasabah. Untuk melakukannya dapat menggunakan kode query berikut :

SELECT rekening.no_rekening, nasabah.nama_nasabah, rekening.saldo FROM rekening, nasabah, nasabah_has_rekening WHERE nasabah.id_nasabah=nasabah_has_rekening.id_nasabahfk AND rekening.no_rekening=nasabah_has_rekening.no_rekeningfk ORDER BY nasabah.nama_nasabah;

Dengan menggunakan kode query berikut maka hasil/tampilan yang didapatkan adalah seperti gambar 4.
Gambar 4. Tampilan dari percobaan 4



B. TUGAS

1. Menampilkan nama nasabah, alamat nasabah, jenis transaksi, dan jumlah transaksi dimana jenis transaksinya adalah kredit dan urutkan berdasarkan nama nasabah. Untuk mendapatkan hasil/tampilan yang diminta dapat menggunakan kode query berikut :

SELECT nama_nasabah, alamat_nasabah, jenis_transaksi, jumlah FROM nasabah, transaksi WHERE nasabah.id_nasabah=transaksi.id_nasabahfk AND transaksi.jenis_transaksi=’kredit’ ORDER BY nasabah.nama_nasabah ;

Berdasarkan kode query tersebut maka hasil yang ditampilkan seperti gambar 5.
Gambar 5. Tampilan dari tugas 1

2. Menampilkan nomor rekening, nama nasabah, jenis transaksi, dan jumlah transaksi yang melakukan pada transaksi pada tanggal 21 November 2009 dan urutkna berdasarkan nama nasabah. Untuk mendapatkan hasil/tampilan yang diminta dapat menggunakan kode query berikut :

SELECT no_rekening, nama_nasabah, jenis_transksi, jumlah FROM nasabah, rekening, transaksi WHERE nasabah.id_nasabah=transaksi.id_nasabahfk AND rekening.no_rekeningfk=transaksi.no_rekeningfk AND transaksi.tanggal=’2009-11-21’ ORDER BY nasabah.nama_nasabah ;

Berdasarkan kode query tersebut maka hasil yang ditampilkan seperti gambar 6.
Gambar 6. Tampilan dari tugas 2

E. Analisa dan Kesimpulan
Dari semua percobaan dan tugas yang telah dikerjakan dapat diketahui bahwa menampilkan tabel dapat sesuai dengan keinginan atau kebutuhan. Dengan memperhatikan relasi antar tabel, agar dapat menetukan apa saja atribut penhubungnya. Dengan memahami relasi dan atribut penhubung antar tabel, menamilkan tabel sesuai kebutuhan adalah hal yang mudah.

Selasa, 05 Mei 2015

Implementasi Tabel Database Dengan PostgreSQL

MODUL 6
IMPLEMENTASI TABEL-TABEL BASIS DATA(2)


A. Tujuan
     Mahasiswa mampu membuat struktur tabel-tabel basis data berdasarkan perancangan di modul 3 dan        mengimplementasi tabel-tabel tersebut di basis data.

B. Landasan Teori
    Basis data dapat diimplementasikan berdasarkan E-R diagram yang telah dibuat. Implementasi                     database bisa:
     1. Secara manual (dengan perintah SQL ‘CREATE TABLE’)
     2. Secara semi-manual dengan bantuan client berbasis GUI (MySQL Front, PgAccess, phpPgAdmin).
     3. Secara otomatis dengan CASE Tools (DBDesigner)

     Tahap Pembuatan Tabel
       1. Membuat semua tabel yang paling utama (yang tidak memiliki FK).
       2. Membuat semua tabel yang berhubungan langsung (atau memiliki relationship) dengan tabel yang               dibuat di tahap sebelumnya. Mulailah secara urut dari tabel dengan jumlah FK yang paling sedikit ke              yang paling banyak.
       3. Ulangi tahap 2 sampai semua tabel selesai dibuat.

C. Membuat Tabel-tabel Database Bank
     - Tahap pembuatan tabel
        * Membuat tabel nasabah :
             create table nasabah(
             id_nasabah integer primary key,
             nama_nasabah varchar(45) not null,
             alamat_nasabah varchar(255) not null);

             select * from nasabah   /* perintah untuk menampilkan tabel nasabah */

        * Membuat tabel cabang_bank :
             create table cabang_bank(
             kode_cabang varchar (20) primary key,
             nama_cabang varchar(45) unique not null,
             alamat_cabang varchar(255) not null);*/

             select * from cabang_bank  /* perintah untuk menampilkan tabel cabang_bank */

        * Membuat tabel rekening :
             create table rekening(
             no_rekening integer primary key,
             kode_cabangfk varchar(20) references cabang_bank(kode_cabang) on delete cascade on update                   cascade,
             pin varchar(20) default '1234' not null,
             saldo integer default 0 not null);

             select * from rekening    /* perintah untuk menampilkan tabel rekening */

        * Membuat tabel transaksi :
             create table transaksi (
             no_transaksi serial primary key,
             id_nasabahfk integer references nasabah(id_nasabah) on delete set null on update cascade,
             no_rekeningfk integer references rekening(no_rekening) on delete set null on update cascade,
             jenis_transaksi varchar(20) default 'debit' not null,
             tanggal date default current_date not null,
             jumlah integer not null check (jumlah>=20000));

             select * from transaksi    /* perintah untuk menampilkan tabel transaksi */

        * Membuat tabel nasabah_has_rekening :
             create table nasabah_has_rekening(
             id_nasabahfk integer references nasabah(id_nasabah) on delete cascade on update cascade,
             no_rekeningfk integer references rekening(no_rekening) on delete cascade on update cascade,
             primary key(id_nasabahfk, no_rekeningfk));

             select * from nasabah_has_rekening  /* perintah menampilkan tabel nasabah_has_rekening*/

     - Tahap memasukkan nilai tabel
        * Memasukkan nilai tabel nasabah :
             insert into nasabah (id_nasabah, nama_nasabah, alamat_nasabah) values
             (1, 'sutopo', 'jl. jendral sudirman 12'),
             (2, 'maryati', 'jl. mt. haryono 31'),
             (3, 'suparman', 'jl. haasanudin 81'),
             (4, 'kartika padmasari', 'jl. manggis 15'),
             (5, 'budi eko prayogo', 'jl. kantil 30'),
             (6, 'satria eka jaya', 'jl. slamet riyadi 45'),
             (7, 'indri hapsari', 'jl. sutoyo 15'),
             (8, 'sari murti', 'jl. pangandaran 11'),
             (9, 'canka lokananta', 'jl. tidar 86'),
             (10, 'budi murtono', 'jl. merak 22');

        * Memasukkan nilai tabel cabang_bank :
             insert into cabang_bank (kode_cabang, nama_cabang, alamat_cabang) values
             ('brus', 'bank rut unit surakarta', 'jl. slamet riyadi 18'),
             ('brum', 'bank rut unit magelang', 'jl. p. tendean 63'),
             ('brub', 'bank rut unit boyolali', 'jl. ahmad yani 45'),
             ('bruk', 'bank rut unit klaten', 'jl. suparman 23'),
             ('bruy', 'bank rut unit yogyakarta', 'jl. anggrek 21'),
             ('bruw', 'bank rut unit wonogiri', 'jl. untung suropati 12');

        * Memasukkan nilai tabel rekening :
             insert into rekening (no_rekening, kode_cabangfk, pin, saldo) values
             (101, 'brus', 1111, 500000),
             (102, 'brus', 2222, 350000),
             (103, 'brus', 3333, 750000),
             (104, 'brum', 4444, 900000),
             (105, 'brum', 5555, 2000000),
             (106, 'brus', 6666, 3000000),
             (107, 'brus', 7777, 1000000),
             (108, 'brub', 0000, 5000000),
             (109, 'brub', 9999, 0),
             (110, 'bruy', 1234, 550000),
             (111, 'bruk', 4321, 150000),
             (112, 'bruk', 0123, 300000),
             (113, 'bruy', 8888, 255000);

        * Memasukkan nilai tabel nasabah_has_rekening :
             insert into nasabah_has_rekening(id_nasabahfk, no_rekeningfk) values
             (1, 104),
             (2, 103),
             (3, 105),
             (3, 106),
             (4, 101),
             (4, 107),
             (5, 102),
             (5, 107),
             (6, 109),
             (7, 109),
             (8, 111),
             (9, 110),
             (10, 113),
             (8, 112),
             (10, 108);

        * Memasukkan nilai tabel transaksi :
             insert into transaksi(no_transaksi, no_rekeningfk, id_nasabahfk, jenis_transaksi, tanggal, jumlah)
             values
             (1,       105,         3, 'debit', '2009-11-10', 50000),
             (2,  103,  2, 'debit', '2009-11-10', 40000),
             (3,  101,  4, 'kredit', '2009-11-12', 20000),
             (4,  106,  3, 'debit', '2009-11-13', 50000),
             (5, 107,  5, 'kredit', '2009-11-13', 30000),
             (6, 104,  1, 'kredit', '2009-11-15', 200000),
             (7,  110,  9, 'kredit', '2009-11-15', 150000),
             (8, 102,  5, 'debit', '2009-11-16', 20000),
             (9, 105,  3, 'kredit', '2009-11-18', 50000),
             (10,  107,  4, 'debit', '2009-11-19', 100000);
             (11,  103,  2, 'debit', '2009-11-19', 100000),
             (12,  104,  1, 'debit', '2009-11-19', 50000),
             (13,  107,  4, 'kredit', '2009-11-20', 200000),
             (14,  105,  1, 'debit', '2009-11-21', 40000),
             (15,  104,  1, 'kredit', '2009-11-22', 100000),
             (16,  101,  4, 'kreedit', '2009-11-22', 20000),
             (17,  103,  2, 'debit', '2009-11-22', 50000),
             (18,  102,  5, 'debit', '2009-11-25', 50000),
             (19,  108,  10, 'debit', '2009-11-26', 100000),
             (20,  106,  3, 'kredit', '2009-11-27', 50000),
             (21,  103,  2, 'kredit', '2009-11-28', 200000),
             (22,  105,  3, 'kredit', '2009-11-28', 100000),
             (23,  102,  5, 'debit', '2009-11-30', 20000),
             (24,  104,  1, 'debit', '2009-12-1', 50000),
             (25,  103,  2, 'debit', '2009-12-2', 40000),
             (26,  101,  4, 'debit', '2009-12-4', 50000),
             (27,  103,  2, 'kredit', '2009-12-5', 100000),
             (28,  102,  5, 'kredit', '2009-12-5', 200000),
             (29,  109,  7, 'debit', '2009-12-5', 100000),
             (30,  110,  9, 'debit', '2009-12-6', 20000);

        * Menampilkan tabel lewat Query :
           - ketikan perintah "select * from nama_tabel" pada lembar query, seperti berikut :
               select * from nasabah
           - kemudian klik tombol Query Execute (tombol segitiga hijau pada icon bar).
           - hasilnya akan seperti berikut :
Gambar 1. Tabel nasabah

Gambar 2. Tabel cabang_bank

Gambar 3. Tabel rekenning

        * Menampilkan tabel lewat PSQL console (Comandprompt) :
           - buka PSQL console : klik icon puzzel pada icon bar window awal PGAdmin.
           - untuk menampilkan daftar tabel yang ada ketikkan perintah : \dt
           - untuk menampilkan tabel database ketikkan perintah :
                select * from nama_tabel;
              contoh :
                select * from nasabah;
           - hasilnya akan seperti berikut :
Gambar 4. Perintah \dt untuk meanmpilkan daftar seluruh tabel

Gambar 5. Tabel nasabah

Gambar 6. Tabel cabang_bank


D. TUGAS MODUL 5
     - Tahap pembuatan tabel
        * Membuat tabel mahasiswa :
             create table mahasiswa(
             nim varchar(10) primary key,
             nama_mahasiswa varchar(45) not null,
             alamat_mahasiswa varchar(255) not null,
             angkatan integer not null);

             select * from mahasiswa   /* perintah untuk menampilkan tabel mahasiswa */

        * Membuat tabel dosen :
             create table dosen(
             nidn integer primary key,
             nama_dosen varchar(45) not null,
             alamat_dosen varchar(255) not null);

             select * from dosen  /* perintah untuk menampilkan tabel dosen */

        * Membuat tabel mata_kuliah :
             create table mata_kuliah(
             kode_mk varchar(10) primary key,
             nama_mk varchar(45) not null,
             jumlah_sks integer not null);*/

             select * from mata_kuliah    /* perintah untuk menampilkan tabel mata kuliah */

        * Membuat tabel ruang_kuliah :
             create table ruang_kuliah(
             kode_ruang varchar(10) primary key,
             fasilitas varchar(255),
             kapasitas integer);


             select * from ruang_kuliah    /* perintah untuk menampilkan tabel ruang_kuliah */

        * Membuat tabel mahasiswa_has_mata_kuliah :
             create table mahasiswa_has_mata_kuliah(
             nimfk varchar(10) references mahasiswa(nim) on delete cascade on update cascade,
             kode_mkfk varchar(10) references mata_kuliah(kode_mk) on delete cascade on update cascade,
             primary key(nimfk, kode_mkfk));


             select * from mahasiswa_has_mata_kuliah  /* menampilkan tabel mahasiswa has mata kuliah*/

     - Tahap memasukkan nilai tabel
        * Memasukkan nilai tabel mahasiswa :
             insert into mahasiswa(nim, nama_mahasiswa, alamat_mahasiswa, angkatan) values
             ('L200110061', 'aulia fanny', 'jl. asmara 13', 2011),
             ('L200120013', 'benny setiawan', 'jl. boyolai 18', 2012),
             ('L200130054', 'imam adi sulistyo', 'jl. embarkasi 21', 2013),
             ('L200130058', 'm. fikri khaidir', 'jl. mendungan 32', 2013),
             ('L200130059', 'adnan mahmudi', 'jl. gumpang 7', 2013),
             ('L200130061', 'rendy adhitya putra', 'jl. pabelan 2 no 32', 2013),
             ('L200130062', 'alvian dwi mardani', 'jl. gonilan 10', 2013);

        * Memasukkan nilai tabel dosen :
             insert into dosen(nidn, nama_dosen, alamat_dosen) values
             (0724125602, 'bambang setiaji', 'surakarta'),
             (0982346198, 'husni thamrin', 'yogyakarta'),
             (0872341857, 'sujalwo', 'yogyakarta'),
             (0627145718, 'm. halim', 'klaten'),
             (0821487527, 'sukirman', 'sragen');

        * Memasukkan nilai tabel mata_kuliah :
             insert into mata_kuliah(kode_mk, nama_mk, jumlah_sks) values
             ('tif20633', 'komunikasi data', 3),
             ('tif20933', 'probabilitas dan statisktik', 3),
             ('ums20112', 'bahasa inggris 2', 2),
             ('tif40233', 'sistem basisdata', 3),
             ('tif40433', 'sistem digital', 3),
             ('tif60532', 'data mining', 2),
             ('tif62033', 'kecerdasan buatan', 3);

        * Memasukkan nilai tabel ruang_kuliah :
             insert into ruang_kuliah(kode_ruang, fasilitas, kapasitas) values
             ('j0407', 'ac, kipas angin, proyektor', 45),
             ('j0410', 'ac, kipas angin, proyektor', 40),
             ('j0306', 'ac, led monitor', 20),
             ('jsem1', 'ac, luas, proyektor', 60);


        * Memasukkan nilai tabel mahasiswa_has_mata_kuliah :
             insert into mahasiswa_has_mata_kuliah(nimfk, kode_mkfk) values
             ('L200110061', 'tif60532'),
             ('L200120013', 'tif62033'),
             ('L200130054', 'tif40233'),
             ('L200130058', 'ums20112'),
             ('L200130059', 'tif20933'),
             ('L200130061', 'tif40433'),
             ('L200130062', 'tif40233'),
             ('L200110061', 'tif40433'),
             ('L200130058', 'tif20933'),
             ('L200130061', 'tif62033');


        * Menampilkan tabel lewat Query :
           - ketikan perintah "select * from nama_tabel" pada lembar query, seperti berikut :
               select * from nasabah
           - kemudian klik tombol Query Execute (tombol segitiga hijau pada icon bar).
           - hasilnya akan seperti berikut :
Gambar 7. Tabel mahasiswa

Gambar 8. Tabel dosen

Gambar 9. Tabel mahasiswa_has_mata_kuliah

        * Menampilkan tabel lewat PSQL console (Comandprompt) :
           - buka PSQL console : klik icon puzzel pada icon bar window awal PGAdmin.
           - untuk menampilkan daftar tabel yang ada ketikkan perintah : \dt
           - untuk menampilkan tabel database ketikkan perintah :
                select * from nama_tabel;
              contoh :
                select * from nasabah;
           - hasilnya akan seperti berikut :
Gambar 10. Perintah \dt untuk meanmpilkan daftar seluruh tabel

Gambar 11. Tabel mahasiswa

Gambar 12. Tabel dosen

Selasa, 07 April 2015

Kardinalitas dan Modalitas Entity Realtionship Diagram

Analisa Kardinalitas dan Modalitas
Entity Relationship Diagram

1. Karinalitas : 
    merupakan spesifikasi dari sejumlah peristiwa dari satu objek yg dapat dihubungkan ke sejumlah                 peristiwa dari objek lain.
    Dua objek dapat dihubungkan sebagai :
     - Satu-ke-satu (1:1): suatu kejadian dari objek A dapat berhubungan dg satu dan hanya satu kejadian              dari objek B dan sebaliknya
     - Satu-ke-banyak (1:M): satu kejadian dari objek A dapat berhubungan dg satu atau lebih kejadian dari               objek B, tetapi satu kejadian dari objek B dapat berhubungan dg hanya satu kejadian dari objek B
     - Banyak-ke-banyak (M:N): sebuah kejadian dari objek A dapat berhubungan dg satu atau lebih                           kejadian dari objek B, dan satu kejadian dari objek B dapat berhubungan dg satu atau lebih kejadian             dari objek A.

2. Modalitas :
    - Kardinalitas tidak memberikan indikasi apakah objek data tertentu harus berpartisipasi dalam                         hubungan.
    - Modalitas dari Hubungan adalah 0 jika tidak ada kebutuhan eksplisit untuk hubungan yang terjadi atau         hubungan itu opsional.
    - Modlitas adalah 1 jika kejadian dari hubungan bersifat wajib.

3. Contoh analisa Kardinalitas dan Modalitas.
Gambar 1. Contoh kardinalitas dan modalitas

Dari gambar 1 dapat dijelaskan kardinalitas dan modalitasnya. Gambar 1 menunjukkan hubungan antara
Tindakan Perbaikan dengan Pelanggan. Dimana posisi dari Tindakan Perbaikan dan Pelanggan merupakan sama-sama sebagai entity atau entitas. 

Dari kardinalitasnya :
  - Ada banyak tindakan perbaikan
  - Pelanggan tunggal menunggu tindakan perbaikan
Keduanya memiliki hubungan yang wajib, dimana "jika ada tindakan perbaikan, maka akan ada pelanggan yang menunggu tindakan perbaikan". Dan apabila "tidak ada pelanggan yang menunggu tindakan perbaikan, maka tidak ada tindakan perbaikan".

Dari Modalitasnya :
  - Ada situasi dimana tindakan perbaikan tidak diperlukan
  - Untuk melakukan tindakan perbaikan harus ada pelanggan
Keduanya memiliki hubungan, dimana "situasi dimana tindakan perbaikan tidak diperlukan, maka tidak ada pelanggan", dan apabila "ada pelanggan, maka diperlukan tindakan perbaikan".

Dalam menjelaskan sebuah ERD (Entity Relationship Diagram) tergantung bagaimana kebutuhan dan cara pandang seseorang dalam membacanya. Karena sebuah kebutuhan dalam hakekatnya tidak selalu sama.

Membuat Database Menggunakan PostgreSQL

MODUL 5
IMPLEMENTASI TABEL-TABEL BASIS DATA(1)


A. Tujuan
     Mahasiswa mampu membuat struktur tabel-tabel basis data berdasarkan perancangan di modul 3 dan        mengimplementasi tabel-tabel tersebut di basis data.

B. Landasan Teori
    Basis data dapat diimplementasikan berdasarkan E-R diagram yang telah dibuat. Implementasi                     database bisa:
     1. Secara manual (dengan perintah SQL ‘CREATE TABLE’)
     2. Secara semi-manual dengan bantuan client berbasis GUI (MySQL Front, PgAccess, phpPgAdmin).
     3. Secara otomatis dengan CASE Tools (DBDesigner)

     Tahap Pembuatan Tabel
       1. Membuat semua tabel yang paling utama (yang tidak memiliki FK).
       2. Membuat semua tabel yang berhubungan langsung (atau memiliki relationship) dengan tabel yang               dibuat di tahap sebelumnya. Mulailah secara urut dari tabel dengan jumlah FK yang paling sedikit ke              yang paling banyak.
       3. Ulangi tahap 2 sampai semua tabel selesai dibuat.

C. Membuat Tabel-tabel Database Bank
     - Tahap pembuatan tabel
        * Membuat tabel nasabah :
             create table nasabah(
             id_nasabah integer primary key,
             nama_nasabah varchar(45) not null,
             alamat_nasabah varchar(255) not null);

             select * from nasabah   /* perintah untuk menampilkan tabel nasabah */

        * Membuat tabel cabang_bank :
             create table cabang_bank(
             kode_cabang varchar (20) primary key,
             nama_cabang varchar(45) unique not null,
             alamat_cabang varchar(255) not null);*/

             select * from cabang_bank  /* perintah untuk menampilkan tabel cabang_bank */

        * Membuat tabel rekening :
             create table rekening(
             no_rekening integer primary key,
             kode_cabangfk varchar(20) references cabang_bank(kode_cabang) on delete cascade on update                   cascade,
             pin varchar(20) default '1234' not null,
             saldo integer default 0 not null);

             select * from rekening    /* perintah untuk menampilkan tabel rekening */

        * Membuat tabel transaksi :
             create table transaksi (
             no_transaksi serial primary key,
             id_nasabahfk integer references nasabah(id_nasabah) on delete set null on update cascade,
             no_rekeningfk integer references rekening(no_rekening) on delete set null on update cascade,
             jenis_transaksi varchar(20) default 'debit' not null,
             tanggal date default current_date not null,
             jumlah integer not null check (jumlah>=20000));

             select * from transaksi    /* perintah untuk menampilkan tabel transaksi */

        * Membuat tabel nasabah_has_rekening :
             create table nasabah_has_rekening(
             id_nasabahfk integer references nasabah(id_nasabah) on delete cascade on update cascade,
             no_rekeningfk integer references rekening(no_rekening) on delete cascade on update cascade,
             primary key(id_nasabahfk, no_rekeningfk));

             select * from nasabah_has_rekening  /* perintah menampilkan tabel nasabah_has_rekening*/

     - Tahap memasukkan nilai tabel
        * Memasukkan nilai tabel nasabah :
             insert into nasabah (id_nasabah, nama_nasabah, alamat_nasabah) values
             (1, 'sutopo', 'jl. jendral sudirman 12'),
             (2, 'maryati', 'jl. mt. haryono 31'),
             (3, 'suparman', 'jl. haasanudin 81'),
             (4, 'kartika padmasari', 'jl. manggis 15'),
             (5, 'budi eko prayogo', 'jl. kantil 30'),
             (6, 'satria eka jaya', 'jl. slamet riyadi 45'),
             (7, 'indri hapsari', 'jl. sutoyo 15'),
             (8, 'sari murti', 'jl. pangandaran 11'),
             (9, 'canka lokananta', 'jl. tidar 86'),
             (10, 'budi murtono', 'jl. merak 22');

        * Memasukkan nilai tabel cabang_bank :
             insert into cabang_bank (kode_cabang, nama_cabang, alamat_cabang) values
             ('brus', 'bank rut unit surakarta', 'jl. slamet riyadi 18'),
             ('brum', 'bank rut unit magelang', 'jl. p. tendean 63'),
             ('brub', 'bank rut unit boyolali', 'jl. ahmad yani 45'),
             ('bruk', 'bank rut unit klaten', 'jl. suparman 23'),
             ('bruy', 'bank rut unit yogyakarta', 'jl. anggrek 21'),
             ('bruw', 'bank rut unit wonogiri', 'jl. untung suropati 12');

        * Memasukkan nilai tabel rekening :
             insert into rekening (no_rekening, kode_cabangfk, pin, saldo) values
             (101, 'brus', 1111, 500000),
             (102, 'brus', 2222, 350000),
             (103, 'brus', 3333, 750000),
             (104, 'brum', 4444, 900000),
             (105, 'brum', 5555, 2000000),
             (106, 'brus', 6666, 3000000),
             (107, 'brus', 7777, 1000000),
             (108, 'brub', 0000, 5000000),
             (109, 'brub', 9999, 0),
             (110, 'bruy', 1234, 550000),
             (111, 'bruk', 4321, 150000),
             (112, 'bruk', 0123, 300000),
             (113, 'bruy', 8888, 255000);

        * Memasukkan nilai tabel nasabah_has_rekening :
             insert into nasabah_has_rekening(id_nasabahfk, no_rekeningfk) values
             (1, 104),
             (2, 103),
             (3, 105),
             (3, 106),
             (4, 101),
             (4, 107),
             (5, 102),
             (5, 107),
             (6, 109),
             (7, 109),
             (8, 111),
             (9, 110),
             (10, 113),
             (8, 112),
             (10, 108);

        * Memasukkan nilai tabel transaksi :
             insert into transaksi(no_transaksi, no_rekeningfk, id_nasabahfk, jenis_transaksi, tanggal, jumlah)
             values
             (1,       105,         3, 'debit', '2009-11-10', 50000),
             (2, 103, 2, 'debit', '2009-11-10', 40000),
             (3, 101, 4, 'kredit', '2009-11-12', 20000),
             (4, 106, 3, 'debit', '2009-11-13', 50000),
             (5, 107, 5, 'kredit', '2009-11-13', 30000),
             (6, 104, 1, 'kredit', '2009-11-15', 200000),
             (7, 110, 9, 'kredit', '2009-11-15', 150000),
             (8, 102, 5, 'debit', '2009-11-16', 20000),
             (9, 105, 3, 'kredit', '2009-11-18', 50000),
             (10, 107, 4, 'debit', '2009-11-19', 100000);
             (11, 103, 2, 'debit', '2009-11-19', 100000),
             (12, 104, 1, 'debit', '2009-11-19', 50000),
             (13, 107, 4, 'kredit', '2009-11-20', 200000),
             (14, 105, 1, 'debit', '2009-11-21', 40000),
             (15, 104, 1, 'kredit', '2009-11-22', 100000),
             (16, 101, 4, 'kreedit', '2009-11-22', 20000),
             (17, 103, 2, 'debit', '2009-11-22', 50000),
             (18, 102, 5, 'debit', '2009-11-25', 50000),
             (19, 108, 10, 'debit', '2009-11-26', 100000),
             (20, 106, 3, 'kredit', '2009-11-27', 50000),
             (21, 103, 2, 'kredit', '2009-11-28', 200000),
             (22, 105, 3, 'kredit', '2009-11-28', 100000),
             (23, 102, 5, 'debit', '2009-11-30', 20000),
             (24, 104, 1, 'debit', '2009-12-1', 50000),
             (25, 103, 2, 'debit', '2009-12-2', 40000),
             (26, 101, 4, 'debit', '2009-12-4', 50000),
             (27, 103, 2, 'kredit', '2009-12-5', 100000),
             (28, 102, 5, 'kredit', '2009-12-5', 200000),
             (29, 109, 7, 'debit', '2009-12-5', 100000),
             (30, 110, 9, 'debit', '2009-12-6', 20000);

        * Menampilkan tabel lewat Query :
           - ketikan perintah "select * from nama_tabel" pada lembar query, seperti berikut :
               select * from nasabah
           - kemudian klik tombol Query Execute (tombol segitiga hijau pada icon bar).
           - hasilnya akan seperti berikut :
Gambar 1. Tabel nasabah

Gambar 2. Tabel cabang_bank

Gambar 3. Tabel rekenning

        * Menampilkan tabel lewat PSQL console (Comandprompt) :
           - buka PSQL console : klik icon puzzel pada icon bar window awal PGAdmin.
           - untuk menampilkan daftar tabel yang ada ketikkan perintah : \dt
           - untuk menampilkan tabel database ketikkan perintah :
                select * from nama_tabel;
              contoh :
                select * from nasabah;
           - hasilnya akan seperti berikut :
Gambar 4. Perintah \dt untuk meanmpilkan daftar seluruh tabel

Gambar 5. Tabel nasabah

Gambar 6. Tabel cabang_bank


D. TUGAS MODUL 5
     - Tahap pembuatan tabel
        * Membuat tabel mahasiswa :
             create table mahasiswa(
             nim varchar(10) primary key,
             nama_mahasiswa varchar(45) not null,
             alamat_mahasiswa varchar(255) not null,
             angkatan integer not null);

             select * from mahasiswa   /* perintah untuk menampilkan tabel mahasiswa */

        * Membuat tabel dosen :
             create table dosen(
             nidn integer primary key,
             nama_dosen varchar(45) not null,
             alamat_dosen varchar(255) not null);

             select * from dosen  /* perintah untuk menampilkan tabel dosen */

        * Membuat tabel mata_kuliah :
             create table mata_kuliah(
             kode_mk varchar(10) primary key,
             nama_mk varchar(45) not null,
             jumlah_sks integer not null);*/

             select * from mata_kuliah    /* perintah untuk menampilkan tabel mata kuliah */

        * Membuat tabel ruang_kuliah :
             create table ruang_kuliah(
             kode_ruang varchar(10) primary key,
             fasilitas varchar(255),
             kapasitas integer);


             select * from ruang_kuliah    /* perintah untuk menampilkan tabel ruang_kuliah */

        * Membuat tabel mahasiswa_has_mata_kuliah :
             create table mahasiswa_has_mata_kuliah(
             nimfk varchar(10) references mahasiswa(nim) on delete cascade on update cascade,
             kode_mkfk varchar(10) references mata_kuliah(kode_mk) on delete cascade on update cascade,
             primary key(nimfk, kode_mkfk));


             select * from mahasiswa_has_mata_kuliah  /* menampilkan tabel mahasiswa has mata kuliah*/

     - Tahap memasukkan nilai tabel
        * Memasukkan nilai tabel mahasiswa :
             insert into mahasiswa(nim, nama_mahasiswa, alamat_mahasiswa, angkatan) values
             ('L200110061', 'aulia fanny', 'jl. asmara 13', 2011),
             ('L200120013', 'benny setiawan', 'jl. boyolai 18', 2012),
             ('L200130054', 'imam adi sulistyo', 'jl. embarkasi 21', 2013),
             ('L200130058', 'm. fikri khaidir', 'jl. mendungan 32', 2013),
             ('L200130059', 'adnan mahmudi', 'jl. gumpang 7', 2013),
             ('L200130061', 'rendy adhitya putra', 'jl. pabelan 2 no 32', 2013),
             ('L200130062', 'alvian dwi mardani', 'jl. gonilan 10', 2013);

        * Memasukkan nilai tabel dosen :
             insert into dosen(nidn, nama_dosen, alamat_dosen) values
             (0724125602, 'bambang setiaji', 'surakarta'),
             (0982346198, 'husni thamrin', 'yogyakarta'),
             (0872341857, 'sujalwo', 'yogyakarta'),
             (0627145718, 'm. halim', 'klaten'),
             (0821487527, 'sukirman', 'sragen');

        * Memasukkan nilai tabel mata_kuliah :
             insert into mata_kuliah(kode_mk, nama_mk, jumlah_sks) values
             ('tif20633', 'komunikasi data', 3),
             ('tif20933', 'probabilitas dan statisktik', 3),
             ('ums20112', 'bahasa inggris 2', 2),
             ('tif40233', 'sistem basisdata', 3),
             ('tif40433', 'sistem digital', 3),
             ('tif60532', 'data mining', 2),
             ('tif62033', 'kecerdasan buatan', 3);

        * Memasukkan nilai tabel ruang_kuliah :
             insert into ruang_kuliah(kode_ruang, fasilitas, kapasitas) values
             ('j0407', 'ac, kipas angin, proyektor', 45),
             ('j0410', 'ac, kipas angin, proyektor', 40),
             ('j0306', 'ac, led monitor', 20),
             ('jsem1', 'ac, luas, proyektor', 60);


        * Memasukkan nilai tabel mahasiswa_has_mata_kuliah :
             insert into mahasiswa_has_mata_kuliah(nimfk, kode_mkfk) values
             ('L200110061', 'tif60532'),
             ('L200120013', 'tif62033'),
             ('L200130054', 'tif40233'),
             ('L200130058', 'ums20112'),
             ('L200130059', 'tif20933'),
             ('L200130061', 'tif40433'),
             ('L200130062', 'tif40233'),
             ('L200110061', 'tif40433'),
             ('L200130058', 'tif20933'),
             ('L200130061', 'tif62033');


        * Menampilkan tabel lewat Query :
           - ketikan perintah "select * from nama_tabel" pada lembar query, seperti berikut :
               select * from nasabah
           - kemudian klik tombol Query Execute (tombol segitiga hijau pada icon bar).
           - hasilnya akan seperti berikut :
Gambar 7. Tabel mahasiswa

Gambar 8. Tabel dosen

Gambar 9. Tabel mahasiswa_has_mata_kuliah

        * Menampilkan tabel lewat PSQL console (Comandprompt) :
           - buka PSQL console : klik icon puzzel pada icon bar window awal PGAdmin.
           - untuk menampilkan daftar tabel yang ada ketikkan perintah : \dt
           - untuk menampilkan tabel database ketikkan perintah :
                select * from nama_tabel;
              contoh :
                select * from nasabah;
           - hasilnya akan seperti berikut :
Gambar 10. Perintah \dt untuk meanmpilkan daftar seluruh tabel

Gambar 11. Tabel mahasiswa

Gambar 12. Tabel dosen


Selasa, 31 Maret 2015

Membuat E-R Diagram Menggunakan DBDesigner

MODUL 4
MEMBUAT E-R DIAGRAM
MENGGUNAKAN DBDESIGNER


A. TUJUAN
     1. Mahasiswa mampu merancang basisdata melalui tahap-tahap perancangannya.
     2. Mahasiswa mampu mewujudkan hasil perancangan basisdata kedalam E-R diagram dengan                        DBDesigner.

B. LANDASAN TEORI
     Teori yang dibutuhkan untuk membuat E-R diagram basis data menggunakan DBDesigner yaitu materi        mengenai E-R Diagram manual.

C. LANGKAH PEMBUATAN
     1. Jalankan DB Designer yang telah terinstal. Jika belum ada bisa di download disini.
     2. Klik button new table    ,kemudian klik pada area kerja sehingga menghasilkan tabel baru.
     3. Double klik pada table baru untuk membuka tabel editor. Ganti nama tabel dengan nama yang entitas          basis data yang diinginkan. Contoh entitas nasabah.
    4. Kemuadian isikan atribut tabel dengan mengisi coloumn tabel(sebagai nama atribut) dan data type                (sebagai tipe data atribut). Contoh sebagai berikut.

Gambar1. Table Editor

      

      Klik tandan centang pada pojok kanan bawah untuk menutup tabel editor.
      Hasilnya akan seperti ini :
Gambar 2. Entity nasabah dan atributnya

     5. Lakukan langkah 1 sampai langkah 4 untuk membuat tabel rekening, cabang_bank, transaksi.
     6. Setelah semua tabel selesai dibuat, hubungkan setiap tabel dengan tabel yang lain dengan                            menggunakan Relationship Button, seperti berikut :
Gambar 3. Fungsi relationship button

     7. Ubah nama relationship dengan membuka relationship editor (double klik pada tanda relasi), ganti                relation name sesuai kebutuhan agar lebih mudah dipahami. Hasil dari contoh :

Gambar 4. E-R diagram dengan DB Designer

D. TUGAS MODUL 4
     1. E – R diagram database Mahasiswa dengan DB Designer.
         a. Gambar E – R diagram.

Gambar 5. E-R diagram mahasiswa

         b. Hubungan atau relationship antar masing-masing tabel entity.
             - Tabel mahasiswa dengan tabel mata_kuliah :
                Kedua tabel tersebut mempunyai relationship Many-to-many (m:n), karena banyak mahasiswa                         mempelajari banyak mata kuliah.
             - Tabel dosen dengan tabel mahasiswa :
                Kedua tabel tersebut mempunyai relationship One-to-Many (1:n), karena seorang dosen dapat                         membimbing banyak mahasiswa.
             - Tabel dosen dengan tabel mata_kuliah :
                Kedua tabel tersebut mempunyai relationship Many-to-Many (m:n), karena banyak dosen dapat                       memengampu banyak mata kuliah.
             - Tabel mata_kuliah dengan tabel ruang_kuliah :
                Kedua tabel tersebut mempunyai relationship Many-to-One (n:1), karena banyak mata kuliah                             dapat dilaksanakan disebuah ruang kuliah.
     2. E – R diagram database Rumah Sakit dengan DB Designer.
         a. Gambar E – R diagram.
Gambar 6. E-R diagram Rumah Sakit

         b. Hubungan atau relationship antar masing-masing tabel entity.
             - Tabel pasien dengan tabel obat :
                Kedua tabel tersebut mempunyai relationship Many-to-many (m:n), karena banyak pasien                                 mengkonsumsi banyak obat.
             - Tabel dokter dengan tabel pasien :
                Kedua tabel tersebut mempunyai relationship One-to-Many (1:n), karena seorang dokter dapat                         menangani/mengobati banyak pasien.
             - Tabel dokter dengan tabel obat :
                Kedua tabel tersebut mempunyai relationship One-to-Many (1:n), karena seorang dokter dapat                         meresepkan banyak obat.
             - Tabel ruang_rawat dengan tabel pasien :
                Kedua tabel tersebut mempunyai relationship One-to-Many (1:n), karena satu ruang rawat dapat                     merawat/menampung banyak pasien.

Selasa, 24 Maret 2015

Perancangan Basisdata E-R Diagram Manual

MODUL 3
PERANCANGAN BASIS DATA
MENGGUNAKAN E-R DIAGRAM MANUAL


A.  TUJUAN
      1.  Mahasiswa dapat merancang basis data melalui tahap-tahap perancangannya.
      2.  Mahasiswa mampu mewujudkan hasil perancangan basis data ke dalam diagram E-R secara
           manual.

B.  LANDASAN TEORI
      Basis data dapat dimodelkan sebagai :
      1.  Kumpulan dari entity (entitas).
      2.  Hubungan antar entity (entitas).

      a)  Entity SetsEntity adalah suatu obyek yang dapat dikenali dari obyek yang lain. Contoh: seseorang                    yang khusus, perusahaan, tanaman, dan lain-lain.

      b)  Attributes
           Entity ditampilkan oleh sekumpulan attribute, yang mana properti deskriptipnya dikuasai oleh seluruh            anggota dalam kumpulan entity.
           Tipe attribute:
           1.  Sederhana dan gabungan attribute
           2.  Satu fungsi dan multi fungsi
           3.  Asal attribute

      c)  Relationship Sets
           Relationship adalah kesesuaian antar beberapa entity. Relationship set adalah hubungan
           matematika antara entity n > 2, tiap bagiannya diambil dari satuanentity.
           -  Tingkatan Relationship Sets
               Mengacu pada jumlah entity set yang terlibat dalam relationship set.Relationship sets yang                              melibatkan dua entity sets adalah binary (atau tingkat dua). Umumnya hampir semua relationship                 set dalam sistem database adalah binary.
           -  Mapping Cardinalities (Cardinalitas Pemetaan)
               Menangkap jumlah entitas ke entitas yang lain yang bisa dihubungkan melaluirelationship set.                        Cardinalitas pemetaan paling banyak digunakan dalam menggambarkan relationship sets biner.                    Untuk relationship set biner cardinalitas pemetaan harus merupakan salah satudari tipe berikut:
               1. One to one (satu ke satu)
               2. One to many (satu ke banyak)
               3. Many to one (banyak ke satu)
               4. Many to many (banyak ke banyak)

      d)  ERD: Entity Relationship Diagram
           Mencerminkan model database: hubungan antara entities (tabel-tabel) dan relationships (hubungan-            hubungan) di antara entities tersebut.
       1. Rectangles melambangkan set-set entitas.
       2. Diamonds
       3. Lines menghubungkan atribut dengan set-set entitas serta set-set entitas dengan set-set hubungan                  (relationship).
       4. Ellipses mewakili attributes.

      e)  Aturan untuk Model Database
           1. Tiap baris harus berdiri sendiri.
           2. Tiap baris harus unik.
           3. Kolom harus berdiri sendiri.
           4. Nilai tiap kolom harus berupa satu kesatuan.

      f)  Tahap Pembuatan Database
          1. Tahap 1: Tentukan Entities
              Sifat-sifat entity:
              a. Signifikan
              b. Umum
              c. Fundamental
              d. Unitary
          2. Tahap 2: Tentukan Atribut
              Tentukan attributes (sifat-sifat) masing-masing entity sesuai kebutuhandatabase:
              a. Tentukan sifat-sifat (fields atau kolom) yang dimiliki tiap entity, serta tipe datanya.
              b. Attribute yang sesuai harus:
                  1. Signifikan
                  2. Bersifat langsung
              c. Tentukan attribute yang menjadi Primary Key untuk entity yang bersangkutan.
              d. Jika satuattribute tidak cukup, gabungan beberapa attribute bisa menjadi Composite Primary Key.
              e. Jika Composite Primary Key banyak sebaiknya menambahkanattribute buatan yang menjadi                           Primary Key yang tunggal.
          3. Tahap 3: Tentukan Relationships
              Menentukan hubungan-hubungan antar entitas:
              a. Tentukan jenis hubungan di antara entity yang satu dengan entitas yang lain.
              b. Macam hubungan ada 3:
                  1. One to one (1:1)
                  2. One to many (1:n)
                  3. Many to many (m:n)
              c. Dalam membentuk hubungan di antara 2 entitas, tentukan attribute nama yang digunakan untuk                       menghubungkan kedua entitas tersebut.
              d. Tentukan entity mana yang menjadi tabel utama dan mana yang menjadi tabel kedua.
              e. Attribute (dari tabel utama) yang menghubungkannya dengan tabel kedua menjadi Foreign Key                       di tabel kedua.
         4. Tahap 4: Pembuatan ERD
             a. Buat Entity Relationship Diagram (ERD) berdasarkan hasil dari Tahap 1-3.
             b. Ada berbagai macam notasi untuk pembuatan ERD.
             c. Menggunakan software khusus untuk menggambar ERD.
         5. Tahap 5: Proses normalisasi database
         6. Tahap 6: Implementasi Database

TUGAS

A.  E - R Diagram Mahasiswa
     1. Menentukan entities (object-object dasar) yang perlu ada di database.
         -  Mahasiswa : menyimpan informasi data pribadi semua mahasiswa.
         -  Dosen : menyimpan informasi data pribadi semua dosen.
         -  Mata kuliah : menyimpan informasi semua mata kuliah.
         -  Ruang : menyimpan informasi semuaruang kuliah.

     2. Menentukan attributes (sifat-sifat) masing-masing entity sesuai kebutuhan database.
         a.  Mahasiswa :
              -  Nim : nomor induk mahsasiswa (varchar(10)) PK
              -  Nama_mahasiswa : nama lengkap mahasiswa (varchar(40))
              -  Alamat_mahasiswa : alamat lengkap mahasiswa (varchar(50))
              -  Jurusan : jurusan mahasiswa (varchar(20))
              -  Semester : semester yang sedang dijalani mahasiswa (integer)
         b.  Dosen :
              -  Nik : nomor identitas dosen (integer) PK
              -  Nama_dosen : nama lengkap dosen (varchar(40))
              -  Alamat_dosen : alamat lengkap dosen (varchar(50))
              -  Pendidikan_akhir : pendidikan terakhir dosen (varchar(10))
         c.  Mata kuliah :
             -  Kode_makul : kode mata kuliah (varchar(10)) PK
             -  Nama_makul : nama mata kuliah (varchar(30))
             -  Sks : jumlah sks mata kuliah (integer)
        d.  Ruang :
             -  Kode_ruang : kode ruang yang ada (varchar(10)) PK
             -  Daya_tampung : daya tampung pada ruangan (integer)
             -  Fasilitas : fasilitas yang ada didalam ruang kuliah (varchar(30))

    3. Menentukan relationship (hubungan-hubungan) diantara entities tersebut.
        Hubungan:
        a.  Mahasiswa dibimbing oleh Dosen:
             -  Tabel utama: dosen
             -  Tabel kedua: mahasiswa
             -  Relationship: many to one (n:1)
             -  Attribute penghubung: nik (FK nik di dosen)
        b.  Mahasiswa mempelajari Matakuliah:
             -  Tabel utama : mahasiswa, mata_kuliah
             -  Tabel kedua : mhs_belajar_mk
             -  Relationship : many to many (m:n)
             -  Attribute penghubung: nim, kode_makul (FK nim, kode_makul)
        c.  Dosen mengampu Matakuliah:
             -  Tabel utama : mata_kuliah
             -  Tabel kedua : dosen
             -  Relationship : many to one (n:1)
             -  Attribute penghubung : nik (FK kode_makul di mata_kuliah)
        d.  Mata_kuliah menempati Ruang_kelas:
             -  Tabel utama: mata_kuliah
             -  Tabel kedua: ruang_kelas
             -  Relationship: 1:1
             -  Attribute pendukung : nama_makul (FK nama_makul di ruang_kelas)
   
    4.  Menggambar E-R Diagram


B.  E- R Diagram Rumah Sakit
     1. Menentukan entities (object-object dasar) yang perlu ada di database.
         -  Pasien : menyimpan informasi data pribadi semua pasien.
         -  Dokter : menyimpan informasi data pribadi semua dokter.
         -  Perawat : menyimpan informasi data pribadi semua perawat.
         -  Ruang_rawat : menyimpan informasi semua ruang rawat.

     2. Menentukan attributes (sifat-sifat) masing-masing entity sesuai kebutuhan database.
         a.  Pasien :
              -  nomor_pasien : nomor identitas pasien (varchar(10)) PK
              -  nama_pasien : nama lengkap pasien (varchar(40))
              -  alamat_pasien : alamat lengkap pasien (varchar(50))
              -  penyakit_pasien : jurusan mahasiswa (varchar(20))
         b.  Dokter :
              -  no_id_dokter : nomor identitas dokter (integer) PK
              -  nama_dokter : nama lengkap dokter (varchar(40))
              -  alamat_dosen : alamat lengkap dokter (varchar(50))
              -  spesialis : bidang spesialis dokter (varchar(20))
         c.  Perawat :
             -  nomor_id_perawat : nomor identitas perawat (varchar(10)) PK
             -  nama_perawat : nama lengkap perawat (varchar(30))
             -  alamat_perawat : alamat lengkap perawat (varchar(50))
        d.  Ruang_rawat :
             -  kode_ruang : kode ruang yang ada (varchar(10)) PK
             -  kapasitas_ruang : daya tampung pada ruangan (integer)
             -  fasilitas_ruang : fasilitas yang ada didalam ruang rawat (varchar(30))

    3. Menentukan relationship (hubungan-hubungan) diantara entities tersebut.
        Hubungan:
        a.  Pasien ditangani oleh dokter :
             -  Tabel utama: pasien
             -  Tabel kedua: dokter
             -  Relationship: many to many (m:n)
             -  Attribute penghubung: nomor_id_dokter (FK nomor_id_dokter di dokter)
        b.  Pasien dirawat oleh perawat :
             -  Tabel utama : pasien, perawat
             -  Tabel kedua : pasien_dirawat_perawat
             -  Relationship : many to many (m:n)
             -  Attribute penghubung : nomor_pasien, nomor_id_perawat (FK nomor_pasien, nomor_id_perawat)
        c.  Dokter dibantu perawat :
             -  Tabel utama : perawat
             -  Tabel kedua : dokter
             -  Relationship : many to one (n:1)
             -  Attribute penghubung : nomor_id_dokter (FK nomor_id_dokter di dokter)
        d.  Pasien menempati ruang_rawat :
             -  Tabel utama: pasien
             -  Tabel kedua: ruang_rawat
             -  Relationship: 1:1
             -  Attribute pendukung : nomor_pasien (FK nomor_pasien di pasien)
 
    4.  Menggambar E-R Diagram


Semoga Bermanfaat! ^_^

Diberdayakan oleh Blogger.