Teman-teman ada yang menyukai Coding ???
kalau ada yang menyukai coding mari bersama-sama kita NGODING ! :D
Ini merupakan coding untuk membuat seperti diatas "KUBIS BERGAMBAR" !!


KUBUS

#include <iostream>
#include <stdlib.h>

#ifdef __APPLE__
#include <OpenGL/OpenGL.h>
#include <GLUT/glut.h>
#else
#include <GL/glut.h>
#endif

#include "imageloader.h"

using namespace std;

const float BOX_SIZE = 9.0f; // Panjang sisi Kubus
float _angle = 5;            // Rotasi kubus


GLuint _a;         
GLuint _b;         
GLuint _c;         
GLuint _d;         
GLuint _e;         
GLuint _f;         
//ID_txture OpenGL untuk 6 gambar


void handleKeypress(unsigned char key, int x, int y) {
    switch (key) {
        case 27:         
            exit(0);
    }
}

//Membuat gambar menjadi tekstur kemudian berikan ID pada tekstur
GLuint loadTexture(Image* image) {
    GLuint textureId;
    glGenTextures(1, &textureId);
    glBindTexture(GL_TEXTURE_2D, textureId);
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, image->width, image->height, 0, GL_RGB, GL_UNSIGNED_BYTE, image->pixels);
    return textureId;
}


void initRendering() {
    glEnable(GL_DEPTH_TEST);
    glEnable(GL_LIGHTING);
    glEnable(GL_LIGHT0);
    glEnable(GL_NORMALIZE);
    glEnable(GL_COLOR_MATERIAL);
   
    Image* Hart  = loadBMP("Hart.bmp");                // Gambar 1
    Image* logo_UKSW = loadBMP("logo-UKSW.bmp");    // Gambar 2
    Image* Yollan = loadBMP("Yol.bmp");                // Gambar 3
    Image* K2i = loadBMP("k2i.bmp");                // Gambar 4
    Image* Markus = loadBMP("Markus.bmp");          // Gambar 5
    Image* KanfakFTI = loadBMP("KanfakFTI.bmp");    // Gambar 6
    // 6 Gambar di atas harus dimuat dalam satu folder dalam project dan bertipe 24-bit Bipmap (*.bmp; *.dip;) .

    _a = loadTexture(Hart);
    _b = loadTexture(logo_UKSW);
    _c = loadTexture(Yollan);
    _d = loadTexture(K2i);
    _e = loadTexture(Markus);
    _f = loadTexture(KanfakFTI);
    delete Hart;
}

void handleResize(int w, int h) {
    glViewport(0, 0, w, h);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(30.0, (float)w / (float)h, 20.0, 100.0);
}

