Pengenalan informix
Informix SQL adalah suatu sofware untuk menangani masalah-masalah database dengan berbasis pada sistem penyimpanan record dan dengan penggunaan bahasa permintaan terstruktur (Strucured Query Language). Informix - SQL mengurangi waktu yang diperlukan untuk menangani permintaan dari user dalam hal mengorganisasi suatu file, meminta informasi, membuat ringkasan, membuat group dan fungsi-fungsi lain dalam sistem manajemen database.
Cara instalasi informix
Untuk menggunakan informix-sql beberapa hal harus disiapkan dengan anggapan anda telah menginstall Informix - SQL pada komputer anda, diantaranya :
· Men-set variabel INFORMIXDIR agar Informix - SQL dapat mengalokasikan program-programnya.
· Men-set variabel TERM agar Informix - SQL dapat mengetahui jenis terminal yang anda gunakan.
· Men-set variabel TERMCAP atau TERMINFO agar Informix - SQL dapat berkomunikasi dengan terminal anda.
· Men-set variabel INFORMIXTERM untuk menspesifikasikan apakah Informix - SQL harus menggunakan TERMCAP atau TERMINFO untuk mengalokasikan kapabilitas dari terminal .
· Men-set variabel PATH agar shell dapat menemukan lokasi bin untuk menjalankan program-program dari Informix – SQL.
Variabel - variabel diatas dapat anda set pada system prompt di file hidden : .profile ( Untuk Bourne Shell ) atau .login ( Untuk C shell ) .Dengan demikian setiap kali anda memasuki system prompt / login maka secara otomatis anda menjalankan file .profile atau .login .
cara install Informix SE for Linux:
1. Buat group "informix" dan user informix
2. Buat directory install atao taroh aja di homedirnya user informix
3. Set environtment variable di ~informix dengan file .profile
INFORMIXDIR=<install-dir>
PATH=${INFORMIXDIR}/bin:${PATH}
export INFORMIXDIR PATH
4. Extract filenya dengan user informix sesuai dengan INFORMIXDIR
5. Jadi su untuk installasi...
./installesql
./installconn
./installse
6. Informix udah terinstall......untuk connect ke server ato jalanindaemon
edit dulu file di INFORMIXDIR/etc/sqlhost...
untuk itu buat kopimix dan baca dulu Administrator guidenya di sitenya informix.
Fasilitas Yang Ada Pada ISQL
Informix - SQL merupakan kumpulan lengkap dari suatu manajemen database yang memungkinkan kita untuk melaksanakan tugas dengan jangkauan yang luas. Dengan ISQL kita dapat :
o Membentuk table dengan Schema Editor
Database dibentuk oleh satu atau lebih table. Schema editor menampilkan menu yang akan menuntun kita untuk dapat membentuk table dari database.
o Memasukkan dan meminta informasi data menggunakan Screen Form
Setelah kita membentuk table, kita dapat menyimpan data pada table tersebut. Cara tercepat adalah dengan memasukkan data yang kita inginkan menggunakan Screen Form. Selain dapat memasukkan data kita juga dapat meminta informasi/query data yang kita inginkan, menghapus data, mengupdate data.
o Fasilitas Report
Dengan fasilitas ini kita dapat mencetak informasi sesuai format yang kita inginkan, misalnya dengan judul kolom. Dapat dicetak dicetak dikertas atau dalam file sesuai kebutuhan kita.
o SQL (Structured Query Language)
SQL merupakan suatu bahasa permintaan yang interaktif. Dengan SQL kita dapat membentuk berbagai macam tugas manajemen database yaitu :
• Membentuk dan menghapus table
• Memasukkan dan menghapus data
• Query database
• Memberi nama lain untuk table dan kolom
· Sistem USER MENU
Fasilitas User Menu yang ada di SQL digunakan untuk membentuk dan menjalankan berbagai macam menu. Pilihan yang dapat dipakai di User Menu :
• Submenu dalam sistem menu
• ISQL program ( report, screen form, SQL )
• Program lain yang ada dalam software library
• Utilitas dari sistem operasi
DATA DEFINITION
CREATE DATABASE
Statement CREATE DATABASE digunakan untuk membuat sebuah database baru. INFORMIX-4GL akan memuat sistem catalog yang akan berisi sebuah kamus data yang menggambarkan struktur database. Database yang dibuat secara otomatis menjadi current database (yang aktif saat itu).
CLOSE DATABASE
DROP DATABASE
CREATE TABLE
ALTER TABLE
RENAME TABLE
Digunakan untuk mengubah nama table.
Sintaks :
RENAME TABLE oldname TO newname
RENAME TABLE Kata kunci.
oldname Nama table yang ingin diubah namanya.
TO Kata kunci. newname Nama table yang baru.
DROP TABLE
CREATE VIEW
DROP VIEW
CREATE SYNONYM
DROP SYNONYM
Digunakan untuk menghapus synonym yang telah didefinisikan terlebih dahulu.
Sintaks :
DROP SYNONYM synonym
RENAME COLUMN
Digunakan untuk merubah nama column (field).
Sintaks :
RENAME COLUMN table.oldcolumn TO newcolumn
CREATE INDEX
ALTER INDEX
DROP INDEX
UPDATE STATISTICS
DATA MANIPULATION
DELETE
Digunakan untuk menghapus satu atau lebih baris dari suatu tabel Sintaks : DELETE FROM table-name [ WHERE condition ]
INSERT
Digunakan untuk menambah data ke dalam tabel.
Sintaks :
INSERT INTO table-name [(column-list)]
{VALUES (value-list) | SELECT-statement}
INSERT INTO
Kata kunci table-name Nama dari table yang akan ditambah datanya column-list Column (field) yang akan ditambah datanya, bila lebih
dari satu column maka dipisahkan dengan koma
UPDATE
Statement UPDATE digunakan untuk merubah suatu nilai dalam satu atau lebih kolom pada satu atau lebih baris dalam table.
Sintaks :
UPDATE table-name SET {column-name = expr [,...] |
{(column-list) | [table-name.]*} =
{(expr-list) | record-name.*}}
[WHERE condition ]
SELECT
Statement SELECT digunakan untuk meng-query suatu current database.
Statement SELECT dapat terdiri dari 8 buah clause. Dari semuanya hanya SELECT clause dan FROM clause yang merupakan kata kunci. Jika INTO clause disertakan, maka harus ditulis sebelum FROM clause.
Sintaks :
SELECT clause [INTO clause] FROM clause
[WHERE clause]
[GROUP BY clause]
[HAVING clause]
[ORDER BY clause]
[INTO TEMP clause]
DATA ACCESS
GRANT
Statement ini digunakan untuk memberikan hak istimewa seorang pemakai dalam suatu table atau data base
REVOKE
Statement ini digunakan untuk menghapus hak akses istimewa seorang pemakai dalam suatu table atau database.
Sintaks :
REVOKE {tab-privilege ON table-name | db-privilege}
FROM {PUBLIC | user-list}
REVOKE Kata kunci
tab-privilege Satu atau lebih hak akses istimewa yang dipisahkan
contoh membuat database dengan menggunakan informix:
Langkah 1 : * Membuat database-nya, misalnya kita beri nama : abc
Sintak-nya : CREATE DATABASE abc
Sintak-nya : CREATE DATABASE abc
* Membuat table untuk memasukkan/ menyimpan data kurs, misalnya kita beri nama: t_vals
Sintak-nya : CREATE TABLE t_vals
(curren char(2),
skatan char(3),
urai char(15),
kurs_beli decimal(10,5),
kurs decimal(10,5),
tglpro date
);
Sintak-nya : CREATE TABLE t_vals
(curren char(2),
skatan char(3),
urai char(15),
kurs_beli decimal(10,5),
kurs decimal(10,5),
tglpro date
);
* Membuat formulir untuk memasukkan data; kita beri nama f_kurs.per
database abc
screen
{
Kurs Per Tanggal : [f003 ]
Kode Singkatan Uraian Kurs Beli Kurs Tengah
===============================================================
[a0] [a1 ] [f000 ] [f001 ] [f002 ]
[a0] [a1 ] [f000 ] [f001 ] [f002 ]
[a0] [a1 ] [f000 ] [f001 ] [f002 ]
[a0] [a1 ] [f000 ] [f001 ] [f002 ]
[a0] [a1 ] [f000 ] [f001 ] [f002 ]
[a0] [a1 ] [f000 ] [f001 ] [f002 ]
[a0] [a1 ] [f000 ] [f001 ] [f002 ]
[a0] [a1 ] [f000 ] [f001 ] [f002 ]
[a0] [a1 ] [f000 ] [f001 ] [f002 ]
===============================================================
CTRL/C >> Ke Menu
}
end
tables
t_vals
attributes
a0 = t_vals.curren, reverse, noentry;
a1 = t_vals.skatan, upshift, reverse, noentry;
f000 = t_vals.urai, reverse, noentry;
f001 = t_vals.kurs_beli, reverse;
f002 = t_vals.kurs, reverse;
f003 = t_vals.tglpro, format = "dd/mm/yyyy", reverse, color=yellow;
end
instructions
delimiters " ";
screen record s1_scr[9] (t_vals.curren, t_vals.skatan, t_vals.urai,
t_vals.kurs_beli, t_vals.kurs)
screen record s3_scr (t_vals.tglpro)
* Membuat formulir untuk memasukkan data; kita beri nama f_kurs.per
#
# Prog. Id. p_kurs
#
#
DATABASE abc
GLOBALS
DEFINE
kk ARRAY[50] OF RECORD
curren LIKE t_vals.curren,
skatan LIKE t_vals.skatan,
urai LIKE t_vals.urai,
beli LIKE t_vals.kurs_beli,
kurs LIKE t_vals.kurs
END RECORD,
wt_mtuang RECORD LIKE t_mtuang.*,
wt_vals RECORD LIKE t_vals.*,
w_date,
w_tgl LIKE t_vals.tglpro,
w_kurs LIKE t_vals.kurs,
w_nmbln CHAR(9),
w_anno, w_year,
w_mona, w_mont INTEGER,
ii,k SMALLINT,
w_pros CHAR(3),
w_promt CHAR(1)
END GLOBALS
MAIN
OPTIONS
INSERT KEY F1,
DELETE KEY F2,
PREVIOUS KEY F3,
NEXT KEY F4
DEFER INTERRUPT
LET INT_FLAG = FALSE
OPEN WINDOW win_vals AT 5,9
WITH FORM "f_kurs" ATTRIBUTE(border, message line last)
MENU "KURS BULANAN"
COMMAND "ADD" "Memasukkan Kurs"
LET w_pros = "add"
CALL init_kk_array()
CALL rekam()
COMMAND "QUERY" "Melihat Kurs"
LET w_pros = "que"
CALL init_kk_array()
CALL lihat()
COMMAND "REVISI" "Koreksi"
LET w_pros = "upd"
CALL init_kk_array()
CALL lihat()
COMMAND "DELETE" "Koreksi/Hapus Kurs"
LET w_pros = "del"
CALL init_kk_array()
CALL lihat()
COMMAND "EXIT" "Keluar Menu"
EXIT MENU
END MENU
CLOSE WINDOW win_vals
END MAIN
FUNCTION lihat()
DEFINE query_1,s1 CHAR(500),
exist SMALLINT
CONSTRUCT query_1 ON tglpro FROM t_vals.tglpro
LET s1 = "SELECT tglpro FROM t_vals WHERE ",query_1 CLIPPED,
" GROUP BY tglpro ORDER BY tglpro"
LET exist = 0
PREPARE s_1 FROM s1
DECLARE q_curs SCROLL CURSOR FOR s_1
OPEN q_curs
MENU "=>"
COMMAND "First " "record pertama..."
FETCH FIRST q_curs INTO wt_vals.tglpro
IF STATUS = NOTFOUND THEN
CLEAR FORM
CALL mes_int_flag(" Tidak ada data ...")
ELSE
CALL disp_vals()
END IF
COMMAND "Next" "record berikutnya..."
FETCH NEXT q_curs INTO wt_vals.tglpro
IF STATUS = NOTFOUND THEN
CLEAR FORM
CALL mes_int_flag(" Record berikutnya tidak ada ...")
ELSE
CALL disp_vals()
END IF
COMMAND "Previous" "record sebelumnya..."
FETCH PRIOR q_curs INTO wt_vals.tglpro
IF STATUS = NOTFOUND THEN
CLEAR FORM
CALL mes_int_flag(" Record sebelumnya tidak ada ...")
ELSE
CALL disp_vals()
END IF
COMMAND "Exit" "ke-menu sebelumnya..."
EXIT MENU
END MENU
CLOSE q_curs
END FUNCTION
FUNCTION disp_vals()
DEFINE ws_vals RECORD LIKE t_vals.*
LET k = 1
DECLARE v_curs cursor for
SELECT * FROM t_vals
WHERE t_vals.tglpro = wt_vals.tglpro
ORDER BY curren
FOREACH v_curs INTO ws_vals.*
LET kk[k].curren = ws_vals.curren
LET kk[k].skatan = ws_vals.skatan
LET kk[k].urai = ws_vals.urai
LET kk[k].beli = ws_vals.kurs_beli
LET kk[k].kurs = ws_vals.kurs
LET k = k+1
END FOREACH
CALL set_count(k)
CALL dis_int_flag(" Tekan proses berikutnya...")
LET w_tgl = ws_vals.tglpro
DISPLAY ws_vals.tglpro TO s3_scr.tglpro
DISPLAY ARRAY kk to s1_scr.*
DISPLAY " " AT 19,1
CASE WHEN w_pros = "upd"
CALL prompt_line("Apakah data ini akan dikoreksi (y/n)? ") RETURNING w_promt
IF w_promt = "Y" THEN
CALL rekam()
END IF
WHEN w_pros = "del"
CALL prompt_line("Apakah data ini akan dihapus (y/n)? ") RETURNING w_promt
IF w_promt = "Y" THEN
IF w_pros = "del" THEN
DELETE FROM t_vals
WHERE t_vals.tglpro = w_tgl
ELSE
CALL mes_int_flag(" Data tidak dihapus ...")
END IF
END IF
END CASE
END FUNCTION
FUNCTION rekam()
IF w_pros = "add" THEN
INPUT w_tgl FROM s3_scr.*
AFTER FIELD tglpro
DECLARE u_cur cursor for
SELECT kurs FROM t_vals
WHERE tglpro = w_tgl
OPEN u_cur
FETCH u_cur INTO w_kurs
IF STATUS <> NOTFOUND THEN
CALL mes_int_flag(" Kurs ini sudah di-input...")
CLOSE u_cur
NEXT FIELD tglpro
END IF
END INPUT
IF INT_FLAG THEN
LET int_flag = FALSE
CALL mes_int_flag(" Proses Dibatalkan Operator ...")
RETURN
END IF
CALL isi_kode_sing()
END IF
INPUT ARRAY kk WITHOUT DEFAULTS FROM s1_scr.*
LET ii = arr_curr()
IF INT_FLAG THEN
LET int_flag = FALSE
CALL mes_int_flag(" Proses Dibatalkan Operator ...")
RETURN
END IF
IF w_pros = "upd" THEN
DELETE FROM t_vals
WHERE t_vals.tglpro = w_tgl
END IF
FOR k = 1 TO ii
IF kk[k].curren IS NOT NULL OR kk[k].curren <> "" THEN
INSERT INTO t_vals
(curren, skatan, urai, kurs_beli, kurs, tglpro)
VALUES
(kk[k].curren, kk[k].skatan, kk[k].urai, kk[k].beli, kk[k].kurs,
w_tgl)
END IF
END FOR
CALL mes_int_flag(" Proses rekam selesai ...")
END FUNCTION
FUNCTION init_kk_array()
FOR k = 1 TO 50
INITIALIZE kk[k].* TO NULL
END FOR
END FUNCTION
FUNCTION isi_kode_sing()
LET k = 1
DECLARE i_curs cursor for
SELECT * FROM t_mtuang
ORDER BY curren
FOREACH i_curs INTO wt_mtuang.*
LET kk[k].curren = wt_mtuang.curren
LET kk[k].skatan = wt_mtuang.skatan
LET kk[k].urai = wt_mtuang.urai
LET k = k+1
END FOREACH
CALL set_count(k)
END FUNCTION
FUNCTION mes_int_flag(w_char40)
DEFINE w_char40 CHAR(40)
OPEN WINDOW wx at 18,20 with 1 rows, 40 columns
ATTRIBUTE(border, message line last)
MESSAGE w_char40 CLIPPED ATTRIBUTE(YELLOW) SLEEP 2 MESSAGE ""
CLOSE WINDOW wx
END FUNCTION
FUNCTION dis_int_flag(w_char40)
DEFINE w_char40 CHAR(40)
DISPLAY w_char40 CLIPPED AT 19,1 ATTRIBUTE(YELLOW,BLINK)
END FUNCTION
FUNCTION prompt_line(x_prompt)
DEFINE x_prompt CHAR(40),
x_yn CHAR(1)
OPTIONS PROMPT LINE LAST
PROMPT x_prompt CLIPPED FOR x_yn
IF x_prompt IS NULL OR
x_prompt = "" OR
x_prompt = " " THEN
LET x_prompt = "N"
END IF
LET x_yn = UPSHIFT(x_yn)
RETURN x_yn
END FUNCTION
Keunggulan aplikasi INFORMIX :
Dengan informix-sql, kita dapat :
- menyusun & memodifikasi tabel
- menggunakan menu yg disediakan oleh schema editor
- memasukkan & mencari informasi database dgn menggunakan screen form
- mengurutkan, menggabungkan, mengatur & menampilkan data dengan report.
- Menambahkan, mengubah & mencari informasi database menggunakan query language
- Memanfaatkan isql melalui fasilitas khusus, user menu
i4gl (informix-4GL) ® C compiler
r4gl (rapid development system)
r4gl memberikan fasilitas koreksi (debugger), program di-compile lebih cepat dari i4gl.
Sedangkan standart i4gl memerlukan compiler C.
r4GL tidak memerlukan compiler C dalam membetuk program eksekusi
APA SIIII ???
BalasHapusmakasih yaaa..... udah ngasih artikel untuk ngerjain tugas.....
BalasHapussemoga semakin maju ni blog hehehehe :D :D
AKU SUKA SAMA PANDANYA LOOOOHHHH !!!!!!!!!!!!!!!!!!!!!!!
BalasHapusyang diatas koq ganteng ya
BalasHapusMAKASIH YAAAAA yang yang ata
BalasHapus