Minggu, 17 November 2013

Kubus Bertekstur dengan OPEN-GL

           Kali ini, saya akan memberikan contoh cara membuat kubus bertekstur menggunakan OPENGL. Software yang saya gunakan adalah DEV-C++. Untuk Project lengkap, dapat anda download pada link berikut ini.
Klik Disini
1.         Ekstrak cubes.rar yang telah anda download.


2.     Buat project baru menggunakan DEV-C++.

3.    Copy isi folder cubes ke folder project anda.


4.     Lalu pada folder cubes yang telah anda download tadi, buka main.cpp menggunakan notepad.
Lalu paste pada main.cpp project anda tadi.

5.    Lalu klik kanan pada project anda. Pilih Add to Project.

6.   Lalu pilih imageloader.cpp yang berfungsi untuk meload tekstur gambar pada kubus.

7.    Apabila sudah, coba Compile and Run program anda.
        Apabila berhasil, maka program anda akan menjadi seperti di bawah ini.
       Contoh .gif dapat anda lihat  Disini


NB : Penjelasan dari setiap fungsi sudah tedapat dalam coding. Jadi, unduh saja file projectnya.
        Jika anda ingin menggantinya dengan gambar anda, anda hanya tinggal mengganti rheza.bmp,                         yanuar.bmp, dan priyoko.bmp yang terdapat di dalam project anda tetapi usahakan file gambar
        HARUS berformat .bmp 24 bit dan berukuran 256x256 pixel. Selain format dan ukuran tersebut, saya         tidak menjamin gambar anda akan terload sempurna. Jadi usahakan sesuai dengan format dan ukuran           di atas. ^_^

Credit :
              Yanuar W. P.            672012014
              Rheza Winahyu         672012060
              Priyoko                     672012126

Thanks To : Kak Evangs yang sudah mengajarkan OPENGL kepada kami.. ^_^











»»  READMORE...

Sabtu, 09 Maret 2013

Normalisasi dan Denormalisasi Data



1.    Pengertian Normalisasi Data
               Normalisasi adalah proses pengelompokan data ke dalam bentuk tabel atau relasi atau file untuk menyatakan entitas dan hubungan mereka, sehingga terwujud satu bentuk basis data yang mudah untuk di modifikasi.
               Normalisasi adalah suatu prosses untuk mengidentifikasi “tabel” kelompok atribut yang memiliki ketergantungan sangat tinggi antara satu atribut dengan atribut lainnya. 
               Secara garis besar, dapat disimpulkan normalisasi adalah sebuah proses yang digunakan untuk membentuk struktur basis data agar terhindar dari ambiguitas sehingga lebih efisien

·      Manfaat dan Tujuan Normalisasi
a.    Untuk menghilangkan kerangkapan data
b.   Untuk mengurangi kompleksitas
c.    Untuk mempermudah pemodifikasian data
d.   Meminimalkan jumlah penggunaan storage space
e.    Meminimalkan inkonsistensi data dalam suatu basis data
f.     Menghilangkan anomali yang berkaitan dengan modifikasi data: operasi insert,update,delete.
g.    Memaksimalkan stabilitas dari struktur data sehingga mengurangi kebutuhan modifikasi skema dimasa datang

2.    Tahapan Normalisasi Data
a.       Bentuk Normal Tahap Pertama (1st Normal Form / 1NF)
Aturan :
·       Tidak adanya atribut multi-valueatribut komposit atau kombinasinya.
·       Mendefinisikan atribut kunci.
·       Setiap atribut dalam tabel tersebut harus bernilai atomic (tidak dapat dibagi-bagi lagi)
Contoh 1 (atribut multi-value)
Misal data mahasiswa sbb:

Atau:

Tabel-tabel di atas tidak memenuhi syarat 1NF
Didekomposisi menjadi:
Ø    Tabel Mahasiswa


Ø    Tabel Hobi


b.      Bentuk Normal Tahap Kedua (2nd Normal Form / 2NF)
Aturan :
·       Sudah memenuhi dalam bentuk normal kesatu (1NF)
·       Semua atribut bukan kunci hanya boleh tergantung (functional dependency)  pada atribut kunci
·       Jika ada ketergantungan  parsial maka atribut tersebut harus dipisah pada tabel yang lain
·       Perlu ada tabel penghubung ataupun kehadiran foreign key bagi atribut-atribut yang telah dipisah tadi
Contoh
Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF:

