Sistem Basis Data

Sistem Basis Data

Senin, 04 April 2011

ITERATIF DAN REKURSIF


PENDAHULUAN

Metode ITERATIF dan REKURSIF merupakan ke 2 cara dalam STRUKTUR DATA,yang mana merupakan solusi dalam membuat sebuah data didalam program computer sedikit mengupas Iteratif dan rekursif

Metode iteratif adalah suatu metode untuk menyelesaikan suatu sistem persamaan linear dengan cara tidak langsung. Metode iteratif dimulai dengan aproksimasi untuk solusi yang sebenarnya, dan bila konvergen, hasil aproksimasi terdekat dari barisan tersebut adalah siklus dari perhitungan-perhitungan yang diulang-ulang sampai ketelitian yang diinginkan.

Sedangkan Rekursif berarti bahwa suatu proses bisa memanggil dirinya sendiri. Menurut definisi dalam Microsoft Bookshelf, Rekursif adalah kemampuan suatu rutin untuk memanggil dirinya sendiri.





TEKNIK ITERATIF & REKURSIF

TEKNIK ITERATIF
Teknik Iteratif merupakan suatu teknik pembuatan algoritma dengan pemanggilan procedure beberapa kali atau hingga suatu kondisi tertentu terpenuhi
Contoh :
Teknik Iteratif pada algoritma untuk menghitung faktorial dari bilangan bulat positif n, adalah sebagai berikut :
Function FAK (n : integer) : integer
FAK=1
For i = 1 TO n
FAK = FAK * i
NEXT i
END FAK
Gambaran jalannya proses algoritma tersebut adalah sebagai berikut :
Misal n = 5, maka : FAK = 1, kemudian
i
FAK
1
1 * 1 = 1
2
1 * 2 = 2
3
2 * 3 = 6
4
6 * 4 = 24
5
24 * 5 = 120

1. Set x, y, n, i, f : integer
2. x ← 1 ; y ← 1
3. If n 2 then
begin


4. for i ← 3 to n do
begin
5. F ← x + y
6. x ← y
7. y ← F
end
else
8. F ← x
9. Write(F)
End

Gambaran jalannya proses algoritma tersebut adalah sebagai berikut :
Misal n = 5, maka :
x=1, y=1, kemudian
i
F
x
y
3
1 + 1 = 2
1
2
4
1 + 2 = 3
2
3
5
2 + 3 = 5
3
5
Function FAK (n : integer) : integer
1. If n := 0 then FAK := 1
2. Else FAK := n * FAK(n-1)
Contoh :
BARISAN BILANGAN FIBBONACI → 1, 1, 2, 3, 5, 8, 13, 21, . . .
Teknik Rekursif pada algoritma untuk menentukan suku ke-n dari barisan bilangan Fibbonaci, adalah sebagai berikut :
Procedure F(n : integer) : integer
1. If n ≤ 2 then F(n) = 1
else F(n) = F(n-1) + F(n-2)
Endif
End

Perbedaan Antara Teknik Iteratif dan Rekursif :
ITERATIF
REKURSIF
Tidak ada variabel lokal baru
Ada variabel lokal baru
Program tidak sederhana
Program menjadi lebih sederhana
PERMAINAN MENARA HANOI
Contoh paling umum dari penggunaan teknik rekursif adalah pada permainan menara Hanoi. Berdasarkan legenda, pertama kali dimainkan secara manual oleh seorang pendeta Budha di Hanoi, sehingga permainan ini disebut Menara Hanoi. Dalam permainan ini, akan dipindahkan sejumlah piringan yang tidak sama besarnya dari satu tonggak ke tonggak lainnya, dengan diperbolehkan menggunakan (melewati) sebuah tonggak bantuan. Aturan permainannya adalah semua piringan pada tonggak A akan dipindahkan ke tonggak C (dapat dengan melewati tonggak bantuan B), dengan ketentuan bahwa pemindahan piringan dilakukan satu per satu dan piringan yang lebih besar tidak boleh diletakan di atas piringan yang lebih kecil.

Menurut legenda tersebut dikatakan bahwa jika anda selesai memindahkan seluruh 64 piringan, pada saat itu juga dunia kiamat. Ini menurut legenda, yang mungkin juga benar. Secara umum, untuk menyelesaikan n buah piringan diperlukan pemindahan sebanyak 2n –1 kali. Bayangkan jika untuk setiap pemindahan memerlukan waktu 1 detik, maka berapa waktu yang diperlukan untuk menyelesaikan 64 buah piringan.







