Friday 22 May 2015

Foreign Key Query

Cara membuat Foreign Key pada Tabel dengan perintah Query

Untuk membuat foreign key pada suatu tabel di database MySQL, kita dapat menggunakan perintah Query sebagai berikut:
FOREIGN KEY (<nama field>) REFERENCES <nama tabel referensi> (<nama field pada tabel referensi>)

Contoh:

CREATE TABLE tb_linkbukukategori (id_buku CHAR(13) NOT NULL,
id_kategori INT NOT NULL,
PRIMARY KEY(id_buku, id_kategori),
FOREIGN KEY (id_buku) REFERENCES tb_buku(id_buku),
FOREIGN KEY (id_kategori) REFERENCES tb_kategori(id_kategori)
)TYPE = InnoDB;

Database dan Perintah - Perintah MySQL

Dalam membentuk suatu web yang dinamis, diperlukan tempat penyimpanan data, penghapusan data, pengeditan data dan lain - lain, maka di butuhkanlah suatu Database. Database berfungsi untuk pengorganisasian data. Database harus didukung  dengan database server untuk pengorganisasiannya, seperti MySQL, Oracle, SQL server, postgre SQL dan lain - lain. Sehingga tentunya tampilan web yang telah di rancang baik menggunakan php, java maupun html dapat digunakan secara dinamis.  Sebelumnya membuat database, perlu anda ketahui terlebih dahulu istilah - istilah di bawah ini :
  1. Field, merupakan data terkecil yang memiliki makna, istilah lainnya disebut elemen data, atribut maupun kolom item. Misalnya Nama Mahasiswa, NIM dan Jurusan .
  2. Record, merupakan kumpulan atau elemen dari data yang saling terkait. Contohnya field nama yang memiliki record Adi, Budi dan Sandi. Record merupakan elemen - elemen data dari field dan biasanya dinyatakan sebagai tupel atau baris.
  3. Tabel, menghimpun sejumlah field dan record, misalnya tabel Mahasiswa yang terdiri dari field Jurusan yang memiliki record Teknik Komputer, Teknik Informatika dan Sistem Inormasi.
Salah satu istilah lain yang perlu anda ketahui adalah Query. Query adalah interaksi user terhadap database baik menyimpan, menginput, mengedit maupun menghapus.

Jenis - jenis query yaitu :
  1. Data Definition Language (DDL)
  2. Data Manipulation Language (DML)
  3. Data Control Language (DCL)
  4. Transaction Control (TC)
Data Definition Language (DDL), merupakan perintah yang berkaitan dengan struktur storage/data base     (berkaitan dengan struktur tabel ), contoh nya membuat database, menghapus database, membuat field, dan menghapus field, sedangkan Data Manipulation Language (DML) merupakan perintah - perintah yang berhubungan dengan record.


Perintah - Perintah Dasar MySQL
  •  Membuat database    
           CREATE DATABASE db_name

  • Menghapus database
          DROP DATABASE db_name

  • Membuat Tabel
          CREATE TABLE tb_name(field 1 type_data, field 2 type_data)

  • Menghapus table
          DROP TABLE tb_name

  • Menambah Primary Key
         ALTER TABLE tb_name ADD PRIMARY KEY(field_name)

  • Menambah Primary Key dengan nama constraint
         ALTER TABLE tb_name ADD CONSTRAINT const_name PRIMARY KEY(field_name)

  • Menghapus Primary Key
         ALTER TABLE tb_name DROP PRIMARY KEY(field_name)

  • Menambah Foreign Key
         ALTER TABLE tb_name ADD FOREIGN KEY(field_name)
         REFERENCES table_references_name(primary_field_table_references)
         ON CASCADE
         ON RESTRICT

        cascade --> Mengupdate jika terjadi perubahan di tabel induk
        restrict   --> Peringatan jangan mendelete field pada tabel induk karena sedang digunakan di tabel anak

  • Menambah Foreign Key dengan nama constraint
         ALTER TABLE tb_name ADD CONSTRAINT const_name  FOREIGN KEY(field_name)
         REFERENCES table_references_name(primary_field_table_references)

  • Menghapus Foreign Key
         ALTER TABLE tb_name DROP FOREIGN KEY(field_name)

  • Menambah record
          INSERT INTO tb_name VALUES(record 1, record 2, record 3...)
          atau
          INSERT INTO tb_name (column 1, column2, column3) VALUES (record 1, record 2, record 3)

  • Fungsi SELECT
          SELECT field
          FROM table_name
          WHERE field = 'value'

  • Fungsi UPDATE
          UPDATE table_name
          SET column1 = 'val1', column2='val2'
          WHERE somecolumn = somevalue
         
  • Fungsi DELETE
          DELETE FROM table_name
          WHERE somecolumn = somevalue

