Laporan Pemrogaman Chapter 4

Embed Size (px)

Citation preview

  • 7/25/2019 Laporan Pemrogaman Chapter 4

    1/18

    LAPORAN PEMROGAMAN

    BASIS DATA JARINGAN

    Penulisan Query Database

    Disusun oleh:

    Ajeng Yona Falah

    Informatika 3A

    3.34.12.0.01

    PROGAM STUDI TEKNIK INFORMATIKA

    JURUSAN TEKNIK ELEKTRO

    POLITEKNIK NEGERI SEMARANG

    2014/2015

  • 7/25/2019 Laporan Pemrogaman Chapter 4

    2/18

    I. Tujuan Instruksional Khusus

    Setelah menyelesaikan praktek mahasiswa diharapkan dapat:

    1. Memahami cara penulisan sintaks SQL dengan benar.

    2. Melakukan komparasi antara QBE (Query by Example) dan SQL.3. Menghasilkan output baris tabel yang dikelompokkan.

    4. Menggunakan operator pivot.

    II. Dasar Teori

    SQL (Structured Query Language) adalah sebuah bahasa yang digunakan untuk

    mengakses data dalam basis data relasional. Bahasa ini secara de facto merupakan

    Bahasa standar yang digunakan dalam manajemen basis data relasional. Saat inihampir semua server basis data yang ada mendukung bahasa ini untuk melakukan

    manajemen datanya.

    SQL Server menggunakan T-SQL sebagai bahasanya, dan memiliki banyak

    variasi fungsi dan konstuksi untuk penulisan query. Microsoft SQL Server adalah

    sebuah system manajemen basis data relasional (RDBMS) produk Microsoft.

    Bahasa kueri utamanya adalah Transact-SQL yang merupakan implementasi dari

    SQL standar ANSI/ISO yang digunakan oleh Microsoft dan Sybase. Umumnya

    SQL Server digunakan di dunia bisnis yang memiliki basis data berskala kecil

    sampai dengan menengah, tetapi kemudian berkembang dengan digunakannya SQL

    Server pada basis data besar.

    Microsoft SQL Server dan Sybase/ASE dapat berkomunikasi lewat jaringan

    dengan menggunakan protokol TDS (Tabular Data Stream). Selain dari itu,

    Microsoft SQL Server juga mendukung ODBC (Open Database Connectivity), dan

    mempunyai driver JDBC untuk Bahasa pemrograman Java. Fitur yang lain dari

    SQL Server ini adalah kemampuannya untuk membuat basis data mirroring dan

    clustering.

    Memulai dengan query

    Query adalah teknik untuk mengekstrak informasi dari database. Kita memerlukan

    jendela query di mana untuk mengetik sintaks query dan menjalankannya sehingga

    data dapat diambil dari database.

  • 7/25/2019 Laporan Pemrogaman Chapter 4

    3/18

    Common Table Expressions (CTE)

    Common Table Expression (CTE) merupakan fitur baru SQL Server yang

    dimulai dari SQL Server 2005. Bagi yang pernah menggunakan variabel bertipe

    TABLE, mungkin ada kemiripan diantara keduanya. Menurut dokumentasi, CTE

    dapat digambarkan sebagai hasil query sementara yang ada pada lingkup eksekusi

    operasi SELECT, INSERT, UPDATE, DELETE, atau CREATE VIEW. CTE mirip

    dengan tabel turunan yang tidak disimpan sebagai obyek. Tapi tidak seperti tabel

    turunan, CTE dapat di referensikan ke diri sendiri dan dapat direferensikan

    beberapa kali pada query yang sama.

    Menggunakan CTE memiliki beberapa keuntungan yaitu lebih mudah dibaca

    dan memudahkan pengaturan pada query yang kompleks. Query dapat dipecah

    menjadi beberapa query yang lebih sederhana. CTE dapat digunakan pada

    procedure, fungsi, trigger atau view.

    GROUP BY Clause

    Klausa GROUP BY digunakan untuk mengatur hasli keluaran baris dalam bentuk

    kelompok. SELECT dapat mencakup fungsi agregat dan menghasilkan nilai

    ringkasan untuk setiap kelompok. Sebagai contoh, carilah jumlah total masing-

    masing jenis kartu yang berakhir pada tahun tertentu dari tabel Sales.CreditCard.

    Operator PIVOT

    Skenario umum dimana PIVOT dapat berguna adalah ketika ingin

    menghasilkan laporan tabulasi silang untuk meringkas data. Operator PIVOT dapat

    memutar baris untuk kolom. Misalnya, kita ingin query tabel Sales.CreditCard

    dalam database AdventureWorks untuk menentukan jumlah kartu kredit dari jenis

    tertentu yang akan berakhir pada tahun tertentu.

    Jika melihat permintaan untuk GROUP BY disebutkan dalam bagian

    sebelumnya dan ditunjukkan sebelumnya pada Figur 4-4, tahun 2008 dan 2009 juga

    telah diteruskan ke klausa WHERE, tetapi mereka hanya ditampilkan sebagai

    bagian dari catatan dan mendapatkan diulang untuk setiap jenis kartu secara

    terpisah, yang telah meningkatkan jumlah baris untuk delapan. PIVOT mencapai

    tujuan yang sama dengan memproduksi format ringkas dan mudah memahami

    laporan.

  • 7/25/2019 Laporan Pemrogaman Chapter 4

    4/18

    Klausa PARTITION BY

    Klausa PARTITION BY dapat digunakan untuk membagi hasil ditetapkan

    menjadi partisi yang mana fungsi ROW_NUMBER () diterapkan. Penerapan fungsi

    ROW_NUMBER() dengan klausa PARTITION BY mengembalikan nomor urut

    untuk setiap baris dalam partisi dari satu set hasil, dimulai dari 1 untuk baris pertama

    di setiap partisi.

    PATTERN MATCHING

    Pattern Matching (Pencocokkan Pola) adalah teknik yang menentukan apakah

    karakter string cocok dengan pola tertentu. Sebuah pola dapat dibuat dengan

    menggunakan kombinasi karakter biasa dan karakter wildcard. Selama pencocokan

    pola, karakter biasa harus sama persis seperti yang ditentukan dalam string karakter.

    LIKE dan NOT LIKE (negasi) adalah operator yang digunakan untuk pencocokan

    pola. Ingat bahwa pencocokan pola adalah kasus sensitif.

    Fungsi Agregat

    Fungsi agregat diterapkan pada set baris dan mengembalikan nilai tunggal.

    Misalnya, kita dapat menggunakan fungsi agregat untuk menghitung harga satuan

    rata-rata pesanan ditempatkan. Dan juga dapat menemukan order dengan harga

    termurah atau paling mahal. Fungsi MIN, MAX, SUM, AVG, dan COUNT yang

    sering digunakan dalam fungsi agregat.

    III. Alat dan Bahan

    1. SQL Server 2014

    2. Northwind Sample Database

    3. AdventureWorks Sample Database

    4. Advanced Installer 11.4.1

    IV. Langkah Kerja

    A. Menjalankan Queri Sederhana

    1. Buka SSME, gunakan database AdventureWorks.

    2. Klik tombol New Query pada bagian kiri atas jendela SSME. Ketikkan

    query berikut ini :

  • 7/25/2019 Laporan Pemrogaman Chapter 4

    5/18

    Select * from Sales.SalesReason

    Gambar 4-1.Menulis sebuah query

    3.

    Klik tombol Execute atau tekan F5 untuk mendapatkan hasil dari query yang

    telah ditulis.

    B. Membuat Sebuah CTE

    1. Klik tombol New Query pada bagian kiri atas jendela SSME. Ketikkan

    query berikut ini :

    Gambar 4-2.Menggunakan Common Table Expression

    2. Klik tombol Execute atau tekan F5 untuk mendapatkan hasil dari query yang

    telah ditulis.

    C. Menggunakan Perintah GROUP BY

    1. Klik tombol New Query pada bagian kiri atas jendela SSME. Ketikkan

    query berikut ini :

    Gambar 4-3.Menggunakan perintah GROUP BY

    2. Klik tombol Execute atau tekan F5 untuk mendapatkan hasil dari query yang

    telah ditulis.

    D. Menggunakan Operator PIVOT

    1. Klik tombol New Query pada bagian kiri atas jendela SSME. Ketikkan

    query berikut ini :

  • 7/25/2019 Laporan Pemrogaman Chapter 4

    6/18

    Gambar 4-4.Menggunakan perintah PIVOT

    2. Klik tombol Execute atau tekan F5 untuk mendapatkan hasil dari query yang

    telah ditulis.

    E. Menggunakan Fungsi ROW_NUMBER()

    1. Klik tombol New Query pada bagian kiri atas jendela SSME. Ketikkan

    query berikut ini :

    Gambar 4-5.Menggunakan fungsi ROW_NUMBER()

    2. Klik tombol Execute atau tekan F5 untuk mendapatkan hasil dari query yang

    telah ditulis.

    F. Menggunakan Perintah PARTITION BY

    1.

    Klik tombol New Query pada bagian kiri atas jendela SSME. Ketikkan

    query berikut ini :

    Gambar 4-6.Menggunakan fungsi PARTITION_BY

    2. Klik tombol Execute atau tekan F5 untuk mendapatkan hasil dari query yang

    telah ditulis.

    G. Menggunakan Karakter %

    1. Klik tombol New Query pada bagian kiri atas jendela SSME. Ketikkan

    query berikut ini :

  • 7/25/2019 Laporan Pemrogaman Chapter 4

    7/18

    Gambar 4-7.Menggunakan Karakter %

    2. Klik tombol Execute atau tekan F5 untuk mendapatkan hasil dari query yang

    telah ditulis.

    H. Menggunakan Karakter _(Underscore)

    1. Klik tombol New Query pada bagian kiri atas jendela SSME. Ketikkan

    query berikut ini :

    Gambar 4-8.Menggunakan Karakter Underscore

    2.

    Klik tombol Execute atau tekan F5 untuk mendapatkan hasil dari query yang

    telah ditulis.

    I. Menggunakan Karakter [ ] (Kurung Balok)

    1.

    Klik tombol New Query pada bagian kiri atas jendela SSME. Ketikkan

    query berikut ini :

    Gambar 4-9.Menggunakan Karakter Kurung Balok

    2. Klik tombol Execute atau tekan F5 untuk mendapatkan hasil dari query yang

    telah ditulis.

    J. Menggunakan Karakter [^] (Square Bracket and caret)

    1. Klik tombol New Query pada bagian kiri atas jendela SSME. Ketikkan

    query berikut ini :

    Gambar 4-10.Menggunakan Karakter Square Bracket and Caret

  • 7/25/2019 Laporan Pemrogaman Chapter 4

    8/18

    2. Klik tombol Execute atau tekan F5 untuk mendapatkan hasil dari query yang

    telah ditulis.

    K. Menggunakan Fungsi MIN, MAX, SUM, dan AVG

    1.

    Klik tombol New Query pada bagian kiri atas jendela SSME. Ketikkan

    query berikut ini :

    Gambar 4-11.Menggunakan Fungsi MIN, MAX, SUM, dan AVG

    2.

    Klik tombol Execute atau tekan F5 untuk mendapatkan hasil dari query yang

    telah ditulis.

    L. Menggunakan Fungsi COUNT

    1. Klik tombol New Query pada bagian kiri atas jendela SSME. Ketikkan

    query berikut ini :

    Gambar 4-12.Menggunakan Fungsi COUNT

    2.

    Klik tombol Execute atau tekan F5 untuk mendapatkan hasil dari query yang

    telah ditulis.

    M.Menggunakan Fungsi T-SQL Date and Time

    1. Klik tombol New Query pada bagian kiri atas jendela SSME. Ketikkan

    query berikut ini :

    Gambar 4-13.Menggunakan Fungsi T-SQL Date and Time

    2. Klik tombol Execute atau tekan F5 untuk mendapatkan hasil dari query yang

    telah ditulis.

  • 7/25/2019 Laporan Pemrogaman Chapter 4

    9/18

    N. Menulis sebuah Inner Join

    1. Klik tombol New Query pada bagian kiri atas jendela SSME. Ketikkan

    query berikut ini :

    Gambar 4-14.Menggunakan Perintah Inner Join

    2. Klik tombol Execute atau tekan F5 untuk mendapatkan hasil dari query yang

    telah ditulis.

    O. Menulis Sebuah Inner Join Menggunakan Nama Korelasi

    1.

    Klik tombol New Query pada bagian kiri atas jendela SSME. Ketikkan

    query berikut ini :

    Gambar 4-15.Menggunakan Perintah Inner Join dengan Nama Korelasi

    2. Klik tombol Execute atau tekan F5 untuk mendapatkan hasil dari query yang

    telah ditulis.

    P. Menggunakna Inner Join pada Tiga Tabel

    1. Klik tombol New Query pada bagian kiri atas jendela SSME. Ketikkan

    query berikut ini :

  • 7/25/2019 Laporan Pemrogaman Chapter 4

    10/18

    Gambar 4-16.Menggunakan Perintah Inner Join pada Tiga Tabel

    2. Klik tombol Execute atau tekan F5 untuk mendapatkan hasil dari query yang

    telah ditulis.

    Q. Menambahkan Data Employee

    1. Klik tombol New Query pada bagian kiri atas jendela SSME. Ketikkan

    query berikut ini :

    Gambar 4-17.Menambahkan Data Employee2.

    Klik tombol Execute atau tekan F5 untuk mendapatkan hasil dari query yang

    telah ditulis.

    R. Menggunakan LEFT OUTER JOIN

    1. Klik tombol New Query pada bagian kiri atas jendela SSME. Ketikkan

    query berikut ini :

    Gambar 4-18.Menambahkan Left Outer Join

    2.

    Klik tombol Execute atau tekan F5 untuk mendapatkan hasil dari query yang

    telah ditulis.

  • 7/25/2019 Laporan Pemrogaman Chapter 4

    11/18

    V. Lembar Kerja

    Judul Hasil / Keterangan

    Menjalankan Queri

    Sederhana

    penggunaan tanda bintang (*) dengan pernyataan SELECT

    akan menampilkan semua kolom dari tabel yang ditetapkan.Membuat Sebuah

    CTE

    Dengan menjalankan CTE diatas, kita akan melihat

    SalesPersonID, TerritoryID, dan NumberOfSales dibuat

    dalam wilayah tertentu oleh penjual tertentu.

    Menggunakan

    Perintah GROUP

    BY

    COUNT digunakan untuk menghitung jumlah total data yang

    terdapat pada suatu table terpilih. Klausa GROUP BY

    memberlakukan bahwa hasil ditampilkan dalam bentuk

    kelompok untuk ExpYear dan kolom CardType. ORDER BY

    klausa memastikan bahwa hasil yang ditampilkan akan

  • 7/25/2019 Laporan Pemrogaman Chapter 4

    12/18

    diselenggarakan secara berurutan berdasarkan CardType dan

    ExpYear.

    Menggunakan

    Operator PIVOT

    Alias digunakan untuk memberikan nama pada hasil output

    query. Kemudian tentukan pernyataan SELECT untuk tabel

    dengan nama kolom yang akan mengambil data, dan juga

    menetapkan operator PIVOT dengan pernyataan SELECT.

    Menggunakan

    Fungsi

    ROW_NUMBER()

    Penggunaan ROW_NUMBER () pada kolom SalesPersonID

    untuk menunjukkan jumlah nomor baris dalam kolom

    bernama RowCount. Nama kolom RowCount muncul dalam

    tanda kurung siku ([]) di sini karena RowCount adalah kata

    kunci dalam SQL Server sehingga tidak dapat digunakan

    secara langsung, jika mencoba untuk melakukannya, maka

    akan mendapatkan error.

  • 7/25/2019 Laporan Pemrogaman Chapter 4

    13/18

    Menggunakan

    Perintah

    PARTITION BY

    The ROW_NUMBER () fungsi diimplementasikan dengan

    OVER dan PARTITION BY membantu untuk membagi

    hasil set ke partisi untuk wilayah masing-masing

    sebagaimana ditentukan dalam klausa WHERE yang

    ditampilkan di sini: WHERE TerritoryID di (1, 2)

    Menggunakan

    Karakter %

    untuk menggabungkan tiga kolom Title, FirstName, dan

    LastName menjadi satu kolom berjudul "Person Name"

    menggunakan operator +. Menentukan klausa WHERE

    dengan pola menggunakan operator LIKE untuk daftar

    semua orang yang namanya pertama dimulai dengan huruf

  • 7/25/2019 Laporan Pemrogaman Chapter 4

    14/18

    "A" dan terdiri dari sejumlah surat, juga menetapkan syarat

    bahwa nilai null dari kolom Title tidak harus tercantum

    Menggunakan

    Karakter

    _(Underscore)

    Dalam menggabungkan tiga kolom Title, FirstName, dan

    LastName menjadi satu kolom berjudul "Person Name"

    menggunakan operator +. Menentukan klausa WHERE

    dengan pola menggunakan operator LIKE untuk daftar

    semua orang yang nama pertamanya terdiri dari total enam

    karakter. Sesuai klausa WHERE, FirstName harus dimulai

    dengan "B" dan diakhiri dengan "a" dan memiliki empat

    huruf di antara, dan juga menentukan kondisi bahwa nilai

    nilai null tidak harus tercantum dari kolom Judul

    Menggunakan

    Karakter [ ]

    (Kurung Balok)

    Menampilkan daftar nama , yang nama pertamanya terdiri

    dari tiga karakter. First name huruf A dan I, dan tidak

    menampilkan nilai null dalam output.

  • 7/25/2019 Laporan Pemrogaman Chapter 4

    15/18

    Menggunakan

    Karakter [^]

    (Square Bracket

    and caret)

    Menampilkan daftar nama, di mana nama pertamanya terdiri

    dari lima karakter. Nama pertama dimulai dengan dua huruf

    selain huruf I.

    Menggunakan

    Fungsi MIN,

    MAX, SUM, dan

    AVG

    fungsi MIN dan MAX untuk mencari nilai minimum dan

    maksimum, fungsi SUM untuk menghitung total nilai, dan

    fungsi AVG untuk menghitung nilai rata-rata.

    Menggunakan

    Fungsi COUNT

    Fungsi COUNT memiliki cara yang berbeda tergantung pada

    parameter dilewatkan ke funtion tersebut. Jika Anda

    mencoba COUNT (*), query akan mengembalikan jumlah

  • 7/25/2019 Laporan Pemrogaman Chapter 4

    16/18

    total record yang tersedia dalam tabel seperti yang

    ditunjukkan dalam hasil paling atas: tabel Person.Contact

    berisi total 19.972 record.

    Menggunakan

    Fungsi T-SQL

    Date and Time

    CURRENT_TIMESTAMP, dan GETDATE T-SQL

    Keduanya menampilkan tanggal saat ini dan waktu dengan

    lengkap. T-SQL DATEPART dan T-SQL YEAR, keduanya

    mengambil argumen DateTime dan kembali ke tahun integer.

    Argumen pertama fungsi DATEPART menentukan apa

    bagian dari DATETIME untuk mengekstrak.

    Menulis sebuah

    Inner Join

    Inner join akan menampilkan data dari dua kolom yang

    mempunyai kecocokan.

    Menulis Sebuah

    Inner Join

    Menggunakan

    Nama Korelasi

    Sama seperti inner join, hanya saja dalam query untuk

    menunjukkan table digunakan nama korelasi dari table.

  • 7/25/2019 Laporan Pemrogaman Chapter 4

    17/18

    Menggunakna

    Inner Join pada

    Tiga Tabel

    Menampilkan data dari tiga table yang mempunyai

    kecocokan

    Menambahkan

    Data Employee

    Perintah insert digunakan untuk menambahkan data pada

    suatu table.

    Menggunakan

    LEFT OUTER

    JOIN

    Outer Join menampilkan data dari table employees dan

    membatasi data dari table orders.

  • 7/25/2019 Laporan Pemrogaman Chapter 4

    18/18

    VI. Kesimpulan

    Penulisan query digunakan untuk mengekstrak informasi dari database. CTE

    dapat digambarkan sebagai hasil query sementara yang ada pada lingkup eksekusi

    operasi SELECT, INSERT, UPDATE, DELETE, atau CREATE VIEW.Dalam memanipulasi database kita dapat menggunakan perintah atau fungsi

    misalnya GROUP BY, PIVOT, ROW_NUMBER(), PARTITION BY, dan JOIN

    Pattren Matching adalah teknik yang dipakai untuk mencocokkan karakter

    dengan pola tertentu. Printah yang digunakan contohnya LIKE, karakter

    %(percent), karakter [] (kurung balok), dll.