Kompleksitas Waktu untuk Algoritma Rekursif
Bentuk rekursif :
- suatu subrutin/fungsi/ prosedur yang memanggil dirinya sendiri.
- Bentu dimana pemanggilan subrutin terdapat dalam body subrutin
- Dengan rekursi, program akan lebih mudah dilihat
Bentuk rekursi bertujuan untuk :
- menyederhanakan penulisan program
- menggantikan bentuk iterasi
Syarat bentuk rekursif:
- ada kondisi terminal (basis)
- subroutine call yang melibatkan parameter yang nilainya menuju kondisi terminal (recurrence)
Menghitung kompleksitas bentuk rekursif
Untuk bentuk rekursif, digunakan teknik perhitungan kompleksitas dengan relasi rekurens.






Contoh :
  1. Menghitung factorial

Function Faktorial (input n : integer) → integer
{menghasilkan nilai n!, n tidak negatif}
Algoritma
If n=0 then
Return
Else
Return n*faktorial (n-1)
Endif
Kompleksitas waktu :

- untuk kasus basis, tidak ada operasi perkalian → (0)

- untuk kasus rekurens, kompleksitas waktu diukur dari jumlah perkalian (1) ditambah kompleksitas waktu untuk faktorial (n-1)



Kompleksitas waktu :
T(n)=1+T(n-1)
=1+1+T(n-2)=2+T(n-2)
=2+1+T(n-3)=3+T(n-3)
=……………
=n+T(0)
 = n + 0
Jadi T(n) = n
T(n) O(n)
2. Menara Hanoi
→ Legenda di Hanoi, tentang kisah pendeta Budha bersama murid-muridnya.


Permasalahan :
Bagaimana memindahkan seluruh piringan tersebut ke sebuah tiang yang lain (dari A ke B); setiap kali hanya satu piringan yang boleh dipindahkan, tetapi tidak boleh ada piringan besar di atas piringan kecil. Ada tiang perantara C.
Kata pendeta, jika pemindahan berhasil dilakukan, maka DUNIA KIAMAT !!!
Procedure Hanoi (input n, A, B, C:integer)
Algoritma
If n=1 then
Write (‘Pindahkan piringan dari’,A,’ke’,B)
Else
Hanoi(n-1,A,C,B)
Writeln(‘Pindahkan piringan dari’,A,’ke’,B)
Hanoi(n-1,C,B,A)
Endif

T(n)=2n-1 adalah jumlah seluruh perpindahan piringan dari satu tiang ke tiang lainnya.
Jika perpindahan 1 piringan butuh waktu 1 detik, maka waktu yang dibutuhkan :
2(     64)-1detik
= 10.446.744.073.709.551.615
= kira-kira 600 milyar tahun (???!!!)
 

3. Persoalan Minimum & Maksimum
procedure MinMaks2(input A : TabelInt, i, j : integer,
output min, maks : integer)
{ Mencari nilai maksimum dan minimum di dalam tabel A yang berukuran n elemen secara Divide and Conquer.
Masukan: tabel A yang sudah terdefinisi elemen-elemennya
Keluaran: nilai maksimum dan nilai minimum tabel
}
Deklarasi
min1, min2, maks1, maks2 : integer
Algoritma:
if i=j then { 1 elemen }
min←Ai

maks←Ai
else
if (i = j-1) then { 2 elemen }
if Ai < Aj then
maks←Aj
min←Ai
else
maks←Ai
fmin←Aj
endif
else { lebih dari 2 elemen }
k←(i+j) div 2 { bagidua tabel pada posisi k }
MinMaks2(A, i, k, min1, maks1)
MinMaks2(A, k+1, j, min2, maks2)
if min1 < min2 then
min←min1
else
min←min2
endif
if maks1<maks2 then
maks←maks2
else
maks←maks2
endif  

Relasi rekurrens:
T(n)=

Penyelesaian:
Asumsi: n = 2k, dengan k bilangan bulat positif, maka
T(n) = 2T(n/2) + 2
= 2(2T(n/4) + 2) + 2 = 4T(n/4) + 4 + 2
= 4T(2T(n/8) + 2) + 4 + 2 = 8T(n/8) + 8 + 4 + 2
= ...
=
=
Jadi T(n)=3n/2(        -2)
T(n)E0(n)