Pada fungsi SELECT, UPDATE, dan DELETE pada syntax WHERE bosa menggunakan operator perbandingan seperti >, <, =, !=, >=, <= dan juga operator logika OR, AND dan NOT.

  • Fungsi IN
          SELECT *FROM table_name
          WHERE field IN ('value')

  • Fungsi NOT IN
          SELECT *FROM table_name
          WHERE field NOT IN ('value')

  • Mencari Record yang berawalan -x
          SELECT field
          FROM table
          WHERE field LIKE 'x%'

  • Mencari Record yang berakhiran -x
          SELECT field
          FROM table
          WHERE field LIKE '%x'

  • Menampilkan field dari tabel - tabel yang berbeda
          SELECT mahasiswa.nama, kuliah.nilai
          FROM mahasiswa, kuliah
          WHERE mahasiswa.nim= kuliah.nim

  • INNERJOIN
          SELECT table1.*, table2.*
          FROM table1 INNERJOIN table2
          ON table1.pk = table2.pk

  • OUTERJOIN
          SELECT *FROM table1 NATURAL LEFTJOIN table2
          dan
          SELECT *FROM table1 NATURAL RIGHTJOIN table2

  • Rata - rata
          SELECT AVG(field) from table_name

  • Jumlah
          SELECT SUM(field) from table_name

  • Nilai Max
          SELECT MAX(field) from table_name

  • Nilai MIN
          SELECT MIN(field) from table_name

  • Jumlah record
          SELECT COUNT(field) from table_name
          atau
          SELECT COUNT(distinct field) from table_name  --> untuk field yang memiliki record yang sama

Thursday 21 May 2015

Tutorial Belajar MySQL Part 17: Atribut Tipe Data dalam MySQL

Untuk pembuatan sebuah tabel dalam MySQL, selain mendefinisikan tipe data, kita juga dapat mendefinisikan atribut dari tipe data tersebut. Dalam tutorial belajar MySQL kali ini kita akan membahas tentang pengertian serta cara penggunaan atribut tipe data dalam MySQL.

Pengertian Atribut tipe data MySQL

Atribut tipe data adalah aturan yang kita terapkan untuk sebuah kolom. MySQL memiliki banyak atribut tipe data, namun dalam tutorial ini kita hanya membahas atribut tipe data yang paling umum digunakan, yakni: AUTO_INCREMENTBINARYDEFAULTNOT NULLNULLSIGNED,UNSIGNED, dan ZEROFILL.

Atribut AUTO_INCREMENT

Atribut AUTO_INCREMENT digunakan untuk tipe data numerik (biasanya tipe data INT), dimana jika kita menetapkan sebuah kolom dengan atribut AUTO_INCREMENT, maka setiap kali kita menginputkan data, nilai pada kolom ini akan bertambah 1. Nilai pada kolom tersebut juga akan bertambah jika kita input dengan NULL  atau nilai 0.
Pada sebuah tabel, hanya 1 kolom yang dapat dikenai atribut AUTO_INCREMENT. Setiap kolomAUTO_INCREMENT juga akan dikenakan atribut NOT NULL secara otomatis. KolomAUTO_INCREMENT juga harus digunakan sebagai KEY (biasanya PRIMARY KEY)

