Rabu, 29 Desember 2010

cheat ninja saga level

1. Buka Character Ninja Saga Klik Play.
2. Buka Cheat Engine dan pilih broswer yang kamu gunakan.
3. Pilih 4 byte Scan uang kamu dulu.
4. klik 2x agar pindah ke bwh (xxxxxx78)
5. pilih new scan dan scan lvl kamu
6. klik 2x agar pindah kebawa yang kode addressnya ampir mirip dengan kode address yang uang (xxxxxx78 yang uang dan yang lvl xxxxxxAC)
7. centang/ceklis pada bagian frozen (pada address yang lvl)
8. ubah values jadi 60
9. pergi ke Hunting House, Kage Room dan Academy. kamu memulai misi yang lebih tinggi dari kamu.
10. Jika kamu ingin mengulanginya... ulang step 6 - 8

cheat ninja saga skill hit

Tools :
Cheat Engine (all version) ~ download
Broswer ( saya anjurkan Mozila Firefox )

Cara :
1. Buka Ninja saga. Tunggu hingga pemilihan karakter
2. Jangan pilih Karakter dulu.
3. Buka CE. pilih proses "plugin-container.exe"
4. Pilih arrays of byte, centang Hex dan Also Scan Read of Memory.
5. Scan value : 62 04 D3 24 64 A3 A2
6. Pasti ada 2 kode di temukan. jika tidak coba ganti procces menjadi "firefox.exe" atau broswer yang kamu pakai.
7. Klik 2 kali kedua kode tersebut, sehingga turun ke bawah .
8. Ganti value 62 04 D3 24 64 A3 A2 menjadi 62 04 D3 24 64 A2 A2.

klo chet engine nya cari ja di (cheatengine.org)kamu copass ja.,.,

Sabtu, 13 November 2010

DDL DAN DML

CREATE TABLE


Format Pembuatan Table :
CREATE TABLE       Nama_Tabel (
Nama_kolom1      tipe_kolom1,
Nama_kolom2      tipe_kolom2,
Constraint1, Constraint2
);
Format Constraint Primary Key:
CONSTRAINT Nama_Constraint PRIMARY KEY (Nama_Kolom);
Format Constraint Foreign Key:
CONSTRAINT Nama_Constraint FOREIGN KEY (Nama_KolomFK) REFERENCES Nama_Tabel_Induk (Nama_KolomTI);
Contoh 1: Membuat Tabel Anggota dengan primary key pada kolom no_anggota
create table anggota(                  
no_anggota number(6),                  
nama_anggota varchar(50) not null,
alamat_anggota varchar (100),                                                          
constraint pk1 primary key(no_anggota)   

);
NOTE: Pada saat membuat tabel yang memiliki foreign key, pastikan tabel induk sudah dibuat dan tipe
data kolom induk sama persis dengan tipe data kolom FK, adapun nama kolom boleh berbeda.

Alter Table

Format Menambah Kolom/Constraint Table :
ALTER TABLE         Nama_Tabel         ADD (
Nama_kolom1      tipe_kolom1,
Nama_kolom2      tipe_kolom2,
Constraint1, Constraint2
);
Format Memodifikasi Kolom Table :
ALTER TABLE         Nama_Tabel         MODIFY (
Nama_kolom1      tipe_kolom1,
Nama_kolom2      tipe_kolom2
);

Format Membuang Kolom/Constraint Table :
ALTER TABLE         Nama_Tabel         DROP COLUMN    Nama_Kolom;
Atau
ALTER TABLE         Nama_Table         DROP CONSTRAINT              Nama_Constraint;

Contoh1: Menambah kolom golongan darah dan sebuah foreign key ke tabel x kolom_anu
alter table anggota add(               
golongan_darah char(1),                                                         
constraint c foreign key (golongan_darah) references X(anu) 
);
 Drop Table

Format Penghancuran Table :
DROP TABLE          Nama_Tabel;
Contoh: Menghancurkan tabel anggota berikut seluruh data yang ada di dalamnya
drop table anggota;
 Note: Jika tabel A masih diacu oleh tabel B maka harus menghancurkan dulu tabel B sebelum tabel A.

Insert

Format Menambah Data Jika Semua Kolom Ingin Diisi:
INSERT INTO          Nama_Tabel         VALUES (
Data_kolom1,
Data_kolom2,
Data_kolom3
);
Format Menambah Data Jika Hanya Kolom Tertentu Yang Diisi:
INSERT INTO          Nama_Tabel         (Nama_Kolom1, Nama_Kolom2)
VALUES (
Data_kolom1,
Data_kolom2
);
Contoh1: Menambah data pada tabel anggota (semua kolom diisi sesuai urutan kolom pada tabel)
insert into anggota values(            
101,               
‘Ngatimin van der Woodsen’,
‘Jl. Entah Berantah nomor sekian’
);
Note:
Insert untuk semua kolom memperhatikan urutan kolom sesuai perintah DESC Nama_Tabel
Untuk tipe data selain number penulisan data diapit dengan petik tunggal (‘)
Format Penulisan Date : DD-MON-YYYY (2 digit tanggal, 3 digit awal bulan dalam bhs inggris, 4 digit tahun)

