Rabu, 10 Juli 2013 2 komentar

[Review] Javalamp Website by Agustinus Darto Iwan Setiawan

Beberapa waktu yang lalu aku mengujungi sebuah website. Kalau teman-teman mau tahu juga, boleh, itu webnya Pak Darto, Javalamp. Dari namanya saja sudah ketebak apa isinya. Ada yang tahu? Apa coba? Wow! Sarangnya programmer. Seperti aku? Oh bukan, aku hanya mahasiswa informatika yang masih dalam tahap belajar pemrograman. Hehe. Tapi bukan itu yang mau aku bahas kali ini. Yap! Sedikit review untuk Javalamp.

Tulisan ini juga dalam rangka mengikuti giveaway yang diadakan Pak Darto lho! Klik gambar di bawah ini kalau kalian mau ikutan.


 

Seperti kebanyakan web-web seorang ‘laki-laki’, tampilan Javalamp cukup sederhana dan tidak menggunakan banyak elemen warna. Dilatarbelakangi warna putih polos, header yang manis dengan kata-kata yang kalau orang lain baca mendapat kesan “Oh iya, bener juga tuh!” hehe. Kontennya aku akui sangat berbobot, karena yang dibahas adalah ‘all about programmer’,  bisa banyak membantu aku di perkuliahan. Terimakasih Pak Darto! ^^

Selain itu, gaya penulisan Pak Darto juga mudah dimengerti, tulisan-tulisan beliau membuat aku sadar akan banyak hal tentang programming, kritik-kritik yang diberikan Pak Darto lewat webnya benar-benar mengena. Menurutku pribadi sih asik banget. Apalagi dengan warna font konten yang tidak begitu kontras tapi terlihat manis.

Satu yang disayangkan dari web Pak Darto tersebut. Desain web yang terlalu sederhana seperti itu membuat aku bosan. Ya mungkin karena aku seorang perempuan atau masih muda atau apalah, yang jelas aku kurang sreg dengan desain minimalisnya. Memang benar konten adalah hal terpenting dari sebuah blog atau website, tapi dengan tampilan yang menarik pengunjung tidak akan bosan melihat.

Saranku sih Pak Darto revisi sedikit lagi, desainnya saja. Beri sedikit sentuhan pemanis, misalnya mengganti background dengan warna yang kalem selain putih atau diberi pattern sederhana. Seharusnya desain web juga disesuaikan dengan minat pengunjung, karena yang mengunjungi web beliau tidak selalu laki-laki, hehehe. Lain-lainnya, aku suka. Tulisan Pak Darto sangat bermanfaat, iya atau iya? Hahaha. Oke lah, semoga webnya semakin ramai pengunjung ya Pak, makin banyak yang suka, makin bermanfaat untuk kami ^^
Selasa, 09 Juli 2013 12 komentar

Sweet Moment? Mungkin Iya, Mungkin Tidak.

Ini kisahku dulu, delapan bulan yang lalu tepatnya. Aku ingat dengan jelas bagaimana kisah itu berjalan karena hari itu adalah hari ulang tahunku.

Aku dan dia sudah setahun lebih menjalin tali kasih. Jauh-jauh hari sebelum umurku bertambah satu, kami memang sedang ada sedikit masalah. Yah, you know lah, setiap jalan tidak selalu mulus. Jujur saja, waktu itu aku sangat malas meladeni kontaknya. Iya, kami berhubungan jarak jauh, aku di Malang dan dia di Cirebon. Aku warga asli Cirebon, tapi aku mengais ilmu di tanah tempat banyak buah apel tumbuh. Ratusan kilometer jarak di antara kami.

Berhari-hari aku mengabaikan, di manapun. Aku kesal, sangat kesal. Hingga akhirnya malam itu, pernyataan mengejutkanku.

“Kamu tahu gak sekarang aku lagi dimana?” katanya, melalui SMS.

“Ngga.” Sebenarnya aku penasaran, tapi aku menahan diri untuk tetap terkesan jutek.

“Aku lagi ada di kereta.”

Deg!

Kereta. Aku punya feeling ketika dia mengatakan itu. tapi aku berpikir lagi, itu tak akan mungkin terjadi. Pria seperti dia mana mungkin―

