Makalah simbad

8,333 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
8,333
On SlideShare
0
From Embeds
0
Number of Embeds
73
Actions
Shares
0
Downloads
4
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Makalah simbad

  1. 1. Sistem Basis DataDian Christien Arisona 1BAB IMenggunakan SQL1.1 Pengertian SQLSQL merupakan singkatan dari Structured Query Language. SQL atau juga seringdisebut sebagai query merupakan suatu bahasa (language) yang digunakan untuk mengaksesdatabase. SQL dikenalkan pertama kali dalam IBM pada tahun 1970 dan sebuah standar ISOdan ANSII ditetapkan untuk SQL. Standar ini tidak tergantung pada mesin yang digunakan(IBM, Microsoft atau Oracle). Hampir semua software database mengenal atau mengertiSQL. Jadi, perintah SQL pada semua software database hampir sama.1.2 Jenis-jenis perintah SQLPerintah atau instruksi SQL dapat dikelompokkan berdasarkan jenis dan fungsinya.Terdapat 3 jenis perintah dasar SQL : Data Definition Language, Data ManipulationLanguage dan Data Control Language.Data Definition Language (DDL) adalah jenis instruksi SQL yang berkaitan denganpembuatan struktur tabel maupun database. Termasuk diantaranya : CREATE, DROP,ALTER, dan RENAME.Data Manipulation Language (DML) adalah jenis instruksi SQL yang berkaitandengan data yang ada dalam tabel, tentang bagaiman menginput, menghapus,memperbaharui serta membaca data yang tersimpan di dalam database. Contoh perintahSQL untuk DML : SELECT, INSERT, DELETE, dan UPDATE.Data Control Language (DCL) adalah jenis instruksi SQL yang berkaitan denganmanajemen hak akses dan pengguna (user) yang dapat mengakses database maupun tabel.Termasuk diantaranya : GRANT dan REVOKE.Selain ketiga jenis perintah SQL, terdapat juga 2 jenis SQL tambahan : Transaction ControlLanguage, dan Programmatic SQL.Transaction Control Language (TCL) adalah perintah SQL untuk proses transaksi.Proses transaksi ini digunakan untuk perintah yang lebih dari 1, namun harus berjalan semua,atau tidak sama sekali. Misalnya untuk aplikasi critical seperti transfer uang dalam sistemdatabase perbankan. Setidaknya akan ada 2 perintah, yaitu mengurangi uang nasabah A, dan
  2. 2. Sistem Basis DataDian Christien Arisona 2menambah uang nasabah B. Namun jika terjadi kesalahan sistem, kedua transaksi ini harusdibatalkan. Tidak bisa hanya satu perintah saja. Termasuk ke dalam TCL adalah perintah :COMMIT, ROLLCABK, dan SET TRANSACTION.Programmatic SQL berkaitan dengan sub program (stored procedure) maupunpenjelasan mengenai struktur database. Contoh perintah seperti : DECLARE, EXPLAIN,PREPARE, dan DESCRIBE1.3 Pengertian DatabaseDefinisi tentang Database:1. Menurut Gordon C.Everest:Database adalah koleksi atau kumpulan data yang mekanis, terbagi/shared, terdefinisisecara formal dan dikontrol terpusat pada organisasi.2. Menurut C.J.Date:Database adalah koleksi “data operasional” yang tersimpan dan dipakai oleh sistemaplikasi dari suatu organisasi.- Data input adalah data yang masuk dari luar system.- Data output adalah data yang dihasilkan system.- Data operasional adalah data yang tersimpan pada system.3. Menurut S. Attre :Database adalah koleksi data-data yang saling berhubungan mengenai suatuorganisasi / enterprise dengan macam-macam pemakaiannya.4. Menurut Toni Fabbri :Database adalah sebuah sistem file-file yang terintegrasi yang mempunyai minimalprimary key untuk pengulangan data. Jadi, Sistem Database adalah sistem penyimpanan datamemakai komputer.Sifat-sifat database :• Internal : Kesatuan (integritas) dari file-file yang terlibat.• Terbagi/share : Elemen-elemen database dapat dibagikan pada para user baiksecara sendiri sendiri maupun secara serentak dan pada waktu yang sama(Concurrent sharing).
  3. 3. Sistem Basis DataDian Christien Arisona 3Elemen-elemen database :A. Tipe : Enterprise = Suatu jenis organisasi, misalnya Bank, Hotel, Universitas dan lain-lain. Entity = File = Obyek pada enterprise berdasarkan data yang disimpan Atribute = Field = Data item = Beberapa hal yang ingin diketahui dari suatu file Record = Satu set field yang merupakan ciri khas dari suatu fileIstilah entity dan atribute biasanya digunakan pada tingkat konsepsual dan logikal,sedangkan file, record dan field pada tingkat internal/fisikal.B. Isi / Nilai : Data File : Seluruh isi data pada file Data Record : Satu set isi data pada suatu susunan field dari suatu file Data Value : Isi data masing-masing data elemen.
  4. 4. Sistem Basis DataDian Christien Arisona 41.4 Pengertian MysqlMenurut Antonius Nugraha Widhi Pratama (2010:10) MySQL adalah suatu sistemmanagemen basis data relasional (RDBMS-Relational Database Management System) yangmampu bekerja dengan cepat, kokoh dan mudah digunakan.Menurut Wahana Komputer (2010:5) MySQL merupakan program database yangmampu mengirim dan menerima data dengan sangat cepat dan multi user.MySQL pertama kali dirintis oleh seorang programer database bernama Michael Widenius.Selain MySQL ada beberapa program database server lain yang menggunakan standar queryberupa SQL, antara lain adalah:1. Oracle2. PostgreSQL3. MySQL front4. MySQL5. SQL Server 97MySQL adalah sebuah database server, dapat juga berperan sebagai client sehinggasering disebut database client/server, yang open source dengan kemampuan dapat berjalanbaik di OS (Operating Sistem) manapun, dengan Platform Windows maupun Linux. Mysqladalah sebuah perangkat lunak Pembuat database yang bersifat terbuka atau open source danberjalan disemua platform baik Linux maupun Si Windows, MySQL merupakan programpengakses database yang bersifat network sehingga dapat digunakan untuk aplikasi MultiUser (Pengguna Banyak).MySQL adalah Relational Database Management System (RDBMS) yangdidistribusikan secara gratis dibawah lisensi GPL (General Public License). Dimana setiaporang bebas untuk menggunakan MySQL, namun tidak boleh dijadikan produk turunan yangbersifat komersial.MySQL dapat dikatakan lebih unggul dibandingkan database server lainnya dalamquery data. Hal ini terbukti untuk query yang dilakukan oleh single user, kecepatan queryMySQL bisa sepuluh kali lebih cepat dari PostgreSQL dan lima kali lebih cepat dibandingkanInterbase.
  5. 5. Sistem Basis DataDian Christien Arisona 5BAB IIPenggunaan SQL dalam Mysql2.1 Membuat databaseUntuk membuat atau mengetahui apa saja tabel dan field-field nya yang pertama kitaharus tahu apa judul program yang akan kita buat, atau program apa yang akan kita buat.Kedua, setelah menentukan program apa yang akan kita buat, baru kita menentukannama tabel dari database program tersebut, misalnya kita akan membuat aplikasi persediaanbarang. Karna namanya persediaan barang, sudah tentu aplikasi kita berhubungan denganbarang dan data nya..,dari situ kita sudah dapat menentukan tabel apa saja yang diperlukanuntuk aplikasi tersebut., Misalnya kita buat satu tabel dengan nama data_barang.Langkah ketiga, kalau nama tabel sudah ditentukan, sekarang tinggal menentukanfield-field apa saja yang ada di tabel data_barang, nah untuk menentukannya, kita sesuaikandengan nama tabel tersebut, karna nama tabelnya data_barang, maka field yang ada didalamnya sudah tentu seputar tentang data-data barang, misalnya ada kode_barang,nama_barang, jenis_barang, satuan, dan atau harga_barang kalau dibutuhkan.Setelah kita tentukan apa saja fieldnya, sekarang baru kita tentukan type data dan sizedari masing-masing field tersebut. untuk itu kalian harus tahu dulu apa fungsi dari type datatersebut ,berikut fungsi dari beberapa type data untuk field database :Text / String : adalah tipe data yang dapat menerima input berupa data text.Date/Time : adalah tipe data yang dapat menerima input berupa tanggal, tipe datajenis ini memiliki ukuran 8 byte dan size 8.Currency : adalah tipe data yang dapat menerima data berupa nilai uang.Byte,Integer, Long : adalah tipe data untuk menerima input berupa bilangan bulat.single, double : adalah tipe data untuk menerima input berupa bilangan pecahan.boolean : adalah tipe data logika, hanya benar atau salah (true/false)Sekarang tinggal sesuaikan tipe data apa yang cocok untuk field dari tabel databaseanda, misalnya untuk tanggal lahir : tipe datanya date/time, atau harga barang : tipe datanyayang dipakai adalah Currency.
  6. 6. Sistem Basis DataDian Christien Arisona 6Untuk size nya, sesuaikan dengan kebutuhan field tersebut, misalnya untuk kodebarang kita hanya ingin agar batas maksimal kode adalah 4 karakter, maka tinggal kitatentukan size dari kode barang itu = 4.Kalau kita sudah bisa menentukan nama tabel, dan field-field apa saja yang ada dalamtabel tersebut berarti kita sudah bisa membuat database kita sendiri.Contoh:Klik tombol Create DatabaseAnda telah berhasil menambahkan database, Anda sekarang perlu memberikanusername untuk mengakses database.Create username: Jika Anda memiliki database MySQL, Anda akan perlu untukmenetapkan user untuk dapat mengakses database. Jika Anda ingin membuat user danmemberikan mereka akses ke database, silakan lakukan hal berikut:1.Klik MySQL Database2. Gulir ke bawah sampai Anda melihat Add New User.3. Dalam bagian ini dan di sebelah kanan nama pengguna, harap memberikan nama penggunauntuk database4. Penulisan secara lengkap user database akan seperti ini: cpaneluser_databaseuser5. Di sebelah kanan Sandi, ketik sandi yang Anda ingin membuat database untuk user.6. Klik Create user.Selanjutnya adalah menambahkan user ke dalam database pada bagian Add User ToDatabase Pilih User dan Database dan klik Add.
  7. 7. Sistem Basis DataDian Christien Arisona 7Sekarang kita perlu memberikan hak user untuk database yang Anda tetapkan.1. Untuk hak Database, silakan pilih database yang Anda ingin berikan hak untuk diakses.2. Silakan pilih jenis hak Anda ingin pengguna memiliki. (Jika Anda ragu dengan mana saja,bisa memilih All Privileges.)3. Klik Make Changes.Sekarang kita telah memberikan akses user ke database.Cara membuat database yang kedua mengunakan tools command prompt :1. Buka command prompt ( Start + All Program + Accessories + Command Prompt ).2. Setelah menjumpai tampilan command prompt ketikan perintah dibawah ini : cdC:xamppmysqlbin3. Kemudian ketikan lagi perintah berikut : mysql -u root –p4. Masukan password anda jika sebelumnya anda melakukan set password.5. Jika suda berhasil masuk ke program klien Mysql anda akan menemui tulisansemacam ini: Welcome to the MySQL monitor. Commands end with ; or g. YourMySQL connection id is 11 ...............6. Untuk membuat database ketikan perintah create database joomla; jika berhasil akanmuncul tulisan semacam ini: mysql> create database joomla; Query OK, 1 rowaffected (0.04 sec)7. Dan untuk melihat database anda bisa mengunakan perintah show databases:
  8. 8. Sistem Basis DataDian Christien Arisona 82.2 Menghapus databaseUntuk menghapus Data Base dapat dilakukan dengan langkah berikut:1. Klik MySQL Database2. Dalam Database, Anda akan menemukan nama-nama semua database Anda saat ini.3. Klik Hapus di sebelah nama database yang ingin Anda hapus.4. sebuah database MySQL telah terhapus.Catatan:Anda juga mungkin perlu menghapus pengguna (user) yang mengakses database juga,jika Anda ingin untuk tidak memiliki bekas apapun dari database yang tersisa.Berhati-hatilah dalam melakukan penghapusan, karena semua tidak ada fasilitaspembatalan (undo).Kesalahan penghapusan/ setting merupakan tanggung jawab user.Contoh:Drop DataBase_Nama Database:Misalnya kita akan menghapus database pegawai.
  9. 9. Sistem Basis DataDian Christien Arisona 9maka perintahnya adalah DROP DATABASE PEGAWAI;Lihat gambar :Perhatikan gambar diatas, kita telah berhasil menghapus database pegawai, untukmembuktikannya silahkan ketik perintah Show Data Base
  10. 10. Sistem Basis DataDian Christien Arisona 10Lihat Screen shot dibawah ini :2.3 Membuat Tabel1. TabelTabel merupakan entitas yang ada didalam sebuah sistem yang saling berhubunganantara tabel satu dengan lainnya, misalnya ada sebuah sistem bernama "Sistem RegistrasiSiswa" sehingga entitas yang ada biasanya adalah registrasi_siswa dan kelas, maka tabeldidalam database nantinya juga registrasi_siswa dan kelas. Letak hubungan antara tabelregistrasi_siswa dengan siswa adalah setiap siswa memiliki kelas.2. FieldField adalah atribut-atribut yang ada didalam sebuah entitas/tabel, misalnya tabelregistrasi_siswa memiliki field yaitu id, nama_lengkap, tempat_lahir, tanggal_lahir,tempat_lahir dan sebagainya.3. Primary KeyPrimary Key adalah field kunci yang ada didalam sebuah tabel, fungsinya adalah agardata yang ditampung nantinya memiliki identitas masing-masing yang berbeda antara datayang satu dengan yang lainnya didalam satu tabel.
  11. 11. Sistem Basis DataDian Christien Arisona 114. RecordRecord adalah data yang masuk pada field-field didalam tabel. Sebenarnya masihbanyak hal-yang berkaitan dengan database, namun yang paling harus dimengerti adalah 4hal di atas.Setelah kita mengetahui 4 hal di atas ada juga yang perlu kita ketahui dalampembuatan fiel-field tabel dalam database, yaitu tentang type fieldType Keterangan PanjangTINYINTDigunakan jika databerupa angkaSigned -127 sampai 128. Unsigned 0 sampai 255SMALLINTDigunakan jika databerupa angkaSigned -32768 sampai 32767. Unsigned 0sampai 65535MEDIUMINTDigunakan jika databerupa angkaSigned -8388608 sampai 8388607. Unsigned 0sampai 16777215INT orINTEGERDigunakan jika databerupa angkaSigned -2147483648 sampai 2147483647.Unsigned 0 sampai 4294967295BIGINTDigunakan jika databerupa angkaSigned -9223372036854775808 sampai9223372036854775807. Unsigned 0sampai 18446744073709551615FLOATDigunakan jika databerupa angka pecahandesimal-3.402823466E+38 sampai -1.175494351E-38, 0dan 1.175494351E-38 sampai 3.402823466E+38DATEDigunakan jika databerupa tanggal1000-01-01 sampai 9999-12-31DATETIMEDigunakan jika databerupa tanggal danjam1000-01-01 00:00:00 sampai 9999-12-31 23:59:59TIMEDigunakan jika databerupa jam-838:59:59 sampai 838:59:59
  12. 12. Sistem Basis DataDian Christien Arisona 12CHARDigunakan jika databerupa hanya karakter1 sampai 255VARCHARDigunakan jika databerupa angka dankarakter1 sampai 255TEXTDigunakan jika databerupa text0 sampai 65535ENUMDigunakan jika databerupa pemilihanvalue,value,value...Unsigned adalah bilangan tanpa tanda didepan misalnya tanda negatif.Type diatas adalah type-type field yang paling sering digunakan, sebenarnya ada beberapayang tidak tercantumkan dikarenakan selain type ditabel diatas sangat jarang digunakan.Berikut langkah-langkah membuat tabel mysql1. Misalnya kita akan membuat tabel bernama user dengan jumlah field 4Tekan tombol Go pada bagian bawah, kemudian atur field-field seperti berikut :Nama field bersifat Case Sensitive yang berarti besar kecilnya huruf dianggap berbeda.Kemudian atur field ID menjadi primary key dan Auto Increment
  13. 13. Sistem Basis DataDian Christien Arisona 13Maksud dari Auto increment atau A.I atau juga A_I adalah ketika masuk data baru secaraotomatis nilai dari field ID bertambah sendiri dan dimulai dari 1, jadi antara record satudengan yang lainnya tidak ada yang sama. Setelah itu tekan tombol Save pada bagian bawah.Selain menggunakan cara di atas, kita juga bisa menggunakan perinta SQL untuk membuattabel berikut perintah SQLnya untuk membuat tabel user seperti diatas :CREATE TABLE IF NOT EXISTS `user` (`ID` int(5) NOT NULL AUTO_INCREMENT,`Nama` varchar(50) NOT NULL,`Username` varchar(50) NOT NULL,`Email` varchar(50) NOT NULL,PRIMARY KEY (`ID`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;2.4 Mengubah struktur TabelAda saatnya kita perlu mengubah struktur tabel yang pernah kita buat sebelumnya.pengubahan struktur bisa dalam hal penambahan kolom (Add), pengubahan lebar dan jeniskolom (Modify), atau bisa saja penghapusan kolom dan indeks (Drop), penggantian namakolom (Change), pengantian nama tabel (Rename), dan sebagainya. apa pun juga yang andalakukan pada kolom tersebut tentu akan mempunyai dampak langsung pada data-data yangsudah ada. nah, sekarang kita perlu menambahkan beberapa kolom baru, yaitu kolom jeniskelamin, kota, tanggal lahir dan kodepos pada tabel karyawan. Perintah untuk mengubahstruktur tabel adalah "Alter Table".Mengedit Atau Mengubah Struktur Tabel Dengan AlterFormat umum perintah SQL untuk mengedit atau mengubah struktur sebuah tabeladalah seperti di bawah ini :ALTER TABLE nama_tabel ALTER_OPTIONS;
  14. 14. Sistem Basis DataDian Christien Arisona 14ALTER TABLE merupakan perintah dasar untuk mengedit atau mengubah suatutabelnama_tabel merupakan nama dari tabel yang akan kita ubah atau kita edit.ALTER_OPTIONS merupakan pilihan perubahan tabel. Bisa dikatakan perubahanyang akan dilakukan pada suatu tabel. Pilihan yang bisa digunakan dalam alter tablediantaranya adalah sebagai berikut:ADD ==> Digunakan untuk menambahkan field baru.ADD INDEX ==> Digunakan untuk menambahkan index.ADD PRIMARY KEY ==> Digunakan untuk menambah primary key padatabel.CHANGE ==> Digunakan untuk mengubah sebuah field dalam suatu tabel.MODIFY ==> Digunakan untuk mengubah definisi suatu field dalam suatutabel.DROP ==> Digunakan untuk menghapus suatu field.RENAME TO ==> Digunakan untuk mengganti nama suatu tabel.Beberapa Contoh penggunaan sintaks alter table untuk mengubah struktur suatu tabel:Menambahkan sebuah field baru ke tabel mahasiswa.Contoh:penggunaannya seperti di bawah ini :ALTER TABLE mahasiswa add jenis_kelamin enum(P,W) not null default "P";Mengubah tipe field jenis_kelamin menjadi varchar pada tabel mahasiswa:ALTER TABLE mahasiswa MODIFY jenis_kelamin varchar(6) not null;Menghapus field jenis_kelamin dari tabel mahasiswa.ALTER TABLE mahasiswa drop jenis_kelamin;Mengubah Nama Tabel
  15. 15. Sistem Basis DataDian Christien Arisona 15Untuk mengubah nama tabel dapat menggunakan perintah sebagai berikut :Kita akan mengubah tabel mahasiswa yang telah kita buat menjadi mhs.RENAME TABLE mahasiswa TO mhs;atauALTER TABLE mahasiswa RENAME TO mhs;perintah di atas akan merubah nama tabel mahasiswa menjadi mhs.2.5 Menghapus TabelBentuk sintaks umum untuk menghapus sebuah tabel adalah seperti di bawah ini :DROP TABLE nama_tabel;Contoh:penggunaannya adalah sebagai berikut: kita akan menghapus mahasiswaDROP TABLE mahasiswa;perintah di atas akan menghapus table dengan nama mahasiswa.field_n tipe(panjang,PRIMARY KEY (field_key));BAB IIIPerintah nonselect pada SQLSebelumnya, MySQL merupakan software database open source yang paling populerdi dunia, dimana saat ini digunaan lebih dari 100 juta pengguna di seluruh dunia. SQL adalahbahasa yang digunakan dalam pembuatan databasenya tersebut.Berikut ini adalah perintah-perintah pada SQL tersebut.ALTER TABLEALTER TABLE table_nameADD column_name datatypeorALTER TABLE table_nameDROP COLUMN column_nameAS (alias) SELECT column_name AS column_alias
  16. 16. Sistem Basis DataDian Christien Arisona 16FROM table_nameorSELECT column_nameFROM table_name AS table_aliasBETWEENSELECT column_name(s)FROM table_nameWHERE column_nameBETWEEN value1 AND value2CREATE DATABASE CREATE DATABASE database_nameCREATE TABLECREATE TABLE table_name ( column_name1 data_type,column_name2 data_type,column_name2 data_type,…)CREATE INDEXCREATE INDEX index_nameON table_name (column_name)orCREATE UNIQUE INDEX index_nameON table_name (column_name)CREATE VIEWCREATE VIEW view_name ASSELECT column_name(s)FROM table_nameWHERE conditionDELETEDELETE FROM table_nameWHERE some_column=some_valueorDELETE FROM table_name(Note: Deletes the entire table!!)DELETE * FROM table_name(Note: Deletes the entire table!!)DROP DATABASE DROP DATABASE database_nameDROP INDEXDROP INDEX table_name.index_name (SQL Server)DROP INDEX index_name ON table_name (MS Access)DROP INDEX index_name (DB2/Oracle)ALTER TABLE table_name
  17. 17. Sistem Basis DataDian Christien Arisona 17DROP INDEX index_name (MySQL)DROP TABLE DROP TABLE table_name3.1 Menambah dataSyntax : INSERT INTO namatable (field1,field2,..,fieldn) VALUES(value1,value2,..,valuen);Contoh : INSERT INTO Barang (KdBarang,NmBarang,Satuan,Harga) VALUES(„B0001‟,‟Rejoice 250 ml‟,‟Botol‟,12000);Selain dengan cara diatas, dapat juga dengan langsung memberikan nilai (value)tanpa memnentukan field apa saja yg akan ditambah datanya, tetapi kita harus benar-benartahu urutan field dari table yang akan di tambah datanya.Contoh :INSERT INTO Barang VALUES („B0002‟,‟Rejoice sachet‟,‟Sachet‟,500);Berikut Cara Untuk Menambah, Mengedit Dan Menghapus Isi Tabel Dari PerintahCommand :Fungsi ADD untuk menambahkan baris baru dalam tabel, rumus yang di gunakanadalah:alter table [nama tabel]add [field] [type field];contoh jika ingin menambahkan field total_bayar :alter table pembayaranadd total_bayar char (9); enterjika sobat mau menambahkan field total_bayar setelah field kelas maka memakai rumus ;alter table pembayaranadd total_bayar char (9)after kelas;
  18. 18. Sistem Basis DataDian Christien Arisona 183.2 Mengubah dataPerintah MODIFY di gunakan untuk mengedit /mengubah isi tabel rumus yang digunakan adalah:alter table [nama tabel]modify [field] [type field];contoh jika ingin menedit field total_bayar menjadi tot_bayar:alter table pembayaranmodify tot_bayar char (7); enter3.3 Menghapus dataPerintah DROP di gunakan untuk menghapus isi tabel, rumus yang di gunakan :alter table [nama tabel]drop [field];contoh:jika ingin menhapus field total_bayar :alter table pembayarandrop total_bayar ; enter
  19. 19. Sistem Basis DataDian Christien Arisona 19BAB IVPerintah select pada SQLPernyataan SQL di bawah ini menunjukkan penggunaan sederhana dari perintah SQLSELECT: SELECT FirstName, LastName, DateOfBirth FROM UsersContoh :
  20. 20. Sistem Basis DataDian Christien Arisona 20FirstName LastName DateOfBirthJohn Smith 12/12/1969David Stonewall 01/03/1954Susan Grant 03/03/1970Mari kita periksa pernyataan SQL diatas, Pernyataan itu dimulai dengan kata kunciSELECT diikuti dengan daftar kolom tabel (yang nantinya akan kita sebut sebagai field).Daftar kolom ini menentukan kolom mana saja yang ingin Anda ambil dari table tertentu.Daftar kolom diikuti dengan kata kunci SQL : "FROM" selanjutnya diikuti dengan namatabel (tabel dimana kita memilih data). Ada sebuah sintaks khusus yang dapat digunakandengan perintah SELECT, jika Anda ingin mengambil semua kolom dari tabel. Untukmelakukan itu Anda dapat mengganti daftar kolom dengan simbol * maka Anda sudahmemilih semua kolom dari tabel: SELECT * FROM Users.Namun sangat bijaksana jika Anda menentukan nama kolom(fields) satu persatu dantidak menggunkana perintah " SELECT * FROM namatable " karena ini akan meningkatkankinerja query Anda secara signifikan.SELECT INTO mengambil data dari tabel database dan memasukkan ke tabel lain.Perhatikan contoh di bawah ini SELECT INTO: SELECT FirstName, LastName,DateOfBirth INTO UsersBackup FROM UsersBagian pertama dari pernyataan tampak familiar dan hanya memilih beberapa kolom.Bagian kedua dari pernyataan SQL adalah bagian penting, yang menentukan untukmemasukkan baris ke dalam tabel UsersBackup. Bagian terakhir menentukan tabel manayang akan diambil datanya untuk dimasukkan ke tabel yang dipilih. Contoh inimengasumsikan bahwa baik tabel Users maupun tabel UsersBackup memiliki struktur yangidentik.Anda dapat menggunakan query SQL berikut untuk membuat salinan data dalam tabelUsers SELECT * INTO UsersBackup FROM Users4.1 Menampilkan field tertentuMenampilkan dataPerintah SELECT digunakan untuk memilih kolom mana saja yang akan ditampilkan.Jika kita ingin menampilkan semua kolom, kita cukup menggunakan tanda *. Perintah FROM
  21. 21. Sistem Basis DataDian Christien Arisona 21digunakan untuk menentukan asal kolom yang ingin kita tampilkan datanya.Perintah WHERE digunakan untuk membatasi baris-baris yang akan kita tampilkan agarsesuai dengan kriteria yang kita inginkan. WHERE bisa dari tabel atau hasil dari View yanglain. Perhatikan contoh-contoh penggunaan SQL berikut ini.Untuk menampilkan beberapa field dalam satu tabel, dapat dipergunakan perintahSELECT kode_karyawan, nama_karyawan FROM karyawan. Menampilkan data dengankondisi SELECT * FROM karyawan WHERE kode_karyawan = ‟2005000341‟Menampilkan semua data pada tabel BidangContoh ini kita membutuhkan tabel Bidang. Sedangkan kolom yang kita ingintampilkan adalah semua kolom. Kita dapat menggunakan tanda * atau mendaftar semuakolom yang ada pada tabel Bidang. Berikut adalah perintah SQL dan hasil eksekusinya.Jika kita ingin menyimpan dalam bentuk View perintah di atas, tambahkan sebelumpernyataan SELECT perintah CREATE VIEW AS. Ganti dengan nama yang kita inginkan.Menampilkan data nama dan alamat siswaPada contoh ini kita membutuhkan tabel Siswa. Sedangkan kolom yang kita inginkanadalah kolom nama, alamat, dan kota. Kita tidak bisa menggunakan tanda *, tetapi harusmendaftarkan nama kolom nama dan alamat setelah perintah SELECT. Perhatikan perintahSQL dan outpunya berikut ini.
  22. 22. Sistem Basis DataDian Christien Arisona 22Menampilkan data nama siswa yang rumahnya di BatuPada contoh ini kita membutuhkan pernyataan WHERE untuk membatasi baris yangingin kita tampilkan. Tabel yang dipakai adalah tabel Siswa dan kolom yang inginditampilkan adalah kolom Nama. Kalau kita perhatikan hasil eksekusi contoh 12.2 di atas,yang alamat rumahnya di Batu ada dua orang yaitu: Pepe Ricard dan Bubi Red. PernyataanWHERE diikuti dengan kondisi yang harus dipenuhi. Pada kasus ini adalah Kota=Batu.Berikut ini perintah SQL secara lengkap dan outputnya. Perhatikan cara penulisannya.Menampilkan data nama siswa dan program keahlian yang diikutiPada contoh ini kita melibatkan dua buah tabel yang saling berhubungan yaitu tabelSiswa dan tabel Program. Yang kita ingin tampilkan adalah kolom Nama pada tabel Siswadan kolom NamaProgram pada tabel Program. Untuk kasus seperti ini pada perintahSELECT pemanggilan nama kolom harus didahului dengan nama tabelnya. Sedangkan padaFROM, kita menggunakan perintah INNER JOIN untuk menggabung dua tabel. Perlu kitacermati, pada tabel Siswa terdapat Foreign Key, yaitu: IdProgram yang merupakan PrimaryKey pada tabel Program. IdProgram ini merupakan penghubung yang dapat kita gunakanuntuk menggabung dua tabel. Perhatikan, pernyataan SQL berikut ini dan cermati outputnya.Menampilkan data nama siswa yang mengikuti program keahlian rpl
  23. 23. Sistem Basis DataDian Christien Arisona 23Kita menambahkan pernyataan WHERE untuk menampilkan nama yang ikutprogramkeahlian rpl. Selain itu, kita hanya ingin menampilkan kolom Nama dari tabel Siswa.Perhatikan, pernyataan SQL berikut dan hasil eksekusinya.Menampilkan data nama guru dan bidang keahliannyaContoh ini lebih kompleks dari contoh-contoh di atas. Kita melibatkan tiga buah tabel,yaitu: tabel Guru, tabel Guru_Bidang, dan tabel Bidang. Perhatikan relasi antar tabel tersebutpada gambar 12.11. Ada dua INNER JOIN yang kita gunakan, yaitu: INNER JOIN tabelGuru dengan tabel Guru_Bidang dan INNER JOIN Guru_Bidang dengan tabel Bidang.Perhatikan bagaimana membuat pernyataan INNER JOIN.4.2 Menampilkan record tertentuDidalam SQL, SELECT berarti “menunjukkan data padaku.” Secara khusus, ituberarti “tunjukkan beberapa data dari beberapa tabel.” Berikut adalah garis dasar daristatemen SELECT: SELECT [some or all of the columns] FROM [one or more tables]WHERE [the records meet some condition] Ketika Anda mengeluarkan perintah SELECT,SQL scan data dalam tabel dan menampilkan hasilnya di layar. Argumen pertama PerintahSQL SELECT yang mengatakan kepada kolom (atau field) untuk memasukkan dalam hasil.Untuk melihat semua kolom dalam tabel, ketik tanda bintang (*) segera setelah SELECTdalam bentuk ini:1. SELECT * FROM mytable
  24. 24. Sistem Basis DataDian Christien Arisona 242. SQL memungkinkan Anda menggunakan kata kunci SEMUA bukan tanda bintang.Manfaat untuk memilih semua kolom adalah bahwa Anda tidak harus mengetahuisalah satu nama kolom. Masalah dengan memilih semua kolom, tentu saja, adalahbahwa Anda mungkin harus melihat selusin atau lebih kolom untuk menemukaninformasi yang Anda butuhkan.3. Untuk membatasi jumlah kolom dalam hasil Anda, cukup menulis kolom yang Andainginkan:4. SELECT column1, column2, column3 FROM mytable5. Sebagai contoh, jika Anda ingin melihat nama depan, nama belakang, dan kolomnomor telepon dari tabel Pelanggan Anda, Anda akan memasukkan perintah dalambentuk:SELECT FName, LName, Phone FROM Customers6. Selain menentukan kolom yang SQL akan tampilkan, Anda juga dapat mengontrolurutan data tersebut muncul dengan menambahkan klausa ORDER BY. Cukuptambahkan ke statemen SELECT Anda dalam bentuk:7. SELECT Column1, Column2, Column3 FROM mytable ORDER BY Column38. Anda dapat menggunakan lebih dari satu kunci untuk mengurutkan hasil query.Sebagai contoh, untuk mengurutkan pelanggan Anda secara alfabet berdasarkan namaakhir dan kemudian dengan nama pertama, Anda akan mengeluarkan perintah sepertiini:SELECT Name, LName, Phone FROM Customers ORDER BY Lname,FnameSecara default, SQL menganggap Anda ingin catatan-catatan dalam urutan menaik.Jika Anda ingin menampilkan record dalam urutan, Anda menambahkan DESC kata kunciuntuk perintah SQL dalam bentuk ini:SELECT Column1, Column2, Column3 FROM tablename ORDER BY Column3 DESCKita telah melihat bagaimana perintah SELECT memungkinkan Anda membatasijumlah kolom yang akan muncul dalam hasil Anda. Anda hanya menulikan kolom yang inginAnda lihat. Tapi secara default, SQL mengembalikan semua data dalam tabel. Sebagian besarwaktu, ketika Anda meng-query tabel, Anda ingin menampilkan record yang memenuhikondisi tertentu atau kriteria. Secara garis besar untuk mencari data tertentu, Anda dapatmenambahkan klausa WHERE untuk perintah SELECT Anda dalam bentuk:SELECT column1, column2 FROM tablename WHERE [some condition is true aboutsome field]
  25. 25. Sistem Basis DataDian Christien Arisona 25Misalnya, Anda ingin menampilkan hanya catatan untuk pelanggan yang tinggal dikode pos 10010. Dengan asumsi bahwa bidang kode pos adalah kolom berupa karakter(bukan angka), Anda akan mengeluarkan statemen SELECT berupa:SELECT FName, LName, Phone FROM Customers WHERE Zip_code=”10010″ ORDERBY Lname,FnameKetika SQL mengevaluasi pernyataan ini, maka hanya menampilkan data yangmempunyai 10010 di dalam kolom Zip_code . Klausa ORDER BY memberitahu SQL untukmengatur data untuk diurutkan berdasarkan Lname. Perhatikan bahwa Anda tidak harusmenyertakan Zip_code dalam daftar bidang dalam rangka untuk merujuk ke dalam klausaWHERE.Dalam syntak WHERE, jika kolom yang ingin ditampilkan adalah numerik, Andatidak perlu menyertakan tanda kutip data. Misalnya, jika Anda ingin mencari pelanggan yanglast_purchase field berisi nilai 100 atau lebih, Anda akan mengeluarkan perintah seperti ini:SELECT FName, LName, Phone FROM Customers WHERE Last_purchase >=1004.3 Mengenal EkspresiSQL merupakan bahasa basis data relasional standard. Terdapat macam-macam versiSQL. Versi aslinya pertama kali dikembangkan oleh IBM San JoseResearch Laboratory. Bahasa SQL mempunyai beberapa bagian yaitu :- Data Definition Language (DDL)DDL memberikan perintah untuk mendefinisikan skema relasi, penghapusan relasi, membuatindeks dan modifikasi skema relasi.- Data-Manipulation Language (DML)DML merupakan bahasa query yang berdasarkan pada aljabar relasi dan kalkulus relasi tuple.Termasuk didalamnya adalah perintah untuk penyisipan, penghapusan dan modifikasi.- Embedded DMLBentuk embedded SQL biasanya terdapat dalam bahasa pemrograman multi guna sepertiPL/I, Cobol , Pascal dan Fortran.- View Definition
  26. 26. Sistem Basis DataDian Christien Arisona 26DDL SQL memasukkan perintah untuk mendefinisikan view.- AuthorizationDDL SQL memasukkan perintah untuk menentukan hak-hak akses ke relasi dan view.- IntegrityDDL SQL memasukkan perintah untuk menentukan konstrain integritas yang harus dipenuhioleh data yang tersimpan dalam basis data.- Transaction controlSQL memasukkan perintah-perintah untuk menentukan awal dan akhir transaksi. Beberapaimplementasi juga memungkinkan locking data untuk concurrency control.1. STRUKTUR DASARStruktur dasar dari ekspresi SQL terdiri dari tiga klausa yaitu : select, from dan where.- Klausa Select berhubungan dengan operasi proyeksi dari aljabar relasional.Operasi ini digunakan untuk mendaftar semua atribut yang diinginkan sebagai hasil suatuquery.- Klausa From berhubungan dengan operasi Cartesian-product dari aljabar relasional.Operasi ini mencatat semua relasi yang di”scan” dalam evaluasi suatu query.- Klausa Where berhubungan dengan operasi predikat seleksi dari aljabar relasional.Operasi ini terdiri dari sebuah predikat yang menyangkut atribut atribut dari relasi yangmuncul dalam klausa from.Sebuah query SQL biasanya mempunyai bentuk : Select A1,A2,…..An Fromr1,r2,….rn Where PKlausa SelectContoh : “ Tentukan nama-nama dari semua cabang bank dalam relasi loan “, Query-nya : “select branch-name from loan”. Hasil dari query tersebut adalah sebuah relasi yangberisi sebuah atribut tunggal dengan nama branch-name. Bahasa query formal bersifatmatematis dimana relasi adalah sebuah himpunan sehingga tuple-tuple yang telah muncultidak akan muncul lagi (tidak akan terjadi duplikasi tuple). Tapi dalam prakteknya untukmenghilangkan duplikasi tuple sangat memakan waktu. Oleh karenanya SQL memungkinkan
  27. 27. Sistem Basis DataDian Christien Arisona 27terjadinya duplikasi tersebut. Dari contoh di atas, maka query-nya akan mencatat setiapbranch-name setiap kali branch-name tersebut ditemukan dalam relasi loan.Untuk kasus di atas jika diinginkan untuk menghilangkan duplikasi makadapat disisipkan distinct setelah select. Query di atas ditulis ulang sebagai berikut :”selectdistinct branch-name from loan”. Jika tuple yang terduplikasi diinginkan hilang. Klausa selestdapat juga mengandung operasi aritmatika yaitu operator : +, -, *, / danoperasi terhadap konstanta atau atribut dari tuple. Contoh query berikut : “Select branch-name, loan-number, amount * 100 From loan”. Akan menghasilkan sebuah relasi yang samadengan relasi loan, kecuali bahwa atribut amount dikalikan dengan 100. SQL-92 jugamenyediakan tipe data spesial seperti tipe date, dan memungkinkan beberapa fungsiaritmatika untuk beroperasi pada tipe-tipe ini.Klausa WhereContoh query : “Temukan semua loan number untuk pinjaman-pinjaman yangdibuat pada cabang Perryridge dengan jumlah lebih besar dari $1200”. Query-nya ditulissebagai berikut :”Select loan-number From loan Where branch-name = “Perryridge” andamount >1200”. SQL menggunakan konektivitas lojik and, or dan not dalam klausa where.SQL juga memasukkan perintah between untuk menentukan apakah suatu nilai lebih kecildaripada atau sama dengan suatu nilai lain dan lebih besar daripada atau sama dengan suatunilai lain. Contoh : jika diinginkan menemukan loan-number yang jumlah pinjamannyaantara $90000 dan $100000, ditulis sebagai berikut : “Select loan-number From loan Whereamount between 90000 and 100000”.Klausa FromContoh query : “Untuk semua customer yang mempunyai sebuah pinjaman daribank, temukan nama dan loan number mereka”.Dalam SQL ditulis : “Select distinct customer-name, borrower.loan-number From borrower,loan Where borrower.loan-number = loan.loan.number”Operasi RenameSQL menyediakan mekanisme operasi rename untuk relasi dan atribut.Operasi rename dalam SQL menggunakan klausa as dengan bentuk : Nama-lama as nama-
  28. 28. Sistem Basis DataDian Christien Arisona 28baruContoh : Jika atribut dengan nama loan-number akan diganti dengan nama loan-id, dapatditulis sebagai berikut : “Select distinct customer-name, borrower.loan-number as loan-id From borrower,loan Where borrower.loan-number = loan.loan-number and branch-name =“Perryridge””2. OPERASI HIMPUNANOperasi operasi himpunan pada SQL-92 meliputi : union, intersect, dan except. Unionidentik dengan ∪, intersect identik dengan ∩ dan except identik dengan – pada aljabarrelasional.Operasi UnionContoh : Untuk mendapatkan semua customer yang mempunyai pinjaman,rekening atau keduannya pada bank ditulis : “(select customer-name fromdepositor) union (select customer-name from borrower)”. Operasi union secara otomatisakan menghilangkan duplikasi, tidak seperti klausa select. Sehingga pada query di atas, jikaJones (seorang customer) mempunyai beberapa rekening atau pinjaman (atau keduannya)pada bank, maka Jones hanya akan muncul sekali. Jika duplikasi diinginkan ada maka harusditulis union all.Operasi IntersectContoh : untuk mendapatkan semua customer yang memiliki pinjaman dan rekeningpada bank, query-nya ditulis :”(select distinct customer-name fromdepositor) intersect (select distinct customer-name from borrower)”. Operasi intersectsecara otomatis menghilangkan duplikasi. Jika diinginkan duplikasi tetap ada ditulis intersectall.Operasi ExceptContoh : untuk mendapatkan semua customer yang mempunyai sebuah rekeningtetapi tidak memiliki pinjaman pada bank, ditulis : “(select distinct customer-name fromdepositor) except (select customer-name from borrower)”. Operasi except secara otomatismenghilangkan duplikasi. Jika diinginkan ada maka ditulis : except all.
  29. 29. Sistem Basis DataDian Christien Arisona 293. FUNGSI-FUNGSI AGREGASIYang termasuk fungsi-fungsi agregasi adalah :Average : avgMinimum : minMaximum : maxTotal : sumCount : countFungsi-fungsi di atas telah tersedia. Input untuk avg dan sum haruslah bertipenumerik. Untuk operator lainnya dapat non-numerik.Contoh : untuk mendapatkan rata-rata saldo rekening pada cabang Perryridge, Query-nyadapat ditulis : “Select avg(balance) From account where branch-name = “Perryridge””. Jikafungsi agregasi iningn diterapkan pada kelompok himpunan tuple, maka digunakan klausagroup by. Nama atribut/kel. Atribut dalam klausa group by digunakan untuk membentukgrup/kelompok. Artinya tuple-tuple yang mempunyai nilai yang sama pada semua atributdalam klausa group-by dimasukkan dalam satu grup/kelompok. Contoh : “Select branch-name, avg(balance) From account Group by branch-name”Jika suatu fungsi diterapkan pada grup/kelompok yang dibentuk oleh group bymaka digunakan klausa having setelah group by. Contoh : ingin ditampilkan nama cabangyang mempunyai rata-rata saldo lebih dari 1200. Query-nya : “Select branch-name,avg(balance) From account Group by branch-name having avg (balance)>1200”. Fungsiagregrasi count sering digunakan untuk menghitung jumlah tuple dalam suatu relasi. Notasifungsi ini dalam SQL adalah count (*). Jadi untuk menentukan jumlah tuple dalam relasicustomer, ditulis : “Select count(*) from customer”.4. SUBQUERI TERSARANG (NESTED SUBQUERYS)Biasanya digunakan untuk melalukuan test keanggotaan himpunan,perbandingan himpunan dan kardinalitas himpunan.Keanggotaan HimpunanDigunakan in dan not in untuk melakukan test keanggotaan himpunan. Contoh : untukmendapatkan semua customer yang mempunyai pinjaman dan rekening pada bank.Pertama : menemukan semua pemegang reeking dengan query : (select customer-name from
  30. 30. Sistem Basis DataDian Christien Arisona 30depositor)Kedua : mencari semua customer yang merupakan peminjam dan yang muncul dalam daftarpemegang rekening. Maka dilakukan dengan “menyarangkan” subquery di atas dalam sebuahselect luar (outer select), menjadi : Select distinct customer-name from borrower Wherecustomer-name in (select customer-name from depositor)Perbandingan HimpunanPerhatikan query berikut : “Temukan semua nama cabang bank yang mempunyaiasset lebih besar dari bank-bank yang mempunyai minimal satu cabang berlokasi diBrooklyn”.Query-nya ditulis : “Select branch-name from branch where assets > all (select assets frombranch where branch-city = “Brooklyn”)”.5. MODIFIKASI BASIS DATAMeliputi menambah, menghapus dan mengubah informasi menggunakan SQL.Penghapusan (Deletion)Yang dapat dihapus (delete) hanyalah tuple bukan nilai pada suatu atributtertentu. Dalam SQL, deletion diekspresikan dengan : Delete from r where pDimana p menunjukkan predikat dan r adalah relasi.Contoh :- Hapus semua rekening Smith, ditulis :Delete from depositor where costomer-name = “Smith”- Hapus semua pinjaman dengan jumlah pinjaman antara $1300 dan $1500Delete from loan where amount between 1300 and 1500- Hapus semua rekening pada setiap cabang yang berlokasi di PerryridgeDelete from account where branch-name in (select branch-name from branch where branch-city = “Perryridge”)
  31. 31. Sistem Basis DataDian Christien Arisona 31Penyisipan (Insertion)Untuk menambahkan satu tuple dalam relasi digunakan statement insert. Contoh :Insert into account values (“Perryridge”,”A-9732”,1200)Query ini identik dengan Insert into account (branch-name, account-number,balance) Values(“Perryridge”,”A-9732”,1200). Insert juga dapat dilakukan untuk suatu hasil dari query yanglain.Contoh :Insert into account select branch-name, loan-number, 200 From loan where branch-name =“Perryridge”UpdateDalam situasi tertentu, diinginkan untuk mengganti nilai dalam sebuah tupletanpa harus mengganti semua nilai dalam tuple tersebut. Untuk tujuan ini dapatdigunakan statement update.Contoh:- untuk menaikkan saldo para nasabah sebesar 5% ditulis query sebagai berikut :Update account set balance = balance * 1.05- untuk menaikkan saldo nasabah sebesar 6% bagi nasabah yang saldonya lebih dari$10000, ditulis query sebagai berikut :Update account set balance = balance *1.06 Where balance >100006. BAHASA DEFINISI DATA ( DATA – DEFINITION LANGUAGE)DDL SQL memungkinkan dilakukannya spesifikasi tidak hanya pada himpunan relasitetapi juga informasi untuk setiap relasi, yang meliputi :1. Skema setiap relasi2. Domain nilai setiap atribut relasi3. Konstrain integritas4. Himpunan indeks untuk setiap relasi5. Sekuriti dan autorisasi setiap relasi6. Struktur penyimpanan secara fisik untuk setiap relasi dalam disk.
  32. 32. Sistem Basis DataDian Christien Arisona 32Tipe-tipe Domain dalam SQLSQL-92 standar mendukung bermacam-macam tipe domain yang built-insebagai berikut:char(n) : tipe karakter dengan panjang yang tetap (n) (fixed-length character)varchar(n) : tipe karakter dengan panjang bervariasi. Maksimum panjang n.int : integersmallint : small integernumeric (p,d) : p menunjukkan jumlah digit bilangan dan d menunjukkan julah digitdibelakang titik desimal.real, double precision : floating-point dan double-precision floating pointfloat (n) : floating-point numberdate : tipe kalendertime : tipe hari dalam jam,menit dan detikSQL-92 menggunakan klausa create domain untuk mendefinisikan domain.Contoh :“create domain person-name char(20)”.Definisi Skema dalam SQLUntuk mendefinisikan sebuah relasi dengan perintah create table : Create tabler(A1D1,A2D2,….AnDn, <integrity contraint1>, ……………, <integrity contrantk>). Dimanar adalah nama relasi, setiap AI adalah nama atribut dalam skema relasi, dan DI adalah tipedomain dari nilai dalam domain atribut Ai. Integrity constraint yang diperbolehkan antaralain : primary key (Aj1, Aj2,….Ajn) dan check (P).Contoh :Create table customer (customer-name char(20) not null, customer-street char(30), customer-city char(30), primary key (customer-name))create table branch (branch-name char(15) not null, branch-city char(30), assetsinteger, primary key (branch-name), check(assets >=0))
  33. 33. Sistem Basis DataDian Christien Arisona 33create table account (account-number char(10) not null, branch-name char(15), balanceinteger, primary key (account-number), check (balance >=0))4.4 Mengenal OperatorOperator AND(Dipergunakan untuk menampilkan record yang memiliki kondisi lebih dari satu, danrecord yang ditampilkan hanya yang memenuhi semua kondisi) SELECT nama_karyawan,gaji, kode_divisi FROM karyawan WHERE gaji > 2000000 AND kode_divisi = D0022Operator OR(Dipergunakan untuk menampilkan record yang memiliki kondisi lebih dari satu, danrecord yang ditampilkan yang memenuhi salah satu kondisi) SELECT nama_karyawan, gaji,kode_divisi FROM karyawan WHERE gaji > 2000000 OR kode_divisi = D0022.Operator BETWEEN(Dipergunakan untuk menampilkan record yang berada dalam suatu batasan kondisitertentu) . SELECT nama_karyawan, gaji, kode_divisi FROM karyawan WHERE gajiBETWEEN 2000000 AND 2600000.Operator IN(Dipergunakan untuk menampilkan record yang berada dalam suatu kelompokkondisi tertentu ).SELECT nama_karyawan, gaji, kode_divisi FROM karyawan WHEREkode_divisi IN (D0012, D0022).Operator NOT(Dipergunakan untuk menampilkan record yang tidak termasuk dalam suatu kondisitertentu). SELECT nama_karyawan, gaji, kode_divisi FROM karyawan WHERE NOTkode_divisi = D0012Operator LIKE(Dipergunakan untuk menampilkan record yang memiliki bagian dari suatu kondisitertentu Penggunaan operator LIKE bisa didukung oleh penggunaan karakter %)Operator Aritmetika
  34. 34. Sistem Basis DataDian Christien Arisona 34*, dipergunakan untuk perkalian./, dipergunakan untuk pembagian.+, dipergunakan untuk penambahan.-, dipergunakan untuk pengurangan.contoh Gaji_setahun = gaji * 12Menampilkan fungsi Agregat(SUM, AVG, COUNT, MIN, MAX) Contoh : SELECT SUM(field) FROMnama_tabel. SELECT COUNT (nama_field) FROM nama_tabel SELECT MIN(nama_field)FROM nama_tabel . Dan begitu sterusnya untuk fungsi yg lain.Fungsi Order byDipergunakan untuk menampilkan data yang terurut atau mengurutkan data. Ada duamacam pengurutan : Secara Ascending (Asc)(Pengurutan nilai kolom secara menaik ataumembesar). Secara Descending (Desc)(Pengurutan nilai kolom secara menurun ataumengeci)l.Fungsi Group BYFungsi GROUP BY dipergunakan untuk mengelompokkan record-record pada tabel.Fungsi GROUP by dipergunakan mengikuti operasi agregat pada suatu perintah.Fungsi HavingFungsi HAVING memiliki kesamaan fungsi seperti WHERE. Tetapi fungsi HAVINGdipergunakan bila ada pemanggilan operasi GROUP dalam query dan operand-nya.melibatkan pemanggilan operasi agregat. Jadi fungsi HAVING dipergunakan mengikutiFungsi GROUP BY, untuk memberikan suatu kondisi. SELECT colulmn_expression FROMtable_name GROUP BY grouping_expression HAVING roup_conditionFungsi JOINFungsi JOIN dipergunakan untuk menampilkan data yang berasal lebih dari satu tabel.Ada beberapa macam JOIN dalam SQL :a. Inner JoinsInner joins menggunakan operator pembanding untuk mencocokkan baris (rows) daridua tabel berdasarkan pada nilai yang ada di kolom yang dipergunakan sebagai pembandingatau penghubung dari masing-masing tabel.
  35. 35. Sistem Basis DataDian Christien Arisona 35Contoh :select * from employee inner join department on employee.deparment_id = department.department_idb. Outer JoinsOuter join menampilkan semua baris dari tabel selama memenuhi kondisi walaupuntidak memiliki kecocokan data. Ada tiga macam Outer Join : Left Outer Join, Right OuterJoin dan Full Outer JoinContoh :select * from employee left outer join department on employee.deparment_id = department.department_idc. Cross JoinsCross Join mengembalikan/menampilkan nilai semua baris (record) dari tabel sebelahkiri. Setiap record dari tabel sebelah kiri digabungkan dengan semua record dari tabel sebelahkanan. Bila Cross Join menggunakan WHERE, maka hasil yang ditampilkan sama sepertibila menggunakan INNER JOIN. Cross join juga disebut dengan Cartesian products bilatidak menggunakan WHEREContoh :SELECT trklinik.kdtransaksi, trklinik.kdpasien, pasien.nmpasien FROM trklinik CROSSJOIN pasien WHERE trklinik.kdpasien = pasien.kdpasien ORDER BY kdtransaksi ASC
  36. 36. Sistem Basis DataDian Christien Arisona 36BAB VMenggunakan Fitur pada perintah select5.1 Menggunakan operator is nullOperator IS NULL mengetes nilai yang null. Nilai null berarti nilai tersebut tidaktersedia, tidak diberikan, tidak diketahui, atau tidak dapat digunakan. Oleh karena itu, kitatidak dapat menggunakan “=” karena nilai null tidak dapat sama atau tidak sama dengansuatu nilai.Contoh:Menampilkan data karyawan yang tidak memiliki atasan.SELECT id, last_name, manager_idFROM employeeWHERE manager_id = NULL;SELECT id, last_name, manager_idFROM employeeWHERE manager_id = „ „;Menampilkan data karyawan yang memiliki prosentase komisi.SELECT last_name, title, commission_pctFROM employeeWHERE commission_pct IS NOT NULLNilai-nilai fields dalam sebuah tuple kadang-kadang tidak diketahui (unknown)(Misal, sebuah nilai rating tidak diberikan) atau tidak dapat digunakan (inapplicable) (Misal,tidak mempunyai nama isteri/suami). SQL menyediakan nilai spesial null utk keadaan-keadaan tersebut. Adanya nilai null dapat menimbulkan beberapa komplikasi.Operasi-operasi aritmatika +, -, *, dan /, semuanya menghasilkan nilai null jika salah satuargumennya bernilai null. Null values dapat menimbulkan kelakukan yang tidak diharapkan
  37. 37. Sistem Basis DataDian Christien Arisona 37untuk operasi-operasi aggregasi. COUNT (*) memperlakukan null values seperti halnya nilai-nilai lainnya (ikut diperlhitungkan). Operasi-operasi aggregasi lainnya (COUNT, SUM,AVG, MIN, MAX, dan variasi penggunaan DISTINCT) mengabaikan null values . Nullvalues dapat tidak dibolehkan untuk muncul dengan menspesifikasikan NOT NULL sebagaibagian dari definisi field-field yang diinginkan.Contoh:sname CHAR(20)NOT NULLSelain itu, fields dalam primary key tidak diperbolehkan bernilai null. Untuk initerdapat constraint implisit NOT NULL untuk setiap field yang dinyatakan dalam PRIMARYKEY constraint.5.2 Menggunakan operator between dan not betweenKita dapat menampilkan data berdasarkan jangkauan nilai tertentu menggunakanoperator BETWEEN. Jangkauan yang kita tentukan adalah jangkauan rendah dan tinggi.Contoh:Menampilkan data karyawan yang mulai bekerja antara tanggal 9 Mei 1991 dan 17 Juni1991.SELECT last_name, hire_dateFROM employeeWHERE hire_date BETWEEN „09-MAY-91′ AND „17-JUN-91′;5.3 Menggunakan operator like dan not likemysql> select * from mahasiswa where nama_lengkap like A%;+-----------+---------------+----------------------------+-------------+-----------+| npm | nama_lengkap | alamat | jns_kelamin | gol_darah |+-----------+---------------+----------------------------+-------------+-----------+| 087006118 | Andina Novita | Perum Batara Blok C. No. 8 | P | A || 087006122 | Agus Ramdah | Kawalu No. 210 | L | O |
  38. 38. Sistem Basis DataDian Christien Arisona 38| 087006222 | Abdul Kodir | Manonjaya | L | AB|+-----------+---------------+----------------------------+-------------+-----------+3 rows in set (0.07 sec)Analisa:Operator diatas untuk menampilkan data pada tabel mahasiswa dimana data pada kolomtertentu diawali dengan nilai tertentu.Kita mungkin tidak selalu mengetahui nilai tertentu secara pasti dalam prosespencarian. Kita dapat menampilkan baris data yang sesuai dengan susunan karakter tertentumenggunakan operator LIKE. Dua jenis simbol dapat digunakan untuk membangun stringpencarian.% : Menunjukkan beberapa urutan nilai karakter 0 atau lebih- : Menunjukkan beberapa karakter tunggalContoh:Menampilkan data karyawan yang memiliki nama berawalan huruf “M”.SELECT last_nameFROM employeeWHERE last_name LIKE „M%‟;Menampilkan data karyawan yang memiliki nama tidakmengandung huruf “a”.SELECT last_nameFROM employeeWHERE last_name NOT LIKE „%a%‟;Operator LIKE dapat digunakan sebagai jalan pintas bagi beberapa perbandinganmenggunakan BETWEEN.Contoh 2:Menampilkan data karyawan yang mulai bekerja pada tahun 1991.SELECT last_name, hire_dateFROM employeeWHERE hire_date LIKE „%91′;5.4 Menggunakan order by untuk mengurutkan data
  39. 39. Sistem Basis DataDian Christien Arisona 39Fungsi Order by Dipergunakan untuk menampilkan data yang terurut ataumengurutkan data. Ada dua macam pengurutan : Secara Ascending (Asc)(Pengurutan nilaikolom secara menaik atau membesar). Secara Descending (Desc)(Pengurutan nilai kolomsecara menurun atau mengecil).Maksud dari pengurutan data dengan perintah ORDER BY adalah jika data sebuahtabel diurutkan dengan perintah tersebut, maka data tadi akan diurutkan dari atas ke bawahberdasarkan abjad. Hal ini juga berlaku jika data yang ada dalam bentuk angka. Berikutstruktur perintah SQL :SELECT * FROM [NAMA TABEL] ORDER BY [NAMA KOLOM];5.5 Menggunakan group by untuk mengelompokkan dataFungsi GROUP BY dipergunakan untuk mengelompokkan record-record pada tabel.Fungsi GROUP by dipergunakan mengikuti operasi agregat pada suatu perintah.Statement GROUP BY digunakan bersama dengan fungsi agregat ke grup hasil-setoleh satu atau beberapa kolom.Bentuk umum GROUP BY:SELECT nama_kolom, aggregate_function (nama_kolom)DARI nama_tabel
  40. 40. Sistem Basis DataDian Christien Arisona 40WHERE nama_kolom operator nilaiGROUP BY nama_kolomContoh:Tabel PesananNo Tanngal pesanan Harga Pesanan Pelanggan1 2011/11/12 1000 Hanizar2 2011/10/23 1600 Nilam3 2011/09/02 700 Hanizar4 2011/09/03 300 Hanizar5 2011/08/30 2000 Jeni6 2011/10/04 100 NilamJika kita ingin mencari jumlah total pesanan dari setiap pelanggan.Maka, kita harus menggunakan pernyataan GROUP BY untuk kelompok pelanggan.Bentuk umumnya adalah : SELECT Pelanggan, SUM (Harga pesanan) FROMPesanan GROUP BY Pelanggan maka, hasilnya adalah sebagai berikut :Pelanggan SUM(HargaPesanan)Hanizar 2000Nilam 1700Jeni 2000Contoh 2:Tabel PekerjaanNama Jam kerjaRaisya 12Doni 10Raisya 8Doni 15
  41. 41. Sistem Basis DataDian Christien Arisona 41SELECT Nama, DESC (Jam_Kerja)FROM NamaJam_KerjaGROUP BY NamaMaka, Hasilnya adalah :Nama Jam KerjaDoni 15Raisya 12Doni 10Raisya 8Menggunakan Group By ClausePerhatikan contoh berikut :select department_id, avg(salary) from employees group by department_id ;Pada contoh diatas kita menambahkan suatu fungsi yaitu fungsi Group By yangdigunakan untuk mengelompokkan rata-rata salary berdasarkan department_id. jadi beginikira-kira terjemahan contoh diatas :Tampilkan department id beserta dengan rata-rata salary dari tabel employees dimanarata-rata salarynya dikelompokkan berdasar department_id. jadi intinya , kita mencari nilairata-rata salary dari tiap department.
  42. 42. Sistem Basis DataDian Christien Arisona 42Menggunakan Group By Clause dengan multiple columns(banyak kolom/lebih darisatu kolom)Perhatikan contoh berikut :select department_id as dept_id, job_id, AVG(salary)from employeesgroup by department_id, job_idpada contoh diatas, kita akan menampilkan dept_id , job_id beserta dengan rata-ratasalary dimana rata-rata salarynya didapatkan dengan mengelompokkan department_idterlebih dahulu lalu setelah itu dikelompokkan berdasarkan job_id. Intinya, kita ingin mencarirata-rata salary dari tiap job_id dimana job_id tersebut terdapat dalam department_id yangsama .
  43. 43. Sistem Basis DataDian Christien Arisona 43BAB VIPerintah MySQL untuk Menampilkan Data dari Beberapa TabelDi dalam suatu RDBMS termasuk MySQL, tentunya sudah menjadi suatu kewajaranjika dalam satu database dapat terdiri dari beberapa tabel. Masing-masing tabel tersebut dapatberhubungan (berelasi) satu sama lain. Relasi antar-tabel dapat berupa relasi 1-1 (one-to-one),1-M (one-to-many), atau M-N (many-to-many). Sebagai contoh terlihat pada gambarpemodelan data konseptual (class diagram) di bawah ini. Tabel pelanggan berhubungandengan pesan, pesan dengan barang, dsb.Pada pembuatan suatu aplikasi, terkadang kita juga memerlukan tampilan data yangtidak hanya berasal dari 1 (satu) tabel, namun bisa dari beberapa tabel sekaligus. Contohnya,dari class diagram di bawah, kita ingin menampilkan nama pelanggan berikut transaksi yangpernah dilakukannya. Dari contoh tersebut, kita harus bisa menggabungkan minimal duatabel, yaitu pelanggan dan pesan.Untuk menggabungkan 2 (dua) atau lebih tabel, kita dapat menggunakan bentukperintah JOIN. Akan dijelaskan secara bertahap mengenai bagaimana menggabungkan duatabel atau lebih, terutama untuk menampilkan data yang berasal dari beberapa tabel. Contoh-contoh dalam tutorial ini secara khusus telah dicoba di database MySQL, namun demikiansecara umum perintah penggabungan tabel di semua jenis database tidak jauh berbeda aliassama.
  44. 44. Sistem Basis DataDian Christien Arisona 446.1 Inner JoinYang pertama Inner join = Inner join hanya akan ditampilkan baris baris yang satusama lain memiliki kecocokan . Contoh : SELECT a.Nama, b,penyakit FROM pasien aINNER JOIN penyakit b ON b.id = a.id;+------+---------+| Nama | Penyakit|+------+---------+| Koni | Asma || Huni | Mual || Buri | Pusing |+------+---------+6.2 Left JoinYang kedua Left join = Left join akan menampilkan semua isi tabel sisi kiri ,walaupun data di pasangan joinnya yang disisi kanan nilainya tidak sama ataupun berisi null.Contoh : SELECT a.Nama, b.penyakit FROM pasien a LEFT JOIN penyakit b ON b.id =a.id;+------+---------+| Nama | Penyakit|+------+---------+| Koni | Asma |
  45. 45. Sistem Basis DataDian Christien Arisona 45| Huni | Mual || Buri | Pusing || Orui | NULL |+------+---------+Left join adalah relasi antar tabel, namun query yang ditampilkan adalah mengacupada tabel yang sebelah kiri / tabel utama.misal seperti ini :mysql> select * from mahasiswa order by id asc;+----+--------------+----------+-----------------------+----------+| id | nim | kota | fakultas | angkatan |+----+--------------+----------+-----------------------+----------+| 1 | A10.111.1031 | Semarang | Manajemen Informatika | 2010 || 2 | A10.111.1032 | Semarang | Teknik Informatika | 2010 || 3 | A11.111.1040 | Kudus | Manajemen Informatika | 2009 || 4 | A11.111.1041 | Salatiga | Sistem Informasi | 2009 || 5 | A11.111.1043 | Demak | Teknik Informatika | 2010 |+----+--------------+----------+-----------------------+----------+5 rows in set (0.05 sec)mysql> select * from nim order by id asc;+----+--------------+----------+| id | nim | nama |+----+--------------+----------+| 1 | A10.111.1031 | Musthofa || 2 | A10.111.1032 | Bisri || 3 | A11.111.1040 | Alex || 4 | A11.111.1041 | Graham |+----+--------------+----------+4 rows in set (0.00 sec)Jika kedua tabel itu kita relasi dengan left join maka akan menjadi seperti ini :mysql> select a.id, a.nim, a.kota, a.fakultas, a.angkatan, b.nama from mahasiswa a left joinnim b on a.nim=b.nim;
  46. 46. Sistem Basis DataDian Christien Arisona 46+----+--------------+----------+-----------------------+----------+----------+| id | nim | kota | fakultas | angkatan | nama |+----+--------------+----------+-----------------------+----------+----------+| 1 | A10.111.1031 | Semarang | Manajemen Informatika | 2010 | Musthofa || 2 | A10.111.1032 | Semarang | Teknik Informatika | 2010 | Bisri || 3 | A11.111.1040 | Kudus | Manajemen Informatika | 2009 | Alex || 4 | A11.111.1041 | Salatiga | Sistem Informasi | 2009 | Graham || 5 | A11.111.1043 | Demak | Teknik Informatika | 2010 | NULL |+----+--------------+----------+-----------------------+----------+----------+5 rows in set (0.00 sec)nah terlihat total data yang ditampilkan ada 5 baris, namun lihat pada baris kelima kolomnama, disitu tertulis NULL.6.3 Right JoinSelanjutnya Right join = Right join ini hanya kebalikan left join , akanmenampilkan semua isi tabel sisi kanan, walaupun data di pasangan joinnya yang di sisi kirinilainya tidak sama ataupun berisi null.Contoh :SELECT a.Nama, b.penyakit FROM pasien a RIGHT JOIN penyakit b ON b.id = a.id;+------+---------+| Nama | Penyakit|+------+---------+| Koni | Asma || Huni | Mual || Buri | Pusing |+------+---------+6.4 Full JoinYang terakhir Full join = Full join akan menampilkan semua isi tabel sisi kiriwalaupun data di pasangan joinnya yang disisi kanan nilainya null atau sebaliknya
  47. 47. Sistem Basis DataDian Christien Arisona 47Contoh :SELECT a.Nama, b.Penyakit FROM pasien a FULL JOIN JK b on a. id = b.id;+------+---------+ +------+----------+| Nama | Penyakit| | Nama | JK |+------+---------+ +------+----------+| Koni | Asma | | Koni | Laki || Huni | Mual | | Huni | Perempuan|| Buri | Pusing | | Buri | Laki |+------+---------+ +------+----------+Menjadi+------+---------+----------+| Nama | Penyakit| JK |+------+--------------------+| Koni | Asma | Laki || Huni | Mual |Perempuan || Buri | Pusing | Laki |+------+---------+----------+
  48. 48. Sistem Basis DataDian Christien Arisona 48BAB VIIMenghubungkan mysql ke javaJDBC (Java Database Conectivity) merupakan library yang digunakan untukmengkoneksikan DBMS dengan Java, baik itu MySQL, Oracle, Microsoft ODBC dan DBMSlainnya. Untuk menghubungkan antara Java dan MySQL kita membutuhkan sebuah libraryyang bernama MySQLConector Java.Untuk membuat koneksi dari Java ke MySQL kita memerlukan class yang bernamaDriver. Dan setiap Connector (yang kita gunakan MySQLConnectorJava) memiliki Drivermasing-masing yang selalu mengimplementasi class Driver yang ada dalam paket “java.sql”.Langkah pertama kita harus mengecek keberadaan Driver dalam MySQLConnector java kitagunakan perintah ini untuk mengetesnya (Sebelumnya diimport dulu file jar untuk mysqlconnectornya ya) :1. Mengecek Driver MySQLClass.forName(“com.mysql.jdbc.Driver”).newInstance();Atau lengkapnya seperti ini :
  49. 49. Sistem Basis DataDian Christien Arisona 49import java.sql.Connection;import java.sql.DriverManager;public class koneksi {public static void main (String[]s) {try {Class.forName("com.mysql.jdbc.Driver").newInstance();System.out.println("Driver terbaca");}catch (Exception e) {e.printStackTrace();}}}2. Membuat Connection ke Databaseselanjutnya kita membuat Connection untuk menghubungkan program java dandatabase yang kita buat. Dan untuk membuat Connection kita harus mengetahui host, port,dan nama database yang akan kita gunakan. Selain itu kita juga harus mengetahui usernamedan password yang digunakan untuk koneksi mysql tersebut. Perintahnya seperti ini :Connection con = DriverManager.getConnection(“jdbc:mysql://localhost:3306/dbjava”,“root”, “”);Atau lengkapnya seperti ini :import java.sql.Connection;import java.sql.DriverManager;public class koneksi {public static void main (String[]s) {Connection con;String dbHost = "jdbc:mysql://localhost:3306/dbcrudsederhana";String dbUser = "root";String dbPass = "";try {
  50. 50. Sistem Basis DataDian Christien Arisona 50Class.forName("com.mysql.jdbc.Driver").newInstance();con=DriverManager.getConnection(dbHost, dbUser, dbPass);System.out.println("koneksi");}catch (Exception e) {e.printStackTrace();}}}Biasanya untuk kepentingan Aplikasi Database, suatu koneksi seperti ini akan dipisahdan dibuat menjadi kelas sendiri, lalu didalamnya dibuat method yang akan mengembalikannilai koneksi tersebut, misalnya seperti ini :import java.sql.Connection;import java.sql.DriverManager;public class koneksi {private Connection con;public Connection con {String dbHost = "jdbc:mysql://localhost:3306/dbcrudsederhana";String dbUser = "root";String dbPass = "";try {Class.forName("com.mysql.jdbc.Driver").newInstance();con=DriverManager.getConnection(dbHost, dbUser, dbPass);System.out.println("koneksi");}catch (Exception e) {e.printStackTrace();}return con;}
  51. 51. Sistem Basis DataDian Christien Arisona 51BAB VIIIMenghubungkan mysql ke PHPTerdapat 4 Tahapan dalam pembuatan Script PHP ke MySQL ini1.Pembuatan Koneksi PHP ke MySQL2.Pembuatan Tabel MySQL3.Memasukkan data pada tabel MySQL4.Menampilkan data dari MySQLPertama-tama kita akan membuat script koneksi PHP ke MySQL<?php$hostmysql = “localhost”;$username = “mysql_username”;$password = “mysql_password”;$database = “nama_database”;$conn = mysql_connect(”$hostmysql”,”$username”,”$password”);
  52. 52. Sistem Basis DataDian Christien Arisona 52if (!$conn) die (”Gagal Melakukan Koneksi”);mysql_select_db($database,$conn) or die (”Database Tidak Diketemukan di Server”); ? >Untuk mempermudah, simpan file tersebut dengan nama connect.php , agar jikaterdapat script PHP yang memerlukan untuk terkoneksi dengan database, dapat denganmudah memanggilnya.Penjelasan Script koneksi PHP ke MySQL:a. Penyambungan mysql dipergunakan untuk membuat koneksi menggunakan PHP keserver MySQL. Data untuk hostname, mysql username, dan password yang digunakantelah dideklarasikan oleh variabel $hostmysql, $username, $password.Penulisannya pada script akan sama dengan:mysql_connect(”localhost”,”username”,”password”);b. mysql_select_db dipergunakan untuk memilih database yang akan digunakan.c. if (!$conn) die (”Gagal Melakukan Koneksi”); jika terjadi kegagalan dalam melakukankoneksi (!$conn), maka akan muncul pesan kesalahan Gagal Melakukan KoneksiSetelah itu kita akan membuat tabel MySQL<?php include (”connect.php”);mysql_query(”CREATE TABLE user (namadpnVARCHAR(20),namablkg VARCHAR(20),negara VARCHAR(20))”); ?>Penjelasan:1. include (”connect.php”); kita gunakan untuk mengikutkan sebuah file (contoh fileconnect.php).2. mysql_query perintah ini memiliki format umum yakni ysql_query(string dari query).Script dibawah ini dipergunakan untuk membuat tabel<?php include (”connect.php”);$insert = “INSERT INTO users (type,firstname,lastname)
  53. 53. Sistem Basis DataDian Christien Arisona 53VALUES (’User,’Budi’,’Utomo’)”;mysql_query($insert) or die (”tidak dapat menulis pada tabel”);?>Script dibawah ini dipergunakan untuk menampilkan data dari tabel<?php include (”connect.php”);$query = “SELECT * FROM user”;$result = mysql_query($query);$numrows = mysql_num_rows($result);while($row = mysql_fetch_array($result)){echo “Total: $numrows”;echo “Tipe: $row[type]”;echo “Nama Depan: $row[firstname]”;echo “Nama Belakang: $row[lastname]“;} ?>Daftar Pustaka http://syafiq13.wordpress.com/2012/11/24/melakukan-koneksi-mysql-dengan-java-melalui-jdbc/ http://www.kelasinformatika.com/2012/06/mengenal-sql-secara-mendasar_02.html#ixzz2TWVx7lD6 http://dulida.blogspot.com/2012/02/sintak-pada-sql.html#ixzz2TWTwpbqF http://www.qwords.com/kb/2009/02/membuat-koneksi-php-ke-mysql/http://ahmadnasikun.wordpress.com/2011/03/10/cara-koneksi-java-dengan-database-mysql/ http://blog.seventhsoft.net/2012/09/pengertian-databasebasis-data.html http://setiyawatii.blogspot.com/
  54. 54. Sistem Basis DataDian Christien Arisona 54 https://www.google.com/search?q=pengertian+database&client=firefox-a&hs=ONZ&rls=org.mozilla:enUS:official&tbm=isch&tbo=u&source=univ&sa=X&ei=psCVUd7zMMqArgem6IGICA&ved=0CD8QsAQ&biw=1366&bih=598#imgrc=Geh9W1Jj3iXp9M%3A%3Bql_rljt4N5MXM%3Bhttp%253A%252F%252Fimg.carapedia.com%252Fimages%252Farticle%252Fdatabase.gif%3Bhttp%253A%252F%252Fcarapedia.com%252Fpengertian_definisi_database_info2083.html%3B752%3B516

×