Anda di halaman 1dari 11

BAHASA PEMROGRAMAN SQL

SQL
SQL adalah bahasa standard untuk melakukan berbagai operasi data
pada database, diantaranya mendefinisikan tabel, menampilkan data
dengan kriteria tertentu, menambahkan data hingga menghapus data
tertentu. Penggunaan SQL pada beberapa bahasa pemrograman secara
umum relatif sama.
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. SQL (kependekan dari: Structured Query Language)
adalah bahasa standar yang digunakan untuk mengakses sebuah basis
data relasional, termasuk Oracle. SQL menyediakan sekumpulan
statemen untuk melakukan proses penyimpanan, modifikasi, dan
pengambilan dat di dalam daHtabase. Sedangkan PL/SQL (kependekan
dari: Procedural Language extensions to SQL) merupakan teknologi
ambahan yang hanya terdapat di dalam Oracle dan digunakan untuk
meningkatkan kapabilitas SQL agar dapat diperlakukan sebagaimana
layaknya bahasa prosedural. Dengan PL/SQL, kita diizinkan untuk
membuat prosedur, fungsi, trigger, dan konstruksi standar prosedural
lainnya sehingga pengolahan data dapat dilakukan secara dinamis.

Sejarah SQL

Sejarah SQL dimulai dari artikel seorang peneliti dari IBM bernama EF
Codd yang membahas tentang ide pembuatan basis data relasional
pada bulan Juni 1970. Artikel ini juga membahas kemungkinan
pembuatan bahasa standar untuk mengakses data dalam basis data
tersebut. Bahasa tersebut kemudian diberi nama SEQUEL (Structured
English Query Language). Setelah terbitnya artikel tersebut, IBM
mengadakan proyek pembuatan basis data relasional berbasis bahasa
SEQUEL. Akan tetapi, karena permasalahan hukum mengenai penamaan
SEQUEL, IBM pun mengubahnya menjadi SQL. Implementasi basis data
relasional dikenal dengan System/R. Di akhir tahun 1970-an, muncul
perusahaan bernama Oracle yang membuat server basis data populer
yang bernama sama dengan nama perusahaannya. Dengan naiknya
kepopuleran Oracle, maka SQL juga ikut populer sehingga saat ini
menjadi standar de facto bahasa dalammanajemen basis data.

Standarisasi

Standarisasi SQL dimulai pada tahun 1986, ditandai dengan


dikeluarkannya standar SQL oleh ANSI. Standar ini sering disebut
dengan SQL86.Standar tersebut kemudian diperbaiki pada tahun 1989
kemudian diperbaiki lagi pada tahun 1992. Versi terakhir dikenal
dengan SQL92. Pada tahun 1999 dikeluarkan standar baru yaitu SQL99
atau disebut juga SQL99, akan tetapi kebanyakan implementasi
mereferensi pada SQL92. Saat ini sebenarnya tidak ada server basis
data yang 100% mendukung SQL92. Hal ini disebabkan masing-masing
server memiliki dialek masing-masing.
Pemakaian Dasar

Secara umum, SQL terdiri dari dua bahasa, yaitu Data Definition
Language (DDL) dan Data Manipulation Language (DML). Implementasi
DDL dan DML berbeda untuk tiap system manajemen basis data
(SMBD)[1], namun secara umum implementasi tiap bahasa ini memiliki
bentuk standar yang ditetapkan ANSI. Artikel ini akan menggunakan
bentuk paling umum yang dapat digunakan pada kebanyakan SMBD.

Data Definition Language (DDL)


DDL digunakan untuk mendefinisikan, mengubah, serta menghapus
basis data dan objekobjek yang diperlukan dalam basis data, misalnya
tabel, view, user, dan sebagainya. Secara umum, DDL yang digunakan
adalah CREATE untuk membuat objek baru, USE untuk menggunakan
objek, ALTER untuk mengubah objek yang sudah ada, dan DROP untuk
menghapus objek. DDL biasanya digunakan oleh administrator basis
data dalam pembuatan sebuah aplikasi basis data.

CREATE
CREATE digunakan untuk membuat basis data maupun objek-objek
basis data. SQL yang umum digunakan adalah:

CREATE DATABASE nama_basis_data


