PERTEMUAN 5



Resume : 5
Mata Kuliah : Pemrograman Basis Data II

DBMS Languages atau Bahasa Basis Data



DBMS DAN KEUNTUNGANNYA
Secara umum DBMS diartikan sebagai suatu program komputer ang digunakan untuk memasukan, mengubah, menghapus, memanipulasi, dan memperoleh data / informasi dengan praktis dan efisien.
Keunggulan DBMS :
1. Kepraktisan
2. Kecepatan
3. Mengurangi kejemuan
4. Kekinian
Komponen Utama DBMS
Komponen utama DBMS dapat dibagi menjadi empat macam :
1. Perangkat keras,
2. Data, Data dalam basis data mempunyai sifat terpadu (integrated) dan berbagi (shared)
3. Perangkat Lunak, dan
4. Pengguna.
MODEL BASIS DATA
1. Model Hirarkis / Model Pohon
2. Model Jaringan
3. Model Relasional
Model Relasional merupakan model yang paling sederhana sehingga mudah digunakan dan dipahami oleh pengguna, serta merupakan model yang paling populer saat ini.
Model ini menggunakan sekumpulan tabel berdimensi dua ( yang disebut relasi atau tabel ), dengan masing-masing relasi tersusun atas tupel atau baris dan atribut.
DBMS yang bermodelkan relasional biasa disebut RDBMS (Relational Data Base Management System).
Ada Beberapa Sifat yang melekat pada suatu relasi :
1. Tak ada tupel (baris) yang kembar)
2. Urutan tupel tidaklah penting
3. Setiap atribut memiliki nama yang unik
4. Letak atribut bebas ( urutan atribut tidak penting)
5. Setiap atribut memiliki nilai tunggal dan jenisnya sama untuk semua tupel.
Pada model relasional, jumlah tupel suatu relasi disebut kardinalitas dan jumlah atribut suatu relasi disebut derajat (degree) atau terkadang disebut arity. Relasi yang berderajat saru (hanya memiliki satu atribut) disebut unary. Relasi yang berderajat dua disebut binary dan relasi yang berderajat tiga disebut ternary. Relasi yang berderajat n disebut n-ary. Istilah lainnya yang terdapat pada model relasional adalah domain. Domain adalah himpunan nilai yang berlaku bagi suatu atribut.
Contoh produk DBMS terkenal yang menggunakan model relasional antara lain adalah :
1. DB2 (IBM)
2. Rdb/VMS (Digital Equipment Corporation)
3. Oracle (Oracle Corporation)
4. Informix (Informix Corporation)
5. Ingres (ASK Group Inc)
6. Sybase (Sybase Inc)
Di lingkungan PC, produk-produk berbasis relasional yang cukup terkenal antara lain adalah :
1. Keluarga R:Base (Microrim Corp) antara lain berupa R:Base 5000
2. Keluarga dBase (Ashton-Tate, sekarang bagian dari Borland International), antara lain dbase III Plus, dBase IV, serta Visual dBase
3. Microsoft SQL ( Microsoft Corporation)
4. Visual FoxPro (Microsoft Corporation)

Sumber :-----

PERTEMUAN 4

Resume : 4
Mata Kuliah : Pemrograman Basis Data II


A.PL/SQL merupakan bahasa pemrograman yang menggabungkan bahasa
procedural, seperti pernyataan percabangan (IF-THEN-ELSE), pengulangan
(LOOP) dan deklarasi variable. PL/SQL dikembangkan oleh Oracle untuk
pembuatan Fungsi, Database Trigger, dan Stored Procedure.
Trigger adalah blok PL/SQL yang disimpan dalam database dan akan diaktivasi
ketika kita melakukan statement-statement SQL (DELETE, UPDATE, dan
INSERT) pada sebuah tabel. Aktivasi trigger didasarkan pada event yang terjadi di
dalam table tersebut sehingga trigger dapat membantu dalam menjaga integritas
dan konsistensi data. Implementasi trigger yang sering ditemui dalam dunia nyata
adalah untuk mengeset dan mengubah nilai kolom dalam suatu tabel sehingga
validasi nilai dari tabel tersebut akan terjaga. Adanya trigger dalam database akan
meringankan kita dalam pembuatan aplikasi karena di dalam aplikasi yang kita
buat, kita tidak perlu lagi untuk melakukan validasi data.
Database triger merupakan sebuah program unit yang disimpan didalam
database dan hanya dapat dieksekusi (fired) secara implisit oleh server (oracle
server) menurut event yang terjadi pada object acuan dari trigger tersebut. Triger
dapat berisi SQL, PL/SQL, dan Java statement. Selain itu juga dapat memanggil
method yang ditulis menggunakan bahasa
Kegunaannya Triger :
1.Menentukan nilai kolom – kolom tertentu secara otomatis
2.Menghindarkan transaksi yang tidak valid
3.Membuat autorisasi sekuriti yang kompleks
4.Membuat bussines rule yang kompleks

