Halaman

Kamis, 07 Februari 2013

Tipe data dan tipe “DATE” Si Ribet


Terus terang saja memang diantara keseluruhan tipe data yang paling ribet adalah “DATE” pada setiap bahasa pemrograman. Saya sudah membuktikan beberapa diantaranya, yaitu PHP, Javascript, ASP, MySQL, dan Oracle sendiri. Semua bahasa tersebut mempunyai cara masing-masing dalam mengelola tipe data yang cukup unik ini.
Yang paling sulit adalah jika ingin mengolah tipe data ini antar bahasa pemrograman yang berbeda, misal JavaScript dan PHP, atau Oracle dan JavaScript. Ribet bener. Kita harus benar-benar menguasai karakteristik tipe data ini di tiap bahasa pemrograman tersebut (so pasti dong).
Sebelum kita membahas “Si Ribet” DATE, sebaiknya kita mulai dengan melihat tipe-tipe data yang lain. Secara global tipe-tipe data yang sering digunakan pada Oracle adalah sebagai berikut :


CHAR(i):Tipe data untuk string (berupa karakter). Nilai i adalah panjang dari string tersebut. Jika tidak disertai Niali i maka sama saja denganCHAR(1).
VARCHAR2(i):Tipe data untuk string (berupa karakter, walaupun berisi angka tapi akan dikenal dengan karakter, mis : ’123′). Nilai i adalah panjang dari string tersebut. Perbedaan dengan tipe data CHAR adalah tipe data ini fleksibel tergantung dari panjang string yang dimasukkan dengan maksimal nilai i tersebut. contoh CHAR(10) dan VARCHAR2(10). Jika dimasukkan nilai ‘ORACLE’, maka pada kolom CHAR(10) akan disimpan di memori tetap (fix) 10 karakter, tapi jika pada VARCHAR2(10) maka yang disimpan adalah panjang dari string ‘ORACLE’ yaitu 6 karakter.
NUMBER(i,j):Tipe data untuk integer, float (berupa angka, mis : 2000)
i adalah total digit keseluruhan antara 1 – 38 digit
j adalah digit dibelakang koma, berarti jumlah digit di depan koma = (i – j)
DATE:Tipe data untuk tanggal
Perhatikan contoh berikut (tabel dilihat di sini dan data dapat diperoleh di sini):
1. Tampilkan jadwal pelajaran kelas I pada hari SENIN.
SELECT
mp.NAMA_MP AS MATA_PELAJARAN,
g.NAMA AS NAMA_GURU,
b.KELAS_ID AS KELAS,
b.HARI
FROM
TEST.BELAJAR b,
TEST.GURU g,
TEST.MATA_PELAJARAN mp,
WHERE
b.NIG = g.NIG
AND b.KODE_MP = mp.KODE_MP
AND b.KELAS_ID = ‘I’ 
AND b.HARI = ‘SENIN’ 
ORDER BY mp.NAMA_MP;
2. Tampilkan seluruh murid kelas I yang lahir pada bulan Januari 1978.
SELECT
NIS,
NAMA
FROM
TEST.MURID
WHERE
TO_CHAR(TGL_LAHIR, ‘MM-YYYY’) = ’01-1978′
ORDER BY NAMA; 
/*Atau bisa seperti ini : */
SELECT
NIS,
NAMA
FROM
TEST.MURID
WHERE
TO_CHAR(TGL_LAHIR, ‘MMYYYY’) = ’011978′
ORDER BY NAMA;
/*Atau bisa seperti ini : */
SELECT
NIS,
NAMA
FROM
TEST.MURID
WHERE
TO_CHAR(TGL_LAHIR, ‘MON-YYYY’) = ‘JAN-1978′
ORDER BY NAMA;
3. Tampilkan murid yang lahir pada tanggal 1 Januari 1978
SELECT
NIS,
NAMA
FROM
TEST.MURID
WHERE
TGL_LAHIR = TO_DATE(’01-01-1978′‘DD-MM-YYYY’)
ORDER BY NAMA; 
/*Atau bisa seperti ini : */
SELECT
NIS,
NAMA
FROM
TEST.MURID
WHERE
TGL_LAHIR = TO_DATE(’01-JAN-1978′‘DD-MON-YYYY’)
ORDER BY NAMA;
/*Atau bisa seperti ini : */
SELECT
NIS,
NAMA
FROM
TEST.MURID
WHERE
TGL_LAHIR = TO_DATE(’01JAN1978′‘DDMONYYYY’)
ORDER BY NAMA;
Perhatikan penggunaan  TO_DATE dan TO_CHAR pada contoh di atas. Maka praktekkan seperti contoh-contoh tersebut untuk kasus yang lain.

Tidak ada komentar:

Posting Komentar