Atribut BINARY

Atribut BINARY digunakan untuk tipe data huruf, seperti CHAR dan VARCHAR. Tipe data CHAR, VARCHAR dan TEXT tidak membedakan antara huruf besar dan kecil (case-insensitive), namun jika diberikan atribut BINARY, maka kolom tersebut akan membedakan antara huruf besar dan kecil (case-sensitive)

Atribut DEFAULT

Atribut DEFAULT dapat digunakan pada hampir semua tipe data. Fungsinya untuk menyediakan nilai bawaan untuk kolom seandainya tidak ada data yang diinput kepada kolom tersebut, atau jika diinput dengan nilai NULL.

Atribut NOT NULL

Atribut NOT NULL dapat digunakan pada hampir semua tipe data, Fungsinya untuk memastikan bahwa nilai pada kolom tersebut tidak boleh kosong. Jika kita menginput data, namun tidak memberikan nilai untuk kolom tersebut, akan menghasilkan error pada MySQL.

Atribut NULL

Atribut NULL berkebalikan dengan NOT NULL, dimana jika sebuah kolom didefinisikan denganNULL, maka kolom tersebut tidak harus berisi nilai.
NULL adalah istilah atau tipe data khusus dalam pemograman yang menyatakan ‘tidak ada nilai’, NULL tidak sama dengan 0, atau ‘’(string kosong). Operasi matematis dengan NULL akan menghasilkan nilai NULL.

Atribut SIGNED

Atribut SIGNED digunakan untuk tipe data numerik. Berlawanan dengan atribut UNSIGNED, dimana atribut ini berfungsi agar kolom dapat menampung nilai negatif. Atribut SIGNED biasanya dicantumkan hanya untuk menegaskan bahwa kolom tersebut mendukung nilai negatif, karena MySQL sendiri telah menyediakan nilai negatif secara default untuk seluruh tipe numerik.

Atribut UNSIGNED

Atribut UNSIGNED digunakan untuk tipe data numerik, namun berbeda sifatnya untuk tipe dataINT,DECIMAL dan FLOAT. Untuk tipe data INT, atribut UNSIGNED berfungsi mengorbankan nilai negatif, untuk mendapatkan jangkauan nilai positif yang lebih tinggi. Namun untuk tipe dataDECIMAL dan FLOAT, atribut UNSIGNED hanya akan menhilangkan nilai negatif, tanpa menambah jangkauan data.

Atribut ZEROFILL

Atribut ZEROFILL digunakan untuk tipe data numerik, dimana berfungsi untuk tampilan format data yang akan mengisi nilai 0 di sebelah kanan dari data. Jika kita menggunakan atribut ZEROFILL untuk suatu kolom, secara otomatis kolom tersebut juga dikenakan attribut UNSIGNED.
Contoh query untuk penggunaan attribut :
mysql> CREATE TABLE contoh_att (no int AUTO_INCREMENT, 
nama VARCHAR(30) NOT NULL,umur TINYINT UNSIGNED DEFAULT '10', 
kodepos CHAR(5) NULL,PRIMARY KEY(no));
Query OK, 0 rows affected (0.13 sec)

mysql> DESCRIBE contoh_att;
+---------+---------------------+------+-----+---------+----------------+
| Field   | Type                | Null | Key | Default | Extra          |
+---------+---------------------+------+-----+---------+----------------+
| no      | int(11)             | NO   | PRI | NULL    | auto_increment |
| nama    | varchar(30)         | NO   |     | NULL    |                |
| umur    | tinyint(3) unsigned | YES  |     | 10      |                |
| kodepos | char(5)             | YES  |     | NULL    |                |
+---------+---------------------+------+-----+---------+----------------+
4 rows in set (0.01 sec)

mysql> INSERT INTO contoh_att VALUES (NULL,'Joko',NULL,20155);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO contoh_att VALUES (0,'Amir',23,27118);
Query OK, 1 row affected (0.05 sec)

