Kamis, 02 Agustus 2012

Mereset Password MySQL di Ubuntu 10

Sering kali kita membuat sebuah password database dengan sembarangan, jadi sekalinya kita lagi membutuhkannya malah lupa dengan password yang telah kita buat.
Mari kita belajar mereset password MySQL di Ubuntu. Ubuntu yang saya pakai adalah Ubuntu 10.

Cara mereset password MySQL di Ubuntu 10 sebagai berikut :

Kita stop terlebih dahulu MySQL yang sedang berjalan :
sudo /etc/init.d/mysql stop

Kita mulai mengkonfigurasi mysqld :
sudo mysqld --skip-grant-tables &

Login sebagai root :
mysql -u root mysql

Ubah/set dengan password baru :
UPDATE user SET Password=PASSWORD('PASSWORD_BARU') WHERE User='root'; FLUSH PRIVILEGES; exit;

Senin, 30 Juli 2012

Upper Case, Lower Case dan Initcap Case

Sebelumnya saya sudah membahas mengenai UPPER CASE dan LOWER CASE, sedikit tambahan ada juga yang namanya INITCAP. Mari kita lihat perbedaannya dari query sederhana berikut :
SELECT
  UPPER('IndONeSiA MerDEKa') UPPER_CASE,
  LOWER('IndONeSiA MerDEKa') LOWER_CASE,
  INITCAP('IndONeSiA MerDEKa') INITCAP_CASE
FROM DUAL;

Hasilnya adalah :
UPPER_CASE LOWER_CASE INITCAP_CASE
INDONESIA MERDEKA indonesia merdeka Indonesia Merdeka

Kesimpulannya mirip dengan post sebelumnya :
Fungsi UPPER digunakan untuk membuat sebuah String bisa menjadi huruf kapital semua
Fungsi LOWER digunakan untuk membuat sebuah String bisa menjadi huruf kecil semua
Fungsi INITCAP digunakan untuk membuat huruf depan sebuah String menjadi huruf kapital lalu diikuti huruf kecil dibelakangnya.

Manipulasi String dengan Upper Case dan Lower Case

Seringkali kita menemukan data di dalam sebuah tabel pengisian hurufnya campuran antara huruf kecil dan kapital. Hal ini menyulitkan kita ketika kita membuat sebuah filter di dalam WHERE. Bingung? Langsung saja ke contohnya sebagai berikut, ada tabel sebagai berikut :
ID_PENGARANG NAMA ALAMAT
P001 WISNU ARDIHERDIYAN YOGYAKARTA
P002 DIANA NASUTION MEDAN
P003 FAJAR NURDIANTORO PEKANBARU
P004 NURDIANSYAH MALUKU
P005 Fajar Nurdiantoro SEMARANG
P006 anAStAsia PUrbaSari NGANJUK

Ada query seperti ini :
SELECT
    *
FROM
    PENGARANG
WHERE
    NAMA = 'WISNU ARDIHERDIYAN';


Query diatas pasti menghasilkan nilai karena dari tabel diatas row yang memenuhi syarat di dalam WHERE.
ID_PENGARANG NAMA ALAMAT
P001 WISNU ARDIHERDIYAN YOGYAKARTA
Masalah terjadi kalau String yang dijadikan key di dalam WHERE berasal dari inputan dari aplikasi yang kita buat. Misal user menginputkan namanya dengan huruf kecil semua (contoh : 'wisnu ardiherdiyan'), pasti query diatas tidak menghasilkan nilai karena WHERE NAMA = 'wisnu ardiherdiyan' tidak tercantum di dalam tabel.
ID_PENGARANG NAMA ALAMAT



Supaya kita bisa mendapatkan nilainya walaupun user menginputkan nama dengan huruf besar atau huruf kecil atau bahkan campuran besar dan kecil, kita bisa memanfaatkan fungsi UPPER CASE atau LOWER CASE. Langsung saja, querynya seperti berikut :
SELECT
    *
FROM
    PENGARANG
WHERE
    NAMA = UPPER('wisnu ardiherdiyan');

Query tersebut akan mendapatkan nilai yang kita inginkan, karena UPPER('wisnu ardiherdiyan') akan membuat String tersebut menjadi huruf besar semua menjadi WISNU ARDIHERDIYAN.
ID_PENGARANG NAMA ALAMAT
P001 WISNU ARDIHERDIYAN YOGYAKARTA
Bagaimana jika kasus penulisan nama 'alay' justru berada di database seperti di row 6 ('anAStAsia PUrbaSari')? Untuk mendapatkan nilainya, kita bisa memodifikasi query menjadi seperti berikut :
SELECT
    *
