Selasa, 19 Februari 2013

Normalisasi

Istilah Normalisasi berasal dari E. F.Codd, salah seorang perintis teknologi basis data. selain dipakai sebagai metodologi tersendiri untuk menciptakan struktur tabel 9relasi) dalam basis data (dengan tujuan utnuk mengurangi kemubaziran data)  , normalisasi terkadang hanya diipakai sebagai perangkat verifikasi terhadap tabel-tabel yang dihasilkan oleh metodologi lain ( misalnya E-R). Normalisasi memberikan panduan yang sangat membantu bagi pengembang untuk mencegah penciptaan struktur tabel yang kurang fleksibel atau mengurangi keflekxibelan.
Kroenke mendefinisikan normalisasi sbagai proses untuk mengubah suatu relasi yang memiliki masalah tertentu ke dalam dua buah relasi atau lebih yang tida memiliki masalah tersebut. Masalah yang dimaksud olej kroenke ini sering disebut dengan istilah anomali.
( Pada beberapa literatur, istilah relasi yang digunakan pada bab ini terkadang digantikan dengan tabel. Istilah relasi digunakan pada bab ini dikarenakan definisi tentang normalisasi memang menggunakan istilah relasi).

Tujuan normalisasi

  • Untuk menghilangkan kerangkapan data
  • Untuk mengurangi kompleksitas
  • Untuk mempermudah pemodifikasian data

Anomali

Anomali adalah proses pada basis data yang memberikan efek samping yang tidak diharapkan ( misalnya menyebabkan ketidakonsistenan data atau membuat suatu data menjadi hilang ketika data dihapus)
Macam Anomali terdiri dari
  • Anomali peremajaan,
  • Anomali Penghapusan, dan
  • Anomali penyisipan

Anomali peremajaan

Anomali ini terjadi bila ada perubahan pada sejumlah data yang mubazir, tetapi tidak seluruhnya diubah. Contoh : Tabel Pesanan
Pemasok Kota Barang Jumlah
Kartika Jakarta Mouse 5
Citra Bandung Monitor 2
Yudi Medan CPU 2
Citra Bandung Printer 1
Seandainya Citra dengan kota Bandung pindah ke Bogor maka pengubahan data hanya dilakukan pada data pertama menjadi : Tabel Pesanan
Pemasok Kota Barang Jumlah
Kartika Jakarta Mouse 5
Citra Bogor Monitor 2
Yudi Medan CPU 2
Citra Bandung Printer 1
Di sini terlihat bahwa data tentang pemasok Citra tidak sama yang menyebabkan ketidakkonsistenan data.

Anomali Penyisipan

Anomali ini terjadi pada saat penambahan data ternyata ada elemen yang kosong dan elemen tsb justru menjadi key. Contoh : Tabel Kursus
NoSiswa Kursus Biaya
10 Bhs.Inggris 60000
10 Bhs.Perancis 80000
10 Bhs.Jepang 70000
15 Bhs.Inggris 60000
20 Bhs.Jepang 70000
Misalnya akan dibuka kursus baru yaitu Bhs.Jerman dengan biaya 75000 akan tetapi belum ada seorangpun yang ikut kursus ini, shg data menjadi : Tabel Kursus
NoSiswa Kursus Biaya
10 Bhs.Inggris 60000
10 Bhs.Perancis 80000
10 Bhs.Jepang 70000
15 Bhs.Inggris 60000
20 Bhs.Jepang 70000

Bhs.Jerman 75000

Anomali penghapusan

Anomali ini terjadi apabila dalam satu baris/ tuple ada data yang akan dihapus sehingga akibatnya terdapat data lain yang hilang. Contoh pada table kursus data NoSiswa 20 akan dihapus karena sudah tidak ikut kursus lagi sehingga akibatnya data kursus bhs jepang dan biaya 70000 akan ikut terhapus.

Dependensi (Ketergantungan)

Konsep dasar pada tahap normalisasi yang menjelaskan hubungan atribut atau secara lebih khusus menjelaskan nilai suatu atribut yang menentukan atribut lainnya.
Macam-macam dependensi, yaitu :

Dependensi fungsional

