bab iv

Upload: ogix-permen-lunak

Post on 18-Oct-2015

14 views

Category:

Documents


0 download

TRANSCRIPT

  • BAB IV

    CURSOR

    4.1 Tujuan Praktikum

    Adapun tujuan dari pratikum cursor adalah sebagai berikut :

    1. Mengetahui dan memahami kaidah-kaidah penggunaan cursor.

    2. Mngetahui dan memahami pernyataan-pernyataan yang digunakan

    dalam cursor.

    3. Mengetahui batasan-batasan penggunaan cursor.

    4.2 Tinjauan Pustaka

    4.2.1 Konsep Dasar Cursor

    Cursor merupakan pointer yang menunjukkan ke suatu bagian memori

    untuk menyimpan hasil perintah SQL seperti select, insert, update, delete.

    Pemakaian cursor pada SQL Server mendukung struktur pengulangan (loop)

    diantara result set, membaca setiap baris data satu per satu. Beberapa tahapan

    yang harus dilakukan dalam memakai cursor antara lain:

    1. Deklarasi Cursor

    Untuk dapat menggunakan cursor pertama-tama yang harus dilakukan

    adalah mendeklarasikan nama cursor dan variabel yang digunakan.

    DECLARE cursor_name CURSOR FOR select_statement

    Kode program 4.1 Deklarasi Cursor

    2. Open Cursor

    Untuk menggunakan cursor dan fetch data, anda dapat mengaktifkan

    cursor sesuai dengan nama yang telah dideklarasikan sebelumnya.

    OPEN cursor_name

    Kode program 4.2 Open Cursor

  • 3. Membaca Baris Data dari Cursor

    Setelah cursor diaktifkan, SQL Server akan membaca baris data secara

    berulang-ulang (loop) dari baris data dari suatu tabel.

    4. Menutup Cursor

    Menutup cursor dilakukan jika ingin mengunci data setelah tidak

    digunakan.

    CLOSE cursor_name

    Kode program 4.3 Menutup Cursor

    5. Dealokasi Cursor

    Dealokasi cursor bertujuan untuk membuang atau menghapus cursor dari

    memori jika sudah tidak digunakan lagi. DECLARE nama_cursor [INSENSITIVE][SCROOL] CURSOR FOR select_statement DECLARE [FOR {READ ONLY|UPDATE [OF nama_kolom[.....n]}] OPEN nama_cursor CLOSE nama_cursor DEALLOCATE nama_cursor

    Kode program 4.4 Dealokasi Cursor

    Suatu query yang dibuat untuk menyamakan beberapa record tidak harus

    mempunyai clause into. Jika suatu query diharapkan mengembalikan beberapa

    record, maka cursor harus dipakai sebagai penggantinya. Cursor dapat digunakan

    untuk menegaskan satu record pada suatu waktu. Dengan cursor, tiap-tiap record

    dapat dikembalikan oleh query oleh individual pada suatu waktu. Berikut contoh

    perintah select untuk menemukan record dalam basis data.

    Select * from state

    Kode program 4.5 Perintah SELECT Pencarian Data

    Perintah ini akan gagal dijalankan meski program telah benar karena query

    akan memilih semua nama dalam tabel. Query akan menemukan 50 tuple dalam

    state basis data.

  • database store main select * from state end main

    Kode program 4.6 Sintaks Pencarian Tuple Dalam State Basis Data

    Program ini akan dikompile dan dijalankan. Program tersebut akan

    berhenti dan menampilkan pesan, a subquery has return not exactly one value .

    Hal ini disebabkan perintah select menemukan lebih dari satu record.

    Masalah ini dapat diselesaikan dengan cursor, karena cursor

    dideklarasikan untuk mengoperasikan perintah select. Perintah select digabungkan

    dengan cursor. Perintah select dapat menyamakan suatu kelompok record dalam

    basis data. Cursor kemudian dapat digunakan untuk menegaskan masing-masing

    pilihan record. Berikut contoh penggabungan perintah select dan cursor. Declare c_state cursor for Select*from state

    Kode program 4.7 Sintaks Penggabungan Perintah SELECT dan Cursor

    Perintah tersebut membuat cursor dengan nama c_state. Cursor dapat

    memilih masing-masing record yang dikembalikan oleh perintah select*from

    state.

    4.2.2 Fungsi Cursor Fungsi cursor adalah menghasilkan recor-record tertentu secara sfesifik

    Membantu akses store procedure yang berhubungan dengan manipulasi data serta

    dalam penggunaan trigger.

    4.2.3 Keuntungan Cursor Keuntungan utama cursor adalah anda dapat mengakses data baris demi

    baris. Yang dimaksud dengan hasil-hasil data yang ditentukan adalah kumpulan

    baris yang diperoleh dari operasi SELECT yang memenuhi kriteria yang

    dinyatakan dalam WHERE clause.

    4.3 Pembahasan dan Analisa

    Adapun pembahasan dan analisa dari modul cursor ini adalah sebagai

    berikut.

  • 5.3.1 Pembahasan Cursor untuk menghitung total jumlah bayar mahasiswa dari

    tb_detail_kwitansi dan simpan di tb_kwitansi kolom total_bayar serta kekurangan

    pembayaran mahasiswa dan simpan di tabel tb_kwitansi kolom remark.

    Gambar 4.1 Tabel Detail Kwitansi Sebelum di Isi

    Gambar 4.2 Tabel Detail Kwitansi Sesudah di Isi

    Pada gambar 4.1 terdapat kwitansi_id no 6 dengan jumlah bayar yang

    masih 0 dengan setatus masih open. Kemudian pada gambar 4.2 setelah dilakukan

    pembayaran, kwitansi_id no 6 setatusnya berubah menjadi closed. Setelah itu

    dilakukan pemanggilan cursor_total_bayar seperti pada gambar 4.3

  • Gambar 4.3 Pemanggilan Cursor

    Setelah melakukan pemanggilan cursor_total_bayar maka hasil dari cursor

    dapat dilihat pada gambar 4.4

    Gambar 4.4 Hasil Pemanggilan Cursor

    Dari gambar diatas dapat dilihat terjadi perubahan pada tabel kwitansi,

    pada kwitansi_id no 6 total bayarnya berubah menjadi 520000. Kemudian

    dilakukan cursor untuk meng copy data dari tb_kwitansi dan tabel

    tb_kwitansi_detail ke dalam tabel baru yaitu tabel X.

  • Gambar 4.5 Pemanggilan Cursor Untuk Copy Data ke tb_x

    Setelah melakukan pemanggilan maka tb_x akan terisi seperti gambar 4.6

    Gambar 4.6 Hasil Copy Pada tb_ x