Event eksekusi trigger :
1.DML event (INSERT, UPDATE & DELETE) statement.
2.DDL event (CREATE, ALTER & DROP) statement
3.Database event (Startup/Shutdown, Error Message & User event
(Logon/Logoff))
Procedure ialah sekumpulan perintah PL/SQL untuk menjalankan suatu
tugas tertentu. Stored procedure ialah prosedur yang telah di compile dan disimpan
dalam database.
Di dalam Procedure terdapat schema yang berisi sekumpulan SQL
statement dan perintah – perintah PL/SQL yang disimpan dalam database dan
bekerja sebagai sebuah unit yang dapat mengerjakan sekumpulan tugas tertentu.
Function merupakan sekumpulan perintah PL/SQL untuk menjalankan
suatu tugas tertentu dan mengembalikan suatu nilai.
Terdapat pada sebuah program unit yang disimpan dalam database untuk
mengerjakan suatu tugas dengan mengembalikan suatu nilai tertentu.
Obyek-Obyek PL/SQL


Administrator database diharapkan punya kemampuan untuk:
• Mengidentifikasi permasalahan obyek PL/SQL
• Merekomendasikan penggunaan PL/SQL yang tepat

• Memasukkan objek PL/SQL ke dalam database
• Membantu developer PL/SQL dalam troubleshooting


Aplikasi konversi flowchart ke bahasapemrograman PL/SQL MySQL
merupakan aplikasi yang digunakan untuk mengkonversi gambar flowchart yang
dibuat oleh pengguna menjadi kode program bahasa pemrograman PL/SQL
MySQL. Aplikasi ini terdiri dari proses koneksi ke database MySQL, proses
pemilihan jenis flowchart, penggambaran simbol flowchart, editing symbol
flowchart, interkoneksi antar simbol, proses konversi menjadi kode program bahasa
pemrograman PL/SQL MySQL, eksekusi hasil konversi, penyimpanan gambar
flowchart dan open gambar flowchart yang sebelumnya dibuat. Aplikasi ini
diharapkan dapat membantu proses pembelajaran pembuatan flowchart dan
pemahaman tentang bahasa pemrograman PL/SQL MySQL.


B. Cluster Computing
Cluster Computing adalah suatu sistem perangkat keras dan perangkat
lunak yang menggabungkan beberapa komputer dalam suatu jaringan dimana
komputer-komputer tersebut dapat bekerja sama dalam pemrosesan suatu masalah.
Dalam hal ini, kelompok computer tersebut dapat dilihat sebagai satu komputer
tunggal oleh aplikasi-aplikasi yang berjalan di atasnya.
Tujuan pembentukan cluster computer antara lain :
- High performance computing (pada sistem ini cluster dibuat dengan tujuan
meningkatkan unjuk kerja komputasi dengan memecah tugas-tugas ke beberapa
node, contohnya adalah Beowulf cluster dan openMosix).



