10 August 2005

Fungsi-fungsi "CRUSIAL" dalam Script PHP, untuk mengakses MySQL Database

[1]. Fungsi "mysql_connect" dan "mysql_pconnect"
-------------------------------------------

Digunakan untuk membuat hubungan (koneksi) ke Database MySQL yang terdapat pada suatu HOST.
Syntax-nya :
mysql_connect(host, nama_user, password)
Keterangan :
[x] host, menyatakan nama host (komputer) tempat MySQL berada.
[x] pemakai, nama pemakai (user) yang digunakan untuk melakukan
hubungan (koneksi) ke DBMySQL
[x] password, merupakan password milik pemakai (user)

Fungsi ini menghasilkan nilai balik berupa nilai BOOLEAN, yang menyatakan pengenal hubungan (koneksi) dan digunakan sebagai pengenal diberbagai "mysql_".
Jika benar maka nilainya adalah TRUE dan bila terjadi suatu kesalahan maka nilai balik akan berupa FALSE. (e.g) $id_mysql = mysql_connect("localhost", "zj", "badguy");
dimana, $id_mysql --> merupakan variabel yang diciptakan untuk "pengenal_hubungan".
Selain itu PHP juga mempunyai fungsi "mysql_pconnect" yang serupa dengan "mysql_connect". Fungsi ini digunakan untuk membentuk hubungan (koneksi) yang PERSISTEN, artinya "koneksi tidak akan ditutup, walaupun skrip sudah berakhir". Namun hal ini hanya berlaku pada PHP yang bertindak sebagai modul, misalnya pada Web Server Apache.

(e.g) $id_mysql = mysql_pconnect("localhost", "zj", "badguy");

[2]. Fungsi "mysql_close"
--------------------

Fungsi ini berguna untuk menutup hubungan (koneksi) ke database MySQL.
Syntax-nya :
mysql_close(pengenal_hubungan)

Dalam hal ini "pengenal_hubungan" menyatakan pengenal yang diperoleh dari pemanggilan fungsi "mysql_connect" diatas.

(e.g) mysql_close($id_mysql)

Ketika skrip PHP berakhir, koneksi ke Database MySQL yang dibentuk melalui mysql_connect bukan (mysql_pconnect) juga dengan sendirinya akan ditutup dengan fungsi "mysql_close".

[3]. Fungsi "mysql_select_db"
------------------------

Fungsi ini berguna untuk memilih Database, seperti mengunakan perintah USE pada aplikasi MySQL.
Syntax-nya :
mysql_select_db(database, pengenal_hubungan)

Dalam hal ini "pengenal_hubungan" (e.g) $id_mysql) diperoleh juga dari pemanggilan fungsi mysql_connect diatas. Dan argumen/parameter database adalah nama dari database yang dipilih atau yang akan digunakan pada skrip PHP.

(e.g) mysql_select_db("mydatabase", $id_mysql)

[4]. Fungsi "mysql_query"
--------------------

Fungsi ini digunakan untuk mengeksekusi permintaan record pada sebuah tabel atau sejumlah tabel.
Syntax-nya :
mysql_query(permintaan, pengenal_hubungan)

Argumen "permintaan" merupakan penyataan (syntax SQL) untuk mengakses tabel, dimana tabel-tabel dimaksud dan bisa diakses adalah tabel milik database yang disebutkan/dipanggil melalui fungsi "mysql_select_db" diatas.

[5]. Fungsi "mysql_db_query"
-----------------------

Fungsi ini berguna untuk menjalankan suatu permintaan terhadap suatu Database.
Syntax-nya :
mysql_db_query(database, permintaan, pengenal_hubungan)

Dalam hal ini pengenal hubungan adalah menyatakan pengenal hubungan yang diperoleh dari pemanggilan fungsi mysql_connect dan argumen database adalah nama database yang dipilih. Dan argumen permintaan adalah pernyataan (syntax SQL). Khusus untuk argumen ketiga adalah optional bisa ditulis bisa tidak, karena fungsi mysql_db_query selalu sesudah fungsi mysql_connect, argumen ketiga sudah diwakili didalam fungsi mysql_connect.

Fungsi ini memberikan nilai balik berupa suatu angka bulat yang menyatakan pengenal hasil, yang diperlukan pada pada berbagai fungsi berawalan "mysql_" lainnya. Hasilnya FALSE menyatakan bahwa terdapat sesuatu kesalahan.

(e.g) mysql_query_db("mydatabase", "SELECT * FROM mytabel", $id_mysql)

[6]. Fungsi "mysql_num_rows"
-----------------------