FROM
    PENGARANG
WHERE
    UPPER(NAMA) = UPPER('anastasia purbasari');

Query diatas akan membuat data field NAMA menjadi huruf besar semua, dan inputan String 'anastasia purbasari' juga akan dibuat menjadi huruf besar semua.
ID_PENGARANG NAMA ALAMAT
P006 anAStAsia PUrbaSari NGANJUK

Kesimpulan :
Fungsi UPPER digunakan untuk membuat sebuah String bisa menjadi huruf kapital semua, dan fungsi LOWER digunakan untuk membuat sebuah String bisa menjadi huruf kecil semua.

Semoga bermanfaat.

Sabtu, 21 Juli 2012

Menampilkan Tanggal Sebagai String di Oracle (TO_CHAR)

-->
Di artikel sebelumnya kita sudah membahas tentang penggunaan fungsi TO_DATE di oracle. Nah sekarang kita balik, kita akan menampilkan dari tipe DATE menjadi STRING, mari kita mulai buat querynya.

Contoh penggunaan TO_CHAR di query :
SELECT
  SYSDATE,
  TO_CHAR(SYSDATE, 'DD-MM-YYYY') DATE_FORMAT1,
  TO_CHAR(SYSDATE, 'DD/MM/YYYY') DATE_FORMAT2,
  TO_CHAR(SYSDATE, 'DD MONTH YYYY') DATE_FORMAT3,
  TO_CHAR(SYSDATE, 'DD Month YYYY') DATE_FORMAT4,
  TO_CHAR(SYSDATE, 'DD fmMonth YYYY') DATE_FORMAT5
FROM DUAL;


Dari query diatas menghasilkan :

SYSDATE   DATE_FORMAT1  DATE_FORMAT2  DATE_FORMAT3  DATE_FORMAT4  DATE_FORMAT5
25-JUL-12 25-07-2012 25/07/2012 25 JULY      2012 25 July      2012 25 July 2012

Dari hasil diatas dapat dilihat kita dapat menampilkan ke dalam bentuk format yang berbeda-beda. Yang perlu mendapat perhatian adalah ketika menggunakan fm pada month (bulan), ketika tidak menggunakan fm akan terdapat banyak spasi diantara bulan dan tahun, namun ketika menambahkan fm maka hanya ada satu spasi yang muncul.


Download Video Tutorial


Rabu, 18 Juli 2012

Date Format di Oracle 2 (TO_DATE di Oracle)

Ada berbagai macam penulisan tanggal yang sering kita lihat misalnya :
24-07-2012
24/07/2012
24 JUNE 2012
 dll...

Bagaimana caranya supaya bentuk-bentuk diatas dapat kita simpan di database dengan tipe DATE?

Solusi supaya semua date format diatas dapat masuk di tipe date adalah dengan menggunakan fungsi TO_DATE('inputan_tanggal', 'format_tanggal_inputan'), contohnya sebagai berikut :

SELECT
  SYSDATE TANGGAL1,
  TO_DATE('24-JUN-12') TANGGAL2,
  TO_DATE('24/06/2012', 'DD/MM/YYYY') TANGGAL3,
  TO_DATE('24-06-2012', 'DD-MM-YYYY') TANGGAL4,
  TO_DATE('24 JUNE 2012', 'DD MONTH YYYY') TANGGAL5,
  TO_DATE('JUNE 24 2012', 'MONTH DD YYYY') TANGGAL6
FROM DUAL;

Fungsi TO_DATE didalam query diatas akan menghasilkan nilai yang sama yaitu :


TANGGAL1 TANGGAL2 TANGGAL3 TANGGAL4 TANGGAL5 TANGGAL6
24-JUN-12 24-JUN-12 24-JUN-12 24-JUN-12 24-JUN-12 24-JUN-12

Jadi fungsi TO_DATE diatas digunakan untuk mengkonversi dari STRING menjadi DATE.

Download Video Tutorial


Senin, 16 Juli 2012

Date Format di Oracle

Dalam query di Oracle, sintak query untuk menampilkan date berbeda dengan apa yang ada di MySQL. Di Oracle kita menggunakan fungsi TO_DATE.

