Friday, June 19, 2015

Mengenal Built-in Control Flow Functions Di MySQL

Friday, June 19, 2015

Pada tutorial kali ini, Anda akan belajar tentang Bagaimana Cara Menggunakan Built-in Control Flow Functions di MySQL database.

MySQL Built-in Control Flow Functions



Sebelum melakukan percobaan (eksperimen), ada beberapa hal yang harus Anda lakukan terlebih dahulu, yaitu:
  1. Membuat table pegawai sebagai contoh

    Buatlah tabel pegawai sebagai contoh dengan menjalankan script berikut:

    CREATE TABLE pegawai (
       id_pegawai VARCHAR(10) NOT NULL,
       nama_pegawai VARCHAR(30) NOT NULL,
       gender CHAR(1) NOT NULL,
       umur INT(3) NOT NULL,
       alamat VARCHAR(30) NOT NULL,
       kd_departemen VARCHAR(5) DEFAULT NULL,
       PRIMARY KEY (id_pegawai)
    );
    

  2. Insert data pada tabel pegawai diatas

    insert into `pegawai` (`id_pegawai`, `nama_pegawai`, `gender`, `umur`, `alamat`, `kd_departemen`) values('001','Nursalim','L','20','Brebes','IT');
    insert into `pegawai` (`id_pegawai`, `nama_pegawai`, `gender`, `umur`, `alamat`, `kd_departemen`) values('002','Iskiyati','P','25','Bandung','IT');
    insert into `pegawai` (`id_pegawai`, `nama_pegawai`, `gender`, `umur`, `alamat`, `kd_departemen`) values('003','Nurul Hikmah','P','18','Semarang','ACC');
    insert into `pegawai` (`id_pegawai`, `nama_pegawai`, `gender`, `umur`, `alamat`, `kd_departemen`) values('004','Naura Krasiva','P','15','Jakarta','IT');
    insert into `pegawai` (`id_pegawai`, `nama_pegawai`, `gender`, `umur`, `alamat`, `kd_departemen`) values('005','Ahmad Fathoni','L','20','Yogyakarta','HR');
    insert into `pegawai` (`id_pegawai`, `nama_pegawai`, `gender`, `umur`, `alamat`, `kd_departemen`) values('006','Ramanata','L','17','Jakarta','HR');
    insert into `pegawai` (`id_pegawai`, `nama_pegawai`, `gender`, `umur`, `alamat`, `kd_departemen`) values('007','Taryono','L','18','Surabaya','ACC');
    insert into `pegawai` (`id_pegawai`, `nama_pegawai`, `gender`, `umur`, `alamat`, `kd_departemen`) values('008','Nani Indriyani','P','15','Bandung','FIN');
    insert into `pegawai` (`id_pegawai`, `nama_pegawai`, `gender`, `umur`, `alamat`, `kd_departemen`) values('009','Imron','L','23','Bandung',NULL);
    insert into `pegawai` (`id_pegawai`, `nama_pegawai`, `gender`, `umur`, `alamat`, `kd_departemen`) values('010','Andi','L','16','Bandung',NULL);
    
    
  3. Tampilkan data dari tabel pegawai diatas

    mysql> SELECT * FROM pegawai;
    +------------+----------------+--------+------+------------+---------------+
    | id_pegawai | nama_pegawai   | gender | umur | alamat     | kd_departemen |
    +------------+----------------+--------+------+------------+---------------+
    | 001        | Nursalim       | L      |   20 | Brebes     | IT            |
    | 002        | Iskiyati       | P      |   25 | Bandung    | IT            |
    | 003        | Nurul Hikmah   | P      |   18 | Semarang   | ACC           |
    | 004        | Naura Krasiva  | P      |   15 | Jakarta    | IT            |
    | 005        | Ahmad Fathoni  | L      |   20 | Yogyakarta | HR            |
    | 006        | Ramanata       | L      |   17 | Jakarta    | HR            |
    | 007        | Taryono        | L      |   18 | Surabaya   | ACC           |
    | 008        | Nani Indriyani | P      |   15 | Bandung    | FIN           |
    | 009        | Imron          | L      |   23 | Bandung    | NULL          |
    | 010        | Andi           | L      |   16 | Bandung    | NULL          |
    +------------+----------------+--------+------+------------+---------------+
    10 rows in set (0.00 sec)
    