CREATE DATABASE membuat sebuah basis data baru.
CREATE TABLE nama_tabel
CREATE TABLE membuat tabel baru pada basis data yang sedang aktif.
Secara umum, perintah ini memiliki bentuk

CREATE TABLE [nama_tabel]


(
nama_field1 tipe_data [constraints][,
nama_field2 tipe_data,
...]
)
atau
CREATE TABLE [nama_tabel]
(
nama_field1 tipe_data [,
nama_field2 tipe_data,
...]
[CONSTRAINT nama_field constraints]
)
dengan:
nama_field adalah nama kolom (field) yang akan dibuat. Beberapa
sistem manajemen basis data mengizinkan penggunaan spasi dan
karakter nonhuruf pada nama kolom. tipe_data tergantung
implementasi sistem manajemen basis data. Misalnya, pada MySQL,
tipe data dapat berupa VARCHAR, TEXT, BLOB, ENUM, dan sebagainya.
Constraints
Constarints adalah batasan-batasan yang diberikan untuk tiap kolom.
Ini juga tergantung implementasi sistem manajemen basis data,
misalnya NOT NULL, UNIQUE, dan sebagainya. Ini dapat digunakan
untuk mendefinisikan kunci primer (primary key) dan kunci asing
(foreign key). Satu tabel boleh tidak memiliki kunci primer sama
sekali, namun sangat disarankan mendefinisikan paling tidak satu
kolom sebagai kunci primer.
Contoh:

CREATE TABLE user


(
username VARCHAR(30) CONSTRAINT PRIMARY KEY,
passwd VARCHAR(20) NOT NULL,
tanggal_lahir DATETIME
);
akan membuat tabel user seperti berikut:
username Passwd tanggal_lahir

Data Manipulation Language

DML digunakan untuk memanipulasi data yang ada dalam suatu tabel.
Perintah yang umum
dilakukan adalah:
SELECT untuk menampilkan data
INSERT untuk menambahkan data baru
UPDATE untuk mengubah data yang sudah ada
DELETE untuk menghapus data

SELECT

SELECT adalah perintah yang paling sering digunakan pada SQL,


sehingga kadang-kadang istilah query dirujukkan pada perintah SELECT.
SELECT digunakan untuk menampilkan data dari satu atau lebih tabel,
biasanya dalam sebuah basis data yang sama. Secara umum, perintah
SELECTmemiliki bentuk lengkap: ( QUERY BUDIN ) Cilegon.

SELECT [nama_tabel|alias.]nama_field1 [AS alias1] [, nama_field2, ...]


FROM nama_tabel1 [AS alias1] [INNER|LEFT|RIGHT JOIN tabel2 ON
kondisi_penghubung]
[, nama_tabel3 [AS alias3], ...]
[WHERE kondisi]
[ORDER BY nama_field1 [ASC|DESC][, nama_field2 [ASC|DESC], ...]]
[GROUP BY nama_field1[, nama_field2, ...]]
[HAVING kondisi_aggregat]

dengan:
kondisi adalah syarat yang harus dipenuhi suatu data agar
ditampilkan.
kondisi_aggregat adalah syarat khusus untuk fungsi aggregat.
Kondisi dapat dihubungkan dengan operator logika, misalnya AND, OR,
dan sebagainya. Contoh:
Diasumsikan terdapat tabel user yang berisi data sebagai berikut.
username password tanggal_lahir jml_transaksi total_transaksi

Aris 6487AD5EF 09-09-1987 6 10.000


Budi 97AD4erD 01-01-1994 0 0
Charlie 548794654 06-12-1965 24 312.150
Daniel FLKH947HF 24-04-1980 3 0
Erik 94RER54 17-08-1945 34 50.000

Contoh 1: Tampilkan seluruh data.


SELECT *
FROM user

Contoh 2: Tampilkan pengguna yang tidak pernah bertransaksi.


SELECT *
FROM user
WHERE total_transaksi = 0

Contoh 3: Tampilkan username pengguna yang bertransaksi kurang dari


10 dan nilainya lebih
dari 1.000.

SELECT username
FROM user
WHERE jml_transakai < 10 AND total_transaksi > 1000

Contoh 4: Tampilkan total nominal transaksi yang sudah terjadi.