Update

Format Mengubah Data:
UPDATE Nama_Tabel
SET          Nama_Kolom = data_baru
WHERE   syarat_perubahan_data;
Contoh1: Mengubah semua alamat anggota menjadi ‘Sukabirus’
update anggota set alamat_anggota = ‘Sukabirus’;
Contoh2: Mengubah no_anggota 101 menjadi 201
update anggota set no_anggota = 201
 where no_anggota = 101;
Delete
Format Menghapus Data:
DELETE FROM       Nama_Tabel
WHERE                   syarat_perubahan_data;
Contoh1: Menghapus seluruh isi tabel anggota
delete from anggota;
Contoh2: Meghapus data anggota yang nomor anggotanya 101
delete from anggota
where no_anggota = 101;
Note: Jika fasilitas autocommit dimatikan maka penyimpanan terhadap perubahan data (insert, update, delete) akan terjadi setelah dilakukan perintah COMMIT atau DISC. Jika belum melakukan COMMIT ato DISC dan ingin mengembalikan data ke kondisi semula dapat digunakan perintah ROLLBACK.

Simple Queries
Select....From...Where

Format Query Data:
SELECT    daftar_kolom
FROM     daftar_tabel
WHERE   syarat_dan_atau_foreign_key
Fungsi Agregat: MIN(), MAX(), AVG(), SUM(), COUNT()
SELECT                    daftar_kolom_non_fungsi_ag,         fungsi_ag(nama_kolom1), fungsi_ag(nama_kolom2)
FROM                     daftar_tabel
WHERE                  syarat_dan_atau_foreign_key
GROUP BY              daftar_kolom_non_fungsi_ag

(*) Fungsi agregat dapat digunakan sebagai pengganti daftar kolom, digunakan setelah SELECT...
(*) Jika setelah SELECT digunakan fungsi agregat bersama kolom yang lain yang bukan fungsi agregat maka HARUS menggunakan klausa GROUP BY. Perhatikan contoh 3,4,5 dan 6

Contoh1: Menampilkan nama dan alamat anggota yang diawali huruf A dan terdiri dari 5 huruf
select nama_anggota, alamat_anggota
from anggota
where nama_anggota like 'A____';
Contoh2: Menampilkan nama anggota dan judul buku yang diawail huruf W dan terdiri dari MINIMAL 8 huruf
select nama_anggota, judul_buku
from anggota, buku, peminjaman
where anggota.no_anggota = peminjaman.no_anggota
and buku.id_buku = peminjaman.id_buku
and judul_buku like 'W_______%';
Contoh3: Menampilkan total denda yang pernah dibayar oleh Ngatimin (tanpa menampilkan nama Ngatimin)
Select sum(denda) as totaldenda
from peminjaman, anggota
where anggota.no_anggota = peminjaman.no_anggota
and nama_anggota = 'Ngatimin';
Contoh4: Menampilkan jumlah buku yang pernah dipinjam oleh Ngatiyem (tanpa menampilkan nama Ngatiyem)
select count(id_buku) as jmlbuku
from peminjaman, anggota
where anggota.no_anggota = peminjaman.no_anggota
and nama_anggota = 'Ngatiyem';
Contoh5: Menampilkan total denda yang pernah dibayar oleh Ngatimin (dengan menampilkan nama Ngatimin)
Select nama_anggota, sum(denda) as totaldenda
from peminjaman, anggota
where anggota.no_anggota = peminjaman.no_anggota
and nama_anggota = 'Ngatimin'
group by nama_anggota;

 Simple Anonymous PL/SQL
Panduan:
1.       Bagian declare diisi dengan daftar variabel dan tipe datanya masing-masing
2.       Bagian inti program selalu diawali dengan BEGIN dan diakhiri dengan END; serta /
3.       PL/SQL dapat disimpan sebagai file *.sql dan di-run sebagai script dengan perintah @ fullpath, dimana fullpath tidak boleh mengandung spasi
contoh: @ D:\BelajarOracle\Pertemuan3\anu.sql;
4.       Jika blok PL/SQL menmapilkan output ke layar maka setelah login kita harus mengaktifkan screen output dengan cara menjalankan perintah SET SERVEROUTPUT ON setelah login (cukup satu kali tiap login)
5.       Aturan nama variabel: tidak boleh pakai spasi, diawali selain huruf atau mengandung simbol tanda baca

Format Deklarasi Variabel:
Nama_Var             Tipe_data;
atau
Nama_Var             Nama_Tabel.Nama_Kolom%Type;

Format Pembacaan Single Row Data:
SELECT    daftar_kolom
INTO       daftar_variabel
FROM     daftar_tabel
WHERE   syarat;