Definisi : Suatu atribut Y mempunyai dependensi fungsional terhadap atribut X jika dan hanya jika setiap nilai X berhubungan dengan sebuah nilai Y.
Notasi    :   X –> Y      (X secara fungsional menentukan Y)
Contoh   : Tabel Pesanan
Pembeli Kota Barang Jumlah
P1 Yogya B1 10
P1 Yogya B2 5
P2 Jakarta B1 4
P2 Jakarta B2 7
P3 Solo B3 6
P3 Solo B4 6
Pembeli secara fungsional menentukan kota, sebab setiap pembeli yang sama  mempunyai kota yang sama, dengan demikian :   Pembeli –> Kota
contoh lain                      :  {Pembeli, Barang}   –> Jumlah
Keterangan:
  • Bagian yang terletak disebelah kiri tanda panah biasa disebut DETERMINAN / PENENTU dan bagian yang terletak di sebelah kanan panah disebut DEPENDENSI / YANG TERGANTUNG.
  • Tanda {} biasanya digunakan untuk menentukan lebih dari satu atribut sebagai penentu atau sebagai yang tergantung.

Dependensi fungsional sepenuhnya

Definisi : Suatu atribut Y mempunyai dependensi fungsional penuh terhadap X jika
  • Y mempunyai dependensi fungsional terhadap X dan/atau
  • Y tidak memiliki dependensi terhadap bagian dari X
Contoh :   Pembeli –> Kota
{Pembeli, Barang} –>  Jumlah
Intinya :   Kota mempunyai dependensi fungsional terhadap Pembeli atau {Pembeli, Barang} tapi kota mempunyai dependensi fungsional sepenuhnya terhadap pembeli bukan barang.

Dependensi Total

Definisi : Suatu atribut Y mempunyai dependensi total terhadap atribut X jika
  • Y memiliki dependensi fungsional terhadap X dan
  • X memiliki dependensi fungsional terhadap Y
Notasi  :   X<–> Y
Contoh : Tabel Pemasok
KodePemasok NamaPemasok Kota
K1 Kartika Jakarta
C1 Citra Bandung
C2 Candra Jakarta
Pada kasus ini  KodePemasok <–>NamaPemasok, karena setiap kode tidak mempunyai nama yang sama.

Dependensi Transitif

Definisi : Atribut Z mempunyai dependensi transitif terhadap X bila :
  • Y memiliki dependensi fungsional terhadap X
  • Z memiliki dependensi fungsional terhadap Y
Contoh :
Kuliah Ruang Tempat Waktu
Jarkom Merbabu Gedung Utara Senin
Basis Data Arjuna Gedung Selatan Selasa
Matematika Merapi Gedung Barat Rabu
Fisika Merbabu Gedung Timur Kamis
Relasi :
  • Kuliah  –> {Ruang, Waktu}
  • Ruang  –> Tempat
Terlihat bahwa :    Kuliah –> Ruang –> Tempat
Dengan demikian Tempat mempunyai dependensi transitif terhadap kuliah

Diagram Dependensi Fungsional (Diagram DF)

Diagram Dependensi Fungsional (Diagram DF) Adalah diagram yang digunakan untuk menggabarkan dependensi fungsional. Diagram ini menunjukkan hubungan antara atribut yang menjadi penentu atribut lainnya, dengan hubungan yang dinyatakan dengan tanda panah. Seperti contoh diatas dapat digambarkan diagram DF sebagai berikut :

Dekomposisi

Pada tahap normalisasi sering kali terjadi pemecahan table kedalam bentuk dua atau lebih relasi. Proses pemecahaan ini disebut dengan dekomposisi. Syarat : Tidak ada informasi yang hilang ketika suatu relasi dipecah menjadi relasi-relasi lain. Contoh : Terdapat suatu relasi awal sebagai berikut :
Nim Nama Program Studi
95001 Andi Ekonomi
95002 Vira Teknik
95003 Andi Fisika
Akan dibentuk kedalam dekomposisi tak hilang menjadi :
Nim Nama
Nim Program Studi
95001 Andi
95001 Ekonomi
95002 Vira
95002 Teknik
95003 Andi
95003 Fisika
Pada relasi awal dapat diketahui informasi sebagai berikut : 95001 adalah ANDI program studi Ekonomi. Setelah proses dekomposisi tak hilang hasilnya adalah sama 95001 adalah ANDI dan 95001 program studi Ekonomi. Contoh dekomposisi hilang adalah
Nim Nama
Nama Program Studi
95001 Andi
Andi Ekonomi
95002 Vira
Vira Teknik
95003 Andi
Andi Fisika
95001 bernama ANDI, tetapi ANDI dengan program studi Ekonomi atau Fisika?