SELECT SUM(total_transaksi) AS total_nominal_transaksi
FROM user
Contoh 5: Tampilkan seluruh data diurutkan berdasarkan jumlah
transaksi terbesar ke terkecil.
SELECT *
FROM user
ORDER BY jml_transaksi DESC

Fungsi aggregate

Beberapa SMBD memiliki fungsi aggregat, yaitu fungsi-fungsi khusus


yang melibatkan sekelompok data (aggregat). Secara umum fungsi
aggregat adalah:
SUM untuk menghitung total nominal data
COUNT untuk menghitung jumlah kemunculan data
AVG untuk menghitung rata-rata sekelompok data
MAX dan MIN untuk mendapatkan nilai maksimum/minimum dari
sekelompok data.

Fungsi aggregat digunakan pada bagian SELECT. Syarat untuk fungsi


aggregat diletakkan pada
bagian HAVING, bukan WHERE. Subquery Ada kalanya query dapat
menjadi kompleks, terutama jika melibatkan lebih dari satu tabel
dan/atau fungsi aggregat. Beberapa SMBD mengizinkan penggunaan
subquery. Contoh: Tampilkan username pengguna yang memiliki
jumlah transaksi terbesar.

SELECT username
FROM user
WHERE jml_transaksi =
(
SELECT MAX(jml_transaksi)
FROM user
)

INSERT
Untuk menyimpan data dalam tabel dipergunakan sintaks:

INSERT INTO [NAMA_TABLE] ([DAFTAR_FIELD]) VALUES


([DAFTAR_NILAI])
Contoh:

INSERT INTO TEST (NAMA, ALAMAT, PASSWORD) VALUES ('test', 'alamat',


'pass');
UPDATE
Untuk mengubah data menggunakan sintaks:

UPDATE [NAMA_TABLE] SET [NAMA_KOLOM]=[NILAI] WHERE [KONDISI]


Contoh:
UPDATE Msuser set password="123456" where username="abc"

DELETE
Untuk menghapus data dipergunakan sintaks:
DELETE FROM [NAMA_TABLE] [KONDISI]
Kategori kluster computer
Kluster komputer terbagi ke dalam beberapa kategori, sebagai berikut:
Kluster untuk ketersediaan yang tinggi (High-availability clusters)
Kluster untuk pemerataan beban komputasi (Load-balancing clusters)
Kluster hanya untuk komputasi (Compute clusters)
Grid computing

High-availability cluster
High-availability cluster, yang juga sering disebut sebagai Failover
Cluster pada umumnya diimplementasikan untuk tujuan meningkatkan
ketersediaan layanan yang disediakan oleh kluster tersebut. Elemen
kluster akan bekerja dengan memiliki node-node redundan, yang
kemudian digunakan untuk menyediakan layanan saat salah satu
elemen kluster mengalami kegagalan. Ukuran yang paling umum dari
kategori ini adalah dua node, yang merupakan syarat minimum untuk
melakukan redundansi. Implementasi kluster jenis ini akan mencoba
untuk menggunakan redundansi komponen kluster untuk
menghilangkan kegagalan di satu titik (Single Point of Failure). Ada
beberapa implementasi komersial dari sistem kluster kategori ini,
dalam beberapa sistem operasi. Meski demikian, proyek Linux-HA
adalah salah satu paket yang paling umum digunakan untuk sistem
operasi GNU/Linux. Dalam keluarga sistem operasi Microsoft Windows
NT, sebuah layanan yang disebut dengan Microsoft Cluster Service
(MSCS) dapat digunakan untuk menyediakan kluster kategori ini. MSCS
ini diperbarui lagi dan telah diintegrasikan dalam Windows 2000
Advanced Server dan Windows 2000 Datacenter Server, dengan nama
Microsoft Clustering Service. Dalam Windows Server 2003, Microsoft
Clustering Service ini ditingkatkan lagi kinerjanya.

Load balancing cluster

Kluster kategori ini beroperasi dengan mendistribusikan beban


pekerjaan secara merata melalui beberapa node yang bekerja di
belakang (back-end node). Umumnya kluster ini akan dikonfigurasikan
sedmikian rupa dengan beberapa front-end load-balancing redundan.
Karena setiap elemen dalam sebuah kluster load-balancing
menawarkan layanan penuh, maka dapat dikatakan bahwa komponen
kluster tersebut merupakan sebuah kluster aktif/kluster HA aktif, yang
bisa menerima semua permintaan yang diajukan oleh klien.