Ø    Tidak memenuhi 2NF, karena {Mhs_nrp, mk_kode} yang dianggap sebagai primary key sedangkan:
                {Mhs_nrp, mk_kode}        Ã        mhs_nama
                {Mhs_nrp, mk_kode}        Ã      mhs_alamat
                {Mhs_nrp, mk_kode}        Ã      mk_nama
                {Mhs_nrp, mk_kode}        Ã      mk_sks
                {Mhs_nrp, mk_kode}        Ã        nihuruf
Ø    Tabel di atas perlu didekomposisi menjadi beberapa tabel yang memenuhi syarat 2NF
Functional dependencynya sbb:
{Mhs_nrp, mk_kode}         Ã     nihuruf                                   (fd1)
Mhs_nrp                             à    {mhs_nama, mhs_alamat}      (fd2)
Mk_kode                           Ã     {mk_nama, mk_sks}              (fd3)
fd1         (mhs_nrpmk_kode, nihuruf)                   Ã  Tabel Nilai
fd2         (Mhs_nrp, mhs_nama, mhs_alamat)         Ã  Tabel Mahasiswa
fd3         (mk_kode, mk_nama, mk_sks)                Ã  Tabel MataKuliah

c.       Bentuk Normal Tahap (3rd Normal Form / 3NF)
Aturan :
·       Sudah berada dalam bentuk normal  kedua (2NF)
·       Tidak ada ketergantungan transitif (dimana atribut bukan kunci tergantung  pada atribut bukan kunci lainnya).
Contoh
Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF:
Mahasiswa

Ø    karena masih terdapat atribut non primary key (yakni alm_kota dan alm_Provinsi) yang memiliki ketergantungan terhadap atribut non primary key yang lain (yakni alm_kodepos):
alm_kodepos Ã  {alm_Provinsi, alm_kota}
Ø    Sehingga tabel tersebut perlu didekomposisi menjadi:
      Mahasiswa (Nrp, nama, alm_jalan, alm_kodepos)
      Kodepos (alm_kodepos, alm_provinsi, alm_kota)
                Tabel-tabel yang memenuhi kriteria normalisasi ketiga, sudah siap diimplementasikan. Sebenarnya masih ada lagi bentuk normalisasi yang lain; Normalisasi Boyce-Codd, 4NF, 5NF, hanya saja jarang dipakai. Pada kebanyakan kasus, normalisasi hanya sampai ketiga.
d.      Bentuk Normal Tahap (4th Normal Form / 4NF)
Aturan :
·           Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk       BCNF, dan tabel tersebut tidak boleh memiliki lebih dari sebuah multivalued atribute
·           Untuk setiap multivalued dependencies (MVD) juga harus merupakan functional dependencies
Contoh
Misal, tabel berikut tidak memenuhi 4NF:

Setiap employee dapat bekerja di lebih dari project dan dapat memiliki lebih dari satu skill. Untuk kasus seperti ini tabel tersebut harus di-dekomposisi menjadi:
(Employee, Project)
(Employee, Skill)

e.      Bentuk Normal Tahap (5th Normal Form / 5NF)
Aturan :
·         Bentuk normal 5NF terpenuhi jika tidak dapat memiliki sebuah lossless decomposition menjadi tabel-tabel yg lebih kecil.
·         Jika 4 bentuk normal sebelumnya dibentuk berdasarkan functional dependency, 5NF dibentuk berdasarkan konsep join dependence. Yakni apabila sebuah tabel telah di-dekomposisi menjadi tabel-tabel lebih kecil, harus bisa digabungkan lagi (join) untuk membentuk tabel semula


3.    Contoh Penerapan Normalisasi Data
      Contoh Studi Kasus Normalisasi Data I

Untuk mendapatkan hasil yang paling normal, maka proses normalisasi dimulai dari normal pertama.
Field-field tabel di atas yang merupakan group berulang : NoPegawaiNamaPegawaiGolonganBesarGaji.

a.       Normalisasi pertama
Solusinya hilangkan duplikasi dengan mencari ketergantungan parsial. menjadikan field-field menjadi tergantung pada satu atau beberapa fieldKarena yang dapat dijadikan kunci adalah NoProyek dan NoPegawai, maka langkah kemudian dicari field-field mana yang tergantung pada NoProyek dan mana yang tergantung pada NoPegawai.Karena yang dapat dijadikan kunci adalah NoProyek dan NoPegawai, maka langkah kemudian dicari field-field mana yang tergantung pada NoProyek dan mana yang tergantung pada NoPegawai.


b.      Normalisasi Kedua
Field-field yang tergantung pada satu field haruslah dipisah dengan tepat, misalnya NoProyek menjelaskan NamaProyek dan NoPegawai menjelaskan NamaPegawaiGolongan dan BesarGaji.

TABEL PROYEK

                 TABEL PEGAWAI