Fungsi ini berguna untuk memperoleh jumlah baris dari suatu hasil permintaan (query) yang menggunakan SELECT.
Syntax-nya :
mysql_num_rows(pengenal_hasil)

Dalam hal ini pengenal hasil menyatakan nilai yang diperoleh dari pemanggilan fungsi seperti "mysql_db_query" atau "mysql_query". Sebagai catatan, untuk permintaan yang menggunakan UPDATE, INSERT, atau DELETE menggunakan fungsi "mysql_affected_rows" untuk memperoleh jumlah baris yang terkena operasi-operasi tersebut.

[7]. Fungsi "mysql_affected_rows"
----------------------------

Fungsi ini berguna untuk memperoleh jumlah baris yang dikenai operasi INSERT, UPDATE, dan DELETE.
Syntax-nya :
mysql_affected_rows(pengenal_hubungan)

Dalam hal ini pengenal hubungan menyatakan nilai yang diperoleh dari pemanggilan fungsi "mysql_connect". Dimana argumen ini bersifat opsional. Pada permintaan yang mengandung DELETE tetapi tanpa klausa "WHERE", penghapusan akan dilakukan pada semua baris; namun fungsi "mysql_affected_rows" hanya akan memberikan nilai balik berupa nol 0.

[8]. Fungsi mysql_num_fiedls
-----------------------

Fungsi ini berguna untuk memperoleh jumlah kolom pada suatu hasil permintaan.
Syntax-nya :
mysql_num_fields(pengenal_hasil)

Dalam hal ini pengenal hasil menyatakan nilai yang diperoleh dari pemanggilan fungsi seperti "mysql_db_query" atau "mysql_query".
Skrip dibawah ini akan memberikan gambaran sedikit tentang penggunaan fungsi "mysql_select_db", "mysql_query", "mysql_num_fields", dan "mysql_num_rows".
<html>
<head><title></title></head>
<body>

<?php
/* inisialisasi koneksi */
$pemakai = "zj";
$password = "badguy";