Bentuk Normalisasi

Bentuk normalisasi pertama (1NF)

Dikenakan pada tabel yang sama sekali belum ternomalisasi. Tabel yang belum ternomalisasi adalah tabel yang mempunyai atribut berulang. Contoh : terdapat suatu data sebagai berikut :
NIP Nama Jabatan Keahlian Lama Kerja
107 Ilham Analis Senior Cobol 6



Oracle 1
109 Ryan Analis Junior Cobol 2



C++ 2
120 Fika Programmer Dbase 3



Sybase 1



Cobol 1
Pada contoh di atas, keahlian mempunyai atribut yang berulang. Untuk itu akan dibentuk ke normal 1NF. Syarat Normal 1NF adalah suatu relasi dikatakan dalam bentuk normal pertama jika dan hanya jika setiap atribut bernilai tunggal dalam satu baris.
NIP Nama Jabatan Keahlian Lama Kerja
107 Ilham Analis Senior Cobol 6
107 Ilham Analis Senior Oracle 1
109 Ryan Analis Junior Cobol 2
109 Ryan Analis Junior C++ 2
120 Fika Programmer Dbase 3
120 Fika Programmer Sybase 1
120 Fika Programmer Cobol 1
Tabel di atas sudah memenuhi bentuk normal 1NF

Bentuk Normal 2NF

Bentuk ini didefinisikan berdasarkan dependensi fungsional dengan syarat adalah :
  • Berada pada bentuk normal pertama
  • Semua atribut bukan kunci memiliki dependensi sepenuhnya terhadap kunci primer
Contoh :
  • Nama  dan jabatan mempunyai dependensi fungsional terhadap NIP
  • Lama mempunyai dependensi fungsional terhadap NIP dan keahlian
  • Bentuk tabelnya adalah : NNJ (NIP, Nama, Jabatan) dan NKL (NIP, Keahlian, Lama Kerja)
NIP Nama Jabatan
107 Ilham Analis Senior
109 Ryan Analis Junior
120 Fika Programmer
NIP Keahlian Lama Kerja
107 Cobol 6
107 Oracle 1
109 Cobol 2
109 C++ 2
120 Dbase 3
120 Sybase 1
120 Cobol 1

Bentuk Normal 3NF

  • Berada dalam bentuk normal 2 NF
  • Setiap atribut bukan kunci tidak memiliki dependensi transitif terhadap kunci primer
Contoh di atas sudah memenuhi normal 3NF karena : Tidak memiliki dependensi transitif, yaitu
NIP –> {Nama, Jabatan}
{NIP, Keahlian} –> Lama Kerja

Bentuk Normal boyce-codd (BCNF)

Bentuk ini dilakukan jika dan hanya jika semua penentu (determinan) adalah kunci kandidat (atribut yang bersifat unik). BCNF merupakan perbaikan dari 3NF. Relasi yang memenuhi BCNF pasti memenuhi 3NF tetapi tidak sebaliknya. Contoh : Tabel SKT
Siswa Kursus Tutor
Anwar Bhs. Perancis Pierre
Anwar Bhs. Inggris Richard
Budi Bhs. Perancis Pierre
Cecep Bhs. Inggris Suzanne
Tabel di atas adalah suatu relasi yang memenuhi 3NF tetapi tidak memenuhi BCNF. Relasi diatas didasarkan oleh fakta :
  • Seorang siswa dapat mengambil sejumlah kursus
  • Setiap tutor hanya mengajar satu kursus bahasa
  • Setiap siswa dalam satu kursus diajar oleh satu tutor
  • Suatu kursus bisa dipegang oleh beberapa tutor