mysql> INSERT INTO contoh_att VALUES (6,'Thasya',24,30012);
Query OK, 1 row affected (0.04 sec)

mysql> INSERT INTO contoh_att VALUES (9,NULL,32,10099);
ERROR 1048 (23000): Column 'nama' cannot be null

mysql> INSERT INTO contoh_att VALUES (NULL,'Rina',21,10889);
Query OK, 1 row affected (0.05 sec)

mysql> SELECT * FROM contoh_att;
+----+--------+------+---------+
| no | nama   | umur | kodepos |
+----+--------+------+---------+
|  1 | Joko   | NULL | 20155   |
|  2 | Amir   |   23 | 27118   |
|  6 | Thasya |   24 | 30012   |
|  7 | Rina   |   21 | 10889   |
+----+--------+------+---------+
4 rows in set (0.00 sec)
Dapat kita lihat bahwa jika kita memberikan nilai NULL kepada kolom nama yang telah diberikan atribut NOT NULL, MySQL akan memberikan error. Juga pada kolom no, dimana kita lompat dengan memberikan nilai 6, namun untuk kolom selanjutnya, akan tetap ditambah sebanyak 1, karena dikenai atribut AUTO_INCREMENT.

Wednesday 20 May 2015

Foreign Key Di MySQL

Dalam relational basis data, terdapat istilah kunci utama (primary key) dan kunci tamu (foreign key). Tujuan utama dari adanya kedua istilah tersebut adalah pengidentifikasian tiap table dan kejelasan hubungan antara 2 atau lebih table. Primary key adalah satu atau beberapa kolom pada table yang mengidentifikasikan tiap kolom dan baris pada table tersebut. Sedangkan Foreign Key adalah satu atau beberapa kolom pada table yang merupakan primary key pada table satu namun diletakan pada table dimana tablenya berelasi dengan table dirinya.


Pada gambar diatas, nim pada table mhs adalah primary key. Sedangkan primary key pada table matkul adalah id_matkul. Lalu id_matkul menempel pada table mhs yang kita sebut sebagai foreign key.
Biasanya saya menyebut table yang berisi foreign key sebagai table anak karena table tersebut mengait pada table lain. Sedangkan table yang terkait saya sebut sebagai table induk. Pada contoh table di atas, mhs sebagai table anak sedangkan matkul sebagai table induk.
Contoh isi dari kedua table tersebut dapat dilihat dibawah ini.
Table mhs
Nim                  Nama                          Alamat                Id_matkul
10107644     Adiputra Artupida            Bekasi                      IF123
10107634     Hermansyah                     Bandung                 IF222
10107635     Budianto Nugroho            Semarang               IF111
10107636     Silan                                    Bekasi                      IF333
Table Matkul
Id_matkul        Nm_matkul                   Jml_sks
IF123                 Pemrograman Web         3
IF111                  Pemrograman C            3
IF222                Pemrograman Java          3
IF333                Pemrograman OOP          3
Saya langsung praktikan pada mysql. Berikut adalah codenya :
CREATE TABLE IF NOT EXISTS matkul(
id_matkul CHAR(5) NOT NULL PRIMARY KEY,
nm_matkul VARCHAR(30) NOT NULL,
jml_sks INT(3) NOT NULL
);