Untuk membuat hubungan antara dua tabel, dibuat suatu tabel yang berisi key-key dari tabel yang lain.        

                TABEL PROYEKPEGAWAI



c.       Normalisasi Ketiga

Pada tabel diatas masih terdapat masalah, bahwa BesarGaji  tergantung kepada Golongan nya. Padahal disini Golongan bukan merupakan field kunci. Artinya kita harus memisahkan field non-kunci Golongan dan BesarGaji yang tadinya tergantung secara parsial kepada field kunci NoPegawai, untuk menghilangkan ketergantungan transitif.
TABEL PROYEK

TABEL PROYEKPEGAWAI


TABEL PEGAWAI


TABEL GOLONGAN

4.    Pengertian Denormalisasi Data
       Denormalisasi merupakan proses yang dilakukan pada database yang sudah dinormalisasi, dengan cara memodifikasi struktur tabel dan mengabaikan kerangkapan data (yang terkontrol) untuk meningkatkan kinerja database.
       Denormalisasi database adalah pelanggaran aturan normalisasi atau menjabarkan suatu tataan database yang telah normal untuk meningkatkan performa pengaksesan data pada database. Database yang telah normal disini dimaksudkan database yang redundansi datanya minim sehingga data yang disimpan tidak mengalami kerancuan dalam proses pengaksesan.

5.    Tahapan dalam Denormalisasi Data
Denormalisasi dapat menggunakan dua cara yaitu :
·      Dengan pembuatan kolom baru pada tabel / mengabungkan kolom pada tabel satu dengan yang lain.
·      Dengan pembuatan tabel baru

Cara yang pertama dilakukan apabila data yang didenormalisasi hanya kecil dan digunakan untuk mempermudah pengaksesan data apabila diakses dalam satu tabel. Sedangkan yang kedua dilakukan apabila data yang terdapat dalam tabel tersebut merupakan rangkuman / rekapitulasi dari satu atau beberapa tabel yang pengaksesannya terpisah dari tabel yang ada.
   
6.    Contoh Penerapan Denormalisasi Data
Contoh Denormalisasi data
Atribut turunan

Dari contoh diatas, bagaimana jika data mahasiswa sangat banyak sedangkan proses untuk menampilkan jumlah matakuliah, jumlah sks ataupun IPK sering dilakukan, akan memerlukan banyak waktu.
Untuk itu perlu ditambahkan atribut baru pada tabel mahasiswa (total_sks,total_matkul,ipk)

7.    Pengertian Boyce-Codde Method
          Setiap atribut harus bergantung fungsi pada atribut superkey. BCNF merupakan bentuk normal sebagai perbaikan terhadap 3 NF. Suatu relasi yang memenuhi BCNF selalu memenuhi 3 NF, tetapi tidak untuk sebaliknya. Suatu relasi yang memenuhi 3 NF belum tentu memenuhi BCNF. Karena bentuk 3 NF masih memungkinkan terjadi anomali.
          Suatu relasi disebut memenuhi BCNF jika dan hanya jika setiap determinan yang ada pada relasi tersebut adalah candidate key.       
·      Tujuan membentuk BCNF :
a.    semantik multiple candidate key menjadi lebih eksplisit (FD hanya pada candidate key).
b.    menghindari update anomali yang masih mungkin terjadi pada 3NF

8.    Tahapan dalam Boyce-Codde
Tahapan BCNF adalah :
a.    Harus Memenuhi bentuk 3 NF (normal ketiga).
b.   Semua penentu (determinan) adalah candidate key (atribut yang bersifat unik).

Pada contoh berikut ini terdapat tabel SEMINAR, kunci primer adalah no_siswa + seminar, dengan pengertian bahwa :

·         Siswa dapat mengambil satu atau dua seminar.
·         Setiap seminar membutuhkan 2 instruktur.
·         Setiap siswa dibimbing oleh salah satu dari 2 instruktur seminar.
·         Setiap instruktur diperbolehkan hanya mengambil satu seminar saja.

Pada contoh ini, no_siswa dan seminar menunjukkan seorang instruktur.

Bentuk tabel SEMINAR adalah memenuhi bentuk normal ketiga (3 NF), tetapi tidak BCNF karena nomor seminar masih bergantung fungsi pada instruktur, jika setiap instruktur dapat mengajar hanya pada satu seminar. Seminar bergantung fungsi pada satu atribute bukan superkey seperti yang disyaratkan oleh BCNF. Maka tabel SEMINAR harus didekomposisi menjadi dua tabel, yaitu tabel pengajar dan seminar_instruktur, seperti berikut ini :



»»  READMORE...