1. IF

Fungsi IF() digunakan untuk menampilkan nilai percabangan dari sebuah kondisi atau expression.

Sintak Dasar

SELECT IF(expr, true_expr, false_expr) FROM table_name;

Contoh

Contoh #1

mysql> SELECT IF(1 = 3, 'true', 'false');
+----------------------------+
| IF(1 = 3, 'true', 'false') |
+----------------------------+
| false                      |
+----------------------------+
1 row in set (0.00 sec)

mysql> SELECT IF(1 = 1, 'true', 'false');
+----------------------------+
| IF(1 = 1, 'true', 'false') |
+----------------------------+
| true                       |
+----------------------------+
1 row in set (0.00 sec)

Contoh #2

Menggunakan tabel pegawai diatas, coba Anda tampilkan data pegawai, jika kolom gender bernilai 'L', tampilkan keterangan 'Laki-Laki', dan sebaliknya tampilkan keterangan 'Perempuan'.

mysql> SELECT id_pegawai, nama_pegawai, IF(gender = 'L', 'Laki-Laki','Perempuan') gender, umur, alamat, kd_departemen
    -> FROM pegawai;
+------------+----------------+-----------+------+------------+---------------+
| id_pegawai | nama_pegawai   | gender    | umur | alamat     | kd_departemen |
+------------+----------------+-----------+------+------------+---------------+
| 001        | Nursalim       | Laki-Laki |   20 | Brebes     | IT            |
| 002        | Iskiyati       | Perempuan |   25 | Bandung    | IT            |
| 003        | Nurul Hikmah   | Perempuan |   18 | Semarang   | ACC           |
| 004        | Naura Krasiva  | Perempuan |   15 | Jakarta    | IT            |
| 005        | Ahmad Fathoni  | Laki-Laki |   20 | Yogyakarta | HR            |
| 006        | Ramanata       | Laki-Laki |   17 | Jakarta    | HR            |
| 007        | Taryono        | Laki-Laki |   18 | Surabaya   | ACC           |
| 008        | Nani Indriyani | Perempuan |   15 | Bandung    | FIN           |
| 009        | Imron          | Laki-Laki |   23 | Bandung    | NULL          |
| 010        | Andi           | Laki-Laki |   16 | Bandung    | NULL          |
+------------+----------------+-----------+------+------------+---------------+
10 rows in set (0.00 sec)

2. IFNULL

Fungsi IFNULL() digunakan untuk mengembalikan sebuah nilai tertentu pada suatu kolom yang bernilai Null.

Sintak Dasar

SELECT IFNULL(kolom_name, value) FROM table_name;

Contoh

Dengan menggunakan data di tabel pegawai diatas, coba Anda tampilkan data pegawai dengan ketentuan jika pegawi tersebut tidak memiliki departemen, maka nilai di kolom kd_departemen adalah 'N/A'.

mysql> SELECT id_pegawai, nama_pegawai, gender, umur, alamat, IFNULL(kd_departemen, 'N/A') kd_departemen
    -> FROM pegawai;
+------------+----------------+--------+------+------------+---------------+
| id_pegawai | nama_pegawai   | gender | umur | alamat     | kd_departemen |
+------------+----------------+--------+------+------------+---------------+
| 001        | Nursalim       | L      |   20 | Brebes     | IT            |
| 002        | Iskiyati       | P      |   25 | Bandung    | IT            |
| 003        | Nurul Hikmah   | P      |   18 | Semarang   | ACC           |
| 004        | Naura Krasiva  | P      |   15 | Jakarta    | IT            |
| 005        | Ahmad Fathoni  | L      |   20 | Yogyakarta | HR            |
| 006        | Ramanata       | L      |   17 | Jakarta    | HR            |
| 007        | Taryono        | L      |   18 | Surabaya   | ACC           |
| 008        | Nani Indriyani | P      |   15 | Bandung    | FIN           |
| 009        | Imron          | L      |   23 | Bandung    | N/A           |
| 010        | Andi           | L      |   16 | Bandung    | N/A           |
+------------+----------------+--------+------+------------+---------------+
10 rows in set (0.00 sec)

3. NULLIF

