You are on page 1of 39

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

KATA PENGANTAR Puji syukur penulis panjatkan ke Hadirat Allah SWT yang telah melimpahkan rahmat, karunia, nikmat kesehatan, nikmat kesempatan serta hidayah-Nya sehingga penyusunan modul pembelajaran dengan judul Pemograman Basis Data Lantu (MySQL) dapat diselesaikan dengan baik. Sasaran dari penyusunan modul ini adalah agar mahasiswa dapat menggunakan Mysql sebagai server database dan mengimplementasikan MySQL dengan program lain sehingga menghasilkan suatu produk yang berguna. Terimakasih penulis ucapkan kepada semua pihak yang telah membantu dalam penulisan modul Pemograman Basis Data Lanjut (MySQL) ini, Penulis mengharapkan saran dan kritik yang membangun demi kesempurnaan modul ini. Semoga modul ini dapat bermanfaat khususnya bagi para pembaca.

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

BAB II BAB

MENGENAL MYSQL

Standar Kompetensi: 1. Mahasiswa dapat mengetahui, memahami, menguasai dan mampu mengimplementasikan teori, konsep dan prinsip pemograman database MySQL dengan logika pemograman yang besar, ringkas, dan tetpat dalam penerapannya di bidang teknologi informasi

1.1 Pendahuluan Seiring degan waktu, banyak perkembangan yang terjadi pada dunia internet termasuk pesatnya perkembangan perangkat lunak Apache MySQL dan PHP yang selalu di-update oleh produsennya masing-masing, sebagai pertimbangan, versi terbaru dari Apache 2.2.11 , versi terbaru dari PHP adalah PHP 5.2.9, dan versi terbaru dari MySQL adalah MySQL 5.1.32. 1.2 Apat Itu MySQL? MySQL (bisa dibaca dengan mai-es-ki-el atau bisa juga mai-se-kuel) adalah suatu perangkat lunak Database Relasi (Relational Database Management System atau RDBMS), seperti halnya ORACLE, Postgresql, MS SQL, dan sebagainya. Jangan di salah artikan MySQL dengan SQL, Oke. SQL (singaktan dari Structured Query Language) sendiri adalah suatu sintaks perintah-perintah tertentu atau bahasa (pemograman) yang digunakan untuk mengelola suatu database. Jadi, MySQL dan SQL adalah dua makhluk yang berbeda. Eh, kok makhluk ya Mudahnya, MySQL adalah softwarenya, dan SQL adalah bahasa perintahnya. 1.3 MySQL Sebagai Database Server Software database mulai bermunculan seiring dengan bertambahnya kebutuhan akan database server. Salah satu dari pendatang baru dalam dunia database adalah MySQL, sebuar server/client database SQL yang berasal dari Skandinavia. MySQL terdiri atas server SQL, client program untuk mengakses server, tools untuk administrasi, dan interface program untuk menulis program sendiri. Pengembangan MySQL dimulai pada tahun 1979 dengan tool database UNIREG yang dibuat oleh Micheal Monty Widenius untuk perusahaan TcX di

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

Swedia. Kemudian pada tahun 1994, TcX mulai mencari server SQL untuk mengembangkan aplikasi Web. Mereka menguji beberapa server komersial namun semuanya masih terelalu lambat untu tabel-tabel TcX yang besar. Tahun 1995 David Axmark dari Detro HB berusaha menekan TcX untuk merelease MySQL di Internet. Ia juga membuat dokumentasi MySQL yang dibuild untuk GNU configure utility. MySQL 3.11.1 dipublikasikan di dunia tahun 1996 dan didistribusikan untuk linux dan Solaris. Sekarang ini MySQL bekerja untuk banyak platform serta tersedia source codenya. 1.4 Mengapa Memilih MySQL Jika anda mencari system manajemen database yang murah atau bahkan gratis, ada beberapa pilihan antara lain MySQL, mSQL, PostgresSQL, atau salah satu dari produk vendor komersial yang gratis. Ketika dibandingkan antara MySQL dengan system database yang lain, maka perlu dipikirkan apa yang paling penting untuk anda. Apakah performa, support, fitur-fitur SQL, kondisi keamanan dan lisensi, atau masalah harga. Dengan pertimbangan tersebut, MySQL memiliki banyak hal yang bisa ditawarkan, antara lain: Kecepatan Banyak ahli berpendapat MySQL merupakan server tercepat Kemudahan penggunaan MySQL punya performa tinggi namun merupakan database yang simple sehingga mudah disetup dan dikonfigurasi. Harga MySQL cenderung gratis untuk penggunaan tertentu. Mendukung query language MySQL mengerti bahasa SQL (Structured Query Language) yang merupakan pilihan system database modern. Anda juga dapat mengakses MySQL lewat protocol ODBC (Open Database Connectivity) buata Microsoft.

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