Contoh to_date di Oracle :
SELECT
  TO_DATE('12-JUN-14') TANGGAL
FROM DUAL;

Hasil query diatas :
TANGGAL
12-JUN-14

Bagaimana jika ingin menampilkan dengan format dd/mm/yyyy?
Jawabannya, dia harus dijadikan menjadi string terlebih dahulu, caranya pakai TO_CHAR. Query diatas tinggal kita tambahkan sedikit perubahan seperti berikut :
SELECT
  TO_CHAR(TO_DATE('12-JUN-14'), 'dd/mm/yyyy') TANGGAL
FROM DUAL;

Hasil query diatas :
TANGGAL
12/06/2014

Sabtu, 14 Juli 2012

Fungsi NVL dalam Query

Seringkali kita menjumpai nilai null dalam sebuah tabel. Padahal kita tidak menginginkan nilai tersebut null, melainkan terisi nilai tertentu. Solusi masalah tersebut dapat kita selesaikan menggunakan fungsi NVL.

Misal ada tabel T_BUKU :

KODE_BUKU JUDUL ID_PENGARANG HARGA
BK01 BUDIDAYA IKAN P001 (NULL)
BK02 BUDIDAYA CACING P001 (NULL)
BK03 PENGOLAHAN LIMBAH (NULL) 17500
BK04 MERAWAT TANAMAN (NULL) 10000

Contoh Fungsi NVL :
SELECT
  KODE_BUKU,
  JUDUL,
  NVL(ID_PENGARANG, '-') ID_PENGARANG,
  NVL(HARGA, 0) HARGA
FROM
  T_BUKU;


Maka fungsi NVL diatas akan menghasilkan output :

KODE_BUKU JUDUL ID_PENGARANG HARGA
BK01 BUDIDAYA IKAN P001 0
BK02 BUDIDAYA CACING P001 0
BK03 PENGOLAHAN LIMBAH - 17500
BK04 MERAWAT TANAMAN - 10000

Jadi, fungsi NVL berfungsi untuk mengembalikan sebuah nilai yang tadinya null menjadi nilai yang kita inginkan, entah itu decimal ataupun varchar.

Download Video Tutorial


Fungsi ABS dalam Query

Dalam membuat query, untuk melakukan operasi bilangan kadang kita membutuhkan nilai yang selalu positif. Contohnya adalah umur, umur manusia tidak mungkin berisi minus kan.

Misalkan saja ada salah input ternyata inputannya malah minus seperti contoh berikut,
Tabel T_KARYAWAN :
NAMA UMUR
RISTA -18
RANGGA 20
TIARA 17

Untuk membuat nilai minus menjadi positif, kita bisa menggunakan fungsi ABS.
Contoh Query Fungsi ABS :
SELECT NAMA, ABS(UMUR) FROM T_KARYAWAN;

Maka hasil fungsi ABS diatas adalah :
NAMA UMUR
RISTA 18
RANGGA 20
TIARA 17

Rista yang tadinya memiliki nilai umur minus sekarang menjadi positif.

Jadi di dalam query, fungsi ABS berfungsi untuk mendapatkan atau selalu mengembalikan nilai positif dari hasil operasi yang dijalankan.

Rabu, 06 Juni 2012

Operasi Bilangan di dalam Query

Seperti halnya di dalam pemrograman, di dalam query pun kita bisa melakukan operasi bilangan seperti tambah, kurang, bagi, kali dan lainnya.

Contoh operasi bilangan di dalam query :
SELECT
  12.5 + 8 TAMBAH,
  40-17 KURANG,
  4*3 KALI,
  69/3 BAGI,
  POWER(2, 4) PANGKAT,
  SQRT(16) AKAR
FROM DUAL


Query operasi bilangan diatas menghasilkan :

TAMBAH KURANG KALI BAGI PANGKAT AKAR
20.5 23 12 23 16 4

Kamis, 31 Mei 2012

Cross Join

Tabel DETAIL_BUKU :
KODE_BUKU JUDUL ID_PENGARANG HARGA
BK01 BUDIDAYA IKAN P001 15000
BK02 BUDIDAYA CACING P001 25000
BK03 PENGOLAHAN LIMBAH P003 17500
BK04 MERAWAT TANAMAN P002 10000
BK05 PERAKITAN PC P004 35000
BK06 BELAJAR QUERY P004 55000
XX01 BELAJAR JAVA PR06 75000