ALGORITMA REKURSIF

      Terdapat lebih dari satu cara untuk mengimplementasikan struktur perulangan (iterasi) dalam Bahasa C, yaitu menggunakan statement for, menggunakan statement while atau menggunakan statement do/while. Selain dengan metoda iterasi, perulangan juga bisa dilakukan secara rekursif. Artinya, perulangan dilakukan melalui "pemanggilan sebuah fungsi oleh dirinya sendiri". Prosedur atau fungsi yang memanggil dirinya sendiri, baik secara langsung maupun tidak langsung, disebut sebagai prosedur rekursif atau fungsi rekursif [DEI02].

Fungsi Rekursif

            Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri.  Fungsi ini akan terus berjalan sampai kondisi berhenti terpenuhi, oleh karena itu dalam sebuah fungsi rekursif perlu terdapat 2 blok penting, yaitu blok yang menjadi titik berhenti dari sebuah proses rekursi dan blok yang memanggil dirinya sendiri.

Contoh – contoh penerapan rekursif:
1.      Fungsi cetak ke layar
Fungsi ini mencetak  nilai dari paremeter yang dilempar kepadanya.  Jika nilai dari parameter tersebut  > 0, fungsi akan mencetak nilai dari parameter tersebut dan kemudian memanggil dirinya lagi, jika tidak, program berhenti.
 Faktorial dapat dibuat dengan menerapkan rekursi.  Berikut ini adalah fungsi faktorial rekursif dari sebuah program
Untuk melihat lebih jelas, terapkan fungsi di atas dalam sebuah program.

2.      Fungsi pangkat
Fungsi ini digunakan untuk menghitung nilai: Xn dengan n berupa bilangan bulat positif.  Solusi dari persoalan ini:
JIKA n = 1 MAKA Xn = X
SELAIN ITU: Xn = X * Xn-1
Sebagai contoh diambil nilai X=5 dengan n=3, pelukisan proses pemecahannya:

Berikut adalah fungsi pangkat dengan menggunakan solusi di atas:

a adalah bilangan yang dipangkatkan, sedangkan b adalah bilangan pemangkatnya.  Jika nilai dari b adalah 1, return a, lainnya return a dikali dengan fungsi pangkat dengan parameter a dan b-1.  Untuk lebih jelas, terapkan dalam program.


3.      Fungsi faktorial
 
Fungsi rekursif dapat digunakan untuk menghitung faktorial. Berikut penjelasan beserta dengan contoh listing programnya.
Fungsi faktorial dapat dinyatakan dalam bentuk rekursif seperti berikut:
fak(n) = 1, untuk n = 0 atau n = 1
fak(n) = n x (n-1)!, untuk n > 0
Berikut contoh proses untuk perolehan hasil 4!

ARRAY

Array adalah sekelompok data sejenis yang disimpan ke dalam variabel dengan nama yang sama, dengan memberi indeks pada variabel untuk membedakan antara yang satu dengan yang lain.

VARIABEL ARRAY
            nama_variabel[indeks]

ketentuan nama variabel arrray sama dengan nama variabel biasa.
indeks menunjukkan nomor dari variabel .

DEKLARASI VARIABEL ARRAY

BU                  : tipe nama_variabel[indeks];

Contoh           : float bil[10];
            deklarasi variabel array dengan nama bil yang akan menampung 10 data             yang  bertipe  float.  Indeks  10  menunjukkan  variabel  bil  terdiri  dari  10 elemen, dimana setiap elemen akan menampung sebuah data.

Indeks array dimulai dari nol(0) , sedang nomor elemen biasanya dimulai dari satu(1). Nomor elemen dapat dibuat sama dengan nomor indeks untuk mempermudah pembuatan program yaitu dengan memberi indeks satu lebih banyak dari jumlah data yang dibutuhkan, sehingga menjadi :
            float bil[11]

INISIALISASI  ARRAY 1 DIMENSI
Inisialisasi  dapat dilakukan bersama dengan deklarasi atau tersendiri. Inisialisasi suatu array adalah dengan meletakkan elemen array di antara tanda kurung kurawal {}, antara elemen yang satu dengan lainnya dipisahkan koma.
            int bil[2] = {4,1,8}

            bil[0] = 4
            bil[1] = 1
            bil[2] = 8

AUTOMATIC ARRAY adalah Inisialisasi array dilakukan di dalam fungsi tertentu. Hanya  compiler C yang berstandar ANSI C yang dapat menginisialisasikan automatic array.
Cara menginisialisasikan  array dari compiler yg tidak mengikuti standar  ANSI C:
1. Diinisialisasikan di luar fungsi sebagai variabel GLOBAL/EXTERNAL ARRAY.
            int bil[2]={0,0,0};
            main()
           