Pada keadaan tersebut di atas dapat digambarkan sebagai berikut : Siswa & Kursus  dan Siswa & Tutor.
Memenuhi bentuk 3NF karena tidak ada dependensi transitif pada relasi tersebut. Tetapi tidak memenuhi BCNF karena adanya determinan Tutor yang berdiri sebagai kunci kandidat. Realsi SKT menyebabkan anomali karena baris Cecep dihapus maka Suzane sebagai tutor jug akan terhapus. Cara konversi dari 3NF ke BCNF adalah :
  • Carilah semua penentu
  • Bila terdapat penentu yang bukan kunci kandidat, maka :
    • Pisahkan relasi tersebu
    • Buat penentu sebagai kunci primer
  • Dekomposisi berupa : ST (Siswa, Tutor) dan TK (Tutor, Kursus)
Siswa Tutor
Anwar Pierre
Anwar Richard
Budi Pierre

Entity Relationship Diagram

ERD merupakan suatu model untuk menjelaskan hubungan antar data dalam basis data berdasarkan objek-objek dasar data yang mempunyai hubungan antar relasi.
ERD untuk memodelkan struktur data dan hubungan antar data, untuk menggambarkannya digunakan beberapa notasi dan simbol. 
Pada dasarnya ada tiga simbol yang digunakan, yaitu :
  1. Entiti
Entiti merupakan objek yang mewakili sesuatu yang nyata dan dapat dibedakan dari sesuatu yang lain (Fathansyah, 1999: 30). Simbol dari entiti ini biasanya digambarkan dengan persegi panjang.
  1. Atribut
Setiap entitas pasti mempunyai elemen yang disebut atribut yang berfungsi untuk mendeskripsikan karakteristik dari entitas tersebut. Isi dari atribut mempunyai sesuatu yang dapat mengidentifikasikan isi elemen satu dengan yang lain. Gambar atribut diwakili oleh simbol elips.
  1. Hubungan / Relasi
Hubungan antara sejumlah entitas yang berasal dari himpunan entitas yang berbeda. Relasi dapat digambarkan sebagai berikut :
Relasi yang terjadi diantara dua himpunan entitas (misalnya A dan B) dalam satu basis data yaitu (Abdul Kadir, 2002: 48) :
1). Satu ke satu (One to one)
Hubungan relasi satu ke satu yaitu setiap entitas pada himpunan entitas A berhubungan paling banyak dengan satu entitas pada himpunan entitas B.
2). Satu ke banyak (One to many)
Setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B, tetapi setiap entitas pada entitas B dapat berhubungan dengan satu entitas pada himpunan entitas A.
3). Banyak ke banyak (Many to many)
Setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B.

Enterprise dalam Basis Data

Enterprise adalah bagian dunia nyata yang dimodelkan dengan menggunakan basis data. Bentuk entrprise dapat berupa individu atau badan hukum yang menjalankan tugas-tugasnya sehubungan dengan aktivitasnya sehari-hari. Sebagian contoh enterprise adalah objek-objek yang penting seperti sekolah, perpustakaan, rumah sakit, bank, dsb. Sedangkan aktivitas akademik, pengelolaan keuangan dalam toko, dan manajemen inventarisasi obat-obatan pada suatu apotik dapat disebut enterprise.

Kemudian DDL (Data Defeniton Language) menggambarkan data secara keseluruhan Operasi yang dapat dijalankan adalah membuat tabel baru, membuat indeks, mengubah tabel, menentukan struktur Lalu DDL mendefinisikan data apa saja yang akan di simpan dalam basis data dan menentukan bagaimana tersebut berelasi disimpan.

Sedangkan tugas DML (Data Manipulation Language) adalah membentuk perintah-perintah untuk masukan, keluaran, editing, analisis basis data. DML yang telah distandarisasikan disebut SQL (structure query language). DML kemudian mengaplikasikannya pada program aplikasi database atau SQL.

Keduanya kemudian menyimpan seluruh file pada hardisk atau basis data penggajian karyawan.
Himpunan kelompok data (arsip) yang saling berhubungan yang di organisasi sedemikian rupa agar kelak dapat di manfaatkan kembali dengan cepat dan mudah.

Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan yang tidak perlu, untuk memenuhi berbagai kebutuhan.
Kumpulan tabel/file/arsip yang saling berhubungan yang di simpan dalam media penyimpanan elektronis.

Stack