Fungsi NULLIF() akan memberikan nilai NULL jika nilai ekspresi pertama sama dengan nilai ekspresi kedua.

Sintak Dasar

SQL> SELECT NULLIF(expression1, expression2) FROM table_name;

Contoh

mysql> SELECT NULLIF('A','A');
+-----------------+
| NULLIF('A','A') |
+-----------------+
| NULL            |
+-----------------+
1 row in set (0.00 sec)

mysql> SELECT NULLIF('A','B');
+-----------------+
| NULLIF('A','B') |
+-----------------+
| A               |
+-----------------+
1 row in set (0.00 sec)

4. CASE WHEN

Fungsi CASE WHEN digunakan untuk menampilkan nilai tertentu berdasarkan syarat-syarat atau kondisi yang digunakan. Fungsi ini mirip dengan perintah IF..ELSE IF..ELSE IF..ELSE pada sebuah bahasa pemrograman.

Sintak Dasar

Contoh

Tampilkan data pegawai dengan kondisi atau syarat berikut ini:
- Jika nilai kd_departemen adalah 'IT' tampilkan tulisan 'Information Technology'
- Jika nilai kd_departemen adalah 'ACC' tampilkan tulisan 'Accounting'
- Jika nilai kd_departemen adalah 'FIN' tampilkan tulisan 'Finance'
- Jika nilai kd_departemen adalah 'HR' tampilkan tulisan 'Human Resource'

mysql> SELECT id_pegawai, nama_pegawai, gender, umur, alamat,
    -> CASE kd_departemen WHEN 'IT' THEN 'Information Technology'
    -> WHEN 'ACC' THEN 'Accounting'
    -> WHEN 'FIN' THEN 'Finance'
    -> WHEN 'HR' THEN 'Human Resource'
    -> END departemen
    -> FROM pegawai;
+------------+----------------+--------+------+------------+------------------------+
| id_pegawai | nama_pegawai   | gender | umur | alamat     | departemen             |
+------------+----------------+--------+------+------------+------------------------+
| 001        | Nursalim       | L      |   20 | Brebes     | Information Technology |
| 002        | Iskiyati       | P      |   25 | Bandung    | Information Technology |
| 003        | Nurul Hikmah   | P      |   18 | Semarang   | Accounting             |
| 004        | Naura Krasiva  | P      |   15 | Jakarta    | Information Technology |
| 005        | Ahmad Fathoni  | L      |   20 | Yogyakarta | Human Resource         |
| 006        | Ramanata       | L      |   17 | Jakarta    | Human Resource         |
| 007        | Taryono        | L      |   18 | Surabaya   | Accounting             |
| 008        | Nani Indriyani | P      |   15 | Bandung    | Finance                |
| 009        | Imron          | L      |   23 | Bandung    | NULL                   |
| 010        | Andi           | L      |   16 | Bandung    | NULL                   |
+------------+----------------+--------+------+------------+------------------------+
10 rows in set (0.00 sec)


5. COALESCE

Fungsi COALESCE() digunakan untuk menampilkan ekspresi pertama yang tidak mempunyai nilai null dari beberapa ekspresi yang digunakan.

Sintak Dasar

Contoh

mysql> SELECT COALESCE(null, null, null, 'A', 'B');
+--------------------------------------+
| COALESCE(null, null, null, 'A', 'B') |
+--------------------------------------+
| A                                    |
+--------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT COALESCE('X', null, null, 'A', 'B');
+-------------------------------------+
| COALESCE('X', null, null, 'A', 'B') |
+-------------------------------------+
| X                                   |
+-------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT COALESCE(null, null, null, null, null);
+----------------------------------------+
| COALESCE(null, null, null, null, null) |
+----------------------------------------+
|                                   NULL |
+----------------------------------------+
1 row in set (0.00 sec)


                                                    ~~~## MySQL ##~~~

Sekian tutorial singkat tentang Mengenal Built-in Control Flow Functions Di MySQL. Semoga bermanfaat & Happy Learning MySQL database.

Written by

We are Creative Blogger Theme Wavers which provides user friendly, effective and easy to use themes. Each support has free and providing HD support screen casting.

0 comments:

Post a Comment

 

© 2015 {Ora~Kelar} | Ora Kelar Kelar. All rights resevered. Designed by Templateism

Back To Top