Tabel PENGARANG :
ID_PENGARANG NAMA ALAMAT
P001 WISNU ARDIHERDIYAN YOGYAKARTA
P002 DIANA NASUTION MEDAN
P003 FAJAR NURDIANTORO PEKANBARU
P004 NURDIANSYAH MALUKU
P005 SUGALI SEMARANG
P006 BUDIYONO NGANJUK

Query Cross Join :
SELECT
    A.NAMA, B.JUDUL, B.HARGA
FROM
    PENGARANG A
    CROSS JOIN DETAIL_BUKU B


Hasil Query diatas :
NAMA JUDUL HARGA
WISNU ARDIHERDIYAN BUDIDAYA IKAN 15000
DIANA NASUTION BUDIDAYA IKAN 15000
FAJAR NURDIANTORO BUDIDAYA IKAN 15000
NURDIANSYAH BUDIDAYA IKAN 15000
SUGALI BUDIDAYA IKAN 15000
BUDIYONO BUDIDAYA IKAN 15000
WISNU ARDIHERDIYAN BUDIDAYA CACING 25000
DIANA NASUTION BUDIDAYA CACING 25000
FAJAR NURDIANTORO BUDIDAYA CACING 25000
NURDIANSYAH BUDIDAYA CACING 25000
SUGALI BUDIDAYA CACING 25000
BUDIYONO BUDIDAYA CACING 25000
WISNU ARDIHERDIYAN PENGOLAHAN LIMBAH 17500
DIANA NASUTION PENGOLAHAN LIMBAH 17500
FAJAR NURDIANTORO PENGOLAHAN LIMBAH 17500
NURDIANSYAH PENGOLAHAN LIMBAH 17500
SUGALI PENGOLAHAN LIMBAH 17500
BUDIYONO PENGOLAHAN LIMBAH 17500
WISNU ARDIHERDIYAN MERAWAT TANAMAN 10000
DIANA NASUTION MERAWAT TANAMAN 10000
FAJAR NURDIANTORO MERAWAT TANAMAN 10000
NURDIANSYAH MERAWAT TANAMAN 10000
SUGALI MERAWAT TANAMAN 10000
BUDIYONO MERAWAT TANAMAN 10000
WISNU ARDIHERDIYAN PERAKITAN PC 35000
DIANA NASUTION PERAKITAN PC 35000
FAJAR NURDIANTORO PERAKITAN PC 35000
NURDIANSYAH PERAKITAN PC 35000
SUGALI PERAKITAN PC 35000
BUDIYONO PERAKITAN PC 35000
WISNU ARDIHERDIYAN BELAJAR QUERY 55000
DIANA NASUTION BELAJAR QUERY 55000
FAJAR NURDIANTORO BELAJAR QUERY 55000
NURDIANSYAH BELAJAR QUERY 55000
SUGALI BELAJAR QUERY 55000
BUDIYONO BELAJAR QUERY 55000
WISNU ARDIHERDIYAN BELAJAR JAVA 75000
DIANA NASUTION BELAJAR JAVA 75000
FAJAR NURDIANTORO BELAJAR JAVA 75000
NURDIANSYAH BELAJAR JAVA 75000
SUGALI BELAJAR JAVA 75000
BUDIYONO BELAJAR JAVA 75000

Query CROSS JOIN tidak menggunakan ON seperti halnya query JOIN yang lainnya.Cross join akan menampilkan isi tabel sisi kiri akan memiliki semua data disisi kanan. Jadi banyaknya rows di cross join sama dengan jumlah rows di sisi kiri dikalikan jumlah rows disisi kanan. Dalam contoh diatas 6 x 7 = 42 rows.

Download Video Tutorial


Kamis, 24 Mei 2012

Full Join

Tabel DETAIL_BUKU :
KODE_BUKU JUDUL ID_PENGARANG HARGA
BK01 BUDIDAYA IKAN P001 15000
BK02 BUDIDAYA CACING P001 25000
BK03 PENGOLAHAN LIMBAH P003 17500
BK04 MERAWAT TANAMAN P002 10000
BK05 PERAKITAN PC P004 35000
BK06 BELAJAR QUERY P004 55000
XX01 BELAJAR JAVA PR06 75000