Dia mengirimiku SMS lagi di pagi harinya, dia memintaku untuk menjemputnya di stasiun. Astaga.. dia benar-benar melakukannya. Antara percaya dan tidak, aku tetap bersiap-siap untuk pergi ke Stasiun Kota Baru Malang. Waktu itu aku agak terlambat karena jalanan sedang macet.

Setelah aku habiskan waktu sepuluh menit di dalam angkutan umum, akhirnya aku kembali menjejakkan kaki di bumi. Dan aku melihatnya. Berdiri di depan pintu besar stasiun, matanya menelusuri hiruk pikuk Kota Malang di pagi hari, ia masih mengenakan seragam Polteknya.aku punya firasat buruk tentang hal itu.

Aku menyeberangi jalan, berjalan di sela-sela motor yang terparkir rapi. Dia belum melihatku. Ketika aku sampai di hadapannya, dia tersenyum melihatku. Hatiku mencelos sebenarnya, aku rindu senyum itu. dia memberikanku dua bingkisan sambil berkata, “Maaf, cakenya jadi agak berantakan gara-gara kegoyang-goyang pas di kereta tadi.” Aku menerimanya dalam diam. Dia berkata lagi, “Selamat ulang tahun ya.”

Sepanjang perjalanan, tangannya enggan melepaskan tanganku. Jari-jari kami bertautan, walaupun sebenarnya aku tidak ingin seperti ini. Tapi aku akui bahwa aku terharu. Dia bisa sampai ke tempat ini dengan beralasan kepada orangtuanya untuk menghadiri seminar di Semarang bersama rombongan kampusnya. Dia melakukan ini semua untukku? Untuk seseorang yang tidak menginginkannya berada di sini? Dia benar-benar gila.

Maka selama dua hari ini aku menemaninya pergi. Ke Matos, ke Pasar Minggu, ke taman kota. Kami pergi berdua. Aku menemaninya seharian. Dia menolak untuk tidur di dekat kostku, dia malah tidur di masjid tak jauh dari taman kota. Untuk apa sih dia datang jauh-jauh ke sini? Untuk hal tidak penting seperti ini? Sangat kekanak-kanakan, begitu pikirku saat itu.

Tapi, pada tanggal 2 Desember 2012 sebelum kepulangannya ke Cirebon pukul 14.45 WIB, detik-detik sebelum kami berpisah lagi. Aku mulai berpikir, aku jahat sekali ya? Dia melakukan ini semua untukku tetapi aku malah mengabaikannya, malah mencacinya dengan kata-kata yang tidak seharusnya aku ucapkan. Aku menolaknya mati-matian.

Jam terus berputar, aku tidak kuat. Sungguh. Entah ini perasaan berasalah atau tidak ingin melihatnya pergi, tapi saat itu aku menangis. Aku menangis di tengah keramaian stasiun. Dia merengkuhku ke dalam pelukannya, membiarkanku menangis di dada bidangnya.

Panggilan itu datang, kereta segera berangkat dan tibalah waktunya kami berpisah. Aku melihatnya masuk ke gerbang, aku melihatnya berbalik badan, aku melihatnya memandangku dari sana. Dan aku menangis lagi.

Setelah aku kembali ke kamar kostku, aku berpikir bahwa selama dua hari terakhir sebenarnya aku telah melewati hari-hari yang manis bersamanya. Ya, walaupun aku sempat menolaknya, tapi perasaan ini sulit aku pungkiri.



Rabu, 03 Juli 2013 1 komentar

Grafika Komputer - Miniatur Rumah dengan Glut (Interaksi Keyboard & Lighting)

Pengen bikin miniatur rumah sederhana dengan glut? Oh? Pake animasi? Pake Interaksi keyboard juga? Lighting? Bisa.. bisa.. kaya gini bukan sih?
Silakan edit sendiri kalo bentuknya mirip-mirip kaya gitu. Warna, bentuk, terserah ya..


Itu pake lighting lho! Kalo ga percaya, coba deh jalanin source code di bawah ini!

#include <stdlib.h>
#include <stdio.h>
#include <gl/glut.h>

//inisialisasi variabel
int w=800, h=400;
float x=0, y=-1.2, z=-10, p=0, q=0;
float sudut=1, x1=0, y1=0, z1=0;

void balok(void)
{
    glutSolidCube(5);
}

void pintujendela(float x, float y)
{
    glBegin(GL_POLYGON);
        glVertex2f(-x,-y);
        glVertex2f(-x,y);
        glVertex2f(x,y);
        glVertex2f(x,-y);
    glEnd();
}