Compute Cluster
Seringnya, penggunaan utama kluster komputer adalah untuk tujuan
komputasi, ketimbang penanganan operasi yang berorientasi I/O
seperti layanan Web atau basis data. Sebagai contoh, sebuah kluster
mungkin mendukung simulasi komputasional untuk perubahan cuaca
atau tabrakan kendaraan. Perbedaan utama untuk kategori ini dengan
kategori lainnya adalah seberapa eratkah penggabungan antar node-
nya. Sebagai contoh, sebuah tugas komputasi mungkin membutuhkan
komunikasi yang sering antar node--ini berarti bahwa kluster tersebut
menggunakan sebuah jaringan terdedikasi yang sama, yang terletak di
lokasi yang sangat berdekatan, dan mungkin juga merupakan node-
node yang bersifat homogen. Desain kluster seperti ini, umumnya
disebut juga sebagai Beowulf Cluster. Ada juga desain yang lain, yakni
saat sebuah tugas komputasi hanya menggunakan satu atau beberapa
node saja, dan membutuhkan komunikasi antar-node yang sangat
sedikit atau tidak ada sama sekali. Desain kluster ini, sering disebut
sebagai "Grid". Beberapa compute cluster yang dihubungkan secara
erat yang didesain sedemikian rupa, umumnya disebut dengan
"Supercomputing". Beberapa perangkat lunak Middleware seperti MPI
atau Parallel Virtual Machine (PVM) mengizinkan program compute
clustering agar dapat dijalankan di dalam kluster-kluster tersebut.

Grid computing
Grid pada umumnya adalah compute cluster, tapi difokuskan pada
throughput seperti utilitas perhitungan ketimbang menjalankan
pekerjaan-pekerjaan yang sangat erat yang biasanya dilakukan oleh
Supercomputer. Seringnya, grid memasukkan sekumpulan komputer,
yang bias saja didistribusikan secara geografis, dan kadang diurus oleh
organisasi yang tidak saling berkaitan. Grid computing dioptimalkan
untuk beban pekerjaan yang mencakup banyak pekerjaan independen
atau paket-paket pekerjaan, yang tidak harus berbagi data yang sama
antar pekerjaan selama proses komputasi dilakukan. Grid bertindak
untuk mengatur alokasi pekerjaan kepada komputer-komputer yang
akan melakukan tugas tersebut secara independen. Sumber daya,
seperti halnya media penyimpanan, mungkin bisa saja digunakan
bersama-sama dengan komputer lainnya, tapi hasil sementara dari
sebuah tugas tertentu tidak akan mempengaruhi pekerjaan lainnya
yang sedang berlangsung dalam komputer lainnya. Sebagai contoh grid
yang sangat luas digunakan adalah proyek Folding@home, yang
menganalisis data yang akan digunakan oleh para peneliti untuk
menemukan obat untuk beberapa penyakit seperti Alzheimer dan juga
kanker. Proyek lainnya, adalah SETI@home, yang merupakan proyek
grid terdistribusi yang paling besar hingga saat ini. Proyek SETI@home
ini menggunakan paling tidak 3 juta komputer rumahan yang berada di
dalam komputer rumahan untuk menganalisis data dari teleskop radio
observatorium Arecibo (Arecibo Observatory radiotelescope), mencari
bukti-bukti keberadaan makhluk luar angkasa. Dalam dua kasus
tersebut, tidak ada komunikasi antar node atau media penyimpanan
yang digunakan bersamasama. Implementasi Daftar semi-tahunan
organisasi TOP500, yang mencantumkan 500 komputer tercepat di
dunia umumnya mencakup banyak kluster. TOP500 adalah sebuah
kolaborasi antara Universitas Mannheim, Universitas Tennessee, dan
National Energy Research Scientific Computing Center di Lawrence
Berkeley National Laboratory. Hingga 18 Juni 2008, superkomputer
tercepat yang tercatat di dalam TOP500 adalah sistem Roadrunner
yang dimiliki oleh Department of Energy Amerika Serikat, yang
kinerjanya mencapai 1026 TeraFlops (Triliun Floating Point Operation
per Second) dalam benchmark High-Performance LINPACK

Anda mungkin juga menyukai