Stack  atau  tumpukan  adalah  suatu  stuktur  data  yang  penting  dalam pemrograman, bersifat LIFO (Last In First Out) dimana benda yang terakhir masuk ke dalam stack akan menjadi benda pertama yang dikeluarkan dari stack. Contohnya, karena kita menumpuk Compo di posisi terakhir, maka Compo akan menjadi elemen teratas dalam tumpukan. Sebaliknya, karena kita menumpuk Televisi pada saat pertama kali, maka elemen Televisi menjadi elemen terbawah dari tumpukan. Dan jika kita mengambil elemen dari tumpukan,  maka  secara  otomatis  akan  terambil  elemen  teratas,  yaitu Compo juga.

Operasi-operasi/fungsi Stack
  • Push (pengisian data) : digunakan untuk menambah item pada stack pada                                                    tumpukan paling atas
  • Pop (pengeluaran data) : digunakan untuk mengambil item pada stack pada                                                      tumpukan paling atas
  • Clear   :  digunakan untuk mengosongkan stack
  • IsEmpty  :  fungsi yang digunakan untuk mengecek apakah stack sudah                                      kosong
  • IsFull  :  fungsi  yang  digunakan  untuk  mengecek  apakah  stack  sudah penuh.                  Jangkauan top=0 s/d n-1
Stack dengan struktur array
  1. Mendefinisikan Stack dengan menggunakan struct
  2. Mendefinisikan MAX_STACK untuk maksimum isi stack
  3. Membuatlah variabel array data sebagai implementasi stack secara nyata
  4. Mendeklarasikan operasi-operasi/function di atas dan buat implemetasinya