void drawScene() {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
   
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
   
    glTranslatef(0.0f, 0.0f, -30.0f);
   
    GLfloat ambientLight[] = {0.3f, 0.3f, 0.3f, 1.0f};
    glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambientLight);
   
    GLfloat lightColor[] = {0.7f, 0.7f, 0.7f, 1.0f};
    GLfloat lightPos[] = {-2 * BOX_SIZE, BOX_SIZE, 4 * BOX_SIZE, 1.0f};
    glLightfv(GL_LIGHT0, GL_DIFFUSE, lightColor);
    glLightfv(GL_LIGHT0, GL_POSITION, lightPos);
   
    glRotatef(-_angle, 30.0f, 40.0f, 20.0f);
   
    //Sisi atas Kubus
    glEnable(GL_TEXTURE_2D);
    glBindTexture(GL_TEXTURE_2D, _a); // Pemanggilan ID_texture gambar (Hart) dan ditampilkan di sisi kubus atas
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    glColor3f(1.0f, 1.0f, 1.0f);
    glBegin(GL_QUADS);
   
    glTexCoord2f(0.0f, 0.0f);
    glNormal3f(0.0, 1.0f, 0.0f);
        glVertex3f(-BOX_SIZE / 2, BOX_SIZE / 2, -BOX_SIZE / 2);
    glTexCoord2f(1.0f, 0.0f);
        glVertex3f(-BOX_SIZE / 2, BOX_SIZE / 2, BOX_SIZE / 2);
    glTexCoord2f(1.0f, 1.0f);
        glVertex3f(BOX_SIZE / 2, BOX_SIZE / 2, BOX_SIZE / 2);
    glTexCoord2f(0.0f, 1.0f);
        glVertex3f(BOX_SIZE / 2, BOX_SIZE / 2, -BOX_SIZE / 2);
    glEnd();
   
    //glBegin(GL_QUADS);

    //Sisi bawah Kubus
      glEnable(GL_TEXTURE_2D);
    glBindTexture(GL_TEXTURE_2D, _b);       // Pemanggilan ID_texture gambar (logo_UKSW) dan ditampilkan di sisi kubus bawah
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    glColor3f(1.0f, 1.0f, 1.0f);


    glBegin(GL_QUADS);
    glTexCoord2f(0.0f, 0.0f);
    glNormal3f(0.0, -1.0f, 0.0f);
            glVertex3f(-BOX_SIZE / 2, -BOX_SIZE / 2, -BOX_SIZE / 2);
    glTexCoord2f(1.0f, 0.0f);
            glVertex3f(BOX_SIZE / 2, -BOX_SIZE / 2, -BOX_SIZE / 2);
    glTexCoord2f(1.0f, 1.0f);
            glVertex3f(BOX_SIZE / 2, -BOX_SIZE / 2, BOX_SIZE / 2);
    glTexCoord2f(0.0f, 1.0f);
            glVertex3f(-BOX_SIZE / 2, -BOX_SIZE / 2, BOX_SIZE / 2);
    glEnd();
   
    //Sisi kiri
    glEnable(GL_TEXTURE_2D);
    glBindTexture(GL_TEXTURE_2D, _c);        // Pemanggilan ID_texture gambar (Yollan) dan ditampilkan di sisi kubus kiri
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    glColor3f(1.0f, 1.0f, 1.0f);

    glBegin(GL_QUADS);
    glNormal3f(-1.0, 0.0f, 0.0f);
    glTexCoord2f(0.0f, 0.0f);
            glVertex3f(-BOX_SIZE / 2, -BOX_SIZE / 2, -BOX_SIZE / 2);
    glTexCoord2f(1.0f, 0.0f);
            glVertex3f(-BOX_SIZE / 2, -BOX_SIZE / 2, BOX_SIZE / 2);
    glTexCoord2f(1.0f, 1.0f);
            glVertex3f(-BOX_SIZE / 2, BOX_SIZE / 2, BOX_SIZE / 2);
    glTexCoord2f(0.0f, 1.0f);
            glVertex3f(-BOX_SIZE / 2, BOX_SIZE / 2, -BOX_SIZE / 2);
    glEnd();
   
    //Sisi kanan
    glEnable(GL_TEXTURE_2D);
    glBindTexture(GL_TEXTURE_2D, _d);        // Pemanggilan ID_texture gambar (K2i) dan ditampilkan di sisi kubus kanan
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    glColor3f(1.0f, 1.0f, 1.0f);

    glBegin(GL_QUADS);
    glNormal3f(1.0, 0.0f, 0.0f);
    glTexCoord2f(0.0f, 0.0f);
            glVertex3f(BOX_SIZE / 2, -BOX_SIZE / 2, -BOX_SIZE / 2);
    glTexCoord2f(1.0f, 0.0f);
            glVertex3f(BOX_SIZE / 2, BOX_SIZE / 2, -BOX_SIZE / 2);
    glTexCoord2f(1.0f, 1.0f);
            glVertex3f(BOX_SIZE / 2, BOX_SIZE / 2, BOX_SIZE / 2);
    glTexCoord2f(0.0f, 1.0f);
            glVertex3f(BOX_SIZE / 2, -BOX_SIZE / 2, BOX_SIZE / 2);
    glEnd();
   
    //Sisi depan
    glEnable(GL_TEXTURE_2D);
    glBindTexture(GL_TEXTURE_2D, _e);       // Pemanggilan ID_texture gambar (Markus) dan ditampilkan di sisi kubus depan
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    glColor3f(1.0f, 1.0f, 1.0f);

    glBegin(GL_QUADS);
    glNormal3f(0.0, 0.0f, 1.0f);
    glTexCoord2f(0.0f, 0.0f);
            glVertex3f(-BOX_SIZE / 2, -BOX_SIZE / 2, BOX_SIZE / 2);
    glTexCoord2f(1.0f, 0.0f);
            glVertex3f(BOX_SIZE / 2, -BOX_SIZE / 2, BOX_SIZE / 2);
    glTexCoord2f(1.0f, 1.0f);
            glVertex3f(BOX_SIZE / 2, BOX_SIZE / 2, BOX_SIZE / 2);
    glTexCoord2f(0.0f, 1.0f);
            glVertex3f(-BOX_SIZE / 2, BOX_SIZE / 2, BOX_SIZE / 2);
    glEnd();

    //Sisi belakang
    glEnable(GL_TEXTURE_2D);
    glBindTexture(GL_TEXTURE_2D, _f);       // Pemanggilan ID_texture gambar (KanfakFTI) dan ditampilkan di sisi kubus belakang
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    glColor3f(1.0f, 1.0f, 1.0f);

    glBegin(GL_QUADS);
    glNormal3f(0.0, 0.0f, -1.0f);
    glTexCoord2f(0.0f, 0.0f);
            glVertex3f(-BOX_SIZE / 2, -BOX_SIZE / 2, -BOX_SIZE / 2);
    glTexCoord2f(1.0f, 0.0f);
            glVertex3f(-BOX_SIZE / 2, BOX_SIZE / 2, -BOX_SIZE / 2);
    glTexCoord2f(1.0f, 1.0f);
            glVertex3f(BOX_SIZE / 2, BOX_SIZE / 2, -BOX_SIZE / 2);
    glTexCoord2f(0.0f, 1.0f);
            glVertex3f(BOX_SIZE / 2, -BOX_SIZE / 2, -BOX_SIZE / 2);
    glEnd();
    glDisable(GL_TEXTURE_2D);
    glutSwapBuffers();
}