/* membuka koneksi ke Database MySQL */
$id_mysql = mysql_connect("localhost", $pemakai, $password)
OR die("Can NOT Connect to MySQL");
/* Database dan Tabel yang dituju */
mysql_select_db("mydatabase, $id_mysql) OR die("Database NOT FOUND!");
$hasil = mysql_query("SELECT * FROM mytable", $id_mysql);

/* jika tabel tidak ditemukan*/
if (! $hasil)
die("Query Aborted");

/* mengambil jumlah kolom */
$jum_kolom = mysql_num_fields($hasil);
echo "Jumlah kolom : $jum_kolom
\n";
/* mengambil jumlah baris */
$jum_baris = mysql_num_rows($hasil);
echo "Jumlah baris : $jum_baris
\n";

/* menutup koneksi ke Database MySQL */
mysql_close($id_mysql);
>?

</body>
</html>

--
Last saved by Zj,
On 09 Agustus 2005 at 12:22:36


Referensi :
[x]. MySQL-Tutorial in My Slackie Linux Box /usr/share/doc
[x]. PHP and MySQL Web Development by Luke Welling & Laura Thompson

05 July 2005

Partisi Table pada Oracle 9i

MANAGING TABEL BY PARTITIONING TABLE
Oracle 8i (recomended 9i)

Manfaat dari penggunaan Partitioning Table pada Oracle Database
adalah sebagai berikut :
[1]. Data dalam jumlah besar dapat disimpan secara terpisah berdasarkan
kolom tertentu yang disebut sebagai "PARTITION KEY".
[2]. Pencarian Data dapat dilakukan menggunakan partisi tertentu
sehingga tidak perlu membaca semua block pada table yang sudah terpartisi.

Ada berberapa macam jenis Partition Table antara lain :

1. Partition Table by Range
Membuat Partisi berdasarkan Range data tertentu,
misal berdasarkan data dari bulan januari sampai dengan desember, atau
Mempartisi data menurut interval atau kisaran dari nilai ‘partition key’
yaitu kolom yang digunakan sebagai acuan pembuatan partisi.

2. Partition Table by List
Membuat Partisi berdasarkan Range data tertentu,
misal berdasarkan wilayah atau kota
(hint: jenis partisi ini hanya terdapat pada Oracle v.9i keatas)

3. Partition Table by Hash
Metode partisi ini digunakan jika tidak mengetahui range data secara pasti,
cukup menyebutkan berapa akan partisi dan yang membuat partisinya
adalah Oracle sendiri. Dengan kata lain partisi yang dilakukan sesuai dengan
Oracle Formula dan user tidak perlu tahu.
Partisi hash menggunakan fungsi HASH untuk kolom terpartisi
dan memungkinkan penyebaran data secara merata pada sejumlah partisi
karena row yang dipetakan ke suatu partisi didasarkan pada nilai hash dari partition key.
Sebaiknya tetapkan jumlah partisi sebagai kelipatan 2,4,6,8, dst.

4. Partition Composite (partisi gabungan)
Membuat Partisi tabel dengan menggunakan gabungan dari partisi
Range dan List, atau Range dan Hash.


Demo Impmenetasi keemapat metode partisi tabel:

1. PARTITION BY RANGE (v 8i, support)
Membuat Table P_RANGE,
dengan implementasi PARTITIONING By RANGE

CREATE TABLE P_RANGE (
ID CHAR(4),
TANGGAL DATE,
NAMA_BARANG VARCHAR2(20),
QTY NUMBER
) PARTITION BY RANGE (TANGGAL) (
PARTITION PART_2000 VALUES LESS THAN (TO_DATE('01012001','DDMMYYYY')),
PARTITION PART_2001 VALUES LESS THAN (TO_DATE('01012002','DDMMYYYY')),
PARTITION PART_2002 VALUES LESS THAN (TO_DATE('01012003','DDMMYYYY')),
PARTITION PART_2003 VALUES LESS THAN (TO_DATE('01012004','DDMMYYYY')),
PARTITION PART_2004 VALUES LESS THAN (TO_DATE('01012005','DDMMYYYY'))
) ENABLE ROW MOVEMENT;

Dengan penambahan klausa ‘ENABLE ROW MOVEMENT’,
maka perpindahan data pada partisi yang berbeda ketika melakukan
update pada tanggal yang merupakan ‘PARTITION KEY’ bisa dilakukan.

Menambah Partisi baru dengan nama PMAX untuk menampung nilai tertinggi
yang tidak bisa ditampung oleh partisi-partisi yang sudah ada (melebihi kapasitas)

SQL> ALTER TABLE P_RANGE
2 ADD PARTITION PMAX VALUES LESS THAN (MAXVALUE);
Table altered

Menghapus partisi PMAX

SQL> ALTER TABLE P_RANGE
2 DROP PARTITION PMAX;
Table altered

Menambah Partisi baru dengan untuk TAHUN 2005

SQL> ALTER TABLE P_RANGE
2 ADD PARTITION PART_2005
3 VALUES LESS THAN (TO_DATE('01012006','DDMMYYYY'));
Table altered

Memisahkan/membagi sebuah Partisi 2 bagian (2 buah partisi)
menggunakan keyword “SPLIT PARTITION”.
Misal dari partisi yang sudah ditambahkan diatas P2005 (partisi untuk tahun 2005)
akan dibagi menjadi 2 yakni periode_1 (sampai dengan tanggal 01-Agustus-2005)
dan periode_2 (sampai dengan tanggal 01-jan-2006).

SQL> ALTER TABLE P_RANGE
2 SPLIT PARTITION PART_2005 AT (TO_DATE('01072005','DDMMYYYY'))
3 INTO (
4 PARTITION PERIODE_1,
5 PARTITION PERIODE_2
6 );
Table altered

Hasil dari penambahan partisi dengan cara SPLIT PARTITION,
pada table P_RANGE akan terlihat seperti berikut:

SQL> SELECT PARTITION_POSITION NO, PARTITION_NAME PNAME,
2 SUBPARTITION_COUNT, AVG_SPACE, BLOCKS, EMPTY_BLOCKS
3 FROM USER_TAB_PARTITIONS WHERE TABLE_NAME='P_RANGE' ORDER BY NO;

NO PNAME SUBPARTITION_COUNT AVG_SPACE BLOCKS EMPTY_BLOCKS
---------- ---------- ------------------ ---------- ---------- ------------
1 PART_2000 0 8035 1 14
2 PART_2001 0 8065 1 14
3 PART_2002 0 8071 1 14
4 PART_2003 0 8067 1 14
5 PART_2004 0 0 0 15
6 PERIODE_1 0 0 0 15
7 PERIODE_2 0 0 0 15

7 rows selected

Menggabungkan 2 buah partisi dalam tabel P_RANGE.
Misal menggabungkan partisi PART_2000 dan PART_2001

SQL> ALTER TABLE P_RANGE
2 MERGE PARTITIONS PART_2000, PART_2001
3 INTO PARTITION PART_2001_2002;
Table altered

Hasil dari penggabungan partisi dengan cara MERGE PARTITION,
pada table P_RANGE akan terlihat seperti berikut:

SQL> SELECT PARTITION_POSITION NO, PARTITION_NAME PNAME,
2 SUBPARTITION_COUNT, AVG_SPACE, BLOCKS, EMPTY_BLOCKS
3 FROM USER_TAB_PARTITIONS WHERE TABLE_NAME='P_RANGE' ORDER BY NO;

NO PNAME SUBPARTITION_COUNT AVG_SPACE BLOCKS EMPTY_BLOCKS
---------- --------------- ------------------ ---------- ---------- ------------
1 PART_2001_2002 0 7998 1 14
2 PART_2002 0 8071 1 14
3 PART_2003 0 8067 1 14
4 PART_2004 0 0 0 15
5 PERIODE_1 0 0 0 15
6 PERIODE_2 0 0 0 15

6 rows selected

2. PARTITION BY LIST (v. 8i, tidak support)
Membuat tabel P_LIST, dengan implementasi PARTITION BY LIST
dan list yang digunakan sebagai data untuk dipartisi adalah field “NAMAKOTA”.

CREATE TABLE P_LIST (
ID NUMBER(4),
NO_BUKTI CHAR(4),
NAMABARANG VARCHAR2(20),
NAMAKOTA VARCHAR2(20),
QTY NUMBER
) PARTITION BY LIST (NAMAKOTA) (
PARTITION KOTA1 VALUES(‘Surabaya’),
PARTITION KOTA1 VALUES(‘Bandung’),
PARTITION KOTA1 VALUES(‘Jakarta’),
) ENABLE ROW MOVEMENT;

Catatan:
Untuk Partition by LIST, hampir sama dengan Partition by RANGE
dalam menambah partisi, modifikasi partisi, hapus paritisi, etc.
Namun metode Partisi by LIST ini tidak terdapat pada Oracle
dengan versi 8i kebawah (hanya terdapat pada Oracle versi 9i keatas).

Sedang untuk operasi penambahan, penghapusan, pembagian/pemisahan,
dan penggabungan partisi dalam satu table sama dengan pembahasan
diatas pada Partisi by Range.

3. PARTITION BY HASH (v.8i, support)
Membuat tabel P_HASH, dengan implementasi PARTITION BY HASH

CREATE TABLE P_HASH (
KODE NUMBER,
NAMA VARCHAR2(20)
) PARTITION BY HASH (NAMA) PARTITIONS 4;

Penamaan partisi oleh Oracle dengan SYS_n

SQL> SELECT PARTITION_POSITION NO, PARTITION_NAME P_NAME,
2 BLOCKS, EMPTY_BLOCKS, NUM_ROWS "#ROWS"
3 FROM USER_TAB_PARTITIONS WHERE TABLE_NAME='P_HASH';

NO P_NAME BLOCKS EMPTY_BLOCKS #ROWS
---------- ------------------------------ ---------- ------------ ----------
1 SYS_P7 0 15 0
2 SYS_P8 0 15 0
3 SYS_P9 0 15 0
4 SYS_P10 0 15 0

Jenis metode partisi HASH, bisa diterapkan pada Oracle Database Server
dengan media penyimpanan menggunakan RAID untuk memoptimalkan LOAD BALANCING.
Dimana Oracle akan membagai data-data yang diinputkan (meletakkan secara seimbang)
sesuai dengan kolom yang dipartisi menggunakan metode HASH.

Pada saat membuat tabel dengan metoda parition HASH,
pembagian partisi juga bisa langsung ditempatkan pada
tablespace yang berbeda, berikut contoh pembuatannya.

CREATE TABLE P_HASH1 (
KODE NUMBER,
NAMA VARCHAR2(20)
) PARTITION BY HASH (NAMA) PARTITIONS 4
STORE IN (TSPACE1, TSPACE2, TSPACE3, TSPACE4);

Catatan:
Untuk operasi penambahan, penghapusan, pembagian/pemisahan,
dan penggabungan partisi dalam satu table sama dengan
pembahasan diatas pada Partisi by Range.

4. PARTITION COMPOSITE
Membuat tabel P_COMPOSITE, dengan implementasi metode
partisi gabungan (composite) dari metode RANGE dan HASH

CREATE TABLE P_COMPOSITE (
KODE NUMBER(5),
TGL DATE,
NAMA_PRODUK VARCHAR2(25),
QTY NUMBER
) PARTITION BY RANGE (TGL)
SUBPARTITION BY HASH (NAMA_PRODUK) SUBPARTITIONS 3 (
PARTITION TH2000 VALUES LESS THAN (TO_DATE('01012001','DDMMYYYY')) (
SUBPARTITION PROD_A,
SUBPARTITION PROD_B,
SUBPARTITION PROD_C
),
PARTITION TH2001 VALUES LESS THAN (TO_DATE('01012002','DDMMYYYY')) (
SUBPARTITION PROD_D,
SUBPARTITION PROD_E,
SUBPARTITION PROD_F
),
PARTITION TH2002 VALUES LESS THAN (TO_DATE('01012003','DDMMYYYY')) (
SUBPARTITION PROD_G,
SUBPARTITION PROD_H,
SUBPARTITION PROD_I
)
) ENABLE ROW MOVEMENT;


Melihat deskripsi tabel P_COMPOSITE, yang dipartisi dengan
metode Partisi Composite (Gabungan) RANGE dan HASH.

SQL> SELECT PARTITION_POSITION NO, PARTITION_NAME P_NAME,
2 SUBPARTITION_COUNT SUB_COUNT, BLOCKS, EMPTY_BLOCKS,NUM_ROWS "#ROWS"
3 FROM USER_TAB_PARTITIONS
4 WHERE TABLE_NAME='P_COMPOSITE';

NO P_NAME SUB_COUNT BLOCKS EMPTY_BLOCKS #ROWS
---- -------------- ---------- ---------- ------------ ----------
1 TH2000 3 0 45 0
2 TH2001 3 0 45 0
3 TH2002 3 0 45 0

Kolom SUB_COUNT, merupakan jumlah subpartisi dari masing-masing partisi.

MENGAKTIFKAN AUTOTRACE

Sebagai tambah untuk menganalisa dan melihat performa query
gunakan AUTOTRACE. Untuk menggunakan tool ini di Oracle harus
di set terlebih dahulu, berikut langkah-langkah mengaktifkan
tool autotace:

[1]. Langkah pertama, lakukan koneksi sebagai SYS ATAU SYSTEM as SYSDBA
SQL> CONN SYSTEM/MANAGER@DB8I
Connected.

[2]. Jalankan script SQL, yang sudah tersedia pada Oracle yakni 'utlxplan.sql'
SQL> @?\rdbms\admin\utlxplan.sql
Table created.

[3]. Buat sebuah synonym yang nantinya bisa dipakai oleh semua user (public)
SQL> create public synonym plan_table for plan_table;

[4]. Jalankan lagi script SQL, yang ada pada Oracle yakni 'plustrace.sql'
SQL> @?\sqlplus\admin\plustrce.sql

[5]. Beri Grant pada plus trace agar bisa diakses oleh semua user (public)
SQL> grant plustrace to public;
Grant succeeded.

Semoga bermanfaat.

Didokumentasikan oleh Zainal Abidin
pada tanggal 03 Juli 2005 jam 22:36:41

24 May 2005

Koneksi Java Wireless Toolkit (MIDlet-J2ME) dan Server Side Scripting PHP menggunakan Database MySQL

System Requirements :
---------------------

[x]. Linux Operating System (eg. Mandrake 10.0 Official, etc.)
[-]. j2sdk_1_4_01_linuxi586_rpm.bin
[-]. j2me_wireless_toolkit_1_4_01_linuxi386.bin
[-]. Apache, MySQL

[x]. Windows Operating System (eg. WindowsXP, etc.)
[-]. j2sdk_1_4_0_win.exe
[-]. j2me_wireless_toolkit_1_4_01_bin_win.exe
[-]. PHPTriad_2.2.exe

Step by steps:
--------------
[1]. Apache and MySQL must be running well. Create user 'zj' on mysql identified by 'zj',and create database 'mahasiswa'. After that create table 'mahasiswa'. If you're familiar with mysql just run the 'table_mahasiswa.sql' script. ;)

[2]. Copy directory 'zainal' (in Server SIDE directory) to your apache directory
eg. '/var/www/html/' or '/home/zainal/public_html/' If you're using PHPtriad, copying to 'apache/htdocs/'Copy directory 'MobileWeb' (in Client SIDE directory) to your j2me directory usually '$PATH/WTK_1_4/apps/'

[3]. Check file BrowseData.java, EntryData.java, and SearchData.java in directory '$PATH/MobileWeb/src/' and suitable link on variable 'serverURL'.

[4]. And then run your ktoolbar and open MIDlet file MobileWeb for running the emulator for mobile. (DON'T FORGET!. COMPILE BEFORE RUNNING).


###############################################
Last saved by. Zainal Abidin zainal.a@gmail.com> On 23/04/2005 At 12:27
http://black-jhe.tk , http://black.lug.stikom.edu
Feed back send mail to zainal.a@gmail.com or ferd.legho@gmail.com
###############################################

02 May 2005

Tips Single pada GRUB Loader

#############################################
# Wrote zainal.a@gmail.com, On June 06th 2004, at 17:35
# Last modified by zainal.a@gmail.com On 30/04/2005 at 1:50
#
# Mengganti PASSWORD 'ROOT' pada 'GRUB'
# GNU Grand Unified Bootloader)
#
#############################################

Anda penggemar setia Linux seperti saya? ;)
pasti tahu Linux Loader yang diinstall pada MBR (Master Boot Record)
agar kita bisa menggunakan 2 Sistem Operasi sekaligus.
Ada 2 Linux Loader yang populer yakni LILO dan GRUB

Jika LILO, betapa gampangnya jika suatu saat kita lupa
dengan password 'root' kita ;-) bener gak? hanya dengan