void display(void)
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glLoadIdentity();
    glTranslatef(x,y,z);
    glRotatef(sudut,x1,y1,z1);
    glEnable(GL_COLOR_MATERIAL);
    glPushMatrix();
            //pintu dan jendela
            glPushMatrix();
            glColor3f(3,1,0);
            glTranslatef(0,-0.8,3.26);
            pintujendela(0.9,1.2);
            glTranslatef(1.7,0.5,0);
            pintujendela(0.5,0.5);
            glTranslatef(0.85,0,0);
            glRotatef(90, 0,1,0);
            glTranslatef(1.8,0,0);
            pintujendela(0.5,0.5);
            glTranslatef(1.5,0,0);
            pintujendela(0.5,0.5);
            glTranslatef(1.5,0,0);
            pintujendela(0.5,0.5);
            glPopMatrix();

            //dinding rumah
            glPushMatrix();               
            glColor3f(0,1,3);
            glScalef(1,0.8,1.3);
            balok();
            glPopMatrix();
           
            //genting kanan
            glPushMatrix();
            glColor3f(3,0,0);
            glTranslatef(1.8,2.85,0);
            glRotatef(51,0,0,1);
            glScalef(0.1,1,1.5);
            balok();
            glPopMatrix();

            //genting kiri
            glPushMatrix();
            glTranslatef(-1.8,2.85,0);
            glRotatef(-51,0,0,1);
            glScalef(0.1,1,1.5);
            balok();
            glPopMatrix();

            //pagar kiri
            glPushMatrix();
            glColor3f(0,3,0);
            glScalef(1,0.5,1);
            glTranslatef(0,-2,0);
            glTranslatef(-3.5,-0.92,0);
            glPushMatrix();
            glScalef(0.07,0.4,1.6);
            balok();
            glPopMatrix();

            //pagar kanan
            glPushMatrix();           
            glTranslatef(7,0,0);
            glScalef(0.07,0.4,1.6);
            balok();
            glPopMatrix();
               
            //pagar belakang
            glPushMatrix();
            glTranslatef(3.5,0,-4.15);
            glRotatef(90,0,1,0);
            glScalef(0.07,0.4,1.47);
            balok();
            glPopMatrix();
                               
            //pagar depan
            glTranslatef(1.25,0,4.15);   
            glRotatef(90,0,1,0);
            glScalef(0.07,0.4,0.57);
            balok();
            glTranslatef(0,0,7.9);
            balok();
            glPopMatrix();
       
    glPopMatrix();
    glDisable(GL_COLOR_MATERIAL);
    glutSwapBuffers();
}

void resize(int w1, int h1)
{
    glViewport(0,0,w1,h1);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(45.0,(float) w1/(float) h1, 1.0,300.0);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
}

void myKeyboard(unsigned char key, int x, int y)
{   
    //deteksi tombol x untuk rotasi pada sumbu x
    if (key == 'x')
    {
        x1=1;
        y1=0;
        z1=0;
        sudut++;
    }

    //deteksi tombol y untuk rotasi pada sumbu y
    else if (key == 'y')
    {
        y1=1;
        x1=0;
        z1=0;
        sudut++;
    }

    //deteksi tombol z untuk rotasi pada sumbu z
    else if (key == 'z')
    {
        y1=0;
        x1=0;
        z1=1;
        sudut++;
    }
}

void mySpecialKeyboard(int key, int x, int y)
{
    switch(key)
    {
    //deteksi tombol tanda panah atas untuk memperbesar
    case GLUT_KEY_UP:
        z+=5;
        break;
    //deteksi tombol tanda panah bawah untuk memperkecil
    case GLUT_KEY_DOWN:
        z-=5;
        break;
    }
}


void mouse(int button, int state, int xmouse,int ymouse)
{
        if(button==GLUT_LEFT_BUTTON && state==GLUT_DOWN)
        {
            p = (xmouse - (w/2)) + 0.0f; q = ((h/2) - ymouse) + 0.0f;
            printf("x: %0.0f",p);
            printf("y: %0.0f",q);
        }
}