2. Diinisialisasikan didlm fungsi sebagai variabel LOKAL/STATIC ARRAY.
            main()
            {
                        static int bil[2]={0,0,0};
                        .........

Pada automatic array yang tidak diinisialisasikan , elemen array akan memiliki nilai yang tidak beraturan. Bila global & static array tidak diinisialisasi maka semua elemen array secara otomatis akan diberi nilai nol(0).

Contoh :
main()
{
            int y;
            int hitung=0;
            int x[0];
            for(y=0;y<5;y++)
            {
                        hitung+=y;
                        x[y]=hitung;
                        printf("%3d - %3d\n",y,x[y]);
            }
}

OUTPUT:
0-  0
1-  1
2-  3
3-  6
4-  10

MENDEFINISIKAN JUMLAH ELEMEN ARRAY DALAM VARIABEL
Besarnya variabel indeks dapat ditentukan dengan menggunakan
preprocessor directives #define
#define N 40
main()
{
            int no[N],gaji[N],gol[N],status[N],juman[N];

Bila besari indeks akan diubah menjadi 50, cukup diganti dengan
#define N 50

ARRAY 2 DIMENSI
            nama_variabel [indeks1][indeks2]

indeks1          : jumlah/nomor baris
indeks2          : jumlah/nomor kolom
Jumlah elemen yang dimiliki array 2 dimensi dapat ditentukan dari hasil perkalian          indeks1 * indeks2

misal : array A[2][3] akan memiliki 2*3 = 6 elemen.

main()
{
            float  bil [5] [5]
            .......

dapat dituliskan dengan #define
#define N 5
main()
{
            float bil [N]  [N]
            .......

INISIALISASI ARRAY 2 DIMENSI
main()
{
            float bil[2] [3] =
            { { 1,2,3},         /*baris 0*/
              { 4,5,6},         /*baris 1*/
            }

elemen bil [0] [0] = 1
elemen bil [0] [1] = 2
elemen bil [0] [2] = 3
elemen bil [1] [0] = 4
elemen bil [1] [1] = 5
elemen bil [1] [2] = 6

Contoh :
main()
{
            int x[3][5];
            int y,z;
            int hitung=0;
            for(y=0;y<3;y++)


            {
                        printf("y = %d\n",y);
                        for(z=0;z<5;z++)
                        {
                                    hitung+=z;
                                    x[y][z] = hitung;
                                    printf("%/t%3d - %3d\n",z,x[y][z]);
                        }
            }
}

OUTPUT:
y = 0
   0-  0
   1-  1
   2-  2
   3-  6
   4-  10
y = 1
   0-  10
   1-  11
   2-  13
   3-  16
   4-  20
y = 2
  0-  20
  1-  21
  2-  23
  3-  26
  4-  30

STRING dan ARRAY
1. Pada string   terdapat karakter null(\0) di akhir string
2. String sudah pasti array, array belum tentu string




  
PENUTUP

Iteratif dan rekursif merupakan metode atau teknik didalam perulangan(looping),dan Sama-sama memiliki bagian yang berfungsi sebagai batas dalam sebuah perulangan
           
Demikianlah beberapa sekumpulan mengenai Iteraktif dan Rekursif,Sebenarnya untuk Rekursif dan Iteraktif ini sendiri masihlah belum semuanya dibahas di dalam makalah ini,dikarenakan keterbatasan nara sumber dan juga ilmu pengetahuan yang ada

Akhir dari kata Saya ucapkan terima kasih.

















DAFTAR PUSTAKA

 [DEI02] Deitel & Deitel. 2002. Java : How To Program. 4th Ed. Prentince-Hall.

GOO5] Goodrich & Tamassia. 2005. Data Structures and Algorithm in Java. 5th Ed. John Wiley & Sons.

[LYS03] L. Yohannes Stefanus. 2003. Soal UTS Kelas Matrikulasi, Program Magister Teknologi Informasi, Universitas Indonesia. Tidak dipublikasikan.

[RIN05] Rinaldi Munir. 2005. Algoritma dan Pemrograman dengan Bahasa Pascal dan C. Edisi 3. Buku 2. Bandung: Informatika

Dari Situs Internet google tentang ITERAKTIF DAN REKURSIF

Jumat, 05 November 2010

Sistem Basis Data


PENDAHULUAN
  • Sistem basis data merupakan susunan atau kumpulan data operasional lengkap dari suatu organisasi atau perusahaan yang di organisir atau di kelola dan di simpan secara terintegrasi dengan mengunakan metode tertentu dengan mengunakan computer sehingga mampu menyediakan informasi optimal yang diperlukan oleh pemakai nya.

KOMPONEN DASAR SISTEM BASIS DATA 

Didalam Sistem basis data,harus memiliki  4 komponen pokok yaitu: 

1.DATA
            Merupakan kumpulan dari berbagai macam file dari alikasi yang berbeda yang di susun dengan cara memenghilangkan bagian-bagian yang rangkap ( redundant ),ataupun masing-masing basis data dapat di akses oleh pemakai dalam waktu yang bersamaan untuk aplikasi yang berbeda 

2.HARDWARE
Terdiri dari sebuah peralatan komputer yang digunakan untuk pengelolaan sistem basis data berupa
-          Peralatan untuk penyimpanan basis data.yaitu secondary storage (disk,drum,dan lain-lain )
-          Perlatan input dan output
-          Peralatan komunikasi data,dan lain-lain

3.SOFTWARE
  • Berfungsi sebagai perantara ( interface) antar pemakai dengan data fisik pada basis data,Software pada basis data dapat berupa :
-          DBMS ( Database Management System )yang menangani akses terhadap basis data sehingga pemakai tidak perlu memikirkan proses penyimpanan dan pengelolaan data secara detail
-          Program-program aplikasi dan procedure-procedure

4.USER ATAU PEMAKAI
  • Pemakai basis data dibagi atas 3 klasifikasi,yaitu :

a.Data Base Administrator ( DBA ),orang atau tim yang bertugas mengelola sistem basis data secara keseluruhan
-          Mengontrol DBMS dan sofware-software
-          Memonitor siapa yang mengakses basis data
-          Memeriksa security,integrity,recovery atau back-up,dan concurency
b.Programmer,Orang atau team yang bertugas membuat progam aplikasi,misalnya untuk perbankan,asministrasi,akuntansi. Dan lain-lain.

c.End User. Orang yang ,mengakses basis data melalui terminal dengan mengunakan query language atau program aplikasi yang dibuat oleh programmer

End User dapat dibagi dua yaitu :
  • Naïve End User adalah pemakai yang tidak berpengalaman,berinteraksi dengan sistem tanpa menulis program,Tinggal menjalankan satu menu dan memilih proses yang telah ada atau telah di buat sebelumnya oleh programmer

  • Casual End User adalah Pemakai yang tidak berpengalaman,berinteraksi dengan sistem tanpa menulis program,tetapi memakai bahasa query

KEUNTUNGAN DAN KERUGIAN SISTEM BASIS DATA
Keuntungan sistem basis data adalah :
  • Mengurangi kerangkapan data,yaitu data yang sama disimpan dalam berkas data yang berbeda-beda sehingga update dilakukan berulang-ulang
  • Mencegah ketidakkonsistenan
  • Keamanan data dapat terjaga,yaitu data dapat dilindungi dari pemakai yang tidak berwenang
  • Integritas dapat di pertahankan
  • Data dapat dipergunakan bersama-sama
  • Menyediakan recovery
  • Memudahkan penerapan standarisasi
  • Data Bersifat mandiri ( Data Independent )
  • Keterpaduan data terjaga,memelihara keterpaduan data berarti data harus akurat.Hal ini sangat erat hubungannya dengan perngontrolan kerangkapan data danpemeliharaan keselarasan data.
KERUGIAN SISTEM BASIS DATA ADALAH :
  • Diperlukan tempat penyimpanan yang besar
  • Diperlukan tenaga yang terampil dalam mengelola data
  • Perangkat lunak nya mahal
  • Kerusakan di sistem basis data dapat mempengaruhi departemen yang terkait
ISTILAH-ISTILAH YANG DIPERGUNAKAN DI DALAM SISTEM BASIS DATA
  •  Enterprise
            Suatu bentuk organisasi,seperti:Bank,Universitas,Pabrik,dan lain-lain.Data yang di simpan didalam basis data merupakan data operasional suatu enterprise.Contoh data operasional adalah :
   Data sekolah                  ------> Mahasiswa
   Data Rumah sakit           ------> Pasien
   Data Bank                      ------> Nasabah

  • Entitas
            Suatu obyek yang dapat dibedakan dengan obyek lain nya yang dapat di wujudkan didalam basis data.
            Contoh :
-          Entitas di lingkungan pabrik (Supplier,Part,Shipment)
-          Entitas di lingkungan Bank(Simpanan,Hipotik,nasabah)
            Kumpulan entitas di sebut himpunan entitas
            Contoh : Bank merupakan kumpulan entitas nasabah

  • Atribute / Field
            Merupakan karakteristik entitas tertentu

            Contoh :
            Entity siswa     ------> Atributenya adalah Nim.Nama_siswa.Alamat

            Entity Nasabah -----> Atributenya adalah Kode_nasabah,nama_nasabah

  • Data Value ( Nilai atau isi data )
Merupakan data actual atau informasi yang di simpan di tiap data elemen atau atribute,isi atribute disebut nilai data

            Contoh :
            Atribute nama karyawan ---> Suroto.wagiman

  • Record / Tuple
Kumpulan isi elemen data ( atribute ) yang saling berhubungan menginformasikan tentang suatu entity secara lengkap.

            Contoh :
Kumpulan atribute kode nasabah,nama,dan alamat berisikan “01237”.nani,Jl.Sigura-gura No.87

  • File
Kumpulan record sejenis yang mempunyai panjang element dan atribute yang sama,namun berbeda-beda value nya

  • Kunci element data
Sebagai tanda pengenal yang secara unik mengidentifikasikan entitas dari suatu kumpulan entitas.
            Contoh :
Entitas nasabah yang mempunyai atribute-atribute kode nasabah,nama,alamat,mengunakan kode nasabah sebagai kunci element data

  • DataBase Management system ( DBS )
            Kemudian file yang saling berkaitan bersama dengan program untuk
pengelolaan nya.

            Basis data dapat terdiri dari ratusan field yang di butuhkan untuk informasi dan basis data juga dapat di akses / dipakai secara bersma-sama oleh lebih dari beberapa ratus user (Pemakai),Karena basis data dapatdi pergunakan secara bersama-sama,mungkin dalam waktu yang bersamaan,maka diperlukan suatu pengontrolan dan pengelolaan data yang ada didalam suatu basis data.



 BAHASA QUERY KOMERSIAL

1. Strukru Query Language (SQL)
SQL adalah bahasa yang berisi perintah-perintah untuk memanipulasi basis data, seperti menghapus, menghapus, mengubah, memilih, menggabungkan data SQL yang secara tidak resmi menjadi bahasa standart bahasa data adalah bahasa yang efesien, mudah untuk mempelajari dibandingkan dengan semua basis data. SQL dapat mengakses data di BASE IV.
Sejarah
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.
[sunting] 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.
[sunting] 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

Bahasa Query Formal dan Komersial
Menggunakan bahasa query, yaitu pernyataan yang diajukan untuk mengambil informasi

Terbagi 2 :

1. Bahasa Query Formal

Bahasa query yang diterjemahkan dengan menggunakan simbol-simbol matematis. Bahasa query rasional formal merupakan bahasa untuk meminta informasi dari sebuah database/basisdata tanpa harus menghiraukan kerumitan algoritma pengambilannya (sebagaimana sering dijumpai dalam bahasa pemrograman konvensional).

Contoh penggunaan Bahasa query relasional formal yang menggunakan basis data yaitu seperti SQL dikonversi menjadi bahasa relasional formal sehingga didapatkan sekumpulan informasi untuk memperoleh query paling efisien

Bahasa Query Formal
Terbagi 2, yaitu:
a. Prosedural, yaitu pemakai memberi spesifikasi data apa yang dibutuhkan dan bagaimana cara mendapatkannya.

Contoh:
Aljabar Relasional , yaitu dimana query diekspresikan dengan cara menerapkan operator tertentu terhadap suatu tabel / relasi. Aljabar relasional merupakan bahasa query prosedural yang dapat mengistruksikan sistem komputer melakukan sederetan operasi agar diperoleh hasil/informasi yang diinginkan.

Jadi aljabar relational secara lebih singkat bisa dijelaskan sebagai kumpulan operasi terhadap relasi dimana setiap operasi menggunakan satu atau lebih relasi untuk menghasilkan sebuah relasi baru. Karena termasuk kategori prosedural berarti juga menyediakan seperangkat operator untuk memanipulasi data.


Bahasa Query Formal dan Komersial
Menggunakan bahasa query, yaitu pernyataan yang diajukan untuk mengambil informasi
Tampilkan daftar dosen yang tempat lahirnya di ‘Bekasi
stempat_lhr=’Bekasi’ (Dosen)

Tampilkan daftar dosen yang tempat lahirnya di ‘Jakarta’ atau ‘Bogor’
stempat_lhr=’Jakarta’ Ú tempat_lhr=’Bogor’ (Dosen)
Contoh penggunaan operation project

Tampilkan nid,nama_d,alamat,kota dari relasi Dosen
p nid,nama_d,alamat,kota(Dosen)

Selain itu, terdapat pula operasi-operasi turunan dari operasi-operasi dasar tersebut, yaitu;
• Set Intersection
• Theta Join
• Natural Join
• ivision

b. Non Prosedural, yaitu pemakai menspesifikasikan data apa yang dibutuhkan tanpa menspesifikasikan bagaimana untuk mendapatkannya.

Contoh:
Kalkulus Relasional, dimana query menjelaskan set tuple yang diinginkan dengan cara menjelaskan predikat tuple yang diharapkan.

Terbagi 2 :
1. Kalkulus Relasional Tupel
2. Kalkulus Relasional Domain


2. Bahasa Query Komersial

Bahasa Query yang dirancang sendiri oleh programmer menjadi suatu program aplikasi agar pemakai lebih mudah menggunakannya (user friendly).

Contoh :

• QUEL
Berbasis pada bahasa kalkulus relasional

• QBE
Berbasis pada bahasa kalkulus relasional

• SQL
Berbasis pada bahasa kalkulus relasional dan aljabar relasional


Terbagi 2 :

1. Bahasa Query Formal

Bahasa query yang diterjemahkan dengan menggunakan simbol-simbol matematis. Bahasa query rasional formal merupakan bahasa untuk meminta informasi dari sebuah database/basisdata tanpa harus menghiraukan kerumitan algoritma pengambilannya (sebagaimana sering dijumpai dalam bahasa pemrograman konvensional).

Contoh penggunaan Bahasa query relasional formal yang menggunakan basis data yaitu seperti SQL dikonversi menjadi bahasa relasional formal sehingga didapatkan sekumpulan informasi untuk memperoleh query paling efisien
Ada 2 jenis DML :
1.  Procedural DML
Digunakan untuk mendefinisikan data yang diolah dan perintah yang akan dilaksanakan.
2.  Non Procedural
Digunakan untuk menjabarkan data yang diinginkan tanpa menyebutkan bagaimana cara pengambilannya.

Secara khusus pengguna menggunakan berbagai bahasa :
Programmer aplikasi menggunakan bahasa-bahasa seperti Cobol, Informix, dll (host language) yang ditempelkan dengan bahasa yang dipakai dalam DBMS. Pemakai terminal menggunakan bahasa Query (misal SQL) atau menggunakan program aplikasi (yang dirancang oleh programmer). Sedangkan DBA lebih banyak menggunakan bahasa DDL dan DML yang tersedia dalam DBMS.

DBMS mempunyai tugas untuk menangani semua bentuk akses kepada basis data, secara konsep :
1. Pengguna menyatakan permintaan akses menggunakan DBMS
2.  DBMS menangkap dan menginterpretasikan
3. DBMS mencari :
- eksternal / conceptual mapping
- conceptual schema
- konseptual / internal mapping
- internal schema
4. DBMS melaksanakan operasi yang diminta terhadap basis data tersimpan.
Proses 1 s/d 4 dapat dilakukan secara interactive atau dicompile dulu.

MERANCANG BASIS DATA
Merancang basis data merupakan suatu hal yang sangat penting. keuliyan utama dalam merancang basis data adalah cara merancang singga basis data dapat memuaskan keperluan saat ini dan masa mendatang. perlu merancang model phisik. perancang konsetual akan menunjukkan entity dan relasinya berdasarkan proses yang diinginkan oleh organisasi. ketika menentukan entity dan relasinya, dibutuhkan analisa data tentang informasi yang ada dalam spesifikasi dimasa mendatang.
Pada pendekatan model konseptual. beberapa konsep pendekatan raional digunakan, namun tidak berarti konsep ini nantinya diimplementasikan kemodel relation saja, tetapi dapat dipakai di model hierarchical dan model network.
1. Proses Merancang Basis Data
pada basis data yang digunakan oleh sigle user atau hanya beberapa user saja. perancangan basis data tidak sulit. akan tetapi, jika ukuran basis data yang sedang atau besar(25 sampai ratusan user berisi jutan bytes informasi dan melibatkan ratusan qury dan program-program abplikasi, contohnya: industri- industri, asuransi, teravel dan lain-lain yang seluruhnya tergantung kesuksesan dan operasi-operasi basis datanya) perancang basis data menjadi sangat konpleks. oleh karena itu para pemakai pengguna basis data yang sedemikian rupa sehingga sistem harus dapat memenuhi kebutuhan-kebutuhan seluruh user tersebut.
Tujuan Merancang Basis data
- Memenuhi informasi yang berisi kebutuhan-kebutuhan user secara khusus dan
applkasinya.
- Memudahkan pengertian struktur informasi.
- mendukung kebutuhan-kebutuhan pemrosesan dan beberapa objek performa.

Basis data sebagai kumpulan dari data yang saling berhubungan yang diorganisasi sedemikian rupa agar kemudian dapat dimanfaatkan lagi dengan cepat dan mudah (Abdul Kadir, 2002: 39).
Definisi basis data (database) sangatlah bervariasi. Basis data dapat dianggap sebagai kumpulan data yang terkomputerisasi, diatur dan disimpan menurut salah satu cara yang memudahkan pengambilan kembali. Secara sederhana basis data dapat diungkapkan sebagai suatu pengorganisasian  data dengan bantuan komputer yang memungkinkan  data dapat diakses dengan mudah dan cepat.
Tujuan awal dan utama dalam pengolahan data pada sebuah basis data adalah agar dapat menentukan kembali data (data yang dicari) dengan mudah dan cepat. Di samping itu, pemanfaatan data untuk pengolahan data juga memiliki tujuan-tujuan tertentu. Secara lengkap, pemanfaatan basis data dilakukan untuk memenuhi sejumlah tujuan sebagai berikut :
•1)      Kecepatan dan kemudahan (Speed)
Pemanfaatan basis data memungkinkan untuk dapat menyimpan data atau melakukan perubahan/manipulasi terhadap data atau menampilkan kembali data tersebut dengan cepat dan mudah.
•2)      Efesiensi ruang penyimpanan (Space)
Penggunaan ruang penyimpanan di dalam basis data dilakukan  untuk mengurangi jumlah redundansi (pengulangan) data, baik dengan melakukan penerapan sejumlah pengkodean atau dengan membuat relasi-relasi (dalam bentuk file) antar kelompok data yang saling berhubungan.
•3)      Keakuratan (Accuracy)
Pemanfaatan pengkodean atau pembentukan relasi antar data bersama dengan penerapan aturan/batasan tipe data, domain data, keunikan data dan sebagainya dan diterapkan dalam basis data, sangat berguna untuk menentukan ketidakakuratan pemasukan atau penyimpanan data.
•4)      Ketersediaan (Availability)
Pertumbuhan data (baik dari jumlah maupun jenisnya) sejalan dengan waktu akan semakin membutuhkan ruang penyimpanan yang besar. Data yang sudah jarang atau bahkan tidak pernah lagi digunakan dapat diatur untuk dilepaskan dari sistem basis data dengan cara penghapusan atau dengan memindahkannya ke media penyimpanan.
•5)      Kelengkapan (Completeness)
Lengkap atau tidaknya data yang dikelola bersifat relatif baik terhadap kebutuhan pemakai maupun terhadap waktu. Dalam sebuah basis data, struktur dari basis data tersebut juga harus disimpan. Untuk mengakomodasi kebutuhan kelengkapan data yang semakin berkembang, maka tidak hanya menambah record-record data, tetapi juga melakukan penambahan struktur dalam basis data.
•6)      Keamanan (Security)
Sistem keamanan digunakan untuk dapat menentukan siapa saja yang boleh menggunakan basis data dan menentukan jenis operasi apa saja yang boleh dilakukan.
• 7) Kebersamaan pemakai
Pemakai basis data sering kali tidak terbatas hanya pada satu pemakaian saja atau oleh satu sistem aplikasi saja. Basis data yang dikelola oleh sistem (aplikasi) yang mendukung lingkungan multiuser, akan dapat memenuhi kebutuhan ini, tetapi dengan menjaga/menghindari terhadap munculnya persoalan baru seperti inkonsistensi data (karena data yang sama diubah oleh banyak pemakai pada saat bersamaan).


PENUTUP

Sebenarnya pembahasan Sistem Basis Data masih memiliki arti dan makna yang lebih luas yang tidak dapat saya bahas karena keterbatasan nara sumber.Demikianlah beberapa Karya Tulis dari saya,jika ada saran/kritik mohon dapat di sampaikan.Atas perhatiannya saya ucapkan terima kasih.