//Rotasi 50 m/s
void update(int value) {
    _angle += 2.0f;
    if (_angle > 360) {
        _angle -= 360;
    }
    glutPostRedisplay();
    glutTimerFunc(25, update, 0);
}

int main(int argc, char** argv) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
    glutInitWindowSize(500, 500);
   
    glutCreateWindow("<Hart><Yollan><Markus>");
    initRendering();
   
    glutDisplayFunc(drawScene);
    glutKeyboardFunc(handleKeypress);
    glutReshapeFunc(handleResize);
    glutTimerFunc(25, update, 0);
   
    glutMainLoop();
    return 0;
}

Materi 2 Sistem Basis Data



Sistem berasal dari bahasa Latin (systēma) dan bahasa Yunani (sustēma) adalah suatu kesatuan yang terdiri komponen atau elemen yang dihubungkan bersama untuk memudahkan aliran informasi, materi atau energi untuk mencapai suatu tujuan. Istilah ini sering dipergunakan untuk menggambarkan suatu set entitas yang berinteraksi, di mana suatu model matematika seringkali bisa dibuat.

Pengertian sistem menurut sejumlah para ahli :
1. L. James Havery
Menurutnya sistem adalah prosedur logis dan rasional untuk merancang suatu rangkaian komponen yang berhubungan satu dengan yang lainnya dengan maksud untuk berfungsi sebagai suatu kesatuan dalam usaha mencapai suatu tujuan yang telah ditentukan.
2. John Mc Manama
Menurutnya sistem adalah sebuah struktur konseptual yang tersusun dari fungsi-fungsi yang saling berhubungan yang bekerja sebagai suatu kesatuan organik untuk mencapai suatu hasil yang diinginkan secara efektif dan efesien.
3. C.W. Churchman.
Menurutnya sistem adalah seperangkat bagian-bagian yang dikoordinasikan untuk melaksanakan seperangkat tujuan.
4. J.C. Hinggins
Menurutnya sistem adalah seperangkat bagian-bagian yang saling berhubungan.
5. Edgar F Huse dan James L. Bowdict
Menurutnya sistem adalah suatu seri atau rangkaian bagian-bagian yang saling berhubungan dan bergantung sedemikian rupa sehingga interaksi dan saling pengaruh dari satu bagian akan mempengaruhi keseluruhan.

6. Sistem Menurut Jogianto (2005: 2)
mengemukakan bahwa sistem adalah kumpulan dari elemen-elemen yang berinteraksi untuk mencapai suatu tujuan tertentu.
 7. Sistem Menurut Jerry FutzGerald, (1981 : 5) Sistem adalah suatu jaringan kerja dari  prosedur-prosedur yang saling berhubungan, berkumpul bersama-sama untuk melakukan suatu kegiatan atau untuk menyelesaikan suatu sasaran yang tertentu.