Tabel PENGARANG :
ID_PENGARANG NAMA ALAMAT
P001 WISNU ARDIHERDIYAN YOGYAKARTA
P002 DIANA NASUTION MEDAN
P003 FAJAR NURDIANTORO PEKANBARU
P004 NURDIANSYAH MALUKU
P005 SUGALI SEMARANG
P006 BUDIYONO NGANJUK

Query Full Join :
SELECT
    A.NAMA, B.JUDUL, B.HARGA
FROM
    PENGARANG A
    FULL JOIN DETAIL_BUKU B ON (A.ID_PENGARANG = B.ID_PENGARANG)


Hasil Query diatas :

NAMA JUDUL HARGA
WISNU ARDIHERDIYAN BUDIDAYA IKAN 15000
WISNU ARDIHERDIYAN BUDIDAYA CACING 25000
DIANA NASUTION MERAWAT TANAMAN 10000
FAJAR NURDIANTORO PENGOLAHAN LIMBAH 17500
NURDIANSYAH PERAKITAN PC 35000
NURDIANSYAH BELAJAR QUERY 55000
SUGALI (NULL) (NULL)
BUDIYONO (NULL) (NULL)
(NULL) BELAJAR JAVA 75000

Query FULL JOIN akan menampilkan semua isi tabel sisi kiri dan kanan walaupun data di pasangan joinnya yang berada disisi lawannnya memiliki nilai null.

*tidak berlaku di MYSQL

Download Video Tutorial


Right Join

Tabel DETAIL_BUKU :
KODE_BUKU JUDUL ID_PENGARANG HARGA
BK01 BUDIDAYA IKAN P001 15000
BK02 BUDIDAYA CACING P001 25000
BK03 PENGOLAHAN LIMBAH P003 17500
BK04 MERAWAT TANAMAN P002 10000
BK05 PERAKITAN PC P004 35000
BK06 BELAJAR QUERY P004 55000
XX01 BELAJAR JAVA PR06 75000

Tabel PENGARANG :
ID_PENGARANG NAMA ALAMAT
P001 WISNU ARDIHERDIYAN YOGYAKARTA
P002 DIANA NASUTION MEDAN
P003 FAJAR NURDIANTORO PEKANBARU
P004 NURDIANSYAH MALUKU
P005 SUGALI SEMARANG
P006 BUDIYONO NGANJUK

Query Right Join :
SELECT
    A.NAMA, B.JUDUL, B.HARGA
FROM
    PENGARANG A
    RIGHT JOIN DETAIL_BUKU B ON (A.ID_PENGARANG = B.ID_PENGARANG)


Hasil Query diatas :
NAMA JUDUL HARGA
WISNU ARDIHERDIYAN BUDIDAYA IKAN 15000
WISNU ARDIHERDIYAN BUDIDAYA CACING 25000
FAJAR NURDIANTORO PENGOLAHAN LIMBAH 17500
DIANA NASUTION MERAWAT TANAMAN 10000
NURDIANSYAH PERAKITAN PC 35000
NURDIANSYAH BELAJAR QUERY 55000
(NULL) BELAJAR JAVA 75000

Query RIGHT JOIN, memprioritaskan sisi kanan , dalam hal ini tabel detail_buku lebih diutamakan, jadi field yang diambil dari tabel b (detail_buku) tetap dimunculkan sekalipun di tabel a (pengarang) mendapatkan nilai null.

Download Video Tutorial


Left Join

Tabel DETAIL_BUKU :

KODE_BUKU JUDUL ID_PENGARANG HARGA
BK01 BUDIDAYA IKAN P001 15000
BK02 BUDIDAYA CACING P001 25000
BK03 PENGOLAHAN LIMBAH P003 17500
BK04 MERAWAT TANAMAN P002 10000
BK05 PERAKITAN PC P004 35000
BK06 BELAJAR QUERY P004 55000

Tabel PENGARANG :

ID_PENGARANG NAMA ALAMAT
P001 WISNU ARDIHERDIYAN YOGYAKARTA
P002 DIANA NASUTION MEDAN
P003 FAJAR NURDIANTORO PEKANBARU
P004 NURDIANSYAH MALUKU
P005 SUGALI SEMARANG
P006 BUDIYONO NGANJUK

Query Left Join :
SELECT
    A.NAMA, B.JUDUL, B.HARGA
FROM
    PENGARANG A
    LEFT JOIN DETAIL_BUKU B ON (A.ID_PENGARANG = B.ID_PENGARANG)