void init()
{
    GLfloat LightPosition[] = {p, q, 50.0f, 0.0f};
    GLfloat LightAmbient[] = {0.7f, 0.7f, 0.7f, 1.0f};
    GLfloat LightDiffuse[] = {0.7f, 1.0f, 0.7f, 1.0f};
    GLfloat LightSpecular[] = {1.6f, 1.0f, 0.5f, 0.0f};
    GLfloat Shine[] = {50};

    glShadeModel(GL_SMOOTH);
    glClearColor(0.0f, 0.0f, 0.0f, 0.5f);
    glClearDepth(1.0f);
    glEnable(GL_DEPTH_TEST);
    glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);

    glLightfv(GL_LIGHT0, GL_POSITION, LightPosition);

    glEnable(GL_LIGHTING);
    glEnable(GL_LIGHT0);
    return;
}

//fungsi pembantu agar fungsi keyboard dapat selalu dideteksi
void update(int value)
{
    glutPostRedisplay();
    glutTimerFunc(50,update,0);
}

void main (int argc, char **argv)
{
    glutInit(&argc, argv);
   
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH | GLUT_RGBA);
    glutInitWindowPosition(100,100);
    glutInitWindowSize(w,h);
    glutCreateWindow("Madul 9 Lighting dan Material");
    gluOrtho2D(-w/2,w/2,-h/2,h/2);
    glutDisplayFunc(display);
    glutReshapeFunc(resize);
    glutKeyboardFunc(myKeyboard);
    glutSpecialFunc(mySpecialKeyboard);
    glutMouseFunc(mouse);
    glutTimerFunc(1,update,0);
    init();
    glutMainLoop();
}
0 komentar

[Review] Satin Merah Karya Brahmanto Anindito dan Rie Yanti

Bagi kamu yang doyan banget Sastra, terutama Sastra Sunda. Dan bagi kamu yang Gagas Addict. Wajib baca Satin Merah karya Brahmanto Anindito dan Rie Yanti. Kenapa? Karena novel ini super duper keren!

Perpaduan antara sastra dan budaya Sunda nya nempel. Belum lagi karakter kuat di setiap tokoh. Emang sih novel ini agak-agak thriller, tentang obsesi yang menguasai diri sampe berujung ke pembunuhan. Tegangnya berasa, penasarannya iya. Penuturannya juga ringan banget, jadi ga perlu mikir keras buat ngerti maksud paragraf ini nih apa, maksud kalimat ini nih apa.



Ini novel lama, terbitan tahun 2010 gitu. Tapi percaya deh ya, novel dari Gagas Media tuh ga ada yang jelek. Ga percaya? Silakan coba sendiri, bisa dimulai dengan baca Satin Merah duluan. Dijamin keren!


 
0 komentar

Grafika Komputer - Membuat Jam Pasir yang Berotasi Menggunakan Visual C++ 2008

Di bawah ini ada syntax buat bikin objek kaya jam pasir yang muter searah jarum jam terus balik lagi setelah dua kali puteran. kalo emang program kaya gini yang dicari temen-temen, silakan aja mau copas juga, gratis tis tis tis. Kalo mirip-mirip dikit, ya bisa dong edit-edit sendiri? Hmm?

Ini lho, nanti begini jadinya :






Nah, ini dia source code nya :

 
#include <stdlib.h>
#include <glut.h>

int s=0, p=0, q=180;

void triangle(void)
{
    glBegin(GL_TRIANGLES);
    //rumus nilai satuan susunan garis pada koordinat x dan y adalah integer
        glVertex2i(0,0);
        glVertex2i(50,-100);
        glVertex2i(-50,-100);
        glVertex2i(0,0);
        glVertex2i(50,100);
        glVertex2i(-50,100);
    glEnd();
}

void timer (int value)
{
    if (p <= 360)
    {
        s = -1;
        p++;
    }
    if (p > 360)
    {
        s = 1;
        q--;
    }
    if (q < 0)
    {
        s = 1;
        p = 0;
        q = 360;
    }
glutPostRedisplay();
glutTimerFunc(25,timer,0);
}


void display(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
    glRotatef(s,0,0,1);
    glColor3f(0,0.5,1);
    triangle();
    glFlush();
}

void main(int argc, char **argv)
{
    glutInit(&argc, argv);
   
    glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);
    glutInitWindowPosition(100,100);
    glutInitWindowSize(640,480);

    glutCreateWindow("BAB 5 Animasi Objek 2D");
    glutDisplayFunc(display);
    glutTimerFunc(50,timer,0);
    gluOrtho2D(-320, 320, -320, 320);
    glutMainLoop();   
}

 
;