Definisi dari Sistem Basis Data secara umum , yakni sebuah tatanan (keterpaduan) yang terdiri atas sejumlah komponen fungsional (dengan satuan fungsi/tugas tertentu) yang saling berhubungan dan secara bersama-sama bertujuan untuk memenuhi suatu proses / pekerjaan tertentu.
Sistem Basis Data adalah kumpulan file / table yang saling berhubungan (dalam sebuah basis data di sebuah sistem komputer), dan sekumpulan program (DBMS / Database Management Sistem) yang memungkinkan beberapa user (pemakai), dan atau program lain  untuk mengakses dan memanipulasi file (table) tersebut.

A.    KOMPONEN
Komponen Komponen Sistem Basis Data terdiri dari 6 (enam) Komponen , yakni :
1.      Hardware
Biasanya berupa perangkat komputer standar, media penyimpan sekunder dan media komunikasi untuk sistem jaringan, seperti prosesor, memori & harddisk. Komponen inilah yang melakukan pemrosesan dan juga untuk menyimpan basis data.
2.      Operating System
Yakni merupakan perangkat lunak yang memfungsikan, mengendalikan seluruh sumber daya dan melakukan operasi dasar dalam sistem komputer. Harus sesuai dengan DBMS yang digunakan.
3.      Database
Yakni basis data yang mewakili sistem tertentu untuk dikelola. Sebuah sistem basis data bisa terdiri dari lebih dari satu basis data.
4.      DBMS (Database Management System)
Perangkat lunak yang digunakan untuk mengelola basis data. Contoh kelas sederhana: dBase, Foxbase, Rbase, MS. Access, MS. Foxpro, Borland Paradox. Contoh kelas kompleks: Borland-Interbase, MS. SQL Server, Oracle, Informix, Sybase.
5.      User ( Pengguna Sistem Basis Data )
Orang-orang yang berinteraksi dengan sistem basis data, mulai dari yang merancang sampai yang menggunakan di tingkat akhir.
6.      Optional Software
Perangkat lunak pelengkap yang mendukung. Bersifat opsional.

B.     ABSTRASI DATA
Salah satu tujuan dari DBMS adalah untuk menyediakan fasilitas/antarmuka (interface) kepada user.untuk itu system tersebut akan menyembunyikan detail tentang bagaimana data disimpan dan dipelihara, sehingga data yang terlihatoleh user sebenarnya berbeda dengan yang tersimpan secara fisik.
Abstraksi data merupakan tingkatan-tingkatan pengguna dalam memandang bagaimana sebenarnya data diolah dalam sebuah sistem database sehingga menyerupai kondisi yang sebenarnya dihadapi oleh pengguna sehari-hari..
Sebuah DBMS seringkali menyembunyikan detail tentang bagaimana sebuah data disimpan dan dipelihara (diolah) dalam sebuah sistem database, dengan tujuan untuk memudahkan pengguna dalam menggunakan DBMS tersebut. Karena itu seringkali data yang terlihat oleh pemakai sebelumnya berbeda dengan yang tersimpan secara fisik.


Terdapat 3 level abstraksi :
1.      Level Fisik (Physical Level)
Lapis fisik merupakan lapis terendah, lapis ini menjelaskan bagaimana (how) data sesungguhnya disimpan. Pada lapis inilah struktur data dijabarkan secara rinci.
2.      Level Logik / Konseptual (Conceptual Level)
Lapis konseptual lebih tinggi dari lapis fisik. Lapis ini menjabarkan data apa (what) saja yang sesungguhnya disimpan pada basisdata, dan juga menjabarkan hubungan-hubungan antardata secara keseluruhan. Seorang pengguna dalam level ini dapat mengetahui bahwa data mahasiswa disimpan pada tabel mahasiswa, tabel krs, tabel transkrip dan lain sebagainya. Level ini biasa dipakai oleh DBA.
3.      Level Penampakan/pandangan (View Level)
Lapis pandangan merupakan lapis tertinggi pada abstraksi data. Pada lapis ini pengguna hanya mengenal struktur data yang sederhana, yang berorientasi pada kebutuhan pengguna. Data yang dikenal oleh masing-masing pengguna bisa berbeda-beda dan barangkali hanya mencakup sebagian dari basis data. Misalnya: Bagian keuangan hanya membutuhkan data keuangan, jadi yang digambarkan hanya pandangan terhadap data keuangan saja, begitu juga dengan bagian akuntansi, hanya membutuhkan data akuntansi saja. Jadi tidak semua pengguna database membutuhkan seluruh informasi yang terdapat dalam database tersebut.