(*) Format di atas tidak bisa digunakan jika hasil query lebih dari 1 baris, kecuali jika dilengkapi dengan exception

Format Penerimaan Input Dari User:
Nama_Var := &prompt;
atau
Nama_Var := ‘&prompt’;

Note: Prompt bebas namun tidak boleh menggunakan spasi dan simbol selain alfanumerik. Jika Input bertipe selain tipe data number maka &prompt harus diapit petik tunggal (‘)

Contoh1: Menerima input jari-jari dan menampilkan luas serta keliling lingkaran
Declare
jari2         number(5,2);
keliling      number(7,2);
luas          number(7,2);

begin
jari2 := &jari2;
keliling := 2 * 3.14 * jari2;
luas := 3.14 * power(jari2,2);
dbms_output.put_line('Jari-jari lingkaran = '||jari2);
dbms_output.put_line('keliling lingkaran = '||keliling);
dbms_output.put_line('luas lingkaran = '||luas);
end;
/

Rabu, 03 November 2010

PL(Procedural Language)/SQL(Structured Query Language)

a. Pengenalan
SQL (Structured Query Language) adalah sebuah bahasa yang dipergunakan
untuk mengakses data dalam basis data relasional. Bahasa ini secara de facto merupakan
bahasa standar yang digunakan dalam manajemen basis data relasional. Saat ini hampir
semua server basis data yang ada mendukung bahasa ini untuk melakukan manajemen
datanya. Bagi seorang programmer, menguasai SQL adalah sebuah kewajiban, karena
program jaman sekarang pasti menggunakan database untuk menyimpan datanya. Bagi
saya sendiri yang bisa menggunakan program PHP, biasa menggunakan database mysql
dan oracle. Jadi untuk membuat sebuah aplikasi saya menggunakan program PHP dan
database.
Sementar khusus bagi oracle, ada istilah PL/SQL. PL/SQL yang merupakan
singkatan dari Procedural Language/Structured Query Language merupakan sebuah
penggabungan antara bahasa pemrograman prosedural (PL) dan SQL syntax. Jadi
dengan PL/SQL kita tidak perlu menggunakan sebuah bahasa pemrograman sendiri.
Fungsi-fungsi standard di bahasa pemrograman sudah ada di sini dan bisa
langsung digabung dengan perintah SQL untuk memanipulasi database. Tapi PL/SQL
cuma ada di database oracle saja.
b. Struktur blok PL/SQL :
Isi blok PL/SQL sebagai berikut :
1. Kepala Blok
Berisi BEGIN, deklarasi variable, definisi cursor, dan deklarasi ekception
2. Badan Blok
Berisi prosedur dimana digunakan variable, cursor dan exception atau berisi
tentang query SQL
3. Kaki Blok
Berisi definisi exception dan END
Secara umum digambarkan sebagai berikut:
BEGIN /**tanda awal dari blok PL/SQL**/
DECLARE /**di sini kita mendeklarasikan variable**/
/**di sini kita mendeklarasikan variable**/
BEGIN /**menandai bagian awal prosedur**/
/**di sini dibuat prosedur sesuai dengan algoritma yang
diinginkan**/
/**di sini dibuat prosedur sesuai dengan algoritma yang
diinginkan**/
EXCEPTION /**definisi dari exception**/
END;
END /**mengakhiri blok PL/SQL**/
Deklarasi
Bagian ini dimulai dengan kata kunci DECLARE. Pada bagian optional ini,
dapat mendeklarasikan placeholder seperti variabel, konstanta, record, type data dan
kursor yang akan digunakan dalam bagian eksekusi nanti. Variabel, konstanta, dan
record yang dideklarasikan disimpan secara temporari.
1. Yang wajib ada : nama variable dan type data
2. Menambahkan nilai default
3. Menambahkan constraint “not null” dan nilai default
4. Deklarasi konstanta
5. Memakai type data dari suatu kolom di table
Exception / pengecualian
Bagian ini merupakan bagian yang optional atau tidak wajib diisi. Setiap
error yang ada, diatasi pada bagian ini. Jika error tidak dapat diatasi, maka akan
muncul pesan error
Exception berarti pengecualian, dalam konteks PL/SQL, Exception adalah
suatu bagian dari prosedur yang mengambil suatu tindakan jika ditemukan suatu
keadaan tertentu. Sedangkan definisi Exception dibuat di akhir blok PL/SQL, di
bagian ini didefinisikan tindakan yang akan diambil jika keadaan tertentu ditemui..
contoh : kita menghendaki jika terjadi data tidak ditemukan maka tampil pesan error
data yang anda cari tidak ada
Untuk memanggil exception menggunakan kata RAISE, exception bersifat
optional, yakni tidak wajib ada dalam PL/SQL. Namun sering kali terjadi, jika 1
error tidak ditangani oleh exception maka prosedur akan terus menerus gagal
dieksekusi meskipun sintaks dan algorithmanya benar.
Contoh :
c. Struktur Control
1. IF . . . . .THEN
IF . . . . .THEN merupakan struktur control program yang tersederhana, yang
digunakan untuk mengontrol agar dilakukan tindakan tertentu bila dipenuhi
kondisi tertentu pula.
Struktur sintaks untuk 1 kondisi
IF kondisi THEN
Pernyataan;
END IF;
Struktur sintaks untuk 1 kondisi
IF kondisi1 THEN
Pernyataan1;
ELSE
Pernyataan2;
END IF;
Struktur sintaks untuk 1 kondisi
IF kondisi1 THEN
Pernyataan1;
ELSE IF kondisi2 Then
Pernyataan2;
ELSE
Pernyataan3;
END IF;
2. FOR-LOOP
FOR-LOOP termasuk struktur control perulangan, maksudnya ialah dengan
LOOP-END LOOP, tindakan akan diulang sampai tercapai kondisi tertentu.
Struktur sintaks LOOP
FOR variable_loop IN nilai_awal…..nilai_akhir
LOOP
Pernyataan1;
Pernyataan2;
……….
END LOOP
3. WHILE…LOOP
Struktur WHILE…LOOP hampir sama dengan loop.
Struktur sintaksnya sebagai berikut
WHILE kondisi_x
LOOP
Pernyataan1;
Pernyataan2;
……….
END LOOP
d. Contoh beberapa Perintah SQL dalam PL/SQL
Mengambil isi data dari table menggunakan perintah SELECT
Membuat perubahan pada isi table dengan perintah DML
Control transaksi menggunakan perintah COMMIT, ROLLBACK, atau SAVEPOINT
Menetukan hasil perintah DML dengan atribut cursor secara implicit
Mengambil isi data dari table menggunakan perintah SELECT
Menampilkan data dengan menggunakan PL/SQL
Gunakan perintah SELECT untuk mengambil data dari table
select_list berisi sedikitnya satu kolom pada table, atau tanda bintang (*) untuk
semua baris, juga bisa berisi ekspresi, fungsi baris atau fungsi group.
variable_name adalah variable scalar yang menerima nilai
record_name nama RECORD PL/SQL yang menerima nilai
table_nama table yang datanya diambil
condition terdiri dari nama kolom, ekspresi, konstanta, operator pembandingan,
termasuk variable PL/SQL dan konstanta
petunjuk menampilkan data menggunakan PL/SQL
akhiri setiap perintah SQL dengan tanda titik koma (;)
klausa INTO diperlukan pada saat mencantumkan perintah sql pada program perintah
select yang ditulis dalam PL/SQL
klausa where bersifat optional dan dapat digunakan untuk menetukan variable input,
konstanta, literal atau ekspresi PL/SQL
Pastikan untuk mencantumkan jumlah variable yang sama antara yang ditulis setelah
SELECT dan pada bagian yang ditulis setelah INTO. Pastika type data yang
digunakan oleh variable tersebut compatible dengan type data dari kolom/field yang
diambil
Perintah SELECT pada PL/SQL
Membutuhkan klausa INTO
Queri harus mengembalikan satu nilai dan hanya satu nilai saja untuk tiap variable
Query hanya mengembalikan satu baris
PL/SQL akan menangani eror yang disebabkan oleh suatu kesalahan. Kesalahan ini bisa
ditrap dalam bagian exception pada blok dengan menggunakan NO_DATA_FOUND jika
data tidak ditemukan dan TOO_MANY_ROWS jika menerima lebih dari satu nilai pada
SQL. Berikut diberikan cotoh program untuk menampilkan tanggal mulai bekerja pegawai
(hire date) dan gaji pegawai
Contoh
Meskipun setelah clausa SELECT kita bisa menampilkan ekspresi, tapi variable Boolean
tidak dapat ditulis di sini
Berikut program untuk menjumlah gaji semua pegawai yang berada di departmen 60
Kita tidak diperbolehkan mendefinisikan variable dengan menggunakan <column>%TYPE
untuk menerima hasil dari fungsi SUM atau COUNT. Sebagai contoh. variable v_sum_sal di
atas tidak boleh dideklarasikan sebagai employes.salary%TYPE
Aturan Penamaan
Nama dari kolom/field pada table tidak boleh sama dengan nama variable local yang
tercantum di klausa INTO maupun yang terlibat dalam kondisi yang ditulis pada klausa
WHERE. Seperti contoh berikut :
Manipulasi data menggunakan PL/SQL
Untuk membuat perubahan data pada table, digunakan perintah DML sebagai berikut :
- INSERT
- UPDATE
-  DELETE
-  MERGE
Menyisipkan Data
Berikut contoh-contoh program untuk menyisipkan data pegawai baru ke dalam table
employees
DECLARE
last_name VARCHAR2(25) :=’King’;
BEGIN
DELETE FROM employees WHERE
last_name = last_name;
. . . . . . .

