Selasa, 19 Februari 2013

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 :