C.     MANFAAT
Pemanfaaatan Ilmu Basis Data
Bidang Fungsional :
  • Kepegawaian
  • Pergudangan (inventory) 
  • Akuntansi  
  • Reservasi 
  • Layanan pelanggan
Bentuk Perusahan :
  • Perbankan 
  • Rumah Sakit 
  • Produsen Barang 
  • Sekolah 
  • Telekomunikasi

Manfaat Sistem Basis Data :
  •   Kemandirian data
  • Akses Data efisien
  • Integritas dan keamanan data
  • Administrasi data
  • Akses Konkruen dan Crash Recovery
  • Waktu Pengembangan aplikasi terkurangi

Materi 3 Sistem Basis Data



A.    PENGERTIAN
1.      Entitas
Entitas menurut Wikipedia, adalah sesuatu yang memiliki keberadaan yang unik dan berbeda, walaupun tidak harus dalam bentuk fisik. Abstraksi, misalnya, biasanya dianggap juga sebagai suatu entitas.
Definisi lainnya, Entitas : Kelompok objek independen yang dapat diidentifikasi dan memiliki kesamaan properti. Entitas dapat berupa objek nyata atau objek konseptual,. contoh:
  •   Objek nyata 
  • Staf Kantor Cabang 
  • Pelanggan Produk 
  • Objek konseptual
  •  Pembelian Pengalaman Kerja
  •  Inspeksi Pendaftaran
Entitas dinyatakan dengan nama dan daftar properti.

2.       Record/tuple
Record atau Rekaman data, merupakan kumpulan elemen data, atau kumpulan beberapa nilai Atribut, atau kumpulan Field-data yang mewakili satu Entitas secara lengkap. Misalnya: Entitas pegawai memiliki record: NIP, Nama, Alamat, Pangkat, Jabatan, dsb.

3.       Field/atribut
Atribut adalah deskripsi data yang bisa mengidentifikasi entitas yang membedakan entitas tersebut dengan entitas yang lain. Seluruh atribut harus cukup untuk menyatakan identitas obyek, atau dengan kata lain, kumpulan atribut dari setiap entitas dapat mengidentifikasi keunikan suatu individu. Atribut adalah karakteristik dari entitas tersebut. Contoh entitas Nasabah, atributnya adalah : Kode Nasabah, Nama Nasabah, Alamat Nasabah.

4.       Relasi
Relasi adalah hubungan antara tabel yang merepresentasikan hubungan antar obyek di dunia nyata. Relasi menyatakan hubungan antar entitas, termasuk terhadap entitas itu sendiri (rekursif).
Penentuan jenis relasi antar entitas diperoleh dalam pengamatan business rule (aturan bisnis).
Jenis – jenis  Relasi antar Entitas :
1.  Satu ke satu (one to one)
Setiap data pada entitas A berhubungan dengan maksimal satu data pada entitas B, begitu pula sebaliknya.
2.  Satu ke banyak (one to many) atau Banyak ke satu (many to one)
Setiap data pada entitas A bisa berhubungan dengan banyak data pada entitas B, tetapi data pada entitas B berhubungan maksimal hanya dengan sebuah data di A.
3.  Banyak ke banyak (many to many)
Setiap data pada entitas A bisa berhubungan dengan banyak data pada entitas B, demikian pula sebaliknya.

B.     ELEMEN STRUKTUR ENTITAS
Elemen struktur entitas antara lain :
a)      Satu ke satu (One to One)
setiap entitas pada himpunan entitas A berhubungan dengan paling banyak dengan satu entitas pada himpunan entitas begitu juga sebaliknya setiap entitas pada himpunan entitas B berhubungan dengan paling banyak dengan satu entitas pada himpunan entitas A.
b)      Satu ke Banyak (one to many)
setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B, tetapi tidak sebaliknya, dimana setiap entitas pada himpunan entitas B berhubungan dengan paling banyak dengan satu entitas pada himpunan entitas A.
c)      Banyak ke Satu (Many to One)
setiap entitas pada himpunan entitas A berhubungan dengan paling banyak dengan satu entitas pada himpunan entitas B, tetapi tidak sebaliknya, dimana setiap entitas pada himpunan entitas A berhubungan dengan paling banyak satu entitas pada himpunan entitas B.
d)     Banyak ke Banyak (Many to Many)
setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B, demikian juga sebaliknya, di mana setiap entitas pada himpunan entitas B dapat berhubungan dengan banyak entitas pada himpunan entitas A.