Pada saat menyisipkan baris data ke dalam table yang dicantumkan pada blok PL/SQL, kita
bisa :
-          Menggunakan fungsi sql, semisal user dan sysdate
-          Men-generate primary key dengan menggunakan sequences
-          Menurunkan nilai dalam blok pl/sql
-          Menambahkan kolom yang memiliki nilai default
Mengubah data
Berikut contoh program untuk menambah gaji semua pegawai yang pekerjaannya adalah
stock clerks
Pada klausa SET, bagian sebelah kiri selalu kolom/field pada table, sedangkan pada bagian
kanan dapat merupakan ekspresi yang terdiri dari kolom table, atau variable local PL/SQL
klausa WHERE digunakan untuk menetukan baris yang harus diubah datanya, jika tidak ada
baris yang dimodifikasi, tidak ada error yang ditampilkan
penandaan pada program PL/SQL selalu menggunakan := sedangkan penandaan pada
kolom sql selalu menggunakan =
Menghapus data
Contoh berukut menghapus baris data pada departemen 10.
Jika klausa WHERE tidak digunakan pada UPDATE, maka semua baris data pada table akan
dihapus
Menggabung (Merge) baris
Menyisipkan atau mengubah baris data yang ada dalam table copy_emp untuk dicocokkan
dengan data yang ada di table employees. Jika data yang ada di EMPLOYEES sudah ada di
copy_emp, maka data di copy_emp tinggal disesuaikan dengan sisi data yang ada di
employees. Jika data yang ada di employees belum ada di copy_emp, maka data tersebut
disisipkan sebagai data baru ke dalam table copy_emp.
DECLARE
v_empno employees.employee_id%type :=100;
BEGIN
MERGE INTO copy__emp c
USING employees e
ON (e.employee_id = v_empno)
WHEN MATCHED THEN
UPDATE SET
c.first_name = e.first_name,
c.last_name = e.last_name,
c.email = e.email,
. . . . . ..
WHEN NOT MATCHED THEN
INSERT VALUES (e.employee_id, e.first_name, e.last_name, . . . . . . .. . . .
. . . . );
END;
Aturan Penamaan :
 Berfunsi untuk menghindari ambiguitas pada klausa where
 Kolom table dan nama variable harus memiliki nama yang unik tidak boleh sama
 Untuk menghindari ambiguitas, missal variable local diawali dengan v_, semisal :