Deklarasi STACK dengan struct dan array data
typedef struct STACK{
int top;             // Jangkauan top=0 s/d n-1
char data[10][10];
//misalkan  : data adalah array of string
//berjumlah  10 data, masing-masing string
//menampung maksimal  10 karakter

Deklarasi/buat variabel dari struct adalah STACK tumpuk;
Deklarasi MAX_STACK adalah  #define MAX_STACK  10, yang perhitungannya dimulai dari 0 sampai dengan 9.

Inisialisasi Stack

Pada mulanya isi top dengan  -1, karena array dalam C dimulai dari  0, yang berarti stack adalah kosong. Top  adalah suatu  variabel  penanda  dalam  STACK  yang  menunjukkan elemen  teratas  Stack  sekarang.    Top  Of  Stack  akan  selalu  bergerak hingga mencapai MAX of STACK sehingga menyebabkan stack penuh. Ilustrasi stack pada saat inisialisasi ditunjukkan pada gambar di bawah ini:
 

Fungsi isFull
Untuk memeriksa apakah stack sudah penuh, maka dapat dilakukan dengan cara   memeriksa   top   of   stack,   jika   sudah   sama   dengan MAX_STACK-1 maka full, jika belum (masih lebih kecil dari MAX_STACK-1) maka belum full. Seperti ditunjukkan gambar di bawah ini:
 

Fungsi Push
Untuk memasukkan elemen ke stack, selalu menjadi elemen teratas stack. Tambah satu (increment)   nilai top of stack terlebih dahulu setiap kali ada penambahan elemen stack, asalkan stack masih belum penuh, kemudian isikan  nilai  baru  ke  stack  berdasarkan  indeks  top  of  stack  setelah ditambah satu 

Fungsi Pop
Untuk mengambil elemen teratas dari stack.Ambil dahulu nilai elemen teratas stack dengan mengakses top of stack, tampilkan nilai yang akan diambil terlebih dahulu, baru didecrement nilai top of stack sehingga jumlah elemen stack berkurang.

Sintaks program fungsi POP adalah:
 

Fungsi Print
Untuk menampilkan semua elemen-elemen stack. Dengan cara looping semua nilai array secara terbalik, karena kita harus mengakses dari indeks array tertinggi terlebih dahulu baru ke indeks yang kecil!

Sintaks program fungsi Print:
void TampilStack(){
for(int i=tumpuk.top;i>=0;i–)  {
printf(“Data : %s\n”,tumpuk.data[i]);
}
}

Sort

Apa itu Sort ?
Sorting (Pengurutan) adalah proses mengatur sekumpulan obyek menurut urutan atau susunan tertentu. Urutan obyek tersebut dapat menaik atau menurun.
Apa keuntungan sort ?
Keuntungan Sorting adalah :
1. Mempercepat pencarian
2. Mudah menentukan data maksimum dan minimum
Sorting terdiri dari beberapa contoh :
1. Bubble Sort
2. Exchange Sort
3. Selection Sort
4. Insertion Sort
5. Merge Sort
6. Quick Sort  
  • Bubble Sort : 
Bubble sort adalah mengurutkan data dengan cara membandingkan elemen sekarang dengan elemen berikutnya.
Contoh Bubble Sort :  (Angka : 22 10 15 3 8 2)
›22 10 15 3 8 2
›10 22 15 3 8 2
›10 15 22 3 8 2
›10 15 3 22 8 2
›10 15 3 8 22 2
›10 15 3 8 2 22
Jadi  angka 22 harus ditukar dengan angka yang ada dibelakangnya sampai pengulangan 6 kali sesuai dengan jumlah angka yg ada. Angka 22 ditukar terus hingga terurut sesuai keinginan, apakah Sorting menurut Ascending (2 3 8 10 15 22) atau Descending (22 15 10 8 3 2).
  
  •  Exchange Sort :
Melakukan pembandingan antar data, dan melakukan pertukaran apabila urutan yang didapat belum sesuai. Bisa dikatakan Bubble sort sama dengan Exchange Sort karena kedua metode ini melakukan pertukaran berulang-ulang terhadap elemen data yang belum diurutkan.  
Contoh Exchange Sort : (Angka : 22 10 15 3 8 2)
22  10 15 3 8 2
10  22 15 3 8 2
10  22 15 3 8 2
  3  22 15 10 8 2
  2  22 15 10 8 3
Jadi angka yang ada diawal untuk ditukar akan menjadi pivot (urutan angka yg di blok).  Pivot akan terus berurutan hingga urutan angka tersusun sesuai Ascending (2 3 8 10 15 22) atau Descending (22 15 10 8 3 2).
  •  Selection Sort :
     Selection sort adalah mencari elemen yang tepat untuk diletakkan di posisi yang telah diketahui, dan meletakkannya di posisi tersebut setelah data tersebut ditemukan, Selection Sort Membandingkan elemen yang sekarang dengan elemen yang berikutnya sampai dengan elemen yang terakhir. Jika ditemukan elemen lain yang lebih kecil dari elemen sekarang
maka dicatat posisinya dan kemudian ditukar.
Contoh Selection Sort : (Angka : 11 3 7 22 30 44)
11 3 7 22 30 44
3 11 7 22 30 44
›3 7 11 22 30 44
›3 7 11 22 30 44
›3 7 11 22 30 44
3 7 11 22 30 44 
 
Pengurutan jenis ini begitu simple karena ia langsung mengurutkan data dari angka pertama yaitu 11 dengan cara menukarkannya dengan angka yang seharusnya berada paling depan . Ascending yaitu angka 3 atau Descending yaitu 22 sampai pengurutan itu selesai.
  •  Insertion Sort :
Pengurutan yang dilakukan dengan cara membandingkan dengan data ke-2 sampai data terakhir. Jika ditemukan data yang lebih kecil atau lebih besar maka data tersebut disisipkan kedepan sesuai posisi yang seharusnya.
Contoh Insertion Sort :
21 32 4 6 2 7 1
21 32 4 6 2 7 1
21 32 4 6 2 7 1
4 21 32 6 2 7 1
4 6 21 32 2 7 1
2 4 6 21 32 7 1
2 4 6 7 21 32 1
1 2 4 6 7 21 32
  

 
  •  Merge Sort :
Merupakan proses pengurutan data yang menggunakan merging dua buah vector. Pada proses merge sort, data dibuat sepasang-sepasang, yang terdiri dari dua elemen. Jika N ganjil, maka ada satu vector yang terdiri dari 1 elemen. Lalu kemudian data tersebut di merging sampai terurut.
Contoh Merge Sort : 






  
  • Quick Sort : 



Merupakan proses penyusunan elemen yang membandingkan suatu elemen (pivot) denan elemen yang lain, dan menyusunnya sedemikian rupa sehingga elemen –elemen lain yang lebih kecil dari pivot terletak disebelah kiri pivot. Dan elemen yang lebih besar dari pivot terletak disebelah kanan pivot. Dengan demikian akan terbentuk dua sublist, yang terletak disebelah kanan dan kiri pivot. Lalu pada sublist kiri dan kanan itu kita anggap sebuah list baru, dan kita kerjakan proses yang sama seperti yang sebelumnya. Demikian seterusnya sampai tidak terdapat sublist lagi.

Contoh Quick Sort :




Basis Data relasional

Basis Data relasional menggunakan tabel dua dimensi yang terdiri atas baris dan kolom untuk memberi gambaran sebuah berkas data. Adapun keuntungan Basis Data Relasional Bentuknya sederhana dan Mudah melakukan berbagai operasi data .

Istilah dalam Basis Data Relasional :

Relasi adalah Sebuah tabel yang terdiri dari beberapa kolom dan beberapa baris.
Atribut adalah Kolom pada sebuah relasi
Tupel adalah Baris pada sebuah relasi


Domain adalah Kumpulan nilai yang valid untuk satu atau lebih atribut
Derajat (degree) adalah Jumlah atribut dalam sebuah relasi
Cardinality adalah Jumlah tupel dalam sebuah relasi

Dalam Basis Data Relasional juga dikenal Relational Key , yang terdiri dari :

Super key yakni , Satu atribut/kumpulan atribut yang secara unik mengidentifikasi sebuah tupel di dalam relasi

Candidate key yakni, Atribut di dalam relasi yang biasanya mempunyai nilai unik dan merupakan Field-field yang bisa dipilih (dipakai) menjadi primary key.

- Primary key : Candidate key yang dipilih untuk mengidentifikasikan tupel secara unik dalam relasi dan merupakan Field yang mengidentifikasikan sebuah record dalam file, bersifat unik.




 
- Alternate key : Candidate key yang tidak dipilih sebagai primary key.

Foreign key merupakan Atribut dengan domain yang sama yang menjadi kunci utama pada sebuah relasi tetapi pada relasi lain atribut tersebut hanya sebagai atribut biasa . Foreign Key ini adalah Field yang bukan key, tetapi adalah key pada file yang lain.



Dalam Basis Data Relasional terdapat , Tiga Relational Integrity Rules yakni :

1. Null : Nilai suatu atribut yang tidak diketahui dan tidak cocok untuk baris (tuple) tersebut.

2. Entity Integrity : Tidak ada satu komponen primary key yang bernilai null.

3. Referential Integrity : Suatu domain dapat dipakai sebagai kunci primer bila merupakan atribut tunggal pada domain yang bersangkutan .

Demikian Pembahasan Komponen Basis Data Relasional yang terdapat dalam Sistem Basis Data , yang merupakan dasar Ilmu yang harus kita pahami dan cermati.

Array dan Set

Array adalah suatu variabel yang terdiri dari sekumpulan data dimana data-data tersebut mempunyai tipe data yang sama. Setiap data disimpan dalam alamat memori yang berbeda-beda dan disebut dengan elemen array. Setiap elemen mempunyai nilai indek sesuai dengan urutannya. Melalui indek inilah kita dapat mengakses data-data tersebut. Indek dari elemen array ini, baik dalam bahasa C++ maupun Java dimulai dari 0, bukan 1 seperti dalam bahasa Pascal.

Array memiliki 3 contoh :
 
1.Satu Dimensi  
2.Dua Dimensi  
3.Banyak Dimensi
  • Array satu dimensi adalah kumpulan elemen-elemen yang identik, yang tersusun dalam satu baris. Elemen mimiliki tipe yang sama tetapi isi dari elemen bisa sama dan berbeda
     
  • Dua Dimensi / Banyak dimensi biasa sering digunakan untuk menampilkan grafik yang berdasarkan kriteria-kriteria tertentu. contoh seperti deklarasi matrix.
Set adalah tipe data terstruktur yang terdiri dari elemen yang disebut anggota set. Anggota set memiliki urutan dan tidak boleh ada dua anggota set yang sama.Salah satu operasi dasar dalam set ialah menyatakan apakah suatu nilai tertentu merupakan anggota dari set tersebut.

Di dalam operasi set terdapat 4 contoh : 
1.Operasi Gabungan (Union), adalah operasi yang menggabungkan dua set menjadi satu,       dan tidak terjadi duplikat. 
2.Operasi Selisih (Difference), adalah operasi pada dua set, apabila elemen set pertama ada pada set kedua maka elemen pertama akan dihapus. Sehingga menghasilkan set pertama setelah penghapusan.  

3.Operasi Irisan (Intersection), adalah operasi yang membentuk set dengan keanggotaan dari dua set yang memiliki anggota yang sama.  

4.Operasi Relasi (Relational), selain operasi-operasi diatas, operasi relasi juga dapat digunakan dalam Set.

Matriks

Dalam matematika, matriks adalah kumpulan bilangan, simbol, atau ekspresi, berbentuk persegi panjang yang disusun menurut baris dan kolom. Bilangan-bilangan yang terdapat di suatu matriks disebut dengan elemen atau anggota matriks. Contoh matriks dengan 2 baris dan 3 kolom yaitu

\begin{bmatrix}1 & 9 & -13 \\20 & 5 & -6 \end{bmatrix}.
Pemanfaatan matriks misalnya dalam menemukan solusi sistem persamaan linear. Penerapan lainnya adalah dalam transformasi linear, yaitu bentuk umum dari fungsi linear, misalnya rotasi dalam 3 dimensi.

Matriks seperti halnya variabel biasa dapat dimanipulasi, seperti dikalikan, dijumlah, dikurangkan dan didekomposisikan. Dengan representasi matriks, perhitungan dapat dilakukan dengan lebih terstruktur.
A =
\begin{bmatrix}
a_{11} & a_{12} & a_{13} \\
a_{21} & a_{22} & a_{23} \\
a_{31} & a_{32} & a_{33} \\
\end{bmatrix}
\!

Operasi dasar

Penjumlahan dan pengurangan matriks

Penjumlahan dan pengurangan matriks hanya dapat dilakukan apabila kedua matriks memiliki ukuran atau tipe yang sama. Elemen-elemen yang dijumlahkan atau dikurangi adalah elemen yang posisi atau letaknya sama.
a_{ij} \pm b_{ij} = c_{ij}\!
atau dalam representasi dekoratfinya

\begin{bmatrix}
{3} & {4} \\
{6} & {5} \\

\end{bmatrix}
\!

\begin{bmatrix}
(a_{11} \pm b_{11}) & (a_{12} \pm b_{12}) & (a_{13} \pm b_{13}) \\
(a_{21} \pm b_{21}) & (a_{22} \pm b_{22}) & (a_{23} \pm b_{23}) \\
\end{bmatrix}
=
\begin{bmatrix}
c_{11} & c_{12} & c_{13} \\
c_{21} & c_{22} & c_{23} \\
\end{bmatrix}
\!

Perkalian skalar

Matriks dapat dikalikan dengan sebuah skalar.
\lambda\cdot A := (\lambda\cdot a_{ij})_{i=1, \ldots , m; \ j=1, \ldots , n}
Contoh perhitungan :
5 \cdot
  \begin{pmatrix}
    1 & -3 & 2 \\
    1 &  2 & 7
  \end{pmatrix}
  =
  \begin{pmatrix}
   5 \cdot 1 & 5 \cdot (-3) & 5 \cdot 2 \\
   5 \cdot 1 & 5 \cdot   2  & 5 \cdot 7
  \end{pmatrix}
  =
  \begin{pmatrix}
    5 & -15 & 10 \\
    5 & 10  & 35
  \end{pmatrix}

Perkalian matriks

Matriks dapat dikalikan, dengan cara tiap baris dikalikan dengan tiap kolom, lalu dijumlahkan pada baris yang sama.
 c_{ij}=\sum_{k=1}^m a_{ik}\cdot b_{kj}
Contoh perhitungan :

  \begin{pmatrix}
    1 & 2 & 3 \\
    4 & 5 & 6 \\
  \end{pmatrix}
  \cdot
  \begin{pmatrix}
    6 & -1 \\
    3 & 2 \\
    0 & -3
  \end{pmatrix}
  =
  \begin{pmatrix}
     1 \cdot 6  +  2 \cdot 3  +  3 \cdot 0 &
     1 \cdot (-1) +  2 \cdot 2 +  3 \cdot (-3) \\
     4 \cdot 6  +  5 \cdot 3  +  6 \cdot 0 &
     4 \cdot (-1) +  5 \cdot 2 +  6 \cdot (-3) \\
  \end{pmatrix}
  =
  \begin{pmatrix}
    12 & -6 \\
    39 & -12
  \end{pmatrix}