CREATE TABLE IF NOT EXISTS mhs(
nim CHAR(8) NOT NULL PRIMARY KEY,
nama VARCHAR(50) NOT NULL,
alamat VARCHAR(60) NOT NULL,
id_matkul CHAR(5),
FOREIGN KEY(id_matkul) REFERENCES matkul(id_matkul)
);
INSERT INTO mhs VALUES
(‘10107633′,’Adiputra Artupida’,’Bekasi’,’IF123′),
(‘10107634′,’Hermansyah’,’Bandung’,’IF222′),
(‘10107635′,’Budianto Nugroho’,’Semarang’,’IF111′),
(‘10107636′,’Silan’,’Bekasi’,’IF333′);
INSERT INTO matkul VALUES
(‘IF123′,’Pemrograman Web’,3),
(‘IF111′,’Pemrograman C’,3),
(‘IF222′,’Pemrograman Java’,3),
(‘IF333′,’Pemrograman OOP’,3);
mysql1
Perhatikan baris kode pada table mhs,
FOREIGN KEY(id_matkul) REFERENCES matkul(id_matkul)
Itulah cara mendefinikan foreign key pada mysql. Id_matkul didefinisikan sebagai foreign key yang mereferensikan(mengacu) pada table matkul pada kolom id_matkul.
Yang ingin saya fokus bicarakan pada artikel ini adalah bagaimana bila data matkul misalnya data dengan id_matkul=’IF123’ dihapus? Apakah data mahasiswa yang mengambil id_matkul akan dihapus juga atau akan dibiarkan apa adanya?
DELETE FROM matkul WHERE id_matkul=’IF123’
Maka pasti terjadi error
“Cannot delete or update a parent row: a foreign key constaint fails (‘test’.’mhs’,CONSTRAINT ‘mhs_ibfk_3’ FOREIGN KEY (‘id_matkul’) REFERENCES ‘matkul’ (‘id_matkul))
Maksudnya adalah tidak dapat menghapus atau mengupdate kolom pada table induk karena bereferensi pada table mhs.
Lalu bagaimana solusinya?
Pada MYSQL, kita harus menambahkan perintah ON DELETE [opsi] dan ON UPDATE [opsi]pada table yang mereferensikan foreign key. Opsi pada perintah tersebut jelasnya dibawah ini.
1. RESTRICT, Jika tabel anak berisi nilai dalam kolom yang mengkait yang nilainya sama dengan di kolom terkait pada tabel induk, baris dalam tabel induk tidak bisa dihapus, dan nilai di kolom terkait tidak dapat diupdate. Ini adalah opsi default jika klausa ON DELETE atau ON UPDATE tidak dispesifikasikan.
2. CASCADE, Baris-baris dalam tabel anak yang berisi nilai-nilai yang juga terdapat dalam kolom terkait dari tabel induk dihapus ketika barisbaris yang berkaitan dihapus dari tabel induk. Baris-baris dalam tabel anak yang berisi nilai-nilai yang juga terdapat dalam kolom terkait dari tabel induk diupdate ketika nilai-nilai yang berkaitan diupdate dalam tabel induk.
3. SET NULL, Nilai-nilai dalam kolom yang mengkait dari tabel anak diset ke NULL saat baris-baris dengan data terkait dalam tabel induk dihapus dari tabel induk atau ketika data terkait dalam tabel induk diupdate. Untuk menggunakan opsi ini, semua kolom-kolom yang mengkait dalam tabel anak harus mengijinkan nilai NULL.
4. NO ACTION Tidak ada aksi yang diambil dalam tabel anak ketika baris-baris dihapus dari tabel induk atau nilai-nilai dalam kolom terkait dalam tabel induk diupdate.
5. SET DEFAULT Nilai-nilai dalam kolom-kolom yang mengkait dari tabel anak diset ke nilai default mereka ketika baris-baris dihapus dari tabel induk atau kolom terkait dari tabel induk diupdate.
Ketika kita mendefinisikan foreign key dengan
FOREIGN KEY(id_matkul) REFERENCES matkul(id_matkul)
Maka perintah ON DELETE dan ON UPDATE nya ber-Opsi RESTRICT karena defaultnya dari references foreign key, yang artinya tidak boleh dihapus atau diupdate. Itulah yang menyebabkan error bila kita mendelete atau mengapdate table induk.
Coba sekarang kita ubah struktur table dari mhs dengan merubah references foreign key dengan opsi ON DELETE dan ON UPDATE CASCADE.
mysql2
Karena kita menggunakan OPSI CASCADE pada ON DELETE dan ON UPDATE nya maka bila kita menghapus salah satu kolom pada table induk maka table anak pun akan terhapus juga. Terlihat bahwa data mahasiswa yang bernama Adiputra Artupida dihapus karena Adiputra Artupida mengambil matkul dengan id ‘IF123’ dimana id tersebut telah dihapus pada table matkul.
Yang lainnya silakan improve sendiri. Saran kalau kita ingin merelasikan foreign key biasakan menggunakan perintah ON UPDATE dan ON DELETE dengan OPSI yang disesuaikan dengan kebutuhan.