tidak mungkin terjadi ambiguitas pada klausa INTO, ini dikarenakan yang terlibat pada
klausa INTO pasti variable PL/SQL, dan bukan nama field dari table.
e. SQL Cursor
 Merupakan cursor yang menunjuk pada area sebagai hasil dari proses menjalankan
perintah SQL
 Ada 2 type cursor :
1. Implicit cursor
2. Explicit cursor
 Oracle server menggunakan implicit cursor untuk melakukan parsing dan
menjalankan perintah sql
 Explicit cursor adalah cursor yang secara explicit kita buat sendiri.
Pada saat kita memberikan perintah SQL, oracle server akan membuka area di
memori di mana perintah tersebut diparsing dan dijalankan. Area tersebut dinamakan
cursor. Pada saat bagian yang bisa dijalankan dari suatu blok menjalankan perintah
SQL, PL/SQL akan membuat implicit cursor, di mana akan di-manage oleh PL/SQL
secara otomatis. Sedangkan explicit cursor dideklarasikan, dan dibuat sendiri oleh
programmer.
 Attribute SQL Cursor
Terdapat 4 buah atribut dalam PL/SQL yang dapat digunakan pada cursor, dengan
menggunakan atribut cursor ini kita bisa menguji hasil dari perintah SQL
DECLARE
v_last_name VARCHAR2(25);
Attribute cursor memungkinkan kita untuk mengevaluasi hasil dari suatu perintah sql. Kita
bisa menggunakan atribut sql%rowcount, sql%found, sql%notfound, dan sql%isopen pada
bagian exception dari suatu blok. Pl/sql tidak akan menampilkan suatu kesalahan jika
perintah dml tidak memberikan apa-apa, tetapi bisa kita periksa dengan menggunakan
attribute cursor.
SQL%ISOPEN hanya bersifat melengkapi saja dari empat attribute implicit cursor,
sebenarnya attibut ini digunakan pada exlicit cursor. Attribut cursor sepeti
SQL%NOTFOUND berguna untuk mengevaluasi perintah update atau delete jika tidak ada
baris data yang diubah.
Selain itu, SQL Cursor memiliki atribut lain yakni %BULK_ROWCOUNT yang berfungsi
bersama-sama dengan perintah FORALL tapi tidak dijelaskan pada dasar PL/SQL. Attribute
ini memiliki semantic dari index-by-table. Elemen ke-i menyimpan jumlah baris yang
diproses oleh ekskusi yang ke-i dari perintah UPDATE atau DELETE. Jika diekskusi yang
ke-i tidak menghasilakan baris data apapun, maka %BULK_ROWCOUNT(i)
mengembalikan nilai nol (Zero).
Contoh program ini akan menghapus baris data pada table EMPLOYEE untuk pegawai yang
mempunyai nomer pegawai = 176. Jumlah dari baris data yang berhasil dihapus dimasukka
ke dalam table rows_deleted.
f. Perintah Control Transaksi
Penggunaan control transaksi COMMIT atau ROLLBACK
Kita bisa mengatur alur logika dari transaksi dengan perintah COMMIT and
ROLLBACK SQL, membuat perubahan pada perintah dml menjadi permanen atau
sebaliknya membatalkannya
Untuk menandai suatu transaksi menggunakan perintah SAVEPOINT
g. SQL
Setelah kita membahas tentang prosedur-prosedur dalam PL/SQL, kali ini akan
kita lanjutkan tentang SQL, SQL sangat diperlukan dalam PL/SQL karena query yang
digunakan menggunakan query SQL.
Kali ini kita akan mempelajari bagaimana menampilkan data dengan
menggunakan perintah-perintah SQL. perintah yang digunakan untuk menampilkan
data adalah SELECT.
- Sintaks Dasar
Perintah SELECT pada Oracle SQL minimal harus terdiri dari SELECT dan FROM.
SELECT [DISTINCT] {*, column [alias], …}FROM table;
 SELECT : Menampilkan paling tidak satu kolom
 DISTINCT : Menghilangkan nilai duplikat
 * : Menampilkan semua kolom
 Column : Menampilkan kolom tertentu
 Alias : Memberikan judul lain kolom
 FROM table : Menunjukkan nama tabel asal