" boot>lilo:linux single" (untuk Distro RedHat dan Mandrake)

dan

" boot>lilo:linux init=/bin/bash" (untuk Distro Slackware)

Bagaimana jika menggunakan GRUB?
Sebagai informasi dalam implementasi ini saya menggunakan Redhat 9.0
dengan BootLoader GRUB.

Ok, let's crack dude ;-)

Pada saat komputer kita booting dan langsung meninggalkan
BIOS menuju ke loader (GRUB) dengan tampilan interface dari GRUB.
Ada beberapa pilihan dan yg harus dipilih yang berlabel "Redhat Linux".
Setelah memilih pilihan tersebut, tekan [e] untuk mengedit label itu.

Kemudian arahkan panah kebawah, pada baris yg bertuliskan "kernel"
untuk kedua kalinya tekan [e] untuk edit.
Pada shell (prompt) langsung ketikan "single" atau "emergency"
Setelah memasukkan pilihan lalu tekan [enter],
untuk kembali ke tampilan GUI dari GRUB, dan untuk mengakhiri
sekaligus memulai boot ke Linux OS tekan [b]
dan selesai sudah.

Proses selanjutnya anda akan memasuki session shell (#),
Nah pada saat itulah, tinggal mengeksekusi perintah 'passwd' untuk
membuat password 'root' yg baru.
#~ passwd
New Password:
ReType:

Jangan lupa untuk me-REBOOT Linux Box, setelah mengganti password ROOT.

*) Kritik dan saran kirim ke