Kapabilitas Banyak klien dapat mengakses server dalam satu waktu. Mereka dapat menggunakan banyak database secara simultan. Kapabilitas Banyak klien dapat mengakses server dalam satu waktu. Mereka dapat menggunakan banyak database secara simultan. Konektifitas dan sekuritas Database MySQL dapat diakses dari semua tempat di Internet dengan hak akses tertentu. Pertabilitas MySQL dapat berjalan dalam banyak varian UNIX dengan baik, sebaik seperti saat berjalan di system non-UNIX. Distribusi yang terbuka MySQL mudah didapatkan dan memiliki source code yang boleh disebarluaskan sehingga bisa dikembangkan lebih lanjut. Sedangkan pengguna database MySQL di antara lain adalah: Silicon Graphics (http://www.sql.com) Siemens (http://www.siemens.com) Terjemahan Al Quran dalam bahasa Indonesia (http://netmon.itb.ac.id/~quran/) ITB digital Library (http://digital.lib.itb.ac.id) Game Strategi Online Multiplayer Kurusetra (http://www.kurusetra.com)

Bagaimanapun, mungkin yang paling menarik dari semua karakteristik di atas adalah kenyataannya bahwa MySQL gratis (free). Hal ini benar karena T.c.X menawarkan MySQL sebagai produk gratis untuk umum.

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

1.5 Mengenal SQL (Structured Query Language) SQL (Structured Query Language) adalah sebuah bahasa permintaan database yang terstruktur. Bahasa SQL ini dibuat sebagai bahasa yang dapat merelasikan beberapa tabel dalam database maupun merelasikan antar database. SQL dibagi menjadi tiga bentuk Query, yaitu: 1.5.1 DDL (Data Definiton Language) DDL adalah sebuah metode Query SQL yang berguna untuk mendefinisikan data pada sebuah Database, Query yang dimiliki DDL adalah: CREATE DROP ALTER : Digunakan untuk membuat Database dan Tabel : Digunakan untuk menghapus Tabel dan Database : Digunakan untuk melakukan perubahan struktur tabel yang telah dibuat, baik menambah Field (Add), mengganti nama Field (Change) ataupun menamakannya kembali (Rename), dan menghapus Field (Drop)

1.5.2 DML (Data Manipulation Language) DML adalah sebuah metode Query yang dapat digunakan apabila DDL telah terjadi, sehingga fungsi dari Query DML ini untuk melakukan pemanipulasian database yang telah dibuat. Query yang dimiliki DML adalah: INSERT UPDATE DELETE SELECT : Digunakan untuk memasukkan data pada Tabel Database : Digunakan untuk pengubahan terhadap data yang ada pada Tabel di Database : Digunakan untuk penghapusan data pada Tabel Datatabse : Digunakan untuk memunculkan data dari Tabel di database

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

1.5.3 DCL (Data Control Language) DCL adalah sebuah metode Query SQL yang digunakan untuk memberikan hak otorisasi mengakses Database, mengalokasikan space, pendefinisian space, dan pengauditan penggunaan database. Query yang dimiliki oleh DCL adalah:

GRANT REVOKE GRANT COMMIT ROLLBACK

: Untuk mengizinkan user mengakses tabel dan database : Digunakan untuk pengubahan terhadap data yang ada pada Tabel di Database : Membuat save point penyimpanan database : Membatalkan penyimpanan database

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

BAB II

FUNGSI-FUNGSI PADA MYSQL

2.1 Mengaktifkan Direktori MySQL Sever Untuk dapat menggunakan MySQL terlebih dahulu aktifkan Server MySQL dengan menghidupkan daemond MySQL. Program MySQL yang digunakan pada modul ini adalah AppServ 2.5.9. Oleh karena itu, untuk menjalankan daemond MySQL terdapat pada direktori C;\AppServ\MySQL\bin Untuk masuk kedalam server MySQL, bukalah MS-DOS Promt anda melalui Run kemudian ketikan Command atau Cmd. Selanjutnya masuklah ke dalam direktori MySQL di Instalasi AppServ. Maka anda dapat masuk ke dalam direktori MySQL melalui Command Prompt.

2.2 Mengaktifkan Direktori MySQL Sever MySQL adalah sebuah database server yang sangat aman. MySQL memiliki kemampuan manajemen user dalam mengakses. Jadi, tidak sembarang user dapat mengakses. Maka sebelum anda memiliki User untuk mengakses MySQL anda juga dapat mengakses database menggunakan user root. Berikut adalah perintah yang digunakan untuk mengkoneksikan kedalam server MySQL: Shell > mysql u root p Enter password: ****

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

Keterangan: tanda u menerangkan bahwa kita masuk menggunakan username bernama root, tanda p menyatakan kita masuk menggunakan password. Setelah kita melakukan login dengan username root dan password root maka akan muncul MySQL Command Line Client Console berikut:

Untuk dapat keluar dari Server MySQL, kita dapat mengetikan instruksi quit atau \q: Mysql>quit Bye Atau Mysql>\q Bye 2.3 Bantuan dalam MySQL MySQL menyediakan beberapa fasilitas bantuan yang berguna untuk mendokumentasikan atau memanipulasikan server yaitu dengan cara mengetikan intruksi \h atau \? Mysql> \h Semua Query harus diakhiri dengan tanda titik koma (;). Tanda ini menunjukkan bahwa query telah berakhir dan siap dieksekusi.

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

Help ? Clear

(\h) : Digunakan untuk menampilkan file bantuan pada MySQL (\?) : Perintah ini sama dengan perintah help (\c) : Berguna untuk membersihkan atau menggagalkan semua perintah yang telah berjalan dalam suatu prompt (\r) : untuk melakukan penyegaran koneksi ke dalam database yang ada pada server host menampilkan data secara

Connect Ego Go Tee Contoh Note Print Prompt Source

(\G) : berguna untuk horizontal

(\g) : memberi perintah server untuk mengeksekusi (\T) : mengatur tempat file yang akan didokumentasi : mysql > \T d:\data.doc Logging to file d:\data.doc; (\t) : akhir dari (\T) yang berguna untuk mendokumentasikan semua query (\p) : mencetak semua query perintahkan ke layar yang telah kita

(\R) : Mengubah prompt standar sesuai keinginan (\.) : Berguna untuk mengeksekusi query dari luar yang ber ekstensi .sql

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

BAB III

ADMINISTRASI MYSQL

MySQL selaku database server yang mampu berjalan pada jaringan, tentu saja MySQL harus memiliki kemampuan khusus yang berguna untuk melakukan manajemen user atau mendukung system database yang bersifat client/server. 3.1 Membuat User Baru Untuk dapat menciptakan user baru pada database mysql yang terdapat pada tabel user. Dapat dilakukan dengan menggunakan pernyataan SQL bernama INSERT. Sintaknya seperti berikut:
INSERT INTO user(host,user,password) VALUES (%,username,password);

Contoh:
Mysql>INSERT INTO user(host,user,password) VALUES (localhost,budi,MD5(paswortku));

Query OK, 1 row affected, 4 warnings (0.00 sec) Setelah anda memberikan perintah diatas, berikan perintah: FLUSH PRIVILEGES; Contoh: Mysql> FLUSH PRIVILEGES; Query Ok, 0 rows affected (0,00 sec)

3.2 Membuat User Baru Apabila user telah dibuat terlebih dahulu namun lupa untuk memberikan Hak Wewenang User. Kita dapat memberikan hak wewenang dengan menggunakan perintah: Query UPDATE. Sintax yang digunakan sebagai berikut: UPDATE user SET select_priv=y,insert_priv=y,update_priv=y, Delete_priv=y,create_priv=y,drop_priv=y,alter_priv=y WHERE user=budi;

10

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

BAB IV

DDL
(DATA DEFINITION LANGUAGE)

DDL adalah sebuah metode Query SQL yang berguna untuk mendefinisikan data pada sebuah Database. 4.1 Type Data pada MySQL Tipe data adalah suatu bentuk pemodelan data yang dideklarasikan pada saat melakukan pembuatan tabel. Tipe data ini akan mempengaruhi setiap data yang akan dimasukkan ke dalam sebuah tabel. Data yang akan dimasukkan harus sesuai dengan tipe data yang dideklarasikan. Berbagai type data pada MySQL dapat dilihat pada tabel berikut: TIPE DATA
TINYINT SMALLINT MEDIUMINT INT INTEGER BIGINT

KETERANGAN
Ukurang 1 byte. Bilangan bulat terkecil, dengan jangkauan untuk bilangan bertanda: -128 sampai dengan 127 dan untuk yang tidak bertanda: 0 s/d 255. Bilangan tak bertanda dengan kata UNSIGNED Ukuran 2 byte. Bilangan bulat dengan jangkauan untuk bilangan bertanda: -32768 s/d 32767 dan untuk yang tidak bertanda: 0 s/d 65536 Ukuran 3 byte. Bilangan bulat dengan jangkauan untuk bilangan bertanda : -8388608 s/d 8388607 dan untuk yang tidak bertanda : 0 s/d 16777215 Ukuran 4 byte. Bilangan bulat dengan jangkauan untuk bilangan bertanda : -2147483648 s/d 2147483647 dan untuk yang tidak bertanda : 0 s/d 4294967295 Ukuran 4 byte. Sinonim dari int Ukuran 8 byte. Bilangan bulat terbesar dengan jangkauan untuk bilangan bertanda : -9223372036854775808 s/d 9223372036854775807 dan untuk yang tidak bertanda : 0 s/d 1844674473709551615 Ukuran 4 byte. Bilangan pecahan Ukuran 8 byte. Bilangan pecahan Ukuran 8 byte. Sinonim dari DOUBLE Ukuran M byte. Bilangan pecahan, misalnya DECIMAL(5,2 dapat digunakan untuk menyimpan bilangan -99,99 s/d 99,99 Ukuran M byte. Sinonim dari DECIMAL, misalnya NUMERIC(5,2) dapat digunakan untuk menyimpan bilangan -99,99 s/d 99,99

FLOAT DOUBLE REAL DECIMAL(M,D) NUMERIC(M,D)

Type Data untuk Bilangan (Number)


11 By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

TIPE DATA
DATETIME DATE TIMESTAMP TIME YEAR

KETERANGAN
Ukuran 8 byte. Kombinasi tanggal dan jam, dengan jangkauan dari 1000-01-01 00:00:00 s/d 9999-12-31 23:59:59 Ukuran 3 Byte. Tanggal dengan jangkauan dari 1000-01-01 s/d 9999-12-31 Ukuran 4 byte. Kombinasi tanggal dan jam, dengan jangkauan dari 1970-01-01 00:00:00 s/d 2037 Ukuran 3 byte. Waktu dengan jangkauan dari 839:59:59 s/d 838:59:59 Ukuran 1 byte. Data tahun antara 1901 s/d 2155

Type Data untuk Tanggal dan Jam TIPE DATA


CHAR VARCHAR TINYBLOB, TINYTEXT BLOB, TEXT MEDIUMBLOB, MEDIUMTEXT LONGBLOB, LONGTEXT

KETERANGAN
Mampu menangani data hingga 255 karakter. Tipe data CHAR mengharuskan untuk memasukkan data yang telah ditentukan oleh kita. Mampu menangani data hingga 255 karakter. Tipe data VARCHAR tidak mengharuskan untuk memasukkan data yang telah ditentukan oleh kita. Ukuran 255 byte. Mampu menangani data sampai 2^8-1 data. Ukuran 65535 byte. Type string yang mampu menangani data hingga 2^16-1 (16M-1) data. Ukuran 16777215 byte. Mampu menyimpan data hingga 2^241 (16M-1) data. Ukuran 4294967295 byte. Mampu menyimpan data hingga berukuran GIGA BYTE. Tipe data ini memiliki batas penyimpanan hingga 2^32-1 (4G-1) data. Ukuran 1 atau 2 byte. Tergantung jumlah nilai enumerasinya (maksimum 65535 nilai) 1,2,3,4 atau 8 byte, tergantung jumlah anggota himpunan (maksimum 64 anggota)

ENUM(nilai1,nilai2,...,nilaiN) SET(nilai1,nilai2,...,nilaiN)

Type Data untuk Karakter dan Lain-lain

12

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

4.2 Menciptakan Database Database adalah sebuah media utama yang harus dibuat dalam membangun sebuah basis data agar nantinya dapat kita letakkan beberapa tabel dengan kolomnya (fieldnya). Perintah yang digunakan untuk menciptakan database pada MySQL dengan syntax berikut: CREATE DATABASE nama_database; Contoh: Mysql > CREATE DATABASE dokter; Query OK, 1 row affected (0.11 sec) Pada contoh diatas, query OK menyatakan bahwa pembuatan database dengan nama dokter terlah berhasil dibuat, untuk melihat database yang ada pada MySQL dapat menggunakan syntax berikut: SHOW DATABASES; Contoh:

4.3 Menghapus Database Untuk menghapus database yang telah dibuat dapat menggunakan query SQL berikut: DROP DATABASE nama_database;

13

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

Drop berarti menghapus. Query SQL ini berfungsi untuk menghapus sebuah database, seperti contoh berikut:

4.4 Menciptakan Tabel Tabel adalah obyek utama yang harus ada pada sebuah database karena di dalamnya semua data akan disimpan. Tabel terletak pada sebuah database, sehingga pembuatan tabel dilakukan setelah sebuah database telah dibuat. Dalam tabel terdapat baris dan kolom. Baris diistilahkan dengan recordset dan kolom dengan field.
Recordset Field

Kode D01 D02

Nama Dr. Boy Trimoyo Dr. Umar

Alamat Bandung Jakarta

No. HP 08123491111 08134999999

Untuk membuat sebuah tabel atau lebih, database harus diaktifkan terlebih dahulu karena tabel akan dibuat ke dalam database yang akan diaktifkan. Syntax untuk mengaktifkan database adalah sebagai berikut: USE nama_database; Contoh: Mysql > USE dokter; Database changed Setelah masuk ke dalam database yang dipilih, anda dapat membuat sebuah tabel atau lebih. Untuk membuat tabel dapat menggunakan syntak di bawah ini:

14

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

CREATE TABLE nama_tabel ( Field-1 type(length), Field-2 type(length), Field-3 type(length), , Field-N type(length)); Contoh:

Pada contoh di atas, query OK menyatakan bahwa pembuatan tabel dengan nama tb_dokter berhasil dibuat, untuk melihat tabel yang ada pada database dapat menggunakan syntax berikut: SHOW TABLES; 4.5 Melihat Struktur Tabel Setelah tabel dibuat, anda dapat melihat tipe data dan panjang recordset dengan cara menampilkan struktur tabel. Perintah yang digunakan untuk menampilkan struktur tabel adalah: DESC nama_tabel; Atau: DESCRIBE nama_tabel; Contoh:

15

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

4.6 Menghapus Tabel Untuk menghapus tabel yang telah dibuat dapat menggunakan query SQL berikut: DROP TABLE nama_tabel; Drop berarti menghapus. Query SQL ini berfungsi untuk menghapus sebuah tabel, seperti contoh berikut: Mysql > DROP TABLE dokter; Query OK, 0 rows affected (0.03 sec) 4.7 Membuat Kunci Primer (Primary Key) Dalam membuat sebuah database, kita akan menemukan sebuah record yang datanya tidak boleh sama dengan record yang lain. Agar data tidak kembar maka harus dibuat kolom yang dideklarasikan sebagai kunci primary (primary key), Primary key hanya diperbolehkan dibuat satu kunci. Syntax untuk menciptakan kunci primer (primary key) adalah: CREATE TABLE nama_tabel ( Field-1 type(length) primary key, Field-2 type(length), Field-3 type(length), , Field-N type(length)); Contoh:

16

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

4.8 Membuat Kolom Unik (Unique) Kolom Unique adalah sebuah bentuk kolom yang tidak mengizinkan adanya data kembar. Apabila pada proses input terdapat data kembar maka proses tersebut akan digagalkan atau ditolah oleh database. Syntax untuk menciptakan kolom unik (Unique) adalah: CREATE TABLE nama_tabel ( Field-1 type(length) primary key, Field-2 type(length), Field-3 type(length), , Field-N type(length) UNIQUE (field)); Contoh:

4.9 Memanipulasi Tabel Perubaha tabel yang telah dibuat akan selalu dilakukan meingingat perkembangan database, termasuk diantaranya menambahkan beberapa field pada tabel, mengganti nama field atau tabel, menghapus field dan mengganti type data. 4.9.1 Menambah Field pada Tabel Untuk melakukan penambahan field maka ALTER spesifikasi yang digunakan adalah ADD. Syntax yang digunakan adalah: ALTER TABLE nama_tabel ADD nama_field type data(length);

17

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

Contoh:

4.9.2 Mengganti Nama Field dan Nama Tabel Query SQL untuk merubah nama kolom (field) adalah sebagai berikut:
ALTER TABLE nama_tabel CHANGE field_lama field_baru type_data(length); Contoh:

Sedangkan query SQL untuk mengganti nama tabel adalah sebagai berikut: ALTER TABLE nama_tabel_lama RENAME nama_tabel_baru; Atau: RENAME TABLE nama_tabel_lama TO nama_tabel_baru;

18

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

Contoh:

4.9.3 Memodifikasi Tipe Data Query SQL untuk melakukan modifikasi terhadap field yang sudah dibuat adalah MODIFY, dengan format syntax sebagai berikut: ALTER TABLE nama_tabel MODIFY field type_data(length); Contoh: Misalnya pada tabel tb_dokter terdapat field jenis_kelamin dengan tipe data char(1) kemudian diganti menjadi tipe data enum(P,W);

19

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

4.9.4 Menghapus Field pada Tabel Pada pembuatan tabel sering kali terjadi kesalahan seperti pada field tabel yang berlebih dan lain-lain. Untuk melakukan penghapusan field maka ALTER spesifikasi yang digunakan adalah DROP, Syntax yang digunakan adalah: ALTER TABLE nama_tabel DROP nama_field;

20

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

BAB IV

DML
(DATA MANIPULTAION LANGUAGE)

DML adalah sebuah metode query yang dapat digunakan apabila DDL telah terjadi, sehingga fungsi dari Query DML ini untuk melakukan pemanipulasion database yang telah dibuat. Buatlah database payroll dan didalamnya buat pula tabel tb_karyawan dengan struktur tabel seperti berikut: FIELD Noid Nama Jenkel Kota Kodepos Tgllahir TYPE Int Varchar Char Varchar Varhcar Date LENGTH 3 35 1 30 6 KETERANGAN Primary key, auto_increment

4.1 Mengisi data ke dalam tabel Memasukkan data atau entry data, di semua program yang menggunakan query SQL sebagai standar permintaanya, digunakan perintah INSERT. Syarat untuk memasukkan data adalah telah terciptanya tabel pada sebuah database. Syntax yang digunakan adalah: INSERT INTO nama_tabel (field-1,field-2,,field-N) VALUES(value-1,value-2,,value-N); Kita akan mulai mengisi data karyawan ke dalam tabel. Cara pertama sebagai berikut:
Mysql > -> -> -> insert into tb_karyawan (nama,jenkel,kota,kodepos,tgllahir) values ('Ahmad Zobari','L','Pekanbaru','28421','1980-10-02');

Query OK, 1 row affected (0.03 sec)

21

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

Jika diperhatikan bahwa dalam pemasukan data yang berjenis karakter. Selalu diapit dengan tanpda kutip (). Bisa juga digunakan tanda kutip ganda (). Tetapi jangan dicampur dengan tanda kutip ganda dan tanda kutip tunggal. Pada contoh di atas, perhatikan ketika penulisan tanggal lahir, menggunakan format tahunbulan-tanggal. Memang agak janggal, tapi begitulah memang standar MySQL untuk format penulisan tanggal. Kalau Ada perhatikan lebih teliti, mengapa kita tidak memasukkan data untuk kolom noid? ini karena sifat kolom noid yang auto_increment. Sehingga di akan secara otomatis berisi angka 1, dan terus bertambah 1, seiring dengan penambahan data. Nah, kita akan memasukkan 3 buah record lagi dengan cara:
mysql> insert into tb_karyawan -> (nama,jenkel,kota,kodepos,tgllahir) -> values -> ('Sundariwati','P','Pekanbaru','28761','1978-11-12'), -> ('Rudi','L','Tembilahan','28654','1988-12-07'), -> ('Zulkarman','L','Bekasi','17211','1978-10-10'); Query OK, 3 rows affected (0.05 sec) Records: 3 Duplicates: 0 Warnings: 0

Sekarang kita coba memasukkan data dengan cara yang kedua:


mysql> insert into tb_karyawan -> set nama='Yuliawati', -> jenkel='P', -> kota='Bandung', -> kodepos='12993', -> tgllahir='1982-12-06'; Query OK, 1 row affected (0.03 sec)

Dan kita akan mencoba cara yang ketiga seperti berikut:


mysql> insert into tb_karyawan -> values('Mawar','P','Jakarta','12123','1985-09-01'); ERROR 1136 (21S01): Column count doesn't match value count at row 1

Lho, aduh., kok error ya? Kenapa nich?, col. J, Perhatikan pada pesan error yang terjadi. Di sana dinyatakan bahwa jumlah kolom tidak sesuai dengan jumlah masukan data yang ada. Okelah kalau begitu, kita ingat kalo jumlah kolom ada 6, yaitu noid, nama, jenkel, kota, kodepos dan tgllahir. Sedangkan data yang kita masukkan untuk 5 kolom saja, yaitu nama, jenkel, kota, kodepos dan tgllahir. Jadi gimana duonk dengan nasibnya kolom noid? Masa dicuekin aja sich? Itu sebabnya jadi error. Walaupun kolom noid ini sifatnya AUTO_INCREMENT, khusus untuk bentuk ketiga ini dia harus diisi juga dengan nilai DEFAULTNA yaitu NULL sehingga perintah diatas kita ubah sedikit menjadi:

22

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

mysql> insert into tb_karyawan -> values(NULL,'Mawar','P','Jakarta','12123','1985-09-01'); Query OK, 1 rows affected (0.03 sec)

Kita sudah memasukan beberapa data. Bagaimana untuk melihat data-data yang sudah kita masukkan tadi?. 4.2 Mengisi data ke dalam tabel Kita dapat melihat data yang ada di dalam tabel dengan menggunakan perintah SELECT. Perintah ini adalah perintah yang akan sering kita gunakan nantinya. Kita mulai dengan cara paling sederhana terlebih dahulu.
mysql> select * from tb_karyawan; +------+--------------+--------+------------+---------+------------+ | noid | nama | jenkel | kota | kodepos | tgllahir | +------+--------------+--------+------------+---------+------------+ | 1 | Ahmad Zobari | L | Pekanbaru | 28421 | 1980-10-02 | | 2 | Sundariwati | P | Pekanbaru | 28761 | 1978-11-12 | | 3 | Rudi | L | Tembilahan | 28654 | 1988-12-07 | | 4 | Zulkarman | L | Bekasi | 17211 | 1978-10-10 | | 5 | Yuliawati | P | Bandung | 12993 | 1982-12-06 | +------+--------------+--------+------------+---------+------------+ 5 rows in set (0.00 sec)

Perintah di atas menampilkan seluruh data yang ada di dalam tabel tb_karyawan, karena menggunakan tanda asterisk (*) di dalam perintah SELECT. Bagaimana kalau kita hanya ingin menampilkan kolom nama dan jenis kelamin saja?
mysql> select nama,jenkel from tb_karyawan; +--------------+--------+ | nama | jenkel | +--------------+--------+ | Ahmad Zobari | L | | Sundariwati | P | | Rudi | L | | Zulkarman | L | | Yuliawati | P | +--------------+--------+ 5 rows in set (0.00 sec)

Kalau kita hanya ingin menampilkan data-data karyawan yang berjenis kelamin perempuan saja, bagaimana caranya? Cukup dengan menambahkan perintah WHERE pada SELECT

23

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

mysql> select nama,jenkel from tb_karyawan -> where jenkel='P'; +-------------+--------+ | nama | jenkel | +-------------+--------+ | Sundariwati | P | | Yuliawati | P | +-------------+--------+ 2 rows in set (0.02 sec)

Menampilkan data berdasarkan urutan nama karyawan dengan menambahkan perintah ORDER BY pada SELECT
mysql> select * from tb_karyawan -> order by nama; +------+--------------+--------+------------+---------+------------+ | noid | nama | jenkel | kota | kodepos | tgllahir | +------+--------------+--------+------------+---------+------------+ | 1 | Ahmad Zobari | L | Pekanbaru | 28421 | 1980-10-02 | | 3 | Rudi | L | Tembilahan | 28654 | 1988-12-07 | | 2 | Sundariwati | P | Pekanbaru | 28761 | 1978-11-12 | | 5 | Yuliawati | P | Bandung | 12993 | 1982-12-06 | | 4 | Zulkarman | L | Bekasi | 17211 | 1978-10-10 | +------+--------------+--------+------------+---------+------------+ 5 rows in set (0.00 sec)

Atau diurutkan berdasarkan kota:


mysql> select * from tb_karyawan -> order by kota; +------+--------------+--------+------------+---------+------------+ | noid | nama | jenkel | kota | kodepos | tgllahir | +------+--------------+--------+------------+---------+------------+ | 5 | Yuliawati | P | Bandung | 12993 | 1982-12-06 | | 4 | Zulkarman | L | Bekasi | 17211 | 1978-10-10 | | 1 | Ahmad Zobari | L | Pekanbaru | 28421 | 1980-10-02 | | 2 | Sundariwati | P | Pekanbaru | 28761 | 1978-11-12 | | 3 | Rudi | L | Tembilahan | 28654 | 1988-12-07 | +------+--------------+--------+------------+---------+------------+ 5 rows in set (0.00 sec)

Nah kalo yang sekarang diurutkan berdasarkan nama, tetapi dengan urutan terbalik (descending). Cukup dengan menambahkan perintah DESC pada SELECT:
mysql> select * from tb_karyawan -> order by nama desc; +------+--------------+--------+------------+---------+------------+ | noid | nama | jenkel | kota | kodepos | tgllahir | +------+--------------+--------+------------+---------+------------+ | 4 | Zulkarman | L | Bekasi | 17211 | 1978-10-10 | | 5 | Yuliawati | P | Bandung | 12993 | 1982-12-06 | | 2 | Sundariwati | P | Pekanbaru | 28761 | 1978-11-12 | | 3 | Rudi | L | Tembilahan | 28654 | 1988-12-07 | | 1 | Ahmad Zobari | L | Pekanbaru | 28421 | 1980-10-02 | +------+--------------+--------+------------+---------+------------+ 5 rows in set (0.00 sec)

24

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

Ternyata kita perlu menambahkan sebuah kolom lagi, yaitu kolom gaji. Kolom gaji merupakan kolom numeric yang menampung data gaji pokok karyawan per bulannya. Jadi, kita memerlukan kolom dengan jenis data INT dengan lebar data 12 digit. Penerapannya sebagai berikut:
mysql> alter table tb_karyawan -> add gaji int(12) not null default 0; Query OK, 5 rows affected (0.25 sec) Records: 5 Duplicates: 0 Warnings: 0

Sekarang kita cek dulu struktur tabelnya:


mysql> describe tb_karyawan; +----------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----+---------+----------------+ | noid | int(3) | NO | PRI | NULL | auto_increment | | nama | varchar(35) | YES | | NULL | | | jenkel | char(1) | YES | | NULL | | | kota | varchar(30) | YES | | NULL | | | kodepos | varchar(6) | YES | | NULL | | | tgllahir | date | YES | | NULL | | | gaji | int(12) | NO | | 0 | | +----------+-------------+------+-----+---------+----------------+ 7 rows in set (0.05 sec)

Tru data yang ada pada kolom gaji gimana? Kan blum di inputkan. OK, kita cek terlebih dahulu.

Loh, kok NOL ya?, sebab waktu kita menambahkan fiel gaji tadi, sudah kita set NOT NULL dan nilai defaultnya NOLL 4.3 Meng-Update Data Pada Tabel Sekarang kita memasukan data gaji masing-masing karyawan dengan menggunakan perintah UPDATE, kita mulai dari Ahmad Zobari, dengan noid=1;
mysql> update tb_karyawan set gaji=1000000 -> where noid=1; Query OK, 1 row affected (0.03 sec) Rows matched: 1 Changed: 1 Warnings: 0

25

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

Perikasa dulu hasilnya:

Ok, ternyata gajinya sudah berubah. Kalu begitu kita lanjutkan untuk mengisi data gaji karyawan yang lain.
mysql> update tb_karyawan -> set gaji=1000000 where noid=1; Query OK, 1 row affected (0.03 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> update tb_karyawan -> set gaji=1250000 where noid=2; Query OK, 1 row affected (0.03 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> update tb_karyawan -> set gaji=1500000 where noid=3; Query OK, 1 row affected (0.03 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> update tb_karyawan -> set gaji=1750000 where noid=4; Query OK, 1 row affected (0.03 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> update tb_karyawan -> set gaji=2000000 where noid=5; Query OK, 1 row affected (0.03 sec) Rows matched: 1 Changed: 1 Warnings: 0

Kita periksa semua hasilnya

26

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

4.4 Menghapus Data Pada Tabel Ada kalanya untuk beberapa kebutuhan kita harus menghapus data yang sudah kita inputkan. Perintah SQL yang kita gunakan adalah DELETE DELETE FROM nama_table WHERE kondisi; Misalnya karyawan yang nama Yuliawati dengan noid: 5, akan kita hapus. Maka perintahs SQl yang digunakan adalah:
mysql> delete from tb_karyawan -> where noid=5; Query OK, 1 row affected (0.02 sec)

Ok, kita cek hasilnya. Apa yang terjadi?

27

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

BAB V

DATABASE RELATIONAL

5.1 Model Database Mode database adalah suatu konsep yang terintegrasi dalam menggabungkan hubungan (relationship) antar data dan batasan-batasan (constraint) data dalam suatu system database. Model yang paling umum, berdasarkan pada bagaimana hubungan antar record dalam database (Record Base Data Models). Terdapat tiga jenis, yaitu: a. Model Database Hirarki (Hierarchical Database Model) b. Model Database Jaringan (Network Database Model) c. Model Database Relasi (Relational Database Model) Model database hirarki dan jaringan merupakan model database yang tidak banyak lagi dipakai saat ini. Karena adanya berbagai kelemahan dan hanya cocok untuk struktur hirarki dan jaringan saja. Artinya tidak mengakomodir untuk berbagai macam jenis persoalan dalam suatu system database. Yang paling banyak dipakai saat ini adalah model database relasi, karena mampu mengakomodir berbagai masalah dalam system database. Berikut keterangan tentang model database ini. 5.2 Model Database Model database relasi merupakan model database yang paling banyak digunakan saat ini, karena paling sederhana dan mudah digunakan serta yang paling penting adalah kemampuannya dalam mengakomodasi berbagai kebutuhan pengelolaan database. Sebuah database dalam model ini disusun dalam bentuk tabel dua dimensi yang terdiri dari baris (record) dan kolom (field),
pertemuan antara baris dan kolom disebut item data (data value), tabel-tabel yang ada di hubungkan (relationship) sedemikian rupa menggunakan field-field kunci (key field) sehingga dapat meminimalkan duplikasi data. Model database relasi ini dikemukakan pertama kali oleh E.F. Codd, salah seorang pakar dalam bidang database. Sering juga model ini disebut Database relasi.

28

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

5.3 Tingkatan Data Dalam Database Relasi Dalam suatu system database relasi, data yang tersimpan dalam DBMS mempunyai tingkatan-tingkatan, sebagai berikut: a. Karakter (Characters) Merupakan bagian terkecil dalam database, dapat berupa karakter numeric (angka 0 s.d 9,) huruf (A Z, a z) ataupun karakter-karakter khusus, seperti *,&.%,# dan lain-lain. b. Field atau Attribute Merupakan bagian dari record yang menunjukkan suatu item data yang sejenis. Misalnya: field nama, field NIM dan sebagainya. Setiap field haru mempunyai nama dan tipe data tertentu. Isi dari field di sebut Data Value. Dalam tabel database, field ini sebut juga kolom. c. Record atau Tupple Tuple/Record adalah kumpulan data value dari attribute yang berkaitan sehingga dapat menjelaskan sebuah entity secara lengkap. Misal: Record entity mahasiswa adalah kumpulan data value dari field nobp, nama, jurusan dan alamat per-barisnya. Dalam tabel database, record disebut juga dengan baris. d. Table/Entity Entity merupakan sesuatu yang dapat diidentifikasi dari suatu system database, bisa berupa objek, orang, tempat, kejadian atau konsep yang informasinya akan disimpan di database. Missal pada system database akademik, yang menjadi entity adalah mahasiswa, dosen, matakuliah dan lain-lain. Dalam aplikasi nantinya. Penggunaan istilah entity sering disamakan dengan istilah Tabel (entity=table). Disebut tabel, karena dalam merepresentasikan datanya di atur dalam bentuk baris dan kolom. Baris mewakili 1 record dan kolom mewakili 1 field. Dalam system database tradisional. Entity/table ini disebut juga dengan file. e. Database Kumpulan dari tabel-tabel yang saling berelasi, disusun secara logis, sehingga menghasilkan informasi yang bernilai guna dalam proses pengambilan keputusan. 5.4 Sifat Yang Melekat Pada Suatu Tabel Tidak boleh ada record yang sama (kembar) Urutan record tidak terlalu penting, karena data dalam record dapat diurut sesuai dengan kebutuhan

29

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

Setiap field harus mempunyai nama yang unik (tidak boleh ada yang sama) Setiap field harus mempunyai tipe data dan karakteristik tertentu

5.5 Jenis Hubungan Antar Tabel Jenis hubungan antar tabel dalam model database relasi, juga didefinisikan dengan. Satu ke Satu (One to One) Satu ke Banyak (One to Many) Banyak ke Satu (Many to One) Banyak ke Banyak (Many to Many) a. Satu ke Satu (One to One) Relasi tabel one-to-one (satu-ke-satu) adalah relasi 2 tabel dengan primary key (PK) dan foreign key (FK). Ini dilakukan dengan meletakkan kolom one-to-one ke tabel baru. Sebetulnya relasi ini jarang digunakan. Namun ada beberapa alasan relasi ini digunakan: 1. Memindahkan data ke tabel lain memungkinkan untuk membuat query yang lebih cepat 2. Mengisolasi dan menghindarkan nilai NULL pada tabel utama 3. Membuat sebagian data sukses diakses
Contoh tabel: Tbl_pegawai: - id_pegawai (PK) - nama_depan - nama_balakang tbl_gaji - kode_asuransi (PK) - level_gaji - id_pegawai (FK) tabel pegawai dan gaji didesain one-to-one untuk mendapatkan keuntungan: 1. Query untuk mendapatkan kode_asuransi lebih cepat 2. Data gaji lebih aman b. Satu ke Banyak (One to Many) Artinya satu record pada entry A ber-relasi dengan beberapa record pada entry B, tetapi tidak sebaliknya, stiap record pada entry B ber-relasi paling banyak satu record dengan entry A. dalam diagram E-R, relasi ini disimbolkan dengan angka 1 untuk menyatakan satu dan hurus M atau N untuk menyatakan banyak.

30

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

Contoh: Dalam proses belajar mengajar di sekolah dasar misalnya, satu orang guru mengajar beberapa (banyak) murid, tetapi satu kelas (beberapa murid) hanya di ajar oleh satu guru. c. Banyak ke Banyak (Many to Many) Artinya beberapa record pada entry A dapat ber-relasi dengan beberapa record juga pada entry B, begitu juga sebaliknya. Beberapa record pada entry B dapat ber-realasi dengan beberapa record juga pada entry A. dalam diagram E-R, relasi ini disimbolkan dengan huruf M untuk menyatakan banyak ke banyak. Contoh: Dalam hubungan antara mahasiswa dengan dosen pada perguruan tinggi. Yaitu seorang dosen mengajar banyak mahasiswa, sebaliknya seorang mahasiswa dapat diajar oleh beberapa dosen. Sehingga terjadi hubungan banyak ke banyak. 5.6 Relasi Database dengan MySQL MySQL mempunyai kemampuan untuk menggabungkan dua tabel atau lebih guna mendapatkan informasi yang diinginkan. Prosess yang dilakukan dengna nama JOIN. Dalam penggabungan dari beberapa tabel (join) ada beberapa hal yang perlu diperhatikan, antara lain: 1. Setiap kolom disebut dengan bentuk 2. Tabel-tabel yang dilibatkan dalam query perlu disebutkan dalam klause FROM dengan antar tabel pisah oleh koma. 3. Kondisi dalam WHERE menentukan macam join yang terbentuk Sebelum kita lanjut membahas tentang relasi database di MySQL kita akan membuat database baru, oke. J. Mari kita buat database baru. Misalnya: Anda diminta untuk membuat sistem penjualan barang oleh marketing freelance di perusahaan Oryn Textile, Barang berupa Kaos Kaki @ Rp. 3500. 1. Kitab buat database, dbOryn (masih ingatkan gimana buatnya???? J) 2. Kita buat dua tabel sebagai berikut: a. tabel tb_marketing (untuk mencatat data marketing) b. Tabel tb_jual (untuk mencatat penjualan barang) 3. Berikut struktur tabelnya: Tabel tb_marketing
+--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | NoId | char(4) | NO | PRI | NULL | | | Nama | varchar(20) | NO | | NULL | | | NoHP | varchar(15) | NO | | NULL | | | Alamat | varchar(30) | NO | | NULL | | +--------+-------------+------+-----+---------+-------+

31

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

Tabel tb_jual
+----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----+---------+-------+ | NoJual | char(4) | NO | PRI | NULL | | | NoId | char(4) | NO | | NULL | | | TglJual | date | YES | | NULL | | | Quantity | smallint(3) | YES | | NULL | | +----------+-------------+------+-----+---------+-------+

4. Isikan data pada tabel seperti berikut ini: Tabel tb_marketing


+------+---------------+-------------+-------------------+ | NoId | Nama | NoHP | Alamat | +------+---------------+-------------+-------------------+ | M001 | Dwi Apri | 08129877444 | Gumpang Kartasura | | M002 | Pipin Wahyuni | 09787736633 | Gebyok Kartasura | | M003 | Haryanto | 08127866666 | Gedongan Solo | | M004 | Wijiyanto | 08123477777 | Tipes Sleman | | M005 | Srimulat | 08190097744 | Bojonegoro | +------+---------------+-------------+-------------------+

Tabel tb_jual
+--------+------+------------+----------+ | NoJual | NoId | TglJual | Quantity | +--------+------+------------+----------+ | J001 | M001 | 2010-01-13 | 25 | | J002 | M002 | 2010-01-13 | 20 | | J003 | M004 | 2010-01-13 | 30 | | J004 | M006 | 2010-01-13 | 15 | +--------+------+------------+----------+

Jika kita perhatikan di tabel tb_jual, tidak menginformasikan nama Marketing yang melakukan penjualan. Mari kita coba menuliskan perintah SQL untuk menampilkan NoJual, NoId, Nama, TglJual dan Quantity, tentunya dengan menggunakan relasi. Berikut perintah SQL yang digunakan:
mysql> SELECT NoJual, NoId, Nama, TglJual, Quantity -> FROM tb_marketing,tb_jual -> WHERE tb_marketing.NoId = tb_jual.NoId; ERROR 1052 (23000): Column 'NoId' in field list is ambiguous

Perhatikan hasil di atas, terdapat ERROR 1052 (dst). Kenapa terjadi seperti itu? Disebutkan bahwa terdapat field NoId ambiguous. Gimana sih? Bingung ne. Okey, kita bahas pelan-pelan. Field NoId dimiliki oleh dua tabel yaitu

32

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

tb_marketing dan tb_jual. Sehingga terdapat data ambigu karena tidak menjelaskan field NoId tersebut berasal dari tabel yang mana. Soulisnya
mysql> SELECT NoJual, tb_marketing.NoId, Nama, TglJual, Quantity -> FROM tb_marketing,tb_jual -> WHERE tb_marketing.NoId = tb_jual.NoId; +--------+------+---------------+------------+----------+ | NoJual | NoId | Nama | TglJual | Quantity | +--------+------+---------------+------------+----------+ | J001 | M001 | Dwi Apri | 2010-01-13 | 25 | | J002 | M002 | Pipin Wahyuni | 2010-01-13 | 20 | | J003 | M004 | Wijiyanto | 2010-01-13 | 30 | +--------+------+---------------+------------+----------+ 3 rows in set (0.02 sec)

Perhatikan hasil/tabel di atas pada judul kolom Nama. Jika Anda menginginkan agar pada saat hasil ditmapilkan judul kolom Nama diperjelas diganti menjadi Nama Marketing. Maka MySQL menyediakan perintah AS (kepanjangan AliaS) untuk mengganti judul kolom pada saat ditampilkan (catatan: perintah AS tidak akan merubah structural tabel, jadi nama field pada tb_marketing tetap Nama).
mysql> SELECT NoJual, tb_marketing.NoId, Nama AS Nama_Marketing, -> TglJual,Quantity -> FROM tb_marketing,tb_jual -> WHERE tb_marketing.NoId=tb_jual.NoId; +--------+------+----------------+------------+----------+ | NoJual | NoId | Nama_Marketing | TglJual | Quantity | +--------+------+----------------+------------+----------+ | J001 | M001 | Dwi Apri | 2010-01-13 | 25 | | J002 | M002 | Pipin Wahyuni | 2010-01-13 | 20 | | J003 | M004 | Wijiyanto | 2010-01-13 | 30 | +--------+------+----------------+------------+----------+ 3 rows in set (0.00 sec)

Dari data tersebut, dapat kita lihat bahwa pada tabel tb_marketing, tidak terdapat record dengan NoId M006, dan begitu pula pada tabel tb_jual tidak terdapat record dengan NoId M003 dan M005. Apabila dilakukan join seperti perintah di atas maka beberapa record tidak akan tampil seperti yang kita mau.
mysql> SELECT NoJual, tb_marketing.NoId, Nama, TglJual, Quantity -> FROM tb_marketing,tb_jual -> WHERE tb_marketing.NoId = tb_jual.NoId;

33

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

Hanya akan menampilkan:


+--------+------+---------------+------------+----------+ | NoJual | NoId | Nama | TglJual | Quantity | +--------+------+---------------+------------+----------+ | J001 | M001 | Dwi Apri | 2010-01-13 | 25 | | J002 | M002 | Pipin Wahyuni | 2010-01-13 | 20 | | J003 | M004 | Wijiyanto | 2010-01-13 | 30 | +--------+------+---------------+------------+----------+ 3 rows in set (0.02 sec)

Lalu dimana yang memiliki No ID M003 dan M005?, untuk itulah ada beberapa join khusus. Kondisi Where menentukan macam join yang terbentuknya macammacam bentuk penggabungan (join). 1. CROSS JOIN, Cross Join merupakan bentuk penggabungan yang paling sederhana, tanpa ada kondisi. Bentuk Umum: SELECT field1,field2 FROM tabel1 CROSS JOIN tabel2; 2. INNER JOIN Hampir sama dengan cross join tetapi diikuti dengan kondisi Bentuk Umum: SELECT field FROM tabel1 INNER JOIN tabel2 ON Kondisi 3. STRAIGHT JOIN Straight Join identik dengan inner join tetapi tidak mengenal klausa where Bentuk Umum: SELECT field FROM tabel1 STRAIGHT JOIN tabel2 4. LEFT (OUTER) JOIN Akan menampilkan tabel disebelah kanannya dengan NULL jika tidak terdapat hubungan antara tabel disebelah kiri. Bentuk Umum: SELECT field FROM tabel1 LEFT JOIN tabel2 ON kondisi 5. RIGHT (OUTER) JOIN Kebalikan dari LEFT JOIN Bentuk Umum: SELECT field FROM tabel1 RIGHT JOIN tabel2 ON kondisi Contoh: Penggunaan LEFT JOIN

34

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

Penggunaan RIGHT JOIN

Note: penggunaan SELECT * pada LEFT atau RIGHT join akan menampilkan column yang redudansi, jadi?? Kita lanjut. Kan. Mari kita bandingkan dengan penggunaan NATURAL JOIN

Ternyata sama dengan query yang pertama. Jadi bisa dikatakan bahwa ini penyederhanaan query pertama, namun menghapus column yang redudansi.

35

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

BAB VI

MySQL & Visual Basic 6.0

6.1 Pemograman Database Pemograman database (Database Programming) merupakan suatu bentuk pemograman alternative untuk pengolahan database. Dengan pemograman database kita dapat secara leluasa mengatur tampilan dan alur kerja sebuah database dengan lebih baik. Visual Basic merupakan salah satu bahasa pemograman yang telah mendukung pemograman database. Visual basic dapat dihubungkan dengan program aplikasi pengolah data lain seperti access, MySQL, SQL Server dan sebagainya. Alur kerja pemograman database dalam Visual Basic dapat dijelaskan melalui gambar berikut:

6.2 Pemograman Database Untuk mengkoneksikan VB dengan MySQL terlebih dahulu Anda harus meninstal MySQL ODBC Connector 5.1 (Jika Anda menggunakan MySQL Server 5)

36

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

atau MySQL ODBC Connector 3.51 (Jika anda menggunakan MySQL versi 3 atau 4). Software tersebut bisa Anda download di situsnya MySQL www.mysql.com Pada bab ini saya akan menggunakan ADODB untuk menghubungkan VB dengan MySQL (MySQL yang saya gunakan adalah MySQL Server 5.x) A. Langkah-Langkah Koneksi Buka Microsoft Visual Basic 6.0, Buatlah prosedur baru di MDI Form. Form Anda atau di Module (dan pastikan kalau di Module, prosedur Anda adalah Public sehingga dapat dipanggil dari form Anda). Berikan nama prosedur itu yang mewakili dengan koneksi Anda. Misalnya, bukaKoneksi, Ketikkan prosedur berikut:

Untuk memanggil prosedur itu, cukup panggil di form utama anda (atau form dimana anda mau memulai koneksi anda) dengan mengetik: Call bukaKoneksi atau bukaKoneksi Dan seperti biasa, ketika anda menutup aplikasi, anda harus menutup dulu koneksi anda ke MySQL. Biasanya prosedur tutup koneksi ini saya taruh di balok MDIForm_Unload

37

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

B. Tambah, Ubah dan Hapus data Berikut adalah langkah-langkah bagaimana Anda menambah/menyimpan data, mengubah data dan menghapus data pada table yang telah Anda buat di MySQL. Misalnya saya membuat tabel tbmhs dengan field (NIM,Nama) Rancang form di VB seperti berikut ini:

Atur propertinya seperti berikut ini: Control Property Label Caption Label Caption Text Name Text Name Command Name Caption Command Name Caption Command Name Caption

Name NIM Nama txtNim txtNama cmdTambah &Tambah cmdUbah &Ubah cmdHapus &Hapus

38

By: Jaroji, S. Kom

UNISI

PEMOGRAMAN III (VB+MySQL) | 2010

Kode program buka koneksi di Form_Load:


Private Sub Form_Load(); bukaKoneksi End Sub

Kode program menambah/menyimpan data ke tabel:


Private Sub cmdTambah_Click(); Dim strInsert As String strInsert = INSERT INTO tbmhs VALUES & _ ( & txtNIM.Text &, & txtNama.Text & ); Con.Execute strInsert; End Sub

Kode program mengubah data


Private Sub cmdUbah_Click(); Dim strEdit As String strEdit = UPDATE tbmhs SET Nama=& txtNIM.Text & & _ WHERE NIM = & txtNIM.Text & ; Con.Execute strEdit; End Sub

Kode program menghapus data


Private Sub cmdHapus_Click(); Dim strHapus As String strHapus = DELETE FROM tbmhs & _ WHERE NIM = & txtNIM.Text & ; Con.Execute strHapus; End Sub

dari kondisi program di atas, dapat Anda lihat bahwa perintah untuk menambah data, mengubah data dan menghapus data di Visual Basic bisa menggunakan bahasa SQL seperti yang sudah dipelajari pada babbab sebelumnya. Tantangan: Jika perintah tambah, ubah dan hapus data di VB bisa menggunakan bahasa SQL. Bagaimana jika Anda diminta membuat program di VB untuk membuat tabel baru disertai struktur tabel yang melengkapinya (Field type, field size dst), Silakan Anda temukan solusinya berdasarkan syntax SQL yang telah Anda pelajari di bab-bab sebelumnya. Pustaka. Apri, Setyorini, dkk. Pemograman basis data lanjut, STMIK Duta Bangsa www.mysql.com

39

By: Jaroji, S. Kom

You might also like