Hasil Query diatas :
NAMA JUDUL HARGA
WISNU ARDIHERDIYAN BUDIDAYA IKAN 15000
WISNU ARDIHERDIYAN BUDIDAYA CACING 25000
DIANA NASUTION MERAWAT TANAMAN 10000
FAJAR NURDIANTORO PENGOLAHAN LIMBAH 17500
NURDIANSYAH PERAKITAN PC 35000
NURDIANSYAH BELAJAR QUERY 55000
SUGALI (NULL) (NULL)
BUDIYONO (NULL) (NULL)

Query LEFT JOIN, memprioritaskan sisi kiri, dalam hal ini tabel pengarang lebih diutamakan, jadi field yang diambil dari tabel a (pengarang) tetap dimunculkan sekalipun di tabel b (detail_buku) mendapatkan nilai null.

Download Video Tutorial


Inner Join

Tabel DETAIL_BUKU :

KODE_BUKU JUDUL ID_PENGARANG HARGA
BK01 BUDIDAYA IKAN P001 15000
BK02 BUDIDAYA CACING P001 25000
BK03 PENGOLAHAN LIMBAH P003 17500
BK04 MERAWAT TANAMAN P002 10000
BK05 PERAKITAN PC P004 35000
BK06 BELAJAR QUERY P004 55000

Tabel PENGARANG :
ID_PENGARANG NAMA ALAMAT
P001 WISNU ARDIHERDIYAN YOGYAKARTA
P002 DIANA NASUTION MEDAN
P003 FAJAR NURDIANTORO PEKANBARU
P004 NURDIANSYAH MALUKU

Query Inner Join :
SELECT
    A.NAMA, B.JUDUL, B.HARGA
FROM
    PENGARANG A
    INNER JOIN DETAIL_BUKU B ON (A.ID_PENGARANG = B.ID_PENGARANG)


Hasil Query diatas :
NAMA JUDUL HARGA
WISNU ARDIHERDIYAN BUDIDAYA IKAN 15000
WISNU ARDIHERDIYAN BUDIDAYA CACING 25000
FAJAR NURDIANTORO PENGOLAHAN LIMBAH 17500
DIANA NASUTION MERAWAT TANAMAN 10000
NURDIANSYAH PERAKITAN PC 35000
NURDIANSYAH BELAJAR QUERY 55000

Query INNER JOIN, menghasilkan output seperti halnya JOIN biasa.

Download Video Tutorial


Query Join (Inner Join)

Query INNER JOIN menghasilkan output yang sama dengan query JOIN biasa, jadi di contoh dibawah ini saya akan menulis JOIN saja biar cepat.

Tabel DETAIL_BUKU :
KODE_BUKU JUDUL ID_PENGARANG HARGA
BK01 BUDIDAYA IKAN P001 15000
BK02 BUDIDAYA CACING P001 25000
BK03 PENGOLAHAN LIMBAH P003 17500
BK04 MERAWAT TANAMAN P002 10000
BK05 PERAKITAN PC P004 35000
BK06 BELAJAR QUERY P004 55000

Tabel PENGARANG :
ID_PENGARANG NAMA ALAMAT
P001 WISNU ARDIHERDIYAN YOGYAKARTA
P002 DIANA NASUTION MEDAN
P003 FAJAR NURDIANTORO PEKANBARU
P004 NURDIANSYAH MALUKU

Query Join :
SELECT
    A.NAMA, B.JUDUL, B.HARGA
FROM
    PENGARANG A
    JOIN DETAIL_BUKU B ON (A.ID_PENGARANG = B.ID_PENGARANG)


Hasil Query diatas :
NAMA JUDUL HARGA
WISNU ARDIHERDIYAN BUDIDAYA IKAN 15000
WISNU ARDIHERDIYAN BUDIDAYA CACING 25000
FAJAR NURDIANTORO PENGOLAHAN LIMBAH 17500
DIANA NASUTION MERAWAT TANAMAN 10000
NURDIANSYAH PERAKITAN PC 35000
NURDIANSYAH BELAJAR QUERY 55000

Query JOIN, digunakan untuk mengambil data dalam database yang mempunyai relationships. Dari hasil relationships yang menghasilkan nilai null tidak ditampilkan.
Seperti halnya query JOIN, query INNER JOIN menampilkan output yang sama dengan query JOIN.

Download Video Tutorial