29 April 2005

RESIZE REDOLOG Oracle8i Enterprise Edition Release 8.1.7.0.0

Langkah-langkah RESIZE REDOLOG File
Oracle8i Enterprise Edition Release 8.1.7.0.0
Dokumentasi ini dibuat oleh Zainal Abidin
pada tanggal 28/04/2005 jam 3:59 Subuh
SQL-script yang digunakan ada pada akhir.

Skenario:Ukuran REDOLOG dari 10MB akan dibesarkan menjadi 11MB

SQL> @e:\myscripts\cek_redolog_status.sql;

********************
CHECK REDOLOG STATUS
********************
scripted by zj-he On 28/04/2005 at 2:00


GROUP# MEMBER STATUS SIZE (MB)
---------- ----------------------------------- ---------- ----------
1 E:\ORACLE\ORADATA\DB8I\REDO01.LOG ACTIVE 10
2 E:\ORACLE\ORADATA\DB8I\REDO02.LOG INACTIVE 10
3 E:\ORACLE\ORADATA\DB8I\REDO03.LOG CURRENT 10

SQL> alter database drop logfile group 2;

Database altered.

SQL> alter database add logfile group 2
2 ('E:\ORACLE\ORADATA\DB8I\REDO02.LOG') size 11m
3* reuse;