- Load balancing (membagi operasi node ke node yang lain sehingga semua
operasi dapat tertangani dengan baik dan sebuah node tidak mempunyai load
yang berlebihan, contohnya adalah Linux Virtual Server dan OpenSSI).
- High Availability Cluster , sistem ini bertujuan agar sebuah layanan dapat terus
tersedia tidak terhalangi oleh SPOF, single point of failure –komponen sistem
yang jika gagal beroperasi mengakibatkan layanan tidak tersedia– contohnya
kerusakan pada server, kerusakan hdd dll. Pada tulisan ini akan membahas
sistem ini dan implementasi sederhananya.
Komponen yang terdapat pada cluster computer :
- Node, sistem cluster terdiri dari beberapa node. Paling sederhana terdiri dari
dua node. Node disini adalah komputer yang mandiri, artinya mampu
memproses tugas komputasi tanpa node lain.
- Sistem operasi, harus mendukung jaringan computer
- Cluste middleware, perangkat lunak yang memungkinkan node yang ada
saling bekerja sama
- Aplikasi yang mendukung pemindahan tugas (biasanya pada high
performance cluster, menggunakan pustaka Message Passing Interface atau
Paralel Virtual Machine)
Secara umum cluster bisa disebut sebagai kumpulan komputer-komputer
yang bekerja paralel dalam mengerjakan proses-prosesnya. Pada dasarnya, dua atau
lebih komputer yang digunakan untuk memecahkan sebuah masalah bersama-sama,
dapat dikategorikan sebagai cluster. Cluster biasanya digunakan untuk tujuan HA
(High Availability) atau HPC (High Performance Computing). Tipe yang pertama
lebih ditujukan kepada reliabilitas tinggi atau kestabilan dari sebuah sistem.
Sedangkan tipe yang kedua menjanjikan tenaga komputasi yang jauh lebih besar
dibandingkan tenaga komputer uniprocessor. Cluster HPC sering disebut sebagai
cluster Beowulf.
Cluster jenis ini merupakan sistem dengan performa dan skalabilitas tinggi,
menggunakan infrastruktur jaringan private dan sistem operasi open-source seperti
Linux. Kinerja dapat ditingkatkan dengan menambahkan mesin kedalam suatu
sistem. Hardware mesin yang digunakan sangat bervariasi, sebanyak yang dapat
ditemukan di pasaran, mulai dari 2 (dua) node PC stand-alone dengan Linux dan
pemakaian file system bersama, sampai 1024 node di atas jaringan low-latency,
berkecepatan sangat tinggi.
Cluster terbagi kedalam 2 (dua) kelas, yaitu:
- Class I Cluster yang dibangun menggunakan hardware/software umum yang
ada dipasaran, dengan teknologi standar seperti IDE, SCSI, dan Ethernet.
- Class II Cluster berbiaya tinggi, yang dibangun menggunakan hardware
khusus berkecepatan tinggi, untuk mencapai tingkat performa terbaik
Suatu clustering adalah suatu kelompok dua atau lebih server yang
didedikasikan khusus untuk menjalankan suatu applikasi (atau beberapa applikasi)
dan dikoneksikan sedemikian rupa agar memberikan suatu fault tolerance dan load
balancing. Fault tolerance mungkin asing bagi kita, gampangnya jika salah satu
mesin tidak bisa menunaikan fungsinya atau mati, maka akan di ambil alih /
digantikan oleh mesin lainnya secara automatis.
Dalam system server cluster, masing-2 server menjalankan applikasi kritis
yang sama, sehingga apabila salah satu server gagal fungsi, maka server lainnya
akan mendeteksi kegagalan fungsi ini dan mengambil alih fungsinya hanya dalam
hitungan beberapa saat saja. Hal ini disebut sebagai “failover”. Jika node yang
gagal fungsi tadi kembali normal, maka node-2 yang lain akan mengetahui kondisi

ini dan system cluster akan kembali menggunakan node yang gagal fungsi tadi
kembali. Kondisi ini disebut “failback”. Dalam system windows 2003, kemampuan
clustering ini di install secara automatis, akan tetapi pada system windows 2000
anda harus menginstall module terpisah Microsoft Clustring System.
Server cluster di rancang untuk applikasi yang long-running di memory state
atau applikasi yang datanya besar dan sering berubah yang lazim disebut sebagai
statefull applications dan berisi database server seperti Microsoft SQL, Exchange
server, server file dan printers. Semua node dalam cluster ini terhubung dengan
suatu data set share SCSI bus atau SAN – storage area network. semua node
mempunyai akses ke data applikasi yang sama, dan masing-2 node bisa memproses
request dari client kapan saja. Anda bisa configure setiap node dari cluster ini
menjadi passive atau active. Node yang active bisa menerima dan memproses
permintaan dari clients, sementara node yang passive bersifat idle dan berfungsi
sebagai “fallback” jika node yang active gagal.


