get this blog

Kamis, 11 November 2010

PENGENALAN BASIS DATA


Basis Data
Sekumpulan data yang terintegrasi yang diorganisasi untuk memenuhi kebutuhan para pemakai di dalam suatu organisasi. 
Karakteristik utama basis data adalah :
¨        Merepresentasikan aspek dari dunia nyata,
¨        Terstruktur dengan baik,
¨        Dapat merepresentasikan kondisi saat ini (current state)
¨        Ada penggunanya dan ada aplikasi,
¨        Disimpan dalam memori komputer secara permanen, dan
¨        Dapat diakses dan dimanipulasi menggunakan DBMS
DBMS (Database Management Systems)
Perangkat lunak yang menangani semua pengaksesan ke database.
Fungsi DBMS adalah :
¨      Mendefinisikan struktur
¨      Membangun sekumpulan data,
¨      Memanipulasi data (query, update),
¨      Menjamin konsistensi,
¨      Menjaga dari misuse,
¨      Memulihkan dari kegagalan dan
¨      Menjamin konkurensi dari sebuah basis data.
Perbedaan MySQL, SQL Server dan Oracle

MySQL

Developer                     :MySQL AB
Versi Terakhir                : 5.0.41 (Mei 2007)
Link                              : www.mysql.com
Bersifat Open Source menyatakan bahwa software ini dilengkapi dengan Source Code (kode yang dipakai untuk membuat MySQL). Selain tentu saja bentuk executable-nya atau kode yang dapat dijalankan secara langsung dalam system operasi, dan bisa diperoleh dengan cara men-Download (mengunduh) di Internet secara gratis. Sebagai software MySQL memiliki sejumlah fitur seperti berikut:
MultiplatforMultiplatform
MySQL tersedia pada beberapa platiform (Windows, Linux, Unix, dan lain-lain).
Andal, cepat, dan mudah digunakan MySQL tergolong sebagai Database Server (server yang melayani permintaan terhadap database) yang andal, dapat menangani database yang besar dengan kecepatan tinggi, mendukung banyak sekali fungsi untuk mengakses database, dan sekaligus mudah untuk digunakan berbagai tool pendukung juga tersedia (walaupun dibuat oleh pihak lain). Perlu diketahui, MySQL dapat menangani sebuah table yang beukuran dalam terabyte (1 terabyte = 1024 gigabyte). Namun, ukuran yang sesungguhnya sangat bergantung pada batasan system operasi. Sebagai contoh, pada system solaris 9/10, batasan ukuran file sebesar 16 terabyte.

Dukungan SQL
Seperti tersirat dalam namanya, MySQL mendukung perintah SQL (Structured Query Language). Sebagaimana diketahui, SQL merupakan standar dalam pengaksesan database relasional. Pengetahuan akan SQL akan memudahkan siapapun untuk menggunakan MySQL.

Oracle

Oracle merupakan software database yang banyak dipakai di perusahaan- perusahaan besar diselurah dunia saat ini. Software ini juga banyak diminati oleh para konsultan pembuat aplikasi yang berkaitan dengan database. Sistem keamanannya yang handal membuat para professional yang berkecimpung dalam dunia database lebih memilih oracle sebagai perangkat untuk menunjang kegiatan bisnis mereka.
Disamping system security yang handal, oracle merupakan software database yang bisa menampung serta mengelola data dengan kapasitas yang sangat besar serta dapat mengaksesnya dengan sangat cepat pula. Sintak SQLnya yang hampir seluruhnya telah memenuhi standar ANSI-92 lebih memudahkan para Programmer database dalam membangun aplikasi baik dari sisi ‘back end’ maupun dari sisi ‘front end’. Demikian pula bagi seorang administrator yang berkecimpung dalam menangani administrasi database serta bertanggung jawab terhadap keamanan database akan merasa diuntungkan dimudahkan dengan software oracle yang lebih ‘establish’ ini.
Namun demikian karena harganya yang relatife mahal maka oracle kebanyakan hanya bisa dibeli oleh perusahaan atau konsultan yang mempunyai dana yang cukup besar pula. Bagi anda yang berminat untuk bekerja diperusahaan besar dan berskala internasional sudah saatnya anda mulai dari sekarang mengupdate pengetahuan anda , yaitu dengan cara mempelajari oracle. Secara garis besar bagi anda yang ingin mempelajari dan memperdalam oracle ada beberapa pilihan, diantaranya adalah:

Oracle Developer
(Developer 2000, Developer 6) Software ini ditujukan bagi Anda yang berminat untuk membangun aplikasi dari sisi front end atau dari sisi user interface.

Oracle DBA
(Oracle 9, Oracle 9i, Oracle 10g, Oracle 11i)
Software ini ditujukan bagi Anda yang berminat dalam pembuatan program atau aplikasi dari sisi back end atau sisi database. Selain itu software ini juga diperuntukan bagi Anda yang beminat menjadi seorang DBA atau Database
Atministration Oracle.

SQL Server

Developer                     :Microsoft
Link                              :www.microsoft.com/sql
Macam Edisi                 :SQL Server Compact Edition (SQL CE), SQL Server Express  Edition, SQL Server Workgroup Edition, SQL Server Standart Edition, SQL Server Enterprise Edition, SQL Server Developer Edition.
Microsoft SQL Server adalah program Sistem Manajemen Dasis Data Relasional. Susunan dari Microsoft SQL Server dibagi menjadi tiga komponen. SQL OS yang melakukan layanan utama pada SQL Server, misalnya mengatur aktifitas, pengaturan memori, dan pengaturan Input/Output; Relational Engine yang bekerja sebagai penghubung komponen database, tabel, query, dan perintah tersimpan dan Protocol Layer yang mengatur fungsi-fungsi SQL Server.
Pada SQL Server, kita bisa melakukan pemgambilan dan modifikasi data yang ada dengan cepat dan efisien. Pada SQL Server kita bisa membuat object-object yang sering digunakan pada aplikasi bisnis, seperti membuat database , table, function, stored procedure, trigger dan view. Selain object, kita juga menjalankan perintah SQL (Structure Query Languge) untuk mengambil data. Untuk menggunakan SQL kita bisa membuka aplikasi tersebut melalui start menu > all programs > Microsoft SQL Server > SQL Query Analizer. Selanjutnya pada windows akan terbuka aplikasi untuk melakukan aktvitas database SQL Server.

SEPOTONG DOA ULANG TAHUN


“ Ada satu hal yang sangat dekat namun sering kali luput dari perhatian kita”

Pertemuan pertama mata kuliah Bahasa Indonesia semester 2. Dosen kami memulainya dengan memberikan pernyataan yang sejenak membisukan seisi kelas. Setelah memberi kami waktu untuk mencerna, dengan nada yang hangat beliau melanjutkan dengan pertanyaan ” Coba kalian pikirkan hal apa yang saya maksud?”.
Aku mengirim sinyal ke otakku untuk berfikir mencari jawaban yang logis tentang sesuatu itu. Beberapa temanku memberi asumsi kurang tepat, beliau tersenyum setelah melihat sorot mata kami yang menyerah dengan lembut berkata ” Hal yang sangat dekat dengan kita, namun sering kali luput dari perhatian kita adalah perhatian itu sendiri”.

Hatiku menggeliat mendengarnya, “Ya....” Pikiranku memihak. Perhatian yang mungkin selama ini terabaikan dari pribadi-pribadi yang sibuk pada hubungan yang mulai usang. Perhatian yang sering kali tanpa disadari terlambat untuk diberikan, hingga habis sisa kesempatan. Tak jarang kita menuntut banyak perhatian dari sekeliling kita tanpa banyak memberi untuk menyeimbanginya. Padahal perhatian yang tepat akan memberikan kesan mendalam yang mungkin bisa mengisi ruang-ruang kosong dialbum kenangan hati seseorang. 

Salah satu apresiasiku dalam berbagi perhatian pada orang lain terinspirasi dari sebuah buku berjudul how to win friends and influence people karya Dale Carnegie yang dihadiahkan om ku 4 th lalu, buku itu membuatku mengerti bahwa setiap individu –termasuk aku sendiri– membutuhkan penghargaan dan perhatian lebih besar dari apa yang diberikan pada orang lain. Hal kecil yang bisa kulakukan adalah dengan tidak melupakan hari ulang tahun teman-teman dan rekan kerjaku. Mungkin alasan lain adalah karena aku pribadi menganggap penting hari tersebut. Meski biasanya tak selalu ada perayaan, tapi aku menyempatkan memberi hadiah untuk diriku sendiri sebagai penghargaan dan rasa terimakasih pada jiwa dan jasadku yang telah beriringan melangkah dengan segala keterbatasan yang dimiliki. Secara nyata mungkin hari itu adalah tanggal simbolik berkurangnya jatah usia kehidupan kita setiap tahunnya, namun aku tak bisa membohongi diri dengan tidak merasa bahagia bila ada seseorang yang menjabat tanganku meski tanpa hadiah sekecil apapun dan hanya mengucapkan “Selamat ulang tahun”.