Database altered.

SQL> @e:\myscripts\cek_redolog_status.sql;

GROUP# MEMBER STATUS SIZE (MB)
---------- ----------------------------------- ---------- ----------
1 E:\ORACLE\ORADATA\DB8I\REDO01.LOG ACTIVE 10
2 E:\ORACLE\ORADATA\DB8I\REDO02.LOG UNUSED 11
3 E:\ORACLE\ORADATA\DB8I\REDO03.LOG CURRENT 10

SQL> alter system switch logfile;

System altered.

SQL> @e:\myscripts\cek_redolog_status.sql;

GROUP# MEMBER STATUS SIZE (MB)
---------- ----------------------------------- ---------- ----------
1 E:\ORACLE\ORADATA\DB8I\REDO01.LOG INACTIVE 10
2 E:\ORACLE\ORADATA\DB8I\REDO02.LOG CURRENT 11
3 E:\ORACLE\ORADATA\DB8I\REDO03.LOG ACTIVE 10

SQL> alter database drop logfile group 1;

Database altered.

SQL> alter database add logfile group 1
2 ('E:\ORACLE\ORADATA\DB8I\REDO01.LOG') SIZE 11m
3 REUSE;

Database altered.

SQL> @e:\myscripts\cek_redolog_status.sql;

GROUP# MEMBER STATUS SIZE (MB)
---------- ----------------------------------- ---------- ----------
1 E:\ORACLE\ORADATA\DB8I\REDO01.LOG UNUSED 11
2 E:\ORACLE\ORADATA\DB8I\REDO02.LOG CURRENT 11
3 E:\ORACLE\ORADATA\DB8I\REDO03.LOG ACTIVE 10