Sumber : -----

PERTEMUAN 3

Resume : 3
Mata Kuliah : Pemrograman Basis Data II

Kondisi & Perulangan Pada PL/SQL




Umumnya kondisi pada PLSQL adalah struktur yang terdiri dari perintah-perintah IF dan CASE. Terdapat tiga bentuk perintah-perintah IF: IF-THEN, IF-THEN-ELSE, dan IF-THEN-ELSIF.
a. Perintah IF-THEN
Rangkaian perintah-perintah dieksekusi hanya jika kondisi adalah true. Jika kondisi bernilai false atau null, perintah IF tidak melakukan apa-apa. Dalam salah satu kasus, kontrol berlalu kepada perintah selanjutnya.
Bentuk umum :
IF condition THEN
sequence_of_statements
END IF;
b. Perintah IF-THEN-ELSE
Rangkaian perintah-perintah dalam klausa ELSE dieksekusi hanya jika kondisi bernilai false atau null. Jadi, klausa ELSE memastikan bahwa rangkaian perintah-perintah tersebut dieksekusi.
Bentuk umum :
IF condition THEN
sequence_of_statements1
ELSE
sequence_of_statements2
END IF;
c. Perintah IF-THEN-ELSIF
Jika kondisi pertama bernilai false atau null, klausa ELSIF akan menguji kondisi lainnya. Perintah IF dapat memiliki sejumlah klausa ELSIF; klausa final ELSE bersifat opsional (bisa digunakan atau tidak). Kondisi-kondisi dievaluasi satu demi satu dari atas ke bawah. Jika suatu kondisi bernilai true, rangkaian perintah-perintah yang ada di dalamnya dieksekusi dan kontrol akan menuju ke perintah selanjutnya. Jika seluruh kondisi bernilai false atau null, maka rangkaian perintah-perintah di dalam klausa ELSE yang akan dieksekusi.
Bentuk umum :
IF condition1 THEN
sequence_of_statements1
ELSIF condition2 THEN
sequence_of_statements2
ELSE
sequence_of_statements3
END IF;
d. Perintah CASE
Seperti halnya perintah IF, perintah CASE menyeleksi satu rangkaian perintah-perintah untuk dieksekusi. Namun, untuk menyeleksi rangkain perintah-perintah tersebut, perintah CASE menggunakan penyeleksi, bukannya menggunakan banyak ekspresi-ekspresi Boolean.
  1. Bentuk umum :
    [<>]
    CASE selector
    WHEN expression1 THEN sequence_of_statements1;
    WHEN expression2 THEN sequence_of_statements2;

    WHEN expressionN THEN sequence_of_statementsN;
    [ELSE sequence_of_statementsN+1;]
    END CASE [label_name];
* Perulangan pada PL/SQL
Sekumpulan perintah untuk melakukan perulangan dari suatu blok statement yang terdapat di dalam blok statement loop. Bentuk paling sederhana dari perintah LOOP adalah loop dasar (tak berhingga), yang mengapit rangkaian perintah-perintah diantara kata-kata kunci LOOP dan END LOOP, seperti berikut ini:
a. LOOP
Dengan setiap perulangan dari setiap putaran, rangkaian perintah-perintah dieksekusi, lalu kontrol mulai lagi menuju ke awal putaran.
Bentuk umum :
LOOP
sequence_of_statements