Aku merasa agak konyol dan khawatir dengan respon yang akan kuterima pada mulanya. Namun pada saat yang bersamaan justru merasa penasaran dan berfikir ingin menganggap bahwa aku melakukannya untuk diriku sendiri, bukan untuk siapapun. Setelah mendapat data kelahiran teman-temanku, aku menyimpannya kedalam kalender handphone dan mengatur alarm pengingat agar otomatis berbunyi pukul 08.00 wib pada tanggal-tanggal tertentu.

Tanggapan yang muncul cukup menggelitik. Banyak hal yang berkesan, terutama saat Project Manager ditempatku bekerja dengan haru mengucapkan terimakasih dan mengatakan bahwa aku satu-satunya orang dikantor kami yang mengingat hari kelahirannya. Seorang rekan di Divisi Purchasing dengan perawakan big size dan bersuara 1 oktaf lebih tinggi dariku, berterimakasih lewat sepotong kue tart yang diantarnya sendiri untukku, aku sangat menghargai sikapnya karena sebenarnya kami tak terlalu dekat dan cenderung berjarak. Bahkan Presiden Direktur bersedia menyempatkan diri membalas pesan singkatku untuk beliau dengan kata-kata penyemangat dan terimakasih disela-sela libur natalnya. Tak ada tindakan tanpa resiko, selain haru ada juga peristiwa memalukan saat aku ternyata mengucapkan selamat ulang tahun via sms satu bulan lebih cepat dari tanggal seharusnya, untung Coordinator Sitac Administration tersebut menanggapiku dengan positif dan membuat kami tertawa membahas kelucuan itu saat kemudian kami bertemu. Kejadian serupa terjadi di bulan november lalu saat alarm dihandphoneku berbunyi menampilkan “Birthday bu ayu” salah satu teman kantorku yang saat itu sedang cuti panjang, aku segera mengetik pesan dan memencet tombol sending ke nomor pribadinya. Mulanya dia berterimakasih tapi kemudian dia menelphonku dan berkata ”Dek uthee...sapa yang ulang tahunn???” gubraak...seketika aku merasa ada bantal raksasa yang mendarat berdebum dikepalaku, namun kemudian kami tertawa terbahak-bahak dan aku menemukan fakta bahwa data yang kudapat dari dokumen di HRD ternyata memang tidak sesuai dengan data seharusnya. Tak semuanya sempat membalas pesan yang kukirimkan untuk mereka, seperti kak Mika yang sebenarnya cukup dekat karena kamar kost kami berdempetan, ternyata tak memberikan respon apapun padaku. Apa aku kecewa? Jawaban jujurku adalah ya. Berfikir sejenak membuatku mengerti bahwa yang terpenting adalah berbagi doa untuknya bukan malah mengharapkan pamrih atas sikapku. 

Aku tak pernah buru-buru menghapus no pribadi teman-teman yang resign dan memilih bergabung dengan perusahaan lain. Akan sangat menyenangkan, kawan lama kita yang mungkin hampir telupakan, tiba-tiba ikut bergabung dalam suka cita kita meski tak secara langsung, itu yang ingin kulakukan untuk mereka. Hal itu pula lah yang memberiku presepsi baru, bahwa hal yang tulus meskipun begitu kecil kadang sanggup membawa kesan besar dan memupuk hubungan yang lebih baik dengan orang lain.

Selalu banyak hal untuk mengekspresikan sesuatu, tak harus menunggu moment tertentu sekecil apapun perhatian itu pada siapapun. Ini adalah secuil pengalamanku, yang mungkin kurang lengkap dinikmati tanpa pengembangan pemikiran pembaca. Jadi mulai sekarang ekspresikanlah perhatianmu pada orang lain dengan cara yang kau bisa.

Sejarah Dan Pengenalan SQL

Pengenalan SQL

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. 

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 dalam manajemen 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 sistem 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 digunakan untuk mendefinisikan, mengubah, serta menghapus basis data dan objek-objek 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 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 SELECT memiliki 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 passwd 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 aggregat

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]
Contoh:
DELETE FROM TEST WHERE NAMA='test';

http://id.wikipedia.org/wiki/SQL