SQL> alter system switch logfile;

System altered.

SQL> @e:\myscripts\cek_redolog_status.sql;

GROUP# MEMBER STATUS SIZE (MB)
---------- ----------------------------------- ---------- ----------
1 E:\ORACLE\ORADATA\DB8I\REDO01.LOG CURRENT 11
2 E:\ORACLE\ORADATA\DB8I\REDO02.LOG INACTIVE 11
3 E:\ORACLE\ORADATA\DB8I\REDO03.LOG INACTIVE 10

SQL> alter database drop logfile group 3;

Database altered.

SQL> alter database add logfile group 3
2 ('E:\ORACLE\ORADATA\DB8I\REDO03.LOG') SIZE 11m
3 REUSE;

Database altered.

SQL> @e:\myscripts\cek_redolog_status.sql;

GROUP# MEMBER STATUS SIZE (MB)
---------- ----------------------------------- ---------- ----------
1 E:\ORACLE\ORADATA\DB8I\REDO01.LOG CURRENT 11
2 E:\ORACLE\ORADATA\DB8I\REDO02.LOG INACTIVE 11
3 E:\ORACLE\ORADATA\DB8I\REDO03.LOG UNUSED 11

SQL> alter system switch logfile;

System altered.

SQL> @e:\myscripts\cek_redolog_status.sql;

********************
CHECK REDOLOG STATUS
********************
scripted by zj-he On 28/04/2005 at 2:00


GROUP# MEMBER STATUS SIZE (MB)
---------- ----------------------------------- ---------- ----------
1 E:\ORACLE\ORADATA\DB8I\REDO01.LOG INACTIVE 11
2 E:\ORACLE\ORADATA\DB8I\REDO02.LOG INACTIVE 11
3 E:\ORACLE\ORADATA\DB8I\REDO03.LOG CURRENT 11

SQL>

# cek_redolog_status.sql ################
prompt
prompt ********************
prompt CHECK REDOLOG STATUS
prompt ********************
prompt scripted by zj-he On 28/04/2005 at 2:00
prompt
col member format a40
SELECT A.GROUP#, A.MEMBER, B.STATUS, B.BYTES/(1024*1024) as "SIZE (MB)"
FROM V$LOGFILE A, V$LOG B
WHERE A.GROUP#=B.GROUP#
ORDER BY A.GROUP#;
# cek_redolog_status.sql ################

Installasi Paket Java for MOBILE J2ME di LINUX

Last saved by On Sat Mar 5 20:52:08 2005,

INSTALASI APLIKASI MOBILE J2ME di LINUX
PAKET-PAKET yang digunakan dan Langkah-langkah INSTALASI

Distro Linux yang digunakan adalah
"Mandrake Linux release 10.0 (Official) i586"
Linux zj.crypto.org 2.6.3-7mdk#
1 Wed Mar 17 15:56:42 CET 2004 i686 unknown
unknown GNU/Linux

Paket-paket yang dibutuhkan adalah :
[1]. j2sdk-1_4_0_01-linux-i586-rpm.bin (J2SE)
[2]. j2me_wireless_toolkit-2_0-beta2-bin-linux-i386.bin (J2ME)

Langkah-langkah Installasi :
----------------------------

[1]. Untuk lebih leluasa dalam menjalankan langkah-langkah ini
_lebih_disarankan_ menggunakan linux-console dan jika anda masih
sebagai user biasa harap menggantinya menjadi root terlebih dahulu dengan
perintah 'su -' (subtitute user)
[zainal@linux zainal]$ su -
Password:
[root@linux root]#