- Penulisan Perintah SQL
 Perintah-perintah SQL dapat ditulis dalam satu baris atau lebih, namun untuk
kemudahan sebaiknya setiap klausa ditulis dalam baris yang berbeda
 Perintah-perintah SQL tidak case-sensitive
 Gunakan perintah ED untuk mengedit perintah-perintah SQL
- Menampilkan Seluruh Kolom dan Baris
Menampilkan seluruh kolom dari suatu tabel dapat dilakukan dengan dua cara, yaitu:
COMMIT;
SAVEPOINT savepoint_name;
ROLLBACK;
ROLLBACK TO [SAVEPOINT] savepoint_name;
 Menyebutkan seluruh nama kolom
SELECT id, name, region_id FROM department;
 Menggunakan tanda bintang (*)
SELECT * FROM department;
- Menampilkan Kolom Tertentu
Menampilkan kolom tertentu dapat dilakukan dengan cara menyebutkan nama kolom yang
ingin ditampilkan datanya. Contoh berikut ini menunjukkan bagaimana cara menampilkan
kolom tertentu dari tabel Department.
SELECT name FROM department;
- Operasi Aritmatika
Perhitungan dapat dilakukan pada perintah SQL dengan menggunakan ekspresi aritmatika,
yang dapat mengandung nama-nama kolom, nilai-nilai numerik yang teta, dan operatoroperator
aritmatika.
: Penjumlahan
: Penguranan
: Perkalian
: Pembagian
 Operator perkalian dan pembagian memiliki prioritas di atas penjumlahan dan
pengurangan
 Operator dengan prioritas yang sama di evaluasi dari kiri ke kanan
 Tanda kurung dapat digunakan untuk memaksa prioritas evaluasi dan memperjelas
perintah
Contoh:
 Menampilkan nama belakang dan menghitung gaji tahunan karyawan
SELECT last_name, salary*12 FROM employee;
 Menampilkan nama belakang, gaji bulanan, dan gaji tahunan karyawan. Gaji tahunan
merupakan gaji bulanan di kali dengan 12, ditambah dengan bonus 1.000.000
SELECT last_name, salary, salary*12+1000000 FROM salary;
 Menampilkan nama belakang, gaji bulanan, dan gaji tahunan karyawan. Gaji tahunan