Monday 18 May 2015

The Return of Chen Zhen (2010) BluRay 720p 800MB Ganool



aka Jing wu feng yun: Chen Zhen
Info: www.imdb.com/title/tt1456661/
Release Date: 21 Sep 2010 (China)
Genre: Action | Drama | History
Stars: Donnie Yen, Alex Ahlstrom, Qi Shu
Quality: BluRay 720p
Encoder: FatNanda@Ganool
Source: 720p BluRay x264-WiKi
SubtitleIndonesia, English
Synopsis:
Seven years after a apparent genocide of Chen Zhen, who was shot after finding who was obliged for his teachera€™s genocide (Huo Yuanjia) in Japanese-occupied Shanghai. A puzzling foreigner arrives from abroad and befriends a internal mafia boss. That male is a sheltered Chen Zhen, who intends to penetrate a host when they form an fondness with a Japanese. Disguising himself as a caped warrior by night, Chen intends to take out everybody concerned as good as get his hands on an assassination listprepared by a Japanese.
Trailer
Screenshot
Download Legend of a Fist: The Return of Chen Zhen (2010) BluRay 720p 800MB Ganool
Watch Online 

DOWNLOAD:
IDUP.IN: DOWNLOAD
MyLinkGen: DOWNLOAD

Friday 1 May 2015

Jikustik - Untuk Dikenang

Jikustik - Untuk Dikenang

Intro : Fm7

F G C-G/B-Am-G
Ingat Aku, Saat Kau Lewati………
F G Am
Jalan Ini, Setapak Berbatu.
F G C-G/B-Ab-G
Kenang Aku, Bila Kau Dengarkan……
F G Am
Lagu Ini, Terlantun Perlahan

Reff 1 :
Dm G
Barisan Puisi Ini
Em Am
Adalah Yang Aku Punya
Dm G
Mungkin Akan Kau Lupakan
C
Atau Untuk Dikenang

F G C-G/B-Am-G
Ingat Aku Bila Kau Terasing
F G Am
Dalam Gelap Keramaian Kota

Reff 2 :
Dm G
Tulisan DariKu Ini……
Em Am
Mencoba Mengabadikan
Dm G
Mungkin Akan Kau Lupakan
C
Atau Untuk Dikenang.

F G C-G/B-Am-G
Doakanlah Aku Malam Ini
F G Am
Sebelum Kau, Mengarungi Malam

Back To : Reff1, Reff 2

ENDAH N RHESA – UNTUK DIKENANG

ENDAH N RHESA – UNTUK DIKENANG

gambar Endah N Rhesa Untuk Dikenang imageLirik "Untuk Dikenang" dari Endah N Rhesa ini dipublikasikan pada tanggal 8 June 2014 oleh Cosa Aranda. Lagu ini diciptakan oleh Pongki Barata dan ada di dalam album Pongki Barata Meets The Stars.

LIRIK LAGU UNTUK DIKENANG

ingat aku saat kau lewati
jalan ini setapak berbatu
kenang aku bila kau dengarkan
lagu ini terlantun perlahan
barisan puisi ini adalah yang aku punya
mungkin akan kau lupakan atau untuk dikenang
ingat aku bila kau terasing
dalam gelap keramaian kota
tulisan dariku ini mencoba mengabadikan
mungkin akan kau lupakan atau untuk dikenang
doakanlah aku malam ini
sebelum kau mengarungi malam
barisan puisi ini adalah yang aku punya
mungkin akan kau lupakan atau untuk dikenang
tulisan dariku ini mencoba mengabadikan
yang mungkin kan kau lupakan atau untuk dikenang, untuk dikenang