[2]. Letakkan kedua paket diatas kedalam direktori '/usr/src'dengan menggunakan perintah 'cp' (copy). Misalkan paket yang akan diinstall akan dicopy dari CDROM
[root@zj /]# cp /mnt/cdrom/java-sources/j2sdk-1_4_0_01-linux-i586-rpm.bin /usr/src
[root@zj /]# cp /mnt/cdrom/java-sources/j2me_wireless_toolkit-2_0-beta2-bin-linux-i386.bin /usr/src
[root@zj /]# ls -l /usr/src
total 86917
-rwxr-xr-x 1 root root 9633013 Mar 5 15:46 j2me_wireless_toolkit-2_0-beta2-bin-linux-i386.bin*
-rwxr-xr-x 1 root root 39520543 Mar 5 15:50 j2sdk-1_4_0_01-linux-i586-rpm.bin*
drwxr-xr-x 7 root root 168 Mar 4 18:09 RPM/

[3]. Buat direktori dengan nama "java" di dalam direktori '/usr
[root@zj /]# mkdir -p /usr/java

[4]. Selanjutnya install terlebih dahulu paket J2SE (j2sdk), karena paket j2se merupakan paket rpm (hint: linux-i586-rpm.bin) yang dibinary-kan, maka terlebih dahulu kita ekstrak dulu rpm-nya. Ikuti langkah dibawah ini.
[root@zj /]# cd /usr/src
[root@zj src]# sh j2sdk-1_4_0_01-linux-i586-rpm.bin
[root@zj src]# ls
j2me_wireless_toolkit-2_0-beta2-bin-linux-i386.bin* j2sdk-1_4_0_01-linux-i586-rpm.bin*
j2sdk-1_4_0_01-fcs-linux-i386.rpm RPM/
(hasil ekstakkannya berupa paket berekstentsion .rpm yang akan diinstall)

[5]. Lakukan installasi dengan perintah 'rpm'
[root@zj /]# rpm -ivh j2sdk-1_4_0_01-fcs-linux-i386.rpm
(keterangan opsi i[install] v[verbose] h[hash])
Jika semua berjalan dengan lancar maka ketika me-listing direktori '/usr/java' anda akan mendapatkan direktori baru bernama 'j2sdk1.4.0_01', berarti paket J2SE sudah terinstall.
[root@zj src]# ls /usr/java
j2sdk1.4.0_01/

[6]. Untuk paket j2me, kita tidak perlu mengekstrak menjadi 'rpm' karena dipaket binary-nya tidak terdapat 'rpm'jadi untuk menginstall-nya langsung dilakukan dengan mengeksekusi binary-nya
[root@zj src]# sh j2me_wireless_toolkit-2_0-beta2-bin-linux-i386.bin
Dalam proses installasi, akan ditanyakan dimana letak direktori j2sdk yang sudah terlebih dahulu kita install, (pilihannya adalah no.2 'specify location java path') Jika semua berjalan dengan lancar maka ketika me-listing direktori '/usr/java' anda akan mendapatkan direktori baru lagi bernama 'WTK2.0', berarti paket J2ME sudah terinstall.
[root@zj etc]# ls /usr/java/
j2sdk1.4.0_01/ WTK2.0/

[7]. Sampai tahap ini, proses installasi kedua paket tersebut sukses (jika ada error mail ke zainal.a@gmail.com)

CATATAN :

Perlu diperhatikan, jika pada saat kita melakukan installasi kedua paket tersebut diatas kita menggunakan account 'root', Nah apabila dikemudian nanti kita ingin menjalankan aplikasi j2me sebagai user biasa (selain root) maka kita harus mengubah permission direktori-nya agar bisa diakses oleh user dan group yang lain (e.g) nama user 'zainal' nama group 'users'
[root@zj src]# chown -R zainal.users /usr/java

Setelah tahap ini anda bisa kembali menjadi user sebelumnya, cukup dengan perintah 'exit'. Buatlah link SHORTCUT didesktop user 'zainal' dengan perintah 'ln -s' (s[softlink]) agar bisa langsung mengakses 'ktoolbar' dengan double-click pada icon di desktop. [zainal@linux zainal]$ ln -s /usr/java/WTK2.0/bin/ktoolbar
/home/zainal/Desktop/shortcutKtoolbar


*) Untuk feed-back (kritik dan saran bisa di email-kan ke zainal.a@gmail.com - http://black-jhe.tk

27 April 2005

g0 h4ck g00gl3

#################################
TIPs mencari eBOOKs *.chm *.pdf
#################################

search -> 'parent directory' +.chm +???
(eg.) : Mencari EBooks title XML karangannya orielly
dengan extension *.chm
search -> 'parent directory' +.chm +xml +oreilly

Atau
surfing ke http://appzpla.net
register dan cari di section ebooks

Mari Perbanyak Bersyukur

Damn! setelah sekian lama gak ketemu dan share dgn Paman di Jojoran semalem akhir-nya bisa terlaksana, masih dalam kehangatan lebaran. Dari ...