merupakan gaji bulanan ditambah dengan bonus 1.000.000, di kali dengan 12
SELECT last_name, salary, 12*(salary+1000000) FROM employee;
- Operator Penggabungan
Kita dapat menggabungkan satu kolom dengan lainnya, ekspresi aritmatika, atau nilai tetap
untuk menciptakan ekspresi karakter menggunakan operator penggabungan (||). Kolomkolom
pada setiap sisi dari operator di kombinasikan untuk menghasilkan satu output kolom
tunggal.
Contoh:
Menampilkan nama lengkap karyawan dengan judul Karyawan.
SELECT first_name||last_name AS “Karyawan” FROM employee;
Menampilkan nama lengkap dan jabatan karyawan dengan judul Karyawan. Dalam contoh ini
antara nama depan dan nama belakang di pisahkan spasi, dan antara nama lengkap dan
jabatan di pisahkan koma.
SELECT first_name||’ ‘||last_name||’, ‘||title AS “Karyawan” FROM employee;
- Manajemen Nilai Null
Null adalah nilai yang tidak tersedia, tidak diberikan, tidak diketahui, atau tidak dapat
digunakan. Null tidak sama dengan nol atau spasi. Nol adalah angka, dan spasi adalah
karakter. Kolom dapat mengandung nilai null, kecuali kolom yang telah didefinisikan sebagai
NOT NULL atau PRIMARY KEY ketika tabel diciptakan.
- Nilai Null dalam Ekspresi Aritmatika
Jika nilai kolom dalam sebuah ekspresi adalah null, maka hasilnya juga null. Sebagai contoh,
jika kita berusaha melakukan pembagian terhadap nol, maka akan terjadi kesalahan. Namun
jika kita membagi terhadap null, maka hasilnya adalah null.
Contoh
Menampilkan nama belakang, gaji, jabatan, dan hasil perhitungan komisi.
SELECT last_name, title, salary, salary*commission_pct/100 KOMISI FROM employee;
- Fungsi NVL
Fungsi NVL digunakan untuk mengkonversi nilai null menjadi nilai yang kita kehendaki.
Sintaks fungsi NVL adalah sebagai berikut:
NVL (expr1expr2)
expr1: nilai sumber atau ekspresi yang mungkin bernilai null
expr2: nilai target hasil konversi null
Kita dapat menggunakan fungsi NVL untuk mengkonversi tipe data apapun, namun hasilnya
akan selalu sama dengan tipe data dari expr1.
Tipe data dan contoh konversi:
 NUMBER
o NVL (kolom_angka,9)
 DATE
o NVL (kolom_tanggal,’01-JAN-99′)
 CHAR dan VARCHAR2
o NVL (kolom_karakter,’Tidak tersedia’)
Contoh:
Berikut ini adalah modifikasi dari query sebelumnya, namun nilai null yang mungkin
dihasilkan oleh prosentase komisi dalam hasil perhitungan komisi dikonversi menjadi nol.
SELECT last_name, title, salary, salary*NVL(commission_pct,0)/100 KOMISI FROM
employee;
- Mencegah Tampilnya Nilai Duplikat
Tampilan default dari query adalah seluruh baris termasuk baris-baris duplikat (dobel).
Contoh:
Menampilkan seluruh nama departemen dari tabel DEPARTMENT.
SELECT name FROM department;
 Penggunaan Keyword DISTINCT
Baris-baris duplikat hasil query dapat dikurangi dengan menggunakan keyword DISTINCT
dan SELECT.
Contoh:
Menampilkan nama departemen secara unik (tidak ada nilai duplikat).
SELECT DISTINCT name FROM department;
Menampilkan kombinasi-kombinasi berbeda dari jabatan dan kode departemen.
SELECT DISTINCT title, dept_id FROM employee;
- Menampilkan Struktur Tabel
Dalam SQL*Plus kita dapat menampilkan struktur dari suatu tabel dengan menggunakan
perintah DESCRIBE. Perintah ini menghasilkan nama kolom, tipe data, dan kolom mana
yang harus berisi data (NOT NULL).
DESC[RIBE] tablename
tablename: nama dari tabel, view atau synonym yang boleh diakses user
Contoh:
Menampilkan struktur tabel DEPARTMENT.
DESCRIBE department;
atau
DESC department;
Name: nama kolom
Null?: menunjukkan apakah suatu kolom harus berisi data
Type: tipe data dari kolom
- Tipe Data
 NUMBER(p,s)
Digit maksimum p dan s angka dibelakang koma
 VARCHAR2(s)
Tipe data karakter dengan panjang bervariasi (maksimum 2000)
 CHAR(s)
Tipe data karakter dengan panjang tetap
 DATE
Tipe data tanggal antara 1 Januari 4217 BC dan 4712 AD
- Mengurutkan Data
Kita dapat menampilkan data secara urut berdasarkan satu atau beberapa kolom dengan
menambahkan klausa ORDER BY pada perintah SELECT yang telah kita pelajari
sebelumnya.
SELECT [DISTINCT] {*, column [alias], . . .} FROM table [ORDER BY {column, expr}
[ASC|DESC]];
 ORDER BY : menentukan dasar urutan data yang akan ditampilkan
 ASC : menampilkan data secara urut menaik (ascending). Ini merupakan
default pengurutan data
 DESC : menampilkan data secara urut menurun (descending)
- Default Pengurutan Data
Apabila kita tidak menuliskan klausa ASC atau DESC dalam klausa ORDER BY, maka
proses pengurutan dilakukan secara ascending (default). Berikut ini hal-hal yang perlu
diketahui mengenai pengurutan data.
 Nilai-nilai numerik ditampilkan dengan nilai terkecil terlebih dahulu, contoh 1-999
 Nilai-nilai tanggal ditampilkan dengan nilai paling awal terlebih dahulu, contoh 01-
JAN-92 sebelum 01-JAN-95
 Nilai-nilai karakter ditampilkan secara alphabet, contoh A pertama dan Z terakhir
 Nilai-nilai null ditampilkan terakhir dalam urutan ascending dan pertama dalam