END LOOP;
b. WHILE-LOOP
Sebelum setiap perulangan dari loop, kondisi dievaluasi. Jika kondisi true, rangkaian perintah-perintah dieksekusi, kemudian kontrol kembali ke awal loop. Jika kondisi false atau null, loop diabaikan dan kontrol menuju ke perintah selanjutnya.
Bentuk umum :
WHILE condition LOOP
sequence_of_statements
END LOOP;
c. FOR-LOOP
Jumlah perulangan melalui loop WHILE tidak diketahui sampai loop berakhir, namun jumlah perulangan melalui loop FOR telah diketahui sebelum loop dijalankan. Loop-loop FOR berulang sejumlah jangkauan integer tertentu. Jangkauan ini adalah bagian dari iteration scheme, yang diapit oleh kata-kata kunci FOR dan LOOP. Tanda titik dua (..) bertindak sebagai operator jangkauan. Sintaksnya adalah sebagai berikut:
  1. Bentuk umum :
    FOR counter IN [REVERSE] lower_bound..higher_bound LOOP
    sequence_of_statements
    END LOOP;
    Jangkauan dievaluasi ketika loop FOR pertama kali dijalankan dan tidak pernah dievaluasi ulang.
CONTOH PERULANGAN :
DECLARE
TYPE DateList IS TABLE OF DATE INDEX BY BINARY_INTEGER;
dates DateList;
k CONSTANT INTEGER := 5;
BEGIN
FOR j IN 1..3 LOOP
dates(j*k) := SYSDATE;
END LOOP;
END;

Sumber : -----

PERTEMUAN 2

Resume : 2
Mata Kuliah : Pemrograman Basis Data II
Dosen : Hendro Poerbo P, S.T, M.MT.


* Conversion Function *

· Mengkonversi data untuk menyamakan tipe data.
· Tipe data yang tidak sama dapat menyebabkan kesalahan dan mempengaruhi kinerja.
· Fungsi konversi :
- TO_CHAR
- TO_DATE
-       TO_NUMBER
DECLARE
v_date VARCHAR2(15) ;
BEGIN
SELECT TO_CHAR(hiredate, ‘MON. DD, YYYY’ )
INTO v_date
FROM emp
WHERE empno = 7839;
END ;
KONVERSI TIPE DATA
Statement ini menghasilkan kesalahan kompilasi jika variabel v_date dideklarasikan dengan tipe data DATE.
Untuk mengatasinya, gunakan fungsi konversi TO_DATE.

NESTED BLOCKS DAN VARIABEL SCOPE
* Anda Dapat Menempatkan Nested Blocks (Blok Bersarang) Di manapun Statement Tersebut Dapat Dijalankan
* Nested Blocks adalah Statement
* Exception Section Juga Dapat Berisi Nested Blocks
* Scope adalah Daerah Program yang Dapat Dimasukkan Dalam Objek
OPERATOR DALAM PL/SQL
CONTOH
1. Counter
V_count := V_count + 1;
2. Operator Boolean
V_equal := (V_n1 = V_n2);
3. Validasi sebuah Field yang Berisi Nilai Tertentu
V_Valid := (V_empno Is Not NULL);
MENCETAK VARIABEL BIND
Untuk mendeklarasikan variabel bind (terikat) dalam PL/SQL, anda harus memberi tanda titik dua (:) di depan nama variabelnya.
ATURAN DALAM PEMROGRAMAN
Untuk memaintenance suatu kode program bisa dilakukan dengan :
[ Menulis kode dengan komentar
[ Mengembangkan kasus konversi untuk kode
[ Mengembangkan nama konversi untuk
mengidentifikasikan ke objek lain.
[ Menambah kemudahan membaca dengan
mengidentifikasikannya
KONVERSI PENAMAAN KODE
Untuk menghindari kerancuan 
[
 Nama variabel lokal dan parameter formal harus mendahului nama tabel dalam database.
[ Nama kolom harus mendahului nama variabel lokal.
INDENTING CODE
Agar pengkodeannya jelas, setiap level kode sebaiknya ada indent-nya.
RANGKUMAN
[ Struktur Blok PL/SQL : Nesting Blocks (Blok
Bersarang) dan Scoping Rules.
[ Pemrograman PL/SQL :
£ Function
£ Datatype Conversion
£ Operators
£ Bind Variabels
£ Konversi dan Aturan Penulisan


Sumber : -----