Minggu, 24 April 2016
Rabu, 20 April 2016
Perbedaan Unset dan Session Destroy
Unset akan menghancurkan variabel sesi tertentu sedangkan
Itu benar-benar tergantung pada aplikasi Anda untuk yang satu harus Anda gunakan. Hanya perlu di atas dalam pikiran.
#
session_destroy()
akan menghancurkan semua data sesi untuk pengguna tersebut. Itu benar-benar tergantung pada aplikasi Anda untuk yang satu harus Anda gunakan. Hanya perlu di atas dalam pikiran.
#
unset($_SESSION['name']); // will delete just the name data session_destroy(); // will delete ALL data associated with that user.
Selasa, 19 April 2016
AGREGASI DATA di mysql
Group function merupakan fungsi yang akan akan memproses banyak data dan
menghasilkan satu atau beberapa output sesuai dengan pengelompokan yang
dilakukan. Untuk pengelompokan digunakan klausa GROUP BY. Berbeda
dengan Single-row function yang akan memproses satu data dan
menghasilkan satu output. Untuk melihat gambar ilustrasi perbedaan
antara single-row function dan group function lagi Materi 7 tentang Single-row function.
Jenis group function :
- AVG untuk mencari nilai rata-rata
- COUNT untuk menghitung jumlah data/baris
- MAX untuk mencari nilai paling besar
- MIN untuk mencari nilai paling kecil
- STDDEV untuk menghitung nilai standard deviasi (statistik)
- SUM untuk menghitung nilai total
- VARIANCE untuk menghitung nilai variance (statistik)
Jenis group function :
- AVG untuk mencari nilai rata-rata
- COUNT untuk menghitung jumlah data/baris
- MAX untuk mencari nilai paling besar
- MIN untuk mencari nilai paling kecil
- STDDEV untuk menghitung nilai standard deviasi (statistik)
- SUM untuk menghitung nilai total
- VARIANCE untuk menghitung nilai variance (statistik)
Fungsi AVG, SUM, STDDEV dan VARIANCE hanya berlaku untuk data bertipe numerik, tidak bisa untuk karakter atau date.
Syntax lengkap untuk perintah SQL dengan GROUP BY :
SELECT group_function(kolom),... FROM tabel [WHERE kondisi] [GROUP BY group_function(kolom)|kolom_alias] [HAVING kondisi] [ORDER BY kolom|kolom_alias]
Untuk mempraktekkan group function, gunakan tabel EMP yang ada di schema
SCOTT, untuk itu tentunya kita harus login dulu sebagai user SCOTT sbb:
SQL> connect scott Password : ***** Connected
Mari kita periksa data di tabel EMP
SQL> set pagesize 50 SQL> SELECT deptno, ename, sal 2 FROM emp 3 ORDER BY deptno; DEPTNO ENAME SAL ---------- ---------- ---------- 10 CLARK 2450 10 KING 5000 10 MILLER 1300 20 JONES 2975 20 FORD 3000 20 ADAMS 1100 20 SMITH 800 20 SCOTT 3000 30 WARD 1250 30 TURNER 1500 30 ALLEN 1600 30 JAMES 950 30 BLAKE 2850 30 MARTIN 1250 14 rows selected.
Kita diminta untuk menampilkan nilai salary yang paling tinggi, untuk itu gunakan function MAX sperti ini:
SQL> SELECT max(sal) 2 FROM emp; MAX(SAL) ---------- 5000
Function MAX akan memperoses semua baris data yang ada (14 row) untuk
menghasilkan satu nilai maksimum (5000). Nilai 5000 berarti salary
tertinggi dalam perusahaan tersebut. Jika Anda menginginkan salary
tertinggi di setiap department (DEPTNO) tambahkan klausa GROUP BY
deptno, perintah diatas menjadi :
SQL> SELECT deptno, max(sal) 2 FROM emp 3 GROUP BY deptno; DEPTNO MAX(SAL) ---------- ---------- 30 2850 20 3000 10 5000
Silahkan dicoba dengan group funtion yang lain.
HAVING
Jika dalam single-row function untuk menyeleksi data kita menggunakan
klausa WHERE. Sedangkan untuk menyeleksi data dimana data yang akan kita
seleksi merupakan hasil dari group function digunakan HAVING. Sebagai
contoh, tampilkan Department yang rata-rata salary-nya diatas 2500.
Mari kita lihat dulu rata-rata gaji per-Department:
SQL> SELECT deptno, avg(sal) 2 FROM emp 3 GROUP BY deptno; DEPTNO AVG(SAL) ---------- ---------- 30 1566.66667 20 2175 10 2916.66667
Jika yang ingin ditampilkan adalah department yang rata-rata salarynya
diatas 2500 berarti yang dijadikan pembanding adalah AVG(SAL) karena ini
merupakan group function maka harus digunakan HAVING untuk
menyeleksinya. HAVING boleh diletakkan sebelum atau sesudah GROUP BY
SQL> SELECT deptno, avg(sal) 2 FROM emp 3 GROUP BY deptno 4 HAVING avg(sal) > 2500; DEPTNO AVG(SAL) ---------- ---------- 10 2916.66667
GROUP BY dengan ROLLUP dan CUBE
ROLLUP dan CUBE adalah group function yang sering digunakan dalam desain
query untuk data warehouse. ROOLUP digunakan untuk menghitung nilai sub
total dan total dari suatu group data sedangkan CUBE digunakan untuk
menghitung sub total dari group data dalam beberapa dimensi.
Ok, untuk lebih memahami pemakaian ROLLUP dan CUBE buatlah tabel penduduk beserta isinya dengan menjalankan script create_penduduk.sql, ambil script disini. Setelah didownload dan letakkan dic:\create_penduduk.sql
Jalankan script dengan cara berikut:
SQL> @c:\create_penduduk.sql
Tabel penduduk berisi
data sebanyak 40 penduduk yang dibagi dalam 2 kecamatan dan 4
kelurahan, jenis kelamin laki-laki ‘L’ dan perempuan ‘P’. Datanya
seperti ini :
SQL> select * from penduduk; ID NAMA J KECAMATAN KELURAHAN ---------- --------------- - --------------- --------------- 1 JOHAN L Kecamatan 1 Kelurahan 1 2 AMIR L Kecamatan 1 Kelurahan 1 3 KUSNANTO L Kecamatan 1 Kelurahan 1 4 MELISA P Kecamatan 1 Kelurahan 1 5 KUSNO L Kecamatan 1 Kelurahan 1 6 ANDRIANI P Kecamatan 1 Kelurahan 1 7 AHMAD L Kecamatan 1 Kelurahan 1 --> dan seterusnya...
Kita diminta untuk menghitung jumlah penduduk per-kelurahan dan
per-kecamatan. Apakah hal ini bisa diselesaikan dengan GROUP BY ?, mari
kita coba.
SQL> SELECT kecamatan, kelurahan, COUNT(id) as "JlhPenduduk" 2 FROM penduduk 3 GROUP BY kecamatan, kelurahan 4 ORDER BY kecamatan, kelurahan; KECAMATAN KELURAHAN JlhPenduduk --------------- --------------- ----------- Kecamatan 1 Kelurahan 1 19 Kecamatan 1 Kelurahan 2 6 Kecamatan 2 Kelurahan 3 5 Kecamatan 2 Kelurahan 4 10
Ternyata, dengan GROUP BY kita hanya bisa menampilkan sub total per
kelurahan sedangkan total total per-kecamatan total keseluruhan penduduk
tidak bisa dimunculkan. Untuk itu kita gunakan GROUP BY dengan ROLLUP,
sbb:
SQL> SELECT kecamatan, kelurahan, COUNT(id) as "JlhPenduduk" 2 FROM penduduk 3 GROUP BY ROLLUP(kecamatan, kelurahan) 4 ORDER BY kecamatan, kelurahan; KECAMATAN KELURAHAN JlhPenduduk --------------- --------------- ----------- Kecamatan 1 Kelurahan 1 19 Kecamatan 1 Kelurahan 2 6 Kecamatan 1 25 Kecamatan 2 Kelurahan 3 5 Kecamatan 2 Kelurahan 4 10 Kecamatan 2 15 40 7 rows selected.
.
Kita bisa mempermanis tampilan dengan sedikit trik seperti ini :
Kita bisa mempermanis tampilan dengan sedikit trik seperti ini :
SQL> BREAK ON kecamatan SKIP 1 SQL> SELECT kecamatan, 2 NVL(kelurahan,'Total --->') As "Kelurahan", 3 COUNT(id) AS "JlhPenduduk" 4 FROM penduduk 5 GROUP BY ROLLUP(kecamatan, kelurahan) 6 ORDER BY kecamatan, kelurahan; KECAMATAN Kelurahan JlhPenduduk --------------- --------------- ----------- Kecamatan 1 Kelurahan 1 19 Kelurahan 2 6 Total ---> 25 Kecamatan 2 Kelurahan 3 5 Kelurahan 4 10 Total ---> 15 Total ---> 40 7 rows selected.
Dengan ROLLUP dan sedikit modifikasi tampilan masalah menghitung subtotal terselesaikan.
Catatan : untuk fungsi NVL silahkan lihat di single-row function.
Catatan : untuk fungsi NVL silahkan lihat di single-row function.
Bagaimana dengan CUBE?, seperti sudah disebutkan diatas, CUBE digunakan
untuk membuat cross-tabulasi(sub-total lebih dari satu dimensi). Misal
kita diminta untuk menghitung jumlah penduduk per-kecamatan berdasarkan
jenis kelaminnya, kemudian setelah itu juga dihitung berapa jumlah
penduduk berdasarkan jenis kelamin tanpa memperhatikan kecamatannya.
Mungkin pembaca masih sedikit bingung mencerna kalimat diatas . Sebaiknya kita coba saja langsung, caranya adalah sbb:
SQL> SELECT kecamatan, 2 jk as "JenKelamin", 3 COUNT(id) as "JlhPenduduk" 4 FROM penduduk 5 GROUP BY CUBE(kecamatan, jk) 6 ORDER BY kecamatan, jk; KECAMATAN J JlhPenduduk --------------- - ----------- Kecamatan 1 L 7 P 18 25 Kecamatan 2 L 5 P 10 15 L 12 P 28 40 9 rows selected.
Apakah Anda masih bingung membaca hasil query diatas?, sebenarnya secara
simple, hasil query diatas bisa ditampilkan dengan bentuk tabel seperti
ini :
Dengan ilustrasi gambar diatas mudah-mudahan Anda bisa lebih memahami tentang CUBE.
Dengan ilustrasi gambar diatas mudah-mudahan Anda bisa lebih memahami tentang CUBE.
Demikian ulasan tentang Aggregasi, GROUP BY, ROLLUP dan CUBE. Semoga bermanfaat.
Dasar Dasar SQL
A. DASAR TEORI
Seperti halnya pemrograman java, C++ dll, SQL juga memiliki operator dasar. Operator dalam SQL adalah simbol yang digunakan untuk menginstruksi program untuk melakukan sesuatu. Akan berbeda definisi ketika kita membicarakan operator dalam kehidupan sehari-hari. Banyak sekali operator yang bisa digunakan ketika kita ingin menuliskan query. Disini kita akan membahas satu persatu operator dasar yang bisa kitra gunakan dalam menuliskan query.
1. AS (Alias)
Seperti halnya DBMS lain, MySQL juga menyediakan perintah tambahan AS untuk mengganti sementara nama tabel atau kolom. Disebut sementara karena pada dasarnya nama tabel tersebut tidak berubah, hanya di ganti untuk 1 kali penulisan query. Di dalam bahasa SQL, query AS ini lebih dikenal sebagai alias dari nama tabel yang sebenarnya. Alias ini ditujukan untuk mempermudah penulisan query atau mempercantik tampilan hasil query. Selain itu alias ini juga di gunakan untuk mengganti nama dari kolom tertentu agar di mengerti oleh orang lain ketika kita menampilkannya. Berikut query yang bisa kita gunakan untuk menampilkan tabel atau kolom menggunakan alias.
# Alias Untuk Tabel
Perintah AS bukanlah query SQL yang dapat berdiri sendiri seperti SELECT, UPDATE, maupun DELETE. AS digunakan sebagai tambahan untuk query SQL lainnya seperti SELECT, UPDATE, dan DELETE.
Format dasar penulisan alias tabel:
Selain untuk nama tabel, ada juga alias yang digunakan untuk menampilkan nama kolom. Salah satu kegunaan alias kolom ini adalah untuk merubah sementara nama kolom agar lebih sesuai dengan yang kita maksudkan ketika di tampilkan. Sama seperti alias untuk nama tabel, alias pada nama kolom juga merupakan perintah tambahan dari query inti seperti SELECT.
Format dasar penulisan alias kolom:
Pada artikel sebelumnya telah di jelaskan tentang penggunaan SELECT yaitu untuk menampilkan data. Penggunaan SELECT tidak bisa berdiri harus ada inisialisasi lainnya seperti SELECT . . . FROM. Telah di jelaskan juga penggunaan syarat ketika menampilkan data yaitu dengan SELECT . . . FROM . . . WHERE tapi pada artikel sebelumnya masih terbatas pada satu syarat (Baca : Perintah Dasar SQL). Pada bahasan kali ini akan di jelaskan penggunaan WHERE dengan lebih dari satu syarat, dengan menambakan operator logika AND dan OR.
# Logika AND
Logika AND digunakan untuk menspesifikasikan syarat yang di ajukan untuk di penuhi. Jadi ketika kita menambahkan logika AND ke dalam syarat yang kita ajukan, maka akan di tampilkan data yang memenuhi semua syarat yang diberikan. Karenan semua syarat yang diberikan tersebut saling terkait.
logika OR digunakan untuk memberikan pilihan syarat untuk di penuhi. Jadi ketika kita menambahkan logika OR maka data yang akan di tampilkan adalah data yang memenuhi semua syarat atau satu persatu syarat.
Sama dengan AND dan OR, BETWEEN juga salah satu operasi perbandingan pada perintah SELECT. BETWEEN ini digunakan untuk menentukan lebar dari data yang akan di tampilkan. Dimulai dati data terendah yang akan di tampilkan sampai data yang paling tinggi untuk di tampilkan. Pada operator between terdapat beberapa operasi pembanding yang digunakan, berikut beberapa operasi pembanding yang bisa di gunakan
Logika operator BETWEEN sebagai berikut :
Untuk menampilkan data diantara operator BETWEEN menggunakan query sebagai berikut :
Operator IN juga merupakan salah satu operator yang bisa di gunakan pada perintah SELECT. Operator IN ini berguna melakukan pencocokan dengan salah satu yang ada pada suatu daftar nilai. Berikut Struktur yang digunakan
MySQL menyediakan struktur SELECT . . . LIKE untuk pencarian sebuah data dengan diwakili karakter tertentu. Berikut macam macam operator LIKE yng bisa digunakan
Regular Expression atau REGEXP adalah kumpulan huruf atau karakter yang digunakan untuk pencocokan pola (pattern matching). Pola disini contohnya ‘pola untuk kata yang diawali dengan huruf a dan diakhiri dengan huruf j’, atau yang sedikit rumit seperti ‘pola untuk kata yang diawali huruf a,b, c dengan panjang maksimal 5 huruf, mengandung minimal sebuah angka’. Cakupan REGEXP cukup luas, masih banyak sekali operator REGEXP yang bisa digunakan. Berikut ini sedikit operator REGEXP yang sering digunakan
Query DISTINCT digunakan untuk memanipulasi tampilan hasil dari tabel. Denagn menggunakan query DISTINCT duplikasi akan dihapus untuk ditampilkan datanya, ini bukan tabel asli dari MySQL. adi DISTINCT ini digunakan untuk menampilkan data tunggal yang tidak ada duplikasinya. Query dasar yang digunakan adalah
LIMIT digunakan untuk membatasi data yang ingin di tampilkan. Berikut Query dasar yang bisa digunakan
SELECT * FROM namatabel LIMIT jumlahbaris;
9. UNION, INTERSECT, EXCEPT
Perintah UNION dalam MySQL di gunakan untuk menggabungkan/mengkombinasikan isi dari dua tabel menjadi satu. Sama seperti artinya INTERSECT ini di gunakan untuk mencari irisan pada dua atau lebih tabel. Kemudian perintah yang terakhir yaitu EXCEPT, EXCEPT ini di vgunakan untuk memunculkan isi tabel yang berada di luar irisan tabel. Berikut query dasar yang bisa di gunakan untuk menggunakan perintah tersebut.
UNION
B. PRAKTIKUM
Pembahasan kali ini akan di praktekan query query yang telah kita pelajari dari dasar teori di atas.
Persiapan praktek : Gunakan tabel mahasiswa dan fakultas pada. Isi kolom sama dengan tabel mahasiswa dan fakultas pada artikel sebelumnya, tambahkan kolom gender di tabel mahasiswa kemudian update data mahasiswa. Insert data mahasiswa hingga 7 baris dengan salah satu nama adalah ‘binta’ dan insert data fakultas hingga 3 baris.
1. Menampilkan Data Menggunakan AS
Berdasarkan tabel yang telah kita buat sebelumnya, menampilkan data mahasiswa dengan nama dari kolomnya berubah menjadi nomor_identitas, nama, alamat,nama_fakultas tanpa harus merubah nama kolom secara permanen. Berikut querynya
2. Menampilkan Data Menggunakan Operator AND dan OR
Menampilkan nama mahasiswa fakultas saintek yang berjenis kelamin laki-laki. Kemudian nama mahasiswa fakultas saintek atau berjenis kelamin laki-laki. Berikut query dari soal di atas.
3. Menampilkan Data Menggunakan Operator BETWEEN
Berikut soal untuk menampilkan data menggunakan BETWEEN. Suatu tabel mahasiswa terdapat 7 baris data mahasiswa. menampilkan data mahasiswa dari nomor 3 sampai dengan 5, kemudian tampilkan juga data mahasiswa yang bukan dari nomor 3 sampai dengan 5 menggunakan between dan tanpa menggunakan between.
Disini kita akan menggunakan perintah BETWEEN dan NOT BETWEEN, baik itu menggunakan BETWEEN atau menggunakan simbol atau keyword untuk betwee. Berikut query yang bisa di gunakan
4. Menampilkan Data menggunakan Operator IN
Menampilkan mahasiswa dengan nomor 2,3,5 menggunakan operator IN. Berikut query yang bisa digunakan
5. Menampilkan Data Menggunakan Operator LIKE
Menampilkan semua data mahasiswa yang namanya mempunyai awalan huruf “a”. Dan Menampilkan semua data mahasiswa yang namanya mempunyai akhiran “a” dan huruf ke-3 dari nama tersebut terdapat huruf “n”. Berikut query dari soal berikut
6. Menampilkan Data Menggunakan Operator DISTINCT
Menampilkan nomor fakultas di tabel mahasiswa dengan nomor harus tidak ada yang sama dari baris pertama sampai akhir. Berikut query dari operator DISTINCT
7. Menampilkan Data Menggunakan OperatorLIMIT
Menampilkan data mahasiswa 3 baris saja, menggunakan operator LIMIT. Berikut query yang bisa digunakan
8. Menampilkan Data Menggunakan Operator REGEXP
Menampilkan data mahasiswa dengan ciri-ciri memiliki nama awalan a kemudian kata selanjutnya boleh b atau boleh m atau boleh d. misalkan yang memenuhi kriteria ciri tersebut seperti abi, amik, adik, adam dll. Gunakan operator RGEXP untuk menyelesaikan soal tersebut. Berikut query yang bisa digunakan
9. UNION, INTERSECT dan EXCEPT
Sebelum menjalankan perintah UNION, INTERSECT dan EXCEPT, buat dulu tabel baru dengan nama organ_dalam dan organ_luar. Dengan nama kolom nomor dan nama, kemudian pada organ_dalam isi tabel dengan (1, jantung), (2, paru-paru), (3, tenggorokan) kemudian pada tabel organ luar isi tabel dengan (1, hidung), (2, mata), (3, tenggorokan). Setelah modifikasi tabel tersebut dengan perintah UNION, INTERSECT dan EXCEPT
C. Perbedaan, Kesamaan, Kelebihan dan Kekurangan Pada DBMS PostgreSQL dan MySQL
Sebenarnya PostgreSQL maupun MySQL merupan DBMS andalan yang banyak dan mudah digunakan oleh banyak orang. Mulai dari struktur query yang digunakan tidaklah serumit DBMS lain. Oleh sebab itu banyak sekali kesamaan dari kedua DBMS ini, dari artikel Pengenalan Operator Dasar Pada MySQL penulis melihat bahwa banyak sekali kesamaan antara PostgreSQL dan MySQL pada penulisan operatorquery yang digunakan. Hanya terdapat sedikit sekali perbedaan yang ada, antara lain :
# Pada Operator REGEXP
Pada operator REGEXP terdapat sedikit perbedaan antara kedua DBMS ini, pada PostgreSQL operator REGEXP dituliskan dalam bentuk simbol ( ~ ), tapi apabila dalam MySQL operator REGEXP tidak di tulis dalam simbol tetapi ditulis operatornya langsung yaitu dengan menuliskan (regexp) saat penulisan querynya. Berikut perbedaan query dasar dari dua DBMS tersebut
PostgreSQL
Pada perintah INTERSECT dan EXCEPT terdapat perbedaan yang sangat mencolok, apabila pada PostgreSQL disediakan sendiri perintah INTERSECT dan EXCEPT, tetapi jika di MySQL perintah INTERSECT dan EXCEPT tidak di sediakan. Jadi untuk mendapatkan perintah ini kita bisa menggunakan operatop IN untuk INTERSECT dan NOT IN untuk EXCEPT.
PostgreSQL
D. KESIMPULAN
Pada MySQL terdapat banyak sekali variasi penggunaan operator SELECT untuk menampilkan data. Kita bisa menggunakan alias, operator logika, limit dll. Operator ini tidak hanya ada pada MySQL saja tetapi juga terdapat pada PostgreSQL. Tetapi terdapat sedikit perbedaan penulisan query pada kedua DBMS ini, yaitu pada penggunaan operator REGEXP dan perintah INTERSECT dan EXCEPT. Jadi bagi para pembaca kalian mungkin bisa menggunakan kedua DBMS ini agar mengetahui variasi yang ada dan dapat meningkatkan kemampuan anda dalam menulis query.
Seperti halnya pemrograman java, C++ dll, SQL juga memiliki operator dasar. Operator dalam SQL adalah simbol yang digunakan untuk menginstruksi program untuk melakukan sesuatu. Akan berbeda definisi ketika kita membicarakan operator dalam kehidupan sehari-hari. Banyak sekali operator yang bisa digunakan ketika kita ingin menuliskan query. Disini kita akan membahas satu persatu operator dasar yang bisa kitra gunakan dalam menuliskan query.
1. AS (Alias)
Seperti halnya DBMS lain, MySQL juga menyediakan perintah tambahan AS untuk mengganti sementara nama tabel atau kolom. Disebut sementara karena pada dasarnya nama tabel tersebut tidak berubah, hanya di ganti untuk 1 kali penulisan query. Di dalam bahasa SQL, query AS ini lebih dikenal sebagai alias dari nama tabel yang sebenarnya. Alias ini ditujukan untuk mempermudah penulisan query atau mempercantik tampilan hasil query. Selain itu alias ini juga di gunakan untuk mengganti nama dari kolom tertentu agar di mengerti oleh orang lain ketika kita menampilkannya. Berikut query yang bisa kita gunakan untuk menampilkan tabel atau kolom menggunakan alias.
# Alias Untuk Tabel
Perintah AS bukanlah query SQL yang dapat berdiri sendiri seperti SELECT, UPDATE, maupun DELETE. AS digunakan sebagai tambahan untuk query SQL lainnya seperti SELECT, UPDATE, dan DELETE.
Format dasar penulisan alias tabel:
- SELECT aliastabel.namakolom1, aliastabel.namakolom2 . . . FROM namatabel AS namaaliastabel;
Selain untuk nama tabel, ada juga alias yang digunakan untuk menampilkan nama kolom. Salah satu kegunaan alias kolom ini adalah untuk merubah sementara nama kolom agar lebih sesuai dengan yang kita maksudkan ketika di tampilkan. Sama seperti alias untuk nama tabel, alias pada nama kolom juga merupakan perintah tambahan dari query inti seperti SELECT.
Format dasar penulisan alias kolom:
- SELECT namakolom1 AS namaalias, namakolom2 AS namaalias, namakolom3 AS namaalias FROM namatabel;
Pada artikel sebelumnya telah di jelaskan tentang penggunaan SELECT yaitu untuk menampilkan data. Penggunaan SELECT tidak bisa berdiri harus ada inisialisasi lainnya seperti SELECT . . . FROM. Telah di jelaskan juga penggunaan syarat ketika menampilkan data yaitu dengan SELECT . . . FROM . . . WHERE tapi pada artikel sebelumnya masih terbatas pada satu syarat (Baca : Perintah Dasar SQL). Pada bahasan kali ini akan di jelaskan penggunaan WHERE dengan lebih dari satu syarat, dengan menambakan operator logika AND dan OR.
# Logika AND
Logika AND digunakan untuk menspesifikasikan syarat yang di ajukan untuk di penuhi. Jadi ketika kita menambahkan logika AND ke dalam syarat yang kita ajukan, maka akan di tampilkan data yang memenuhi semua syarat yang diberikan. Karenan semua syarat yang diberikan tersebut saling terkait.
- SELECT * FROM namatabel WHERE syarat1 AND syarat2 AND syarat3 . . . ;
logika OR digunakan untuk memberikan pilihan syarat untuk di penuhi. Jadi ketika kita menambahkan logika OR maka data yang akan di tampilkan adalah data yang memenuhi semua syarat atau satu persatu syarat.
- SELECT * FROM namatabel WHERE syarat1 OR syarat2 OR syarat3 . . . ;
Sama dengan AND dan OR, BETWEEN juga salah satu operasi perbandingan pada perintah SELECT. BETWEEN ini digunakan untuk menentukan lebar dari data yang akan di tampilkan. Dimulai dati data terendah yang akan di tampilkan sampai data yang paling tinggi untuk di tampilkan. Pada operator between terdapat beberapa operasi pembanding yang digunakan, berikut beberapa operasi pembanding yang bisa di gunakan
Logika operator BETWEEN sebagai berikut :
Untuk menampilkan data diantara operator BETWEEN menggunakan query sebagai berikut :
- SELECT * FROM nama_tabel WHERE nama_kolom BETWEEN ‘nilai_awal’ AND ‘nilai_akhir’;
- SELECT * FROM nama_tabel WHERE nama_kolom ‘nilai_awal’>= AND <=‘nilai_akhir’;
- SELECT * FROM nama_tabel WHERE nama_kolom NOT BETWEEN ‘nilai_awal’ AND ‘nilai_akhir’;
- SELECT * FROM nama_tabel WHERE nama_kolom ‘nilai_awal’>= OR <=‘nilai_akhir’;
Operator IN juga merupakan salah satu operator yang bisa di gunakan pada perintah SELECT. Operator IN ini berguna melakukan pencocokan dengan salah satu yang ada pada suatu daftar nilai. Berikut Struktur yang digunakan
- SELECT * FROM namatabel WHERE namakolom IN (katakunci1, katakunci2, katakunci13, katakunci14);
MySQL menyediakan struktur SELECT . . . LIKE untuk pencarian sebuah data dengan diwakili karakter tertentu. Berikut macam macam operator LIKE yng bisa digunakan
- ‘S%’ : Cocok dengan kata yang diawali dengan S, dan diikuti dengan karakter apa saja, contoh: ‘S’, ‘Sa’, ‘Si’, ‘Saaaaaa’, ‘Susi’, dan ‘Sabrina Sari’.
- ‘S_’: Cocok dengan kata yang diawali dengan S, dan diikuti dengan satu karakter apa saja, contoh: ‘Si’, ‘Sa’, ‘Su’, ‘Se’, dan ‘St’.
- ‘A__i’: Cocok dengan kata yang diawali dengan ‘A’, diikuti oleh 2 karakter bebas, namun diakhiri dengan i, contoh: ‘Andi’, ‘ardi’, ‘aaai’.
- ‘%e’: Cocok dengan seluruh kata dengan panjang berapapun yang diakhiri dengan huruf ‘e’, contoh: ‘Kece’, ‘Kue’, dan ‘mie’.
- ‘%dia%’: Cocok dengan seluruh kata yang mengandung kata ‘dia’, contoh: ‘media’, ‘kemudian’, ‘dia’, dan ‘diaaaa’.
- SELECT * FROM namatabel WHERE namakolom LIKE ‘operator’;
Regular Expression atau REGEXP adalah kumpulan huruf atau karakter yang digunakan untuk pencocokan pola (pattern matching). Pola disini contohnya ‘pola untuk kata yang diawali dengan huruf a dan diakhiri dengan huruf j’, atau yang sedikit rumit seperti ‘pola untuk kata yang diawali huruf a,b, c dengan panjang maksimal 5 huruf, mengandung minimal sebuah angka’. Cakupan REGEXP cukup luas, masih banyak sekali operator REGEXP yang bisa digunakan. Berikut ini sedikit operator REGEXP yang sering digunakan
- . : tanda titik dalam RegExp berarti sebuah karakter apa saja
- [ … ]: tanda kurung siku ini berarti kumpulan karakter. Misalkan [abc] akan cocok dengan ‘a’, ‘b’, atau ‘c’. kita bisa juga menggunakan jangkauan (range), contohnya [a-z] akan cocok dengan seluruh huruf, [0-9] akan cocok dengan seluruh angka.
- *: tanda bintang ini akan cocok dengan 0 atau lebih karakter sebelumnya. Misalkan ‘a*’ berarti akan cocok dengan seluruh kata yang mengandung 0 atau lebih a.
- ^: tanda pangkat atau topi ini menandakan berada di awal kata.
- $: tanda dollar ini berarti bahwa pola berada di akhir kata.
- ‘ab*’: Pola ini berarti akan cocok dengan seluruh kata yang mengandung a dan diikuti oleh b atau tidak sama sekali. Contohnya: ‘a’, ‘ab’, ‘abbbbbb’, dan juga ‘kebab’, karena untuk RegExp, kita harus menyatakan dimana karakter itu muncul.
- ‘^ab*’: Pola ini sama artinya dengan ‘ab*’ seperti diatas, namun tanda ^ menyatakan bahwa pola ini harus berada di awal kata, sehingga ‘kebab’ tidak akan cocok.
- ‘^s..i$’: Pola ini akan cocok dengan seluruh kata yang diawali dengan s, dan diakhiri dengan i, terdiri dari 4 huruf. Contohnya: susi, sapi, dan siti.
- SELECT * FROM namatabel WHERE namakolom REGEXP ‘keywordREGEXP’ ;
Query DISTINCT digunakan untuk memanipulasi tampilan hasil dari tabel. Denagn menggunakan query DISTINCT duplikasi akan dihapus untuk ditampilkan datanya, ini bukan tabel asli dari MySQL. adi DISTINCT ini digunakan untuk menampilkan data tunggal yang tidak ada duplikasinya. Query dasar yang digunakan adalah
- SELECT DISTINCT namakolom FROM namatabel ;
LIMIT digunakan untuk membatasi data yang ingin di tampilkan. Berikut Query dasar yang bisa digunakan
SELECT * FROM namatabel LIMIT jumlahbaris;
9. UNION, INTERSECT, EXCEPT
Perintah UNION dalam MySQL di gunakan untuk menggabungkan/mengkombinasikan isi dari dua tabel menjadi satu. Sama seperti artinya INTERSECT ini di gunakan untuk mencari irisan pada dua atau lebih tabel. Kemudian perintah yang terakhir yaitu EXCEPT, EXCEPT ini di vgunakan untuk memunculkan isi tabel yang berada di luar irisan tabel. Berikut query dasar yang bisa di gunakan untuk menggunakan perintah tersebut.
UNION
- SELECT * FROM namatabel1 UNION SELECT * FROM namatabel2 ;
- SELECT * FROM namatabel1 WHERE syarat1 IN (SELECT * FROM namatabel2) ;
- SELECT * FROM namatabel1 WHERE syarat1 NOT IN (SELECT * FROM namatabel2) ;
B. PRAKTIKUM
Pembahasan kali ini akan di praktekan query query yang telah kita pelajari dari dasar teori di atas.
Persiapan praktek : Gunakan tabel mahasiswa dan fakultas pada. Isi kolom sama dengan tabel mahasiswa dan fakultas pada artikel sebelumnya, tambahkan kolom gender di tabel mahasiswa kemudian update data mahasiswa. Insert data mahasiswa hingga 7 baris dengan salah satu nama adalah ‘binta’ dan insert data fakultas hingga 3 baris.
1. Menampilkan Data Menggunakan AS
Berdasarkan tabel yang telah kita buat sebelumnya, menampilkan data mahasiswa dengan nama dari kolomnya berubah menjadi nomor_identitas, nama, alamat,nama_fakultas tanpa harus merubah nama kolom secara permanen. Berikut querynya
- select nim_mah as nomor_identitas, nama_mah as nama, alamat_mah as alamat, nama_fak as nama_fakultas from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak;
2. Menampilkan Data Menggunakan Operator AND dan OR
Menampilkan nama mahasiswa fakultas saintek yang berjenis kelamin laki-laki. Kemudian nama mahasiswa fakultas saintek atau berjenis kelamin laki-laki. Berikut query dari soal di atas.
- select*from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak and gender=’L’;
- select*from mahasiswa where id_fak=1 or gender=’L’;
3. Menampilkan Data Menggunakan Operator BETWEEN
Berikut soal untuk menampilkan data menggunakan BETWEEN. Suatu tabel mahasiswa terdapat 7 baris data mahasiswa. menampilkan data mahasiswa dari nomor 3 sampai dengan 5, kemudian tampilkan juga data mahasiswa yang bukan dari nomor 3 sampai dengan 5 menggunakan between dan tanpa menggunakan between.
Disini kita akan menggunakan perintah BETWEEN dan NOT BETWEEN, baik itu menggunakan BETWEEN atau menggunakan simbol atau keyword untuk betwee. Berikut query yang bisa di gunakan
- select*from mahasiswa where nim_mah>=3 and Nim_mah<=5;
- select*from mahasiswa where nim_mah between 3 and 5;
- select*from mahasiswa where nim_mah not between 3 dan 5;
- select*from mahasiswa where nim_mah<3 or nim_mah>5;
4. Menampilkan Data menggunakan Operator IN
Menampilkan mahasiswa dengan nomor 2,3,5 menggunakan operator IN. Berikut query yang bisa digunakan
- select*from mahasiswa where nim_mah in (2, 3, 5);
5. Menampilkan Data Menggunakan Operator LIKE
Menampilkan semua data mahasiswa yang namanya mempunyai awalan huruf “a”. Dan Menampilkan semua data mahasiswa yang namanya mempunyai akhiran “a” dan huruf ke-3 dari nama tersebut terdapat huruf “n”. Berikut query dari soal berikut
- select*from mahasiswa where nama_mah like ‘a%’;
- select*from mahasiswa where nama_mah like ‘__%n%a’;
6. Menampilkan Data Menggunakan Operator DISTINCT
Menampilkan nomor fakultas di tabel mahasiswa dengan nomor harus tidak ada yang sama dari baris pertama sampai akhir. Berikut query dari operator DISTINCT
- select distinct id_fak from mahasiswa;
7. Menampilkan Data Menggunakan OperatorLIMIT
Menampilkan data mahasiswa 3 baris saja, menggunakan operator LIMIT. Berikut query yang bisa digunakan
- select*from mahasiswa limit 3;
8. Menampilkan Data Menggunakan Operator REGEXP
Menampilkan data mahasiswa dengan ciri-ciri memiliki nama awalan a kemudian kata selanjutnya boleh b atau boleh m atau boleh d. misalkan yang memenuhi kriteria ciri tersebut seperti abi, amik, adik, adam dll. Gunakan operator RGEXP untuk menyelesaikan soal tersebut. Berikut query yang bisa digunakan
- select*from mahasiswa where nama_mah regexp ‘^k[aid]’;
9. UNION, INTERSECT dan EXCEPT
Sebelum menjalankan perintah UNION, INTERSECT dan EXCEPT, buat dulu tabel baru dengan nama organ_dalam dan organ_luar. Dengan nama kolom nomor dan nama, kemudian pada organ_dalam isi tabel dengan (1, jantung), (2, paru-paru), (3, tenggorokan) kemudian pada tabel organ luar isi tabel dengan (1, hidung), (2, mata), (3, tenggorokan). Setelah modifikasi tabel tersebut dengan perintah UNION, INTERSECT dan EXCEPT
- select nama from organ_dalam union select nama from organ_luar;
- select*from organ_dalam where nama in (select nama from organ_luar);
- select*from organ_dalam where nama not in (select nama from organ_luar);
C. Perbedaan, Kesamaan, Kelebihan dan Kekurangan Pada DBMS PostgreSQL dan MySQL
Sebenarnya PostgreSQL maupun MySQL merupan DBMS andalan yang banyak dan mudah digunakan oleh banyak orang. Mulai dari struktur query yang digunakan tidaklah serumit DBMS lain. Oleh sebab itu banyak sekali kesamaan dari kedua DBMS ini, dari artikel Pengenalan Operator Dasar Pada MySQL penulis melihat bahwa banyak sekali kesamaan antara PostgreSQL dan MySQL pada penulisan operatorquery yang digunakan. Hanya terdapat sedikit sekali perbedaan yang ada, antara lain :
# Pada Operator REGEXP
Pada operator REGEXP terdapat sedikit perbedaan antara kedua DBMS ini, pada PostgreSQL operator REGEXP dituliskan dalam bentuk simbol ( ~ ), tapi apabila dalam MySQL operator REGEXP tidak di tulis dalam simbol tetapi ditulis operatornya langsung yaitu dengan menuliskan (regexp) saat penulisan querynya. Berikut perbedaan query dasar dari dua DBMS tersebut
PostgreSQL
- SELECT * FROM namatabel WHERE namakolom ~ ‘keywordREGEXP’;
- SELECT * FROM namatabel WHERE namakolom REGEXP ‘keywordREGEXP’ ;
Pada perintah INTERSECT dan EXCEPT terdapat perbedaan yang sangat mencolok, apabila pada PostgreSQL disediakan sendiri perintah INTERSECT dan EXCEPT, tetapi jika di MySQL perintah INTERSECT dan EXCEPT tidak di sediakan. Jadi untuk mendapatkan perintah ini kita bisa menggunakan operatop IN untuk INTERSECT dan NOT IN untuk EXCEPT.
PostgreSQL
- SELECT namakolom FROM namatabel EXCEPT SELECT namakolom FROM namatabel; //EXCEPT
- SELECT namakolom FROM namatabel INTERSECT SELECT namakolom FROM namatabel; //INTERSECT
- SELECT * FROM namatabel1 WHERE syarat1 IN (SELECT * FROM namatabel2) ; //INTERSECT
- SELECT * FROM namatabel1 WHERE syarat1 NOT IN (SELECT * FROM namatabel2) ; //EXCEPT
D. KESIMPULAN
Pada MySQL terdapat banyak sekali variasi penggunaan operator SELECT untuk menampilkan data. Kita bisa menggunakan alias, operator logika, limit dll. Operator ini tidak hanya ada pada MySQL saja tetapi juga terdapat pada PostgreSQL. Tetapi terdapat sedikit perbedaan penulisan query pada kedua DBMS ini, yaitu pada penggunaan operator REGEXP dan perintah INTERSECT dan EXCEPT. Jadi bagi para pembaca kalian mungkin bisa menggunakan kedua DBMS ini agar mengetahui variasi yang ada dan dapat meningkatkan kemampuan anda dalam menulis query.
Fungsi Agregat pada SQL
Pengertian Fungsi Agregat dalam SQL
Dalam SQl dikenal fungsi agregat. Fungsi agregat (aggregate) adalah fungsi yang menerima koleksi nilai dan mengembalikan nilai tunggal sebagai hasilnya.Jenis fungsi Agregat
Standar ISO mendefinisikan lima jenis fungsi agregat, yaitu:Sebelum mencoba berbagai fungsi agregat SQL, buatlah tabel dengan struktur sebagai berikut:
Tambahkan record-record berikut ini:Fungsi Agregat: COUNT
Digunakan untuk menghitung jumlah record.Contoh:
Hitung jumlah record tabel buku
SELECT COUNT(*) FROM buku;Hitung jumlah record tabel buku dengan nama kolom jum_rec
SELECT COUNT(*) AS jum_rec FROM buku;Hitung jumlah record untuk tahun 2003
SELECT COUNT(*) AS jum_rec FROM buku WHERE tahun = 2003;
Fungsi Agregat: SUM
Fungsi Agregat SUM digunakan untuk menghitung total nilai dari kolom tertentuContoh:
Hitung total harga
SELECT SUM(harga) AS total_harga FROM buku;Hitung total harga untuk tahun 2003
SELECT SUM(harga) AS total_harga FROM buku WHERE tahun=2003;
Fungsi Agregat: MAX
Fungsi agregat AVGDigunakan untuk menampikan nilai tertinggi dari suatu kolomContoh:
Tampilkan harga tertinggi
SELECT MAX(harga) AS harga_tertingi FROM buku;Tampilkan harga tertinggi untuk tahun 2003
SELECT MAX(harga) AS harga_tertinggi FROM buku WHERE tahun=2003;Fungsi Agregat: MIN
Fungsi agregat MIN Digunakan untuk menampikan nilai terendah dari suatu kolom
Contoh:
Tampilkan harga terendah
SELECT MIN(harga) AS harga_terendah FROM buku;Tampilkan harga terendah untuk tahun 2003
SELECT MIN(harga) AS harga_terendah FROM buku WHERE tahun=2003;Fungsi Agregat: AVG
Fungsi agregat AVG Digunakan untuk menampikan nilai rata-rata dari suatu kolom
Contoh:
Tampilkan harga rata-rata
SELECT AVG(harga) AS harga_rerata FROM buku;Tampilkan harga rata-rata untuk tahun 2003
SELECT AVG(harga) AS harga_rerata FROM buku WHERE tahun=2003;
Minggu, 17 April 2016
Cara Membuat ERD
Cara Membuat ERD
Kali
ini saya ingin menjelaskan bagaimana cara membuat ERD (Entity
Relational Diagram) dalam database. Sebelum kita membuat ERD ada baiknya
kita berkenalan dulu dengan segala sesuatu yang berhubungan dengan ERD.
Untuk membuat ERD kita memerlukan Entitas/Entity, Relasi/Relationship,
dan Atribut/Attribute.
Metode pembuatan ERD
Dalam membuat ERD, ada beberapa hal yang perlu kita waspadai, selain itu kita juga dituntut untuk lebih teliti dalam menentuka entity, relasi, atribut, menghindarkan terjadinya relasi “many to many” dan lain sebagainya. Untuk itu lihat beberapa langkah berikut agar kita bisa membuat ERD dengan baik:
- ERD adalah pemodelan data utama yang membantu mengorganisasikan data dalam suatu proyek ke dalam entitas-entitas dan menentukan hubungan antar entitas.
- Entitas/Entity adalah suatu tempat atau objek untuk menyimpan data. Contoh: Entitas buku untuk menyimpan atribut mengenai buku (judul buku, kode buku, pengarang, dsb). Entity digambarkan dengan Persegi dalam ERD.
- Relasi/Relationship adalah hubungan yang terjadi antara entitas atau lebih. Contoh: Entitas buku dan Entitas Pengarang memiliki hubungan “ditulis”, yang artinya, pengarang menulis buku, dan buku ditulis pengarang. Selain itu, terdapat relasi “one to one”, “one to many”, dan “many to many” dalam entity. Relasi ini digambarkan dengan garis dalam ERD.
- Atribut/Attribute adalah ciri umum semua entitas atau semua yang ada dalam entitas. Contoh: Entitas pengarang memiliki atribut nama, alamat, no telpon, dsb. Atribut digambarkan dengan lingkaran memanjang dalam ERD tapi jarang sekali dalam ERD atribut ikut digambarkan. Atribut juga sering disebut dengan field atau kolom dalam suatu ERD.
Ada 10 langkah atau tips yang dapat saya berikan untuk membuat ERD yang baik:
Metode pembuatan ERD
Dalam membuat ERD, ada beberapa hal yang perlu kita waspadai, selain itu kita juga dituntut untuk lebih teliti dalam menentuka entity, relasi, atribut, menghindarkan terjadinya relasi “many to many” dan lain sebagainya. Untuk itu lihat beberapa langkah berikut agar kita bisa membuat ERD dengan baik:
- Menentukan Entity
- Disini kita dituntut untuk menentukan dengan cermat sebuah entity yang ada dalam suatu proyek atau masalah. Entity berguna untuk menentukan peran, kejadian, lokasi, hal nyata dan konsep penggunaan untuk database
- Menentukan Relasi
- Setelah kita berhasil membuat Entity, langkah selanjutnya adalah menentukan relasi antar entity. Relasi apa yang terdapat antara Entity A dan B, apakah entity A dan B memiliki relasi “one to one”, “one to many”, atau “many to many”.
- Gambar ERD sementara
- Jika sudah mengetahui Entity beserta Relasinya, sekarang kita buat dulu gambar ERD sementara. Entity digambarkan dengan persegi, relasi digambarkan dengan garis.
- Isi kardinalitas
- Kardinalitas
menentukan jumlah kejadian satu entitas untuk sebuah kejadian pada
entitas yang berhubungan. Contohnya antara Entitas Buku, Distributor dan
Pengarang, kardinalitas yang ada berupa:
- Satu pengarang dapat menulis banyak buku
- Satu buku ditulis satu pengarang
- Banyak buku di distribusikan oleh satu distributor.
- Dari sini kita bisa mengetahui harus memberi relasi apa. One to one kah?, dsb.
- Kardinalitas
menentukan jumlah kejadian satu entitas untuk sebuah kejadian pada
entitas yang berhubungan. Contohnya antara Entitas Buku, Distributor dan
Pengarang, kardinalitas yang ada berupa:
- Tentukan Primary Key (Kunci Utama)
- Menentukan Primary Key pada masing-masing entity. Primary Key adalah atribut pada entity yang bersifat unik. Jadi setiap entity hanya memiliki satu Primary Key saja. Contoh: Entity Buku memiliki Primary Key bernama kode buku. Kode Buku ini bersifat unik, karena masing-masing buku memiliki kode yang berbeda-beda.
- Tentukan pula Foreign Key (Kunci Tamu) pada masing-masing Entity. Foreign Key adalah Primary Key yang ada dalam Entity yang lain. Contoh pada Entity Pengarang misalnya terdapat atribut kode buku, yang mana, kode buku merupakan Primary Key dari Entity buku.
- Gambar ERD berdasarkan Primary Key
- Menghilangkan relasi “many to many” dan memasukkan Primary dan Foreign Key pada masing-masing entitas. Relasi many to many antar entity perlu dihilangkan dengan cara menambah atribut baru antara 2 entity yang memiliki relasi many to many.
- Menentukan Atribut
- Jika sudah melakukan step diatas, sekarang saatnya menentukan atribut pada masing-masing Entitas. Telitilah dalam menentukan atribut.
- Pemetaan Atribut
- Apabila atribut telah ditentukan, sekarang pasang atribut dengan entitas yang sesuai.
- Gambar ERD dengan Atribut
- Mengatur ERD seperti langkah 6 dengan menambahkan atribut dan relasi yang ditemukan.
- Periksa Hasil
- Periksa lagi ERD. Apakah ERD sudah menggambarkan system yang akan dibangun? Jika belum, check kembali dari awal.A. Teori ERD
Entitas dapat merupakan :
· Sebuah elemen lingkungan dari perusahaan , seperti customer atau supplier· Suatu sumber daya , seperti suatu piutang dagang, suatu produk, atau suatu penjual· Suatu arus informasi , seperti suatu penjualan pemesanan atau suatu fakturDi dalam sebuah entitas terdapat beberapa atribut. Atribut merupakan gambaran karakteristik dari sebuah entitas atau himpunan entitas.
Contoh : atribut untuk himpunan entitas mahasiswa adalah nim (PK), nama, program studi.
Penggunaan key merupakan cara untuk membedakan suatu entitas didalam himpunan entitas dengan entitas lain. Key dipilih karena unik, untuk setiap entitas sehingga bisa di bedakan dari entitas yang lain. Kita bisa mendefinisikan key sebagai satu atau gabungan dari beberapa atribut yang dapat membedakan semua row dalam relasi secara unik.Ada 3 macam key :
1. Super KeySuperkey yaitu satu atau lebih atribut (kumpulan atribut) yang dapat membedakan satiap baris data dalam sebuah relasi secara unik.Contoh super key yaitu =1. Nim, nama, alamat, kota2. Nim, nama, alamat3. Nim, nama4. Nim2. Candidat KeyKumpulan atribut minimal yang dapat membedakan setiap baris data dalam sebuah relasi secara unikContoh : Nim3. Primary KeyPrimary key merupakan salah satu dari candidate key yang terpilih. Alasan pemilihan primary key :1. Lebih sering di jadikan acuan2. Lebih ringkas3. Jaminan keunikan key lebih baikContoh dari primary key adalah Nim.Jika sebuah primary key terhubung ke table/entity lain, maka keberadaan primary key pada entity tersebut di sebut sebagai foreign key ( kunci tamu ).Misal : Primary Key Kode Dosen dari entity Dosen digunakan juga pada field entity KRS, maka keberadaan field Kode Dosen pada entity KRS disebut sebagai foreign key. (by : flowerfukushima.blogspot.com )Dalam ERD, hubungan (relasi) dapat terdiri dari sejumlah entitas yang disebut dengan derajad relasi. Derajad relasi maksimum disebut dengan kardinalitas sedangkan derajad minimum disebut dengan modalitas. Jadi kardinalitas relasi menunjukkan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas lain. Kardinalitas relasi yang terjadi diantara dua himpunan entitas (misalnya A dan B) dapat berupa :1. Satu ke satu (one to one/ 1-1)Setiap entitas pada himpunan entitas A dapat berelasi dengan paling banyak satu entitas pada himpunan entitas B, demikian juga sebaliknya.2. Satu ke banyak (one to many/ 1- N ) / N-1Setiap entitas pada himpunan entitas A dapat berelasi dengan banyak entitas pada himpunan entitas B, tetapi tidak sebaliknya. Atau Setiap entitas pada himpunan entitas A hanya dapat berelasi dengan satu entitas pada himpunan entitas B, tetapi tidak sebaliknya.3. Banyak ke banyak (many to many/ N –N)Setiap entitas pada himpunan entitas A dapat berelasi dengan banyak entitas pada himpunan entitas B, demikian juga sebaliknya.B. Tahapan Pembuatan ERDBerikut ini adalah contoh tahapan dalam pembuatan ERD pada " Sistem Informasi Akademis " .Tahap 1: Penentuan Entities
Keterangan :Mahasiswa:• nim: nomor induk mahasiswa (integer) PK• nama_mhs: nama lengkap mahasiswa (string)• alamat_mhs: alamat lengkap mahasiswa (string)Dosen:• nip: nomor induk pegawai (integer) PK• nama_dosen: nama lengkap dosen (string)• alamat_dosen: alamat lengkap dosen (string)Mata_kuliah:• kode_mk: kode untuk mata kuliah (integer) PK• nama_mk: nama lengkap mata kuliah (string)• deskripsi_mk: deskripsi singkat mengenai mata kuliah (string)Ruang:• kode_ruang: kode untuk ruang kelas (string) PK• lokasi_ruang: deskripsi singkat mengenai lokasi ruang kelas (string)• kapasitas_ruang: banyaknya mahasiswa yang dapat ditampung (integer)Tahap 2 : Penentuan AtributTahap 3 : Penentuan Kardinalitas RelasiHubungan :a. ruang digunakan untuk mata_kuliah:
· Tabel utama: ruang· Tabel kedua: mata_kuliah· Relationship: One-to-one (1:1)· Attribute penghubung: kode_ruang (FK kode_ruang di mata_kuliah)
b. dosen mengajar mata_kuliah:· Tabel utama: dosen· Tabel kedua: mata_kuliah· Relationship: One-to-many (1:n). Attribute penghubung: nip (FK nip di mata_kuliah)
c. dosen membimbing mahasiswa:. Tabel utama: dosen· Tabel kedua: mahasiswa. Relationship: One-to-many (1:n). Attribute penghubung: nip (FK nip di mahasiswa)d. mahasiswa mengambil mata_kuliah:· Tabel utama: mahasiswa, mata_kuliah· Tabel kedua: mhs_ambil_mk· Relationship: Many-to-many (m:n)· Attribute penghubung: nim, kode_mk (FK nim, kode_mk di mhs_ambil_mk)Tahap 4 : Pembuaatan ERDEER (Enhanced Entity Relationship) Diagram:Relasi many to many antar entity perlu dihilangkan dengan cara menambah atribut baru antara 2 entity yang memiliki relasi many to many. Pada diagram diatas, terdapat relasi mahasiswa mengambil matakuliah dimana mempunyai kardinalitas many to many. Maka dari itu perlu dibuat satu entity baru yang didalamnya menampung primary key dari entity mahasiswa dan entity mata kuliah yang nantinya dapat dijadikan foreign key pada entity mhs_ambl_mk , sedang yang dijadikan primary key disini kita ambil password portal akademik yang sifatnya unik ( satu mahasiswa mempunyai password yang berbeda dengan mahasiswa lain ) . - Sunber : http://yadiesherro.wordpress.com/category/cara-membuat-erd-entity-relational-diagram/
http://niezpipao.blogspot.com/2012/11/teori-dan-tahapan-pembuatan-erd-a.html
Langganan:
Postingan (Atom)