urutan descending
Contoh:
Menampilkan data karyawan urut berdasarkan nama belakang.
SELECT last_name, dept_id, hire_date FROM employee ORDER BY last_name;
Contoh diatas dapat dimodifikasi sehingga urut berdasarkan nama belakang secara menurun
(descending) dengan menambahkan klausa DESC.
SELECT last_name, dept_id, hire_date FROM employee ORDER BY last_name DESC;
- Mengurutkan Data Menggunakan Alias Kolom
Kita dapat menggunakan alias kolom dalam klausa ORDER BY. Fitur ini tersedia sejak
Oracle 7 Release 7.0.16.
Contoh
Menampilkan data karyawan urut berdasarkan nama belakang.
SELECT last_name EMPLOYEE, hire_date FROM employee ORDER BY EMPLOYEE
DESC;
- Mengurutkan Data Berdasarkan Posisi Kolom
Metode lain untuk mengurutkan data adalah berdasarkan posisi kolom. Hal ini khususnya
berguna jika mengurutkan berdasarkan ekspresi yang panjang. Daripada harus mengetikkan
ekspresi yang panjang, kita dapat menentukan posisi kolom dalam SELECT.
Contoh:
Menampilkan data karyawan urut berdasarkan gaji tahunan.
SELECT last_name, salary*12 FROM employee ORDER BY 2;
- Mengurutkan Data Berdasarkan Beberapa Kolom
Kita dapat mengurutkan hasil query berdasarkan beberapa kolom. Batasannya adalah jumlah
kolom dalam tabel.
Contoh
Menampilkan data karyawan urut secara menaik (ascending) berdasarkan kode departemen,
kemudian urut secara menurun (descending) berdasarkan gaji.
SELECT last_name, salary FROM employee ORDER BY dept_id, gaji DESC;

Membuat Procedure

Bentuk umum :

CREATE OR REPLACE PROCEDURE
  nama_procedure
  (parameter_1 tipe_data, … ) AS
  variabel_1 tipe_data;
  …
  BEGIN
  statemen_1;
  …
  END;
Membuat Procedure (2)
       CREATE digunakan untuk membuat procedure baru
       REPLACE digunakan untuk mengganti isi procedure yang telah dibuat sebelumnya
       Parameter dan variable/konstanta bersifat opsional
       Bentuk umum perintah untuk mengeksekusi sebuah procedure :
                                EXECUTE nm_procedure(paremeter_1,…);
Contoh 
Procedure Tanpa Parameter

SET SERVEROUTPUT ON
CREATE OR REPLACE PROCEDURE hitung_luas_segitiga AS
  alas NUMBER(5);
  tinggi NUMBER(5);
  luas NUMBER(10);
BEGIN
  alas := 3;
  tinggi := 6;
  luas := (alas * tinggi) / 2;
  DBMS_OUTPUT.PUT_LINE(‘LUAS = ‘ || luas);
END;
/
…………………………………
EXECUTE hitung_luas_segitiga;
Contoh 
Procedure dengan Parameter

Dengan Parameter Masukan
CREATE OR REPLACE PROCEDURE
  tambah_dua ( a IN INTEGER) AS
  hasil INTEGER(5);
BEGIN
  hasil := a + 2;
  DBMS_OUTPUT.PUT_LINE (‘Hasil akhir = ‘ || hasil);
END;
/
………………………………
EXECUTE tambah_dua(4); 


Dengan Parameter Keluaran
CREATE OR REPLACE PROCEDURE
  tambah_10 ( bil IN INTEGER, X OUT INTEGER) AS
BEGIN
  X := bil + 10;
END;
/





Dengan Parameter Keluaran
SET SERVEROUTPUT ON
DECLARE
  hasil INTEGER;
BEGIN
  tambah_10(5, hasil);
  DBMS_OUTPUT.PUT_LINE(‘Hasilnya = ‘ || TO_CHAR(hasil));
END;
/


Dengan Parameter Masukan/Keluaran
CREATE OR REPLACE PROCEDURE
  tambah_10 ( X IN OUT INTEGER) AS
BEGIN
  X := X + 10;
END;
/
  





Dengan Parameter Masukan/Keluaran
CREATE OR REPLACE PROCEDURE
  tambah_10 ( X IN OUT INTEGER) AS
BEGIN
  X := X + 10;
END;
/


Contoh 
Procedure Di Dalam Procedure

CREATE OR REPLACE PROCEDURE cetak_angka(X IN INTEGER) AS
  J INTEGER;
BEGIN
  FOR J IN 1..X LOOP
  DBMS_OUTPUT.PUT_LINE( TO_CHAR(J));
  END LOOP;
END;
/






CREATE OR REPLACE PROCEDURE panggil_proc AS
BEGIN
  cetak_angka(10);
END;
/
----------------------------
SET SERVEROUTPUT ON
EXECUTE panggil_proc

 
sumber :-          Pemrograman PL/SQL ORACLE 
      o   Imam Heryanto dan Budi Raharjo
      o   Penerbit Informatika Bandung
      o   2003