Ads 468x60px

Featured Posts Coolbthemes

Selasa, 27 November 2012

Menyisipkan Gambar Kedalam Semua Sisi Kubus

1. Pertama - tama kita buat file dengan nama imageloader.cpp yang isinya sebagai berikut :


#include <assert.h>
#include <fstream>
#include "imageloader.h"

using namespace std;

Image::Image(char* ps, int w, int h) : pixels(ps), width(w), height(h) {

}

Image::~Image() {
delete[] pixels;
}

namespace {
//Konversi 4 buah karakter ke integer, menggunakan bentuk little-endian
int toInt(const char* bytes) {
return (int)(((unsigned char)bytes[3] << 24) |
((unsigned char)bytes[2] << 16) |
((unsigned char)bytes[1] << 8) |
(unsigned char)bytes[0]);
}

//Konversi 2 buah karakter ke integer, menggunakan bentuk little-endian
short toShort(const char* bytes) {
return (short)(((unsigned char)bytes[1] << 8) |
  (unsigned char)bytes[0]);
}

//Membaca 4 byte selanjutnya sebagai integer, menggunakan bentuk little-endian
int readInt(ifstream &input) {
char buffer[4];
input.read(buffer, 4);
return toInt(buffer);
}

short readShort(ifstream &input) {
char buffer[2];
input.read(buffer, 2);
return toShort(buffer);
}

template<class T>
class auto_array {
private:
T* array;
mutable bool isReleased;
public:
explicit auto_array(T* array_ = NULL) :
array(array_), isReleased(false) {
}

auto_array(const auto_array<T> &aarray) {
array = aarray.array;
isReleased = aarray.isReleased;
aarray.isReleased = true;
}

~auto_array() {
if (!isReleased && array != NULL) {
delete[] array;
}
}

T* get() const {
return array;
}

T &operator*() const {
return *array;
}

void operator=(const auto_array<T> &aarray) {
if (!isReleased && array != NULL) {
delete[] array;
}
array = aarray.array;
isReleased = aarray.isReleased;
aarray.isReleased = true;
}

T* operator->() const {
return array;
}

T* release() {
isReleased = true;
return array;
}

void reset(T* array_ = NULL) {
if (!isReleased && array != NULL) {
delete[] array;
}
array = array_;
}

T* operator+(int i) {
return array + i;
}

T &operator[](int i) {
return array[i];
}
};
}

Image* loadBMP(const char* filename) {
ifstream input;
input.open(filename, ifstream::binary);
assert(!input.fail() || !"File tidak ditemukan!!!");
char buffer[2];
input.read(buffer, 2);
assert(buffer[0] == 'B' && buffer[1] == 'M' || !"Bukan file bitmap!!!");
input.ignore(8);
int dataOffset = readInt(input);

int headerSize = readInt(input);
int width;
int height;
switch(headerSize) {
case 40:
width = readInt(input);
height = readInt(input);
input.ignore(2);
assert(readShort(input) == 24 || !"Gambar tidak 24 bits per pixel!");
assert(readShort(input) == 0 || !"Gambar dikompres!");
break;
case 12:
width = readShort(input);
height = readShort(input);
input.ignore(2);
assert(readShort(input) == 24 || !"Gambar tidak 24 bits per pixel!");
break;
case 64:
assert(!"Tidak dapat mengambil OS/2 V2 bitmaps");
break;
case 108:
assert(!"Tidak dapat mengambil Windows V4 bitmaps");
break;
case 124:
assert(!"Tidak dapat mengambil Windows V5 bitmaps");
break;
default:
assert(!"Format bitmap ini tidak diketahui!");
}

//Membaca data
int bytesPerRow = ((width * 3 + 3) / 4) * 4 - (width * 3 % 4);
int size = bytesPerRow * height;
auto_array<char> pixels(new char[size]);
input.seekg(dataOffset, ios_base::beg);
input.read(pixels.get(), size);

//Mengambil data yang mempunyai format benar
auto_array<char> pixels2(new char[width * height * 3]);
for(int y = 0; y < height; y++) {
for(int x = 0; x < width; x++) {
for(int c = 0; c < 3; c++) {
pixels2[3 * (width * y + x) + c] =
pixels[bytesPerRow * y + 3 * x + (2 - c)];
}
}
}

input.close();
return new Image(pixels2.release(), width, height);
}

2. Kemudian Kita buat juga file yang sudah ada di library nya openGL tersebut yaitu imageloader.h yang isinya sebagai berikut :

/* Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 * 
 * The above notice and this permission notice shall be included in all copies
 * or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */
/* File for "Putting It All Together" lesson of the OpenGL tutorial on
 * www.videotutorialsrock.com
 */



#ifndef IMAGE_LOADER_H_INCLUDED
#define IMAGE_LOADER_H_INCLUDED

//Represents an image
class Image {
public:
Image(char* ps, int w, int h);
~Image();
/* An array of the form (R1, G1, B1, R2, G2, B2, ...) indicating the
* color of each pixel in image.  Color components range from 0 to 255.
* The array starts the bottom-left pixel, then moves right to the end
* of the row, then moves up to the next column, and so on.  This is the
* format in which OpenGL likes images.
*/
char* pixels;
int width;
int height;
};

//Reads a bitmap image from file.
Image* loadBMP(const char* filename);

#endif

3. Kita Buat fungsi main.cpp nya yang isinya sebagai berikut

#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 = 7.0f; //Panjang tiap sisi kubus
float _angle = 0;            //Rotasi terhadap box
GLuint _textureId;           //ID OpenGL untuk tekstur

void handleKeypress(unsigned char key, int x, int y) {
switch (key) {
case 27:             //Tekan Escape untuk EXIT
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* image = loadBMP("Yoona.bmp");
_textureId = loadTexture(image);
delete image;
}

void handleResize(int w, int h) {
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0, (float)w / (float)h, 1.0, 200.0);
}

void drawScene() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.0f, 0.0f, -20.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, 1.0f, 1.0f, 0.0f);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, _textureId);
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);
//glBegin(GL_QUADS);
//Sisi atas
    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);
//Sisi bawah
    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);
//Sisi kiri
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);
//Sisi kanan
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
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);
//Sisi belakang
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();
}

//Panggil setiap 25ms
void update(int value) {
_angle += 1.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(400, 400);
glutCreateWindow("evangs-ganteng");
initRendering();
glutDisplayFunc(drawScene);
glutKeyboardFunc(handleKeypress);
glutReshapeFunc(handleResize);
glutTimerFunc(25, update, 0);
glutMainLoop();
return 0;
}

4. Gunakan Image yang berextensi .bmp selain itu image tidak akan terbaca oleh openGL nya maka dari itu kita harus memakai .bmp

5. Setelah semua file terbuat simpan dalam folder yang sama di dalam folder dev c++ nya kalo memakai dev

6. Apabila ingin mengganti gambar yang ada di sisi kubus nya tinggal ubah pada coding berikut yg berada dalam fungsi main nya :

Image* image = loadBMP("Yoona.bmp");
Ubah yang berada dalam tanda "" dengan nama file gambar yang ingin di sisip kan
Reade more >>

Membuat Segitiga Bertingkat

Kali ini saya akan menjelaskan tentang pembuatan gambar 2D segitiga bertingkat. seperti contoh gambar dibawah ini :

Mula - mulai kita buat terlebih dahulu titik - titik segitiga nya. . .
dengan coding seperti berikut

//membuat segitiga tingkat pertama    
glBegin(GL_POLYGON);
glColor3f(0.0, 0.95, 1.0);
glVertex2i(50, 50);        
glVertex2i(150, 50);
glVertex2i(100, 150);
glEnd();
akan menghasilkan gambar sebagai berikut :








Kemudian buat segitiga yang sama dengan yg td sebnayak 3 buah,
glBegin(GL_POLYGON);
    glColor3f(0.0, 0.95, 1.0);
glVertex2i(150, 50);        
glVertex2i(250, 50);
glVertex2i(200, 150);
glEnd();
glBegin(GL_POLYGON);
    glColor3f(0.0, 0.95, 1.0);
glVertex2i(250, 50);        
glVertex2i(350, 50);
glVertex2i(300, 150);
glEnd();
glBegin(GL_POLYGON);
    glColor3f(0.0, 0.95, 1.0);
glVertex2i(350, 50);        
glVertex2i(450, 50);
glVertex2i(400, 150);
glEnd();
 yang akan menghasilkan gambar sebagai berikut :



 Buat segitiga tingkat kedua nya

//membuat segitiga tingkat kedua    
glBegin(GL_POLYGON);
glColor3f(0.0, 0.95, 1.0);
glVertex2i(100, 150);        
glVertex2i(200, 150);
glVertex2i(150, 250);
glEnd();
glBegin(GL_POLYGON);
    glColor3f(0.0, 0.95, 1.0);
glVertex2i(200, 150);        
glVertex2i(300, 150);
glVertex2i(250, 250);
glEnd();
glBegin(GL_POLYGON);
    glColor3f(0.0, 0.95, 1.0);
glVertex2i(300, 150);        
glVertex2i(400, 150);
glVertex2i(350, 250);
glEnd();
akan menghasilkan gambar


dan seterus nya sampai ke tingkat ke3 dan ke 4
//membuat segitiga tingkat ketiga 
    glBegin(GL_POLYGON);
glColor3f(0.0, 0.95, 1.0);
glVertex2i(150, 250);        
glVertex2i(250, 250);
glVertex2i(200, 350);
glEnd();    
glBegin(GL_POLYGON);
glColor3f(0.0, 0.95, 1.0);
glVertex2i(250, 250);        
glVertex2i(350, 250);
glVertex2i(300, 350);
glEnd();
//membuat segitiga tingkat keempat
glBegin(GL_POLYGON);
glColor3f(0.0, 0.95, 1.0);
glVertex2i(200, 350);        
glVertex2i(300, 350);
glVertex2i(250, 450);
glEnd();
Menghasilkan gambar sebagai berikut








Reade more >>

Minggu, 14 Oktober 2012

Membuat Titik Perpotongan Antara 2 Garis


Untuk membuat Titik perpotongan 2 garis seperti diatas dengan titik titik seperti berikut:
A ( 50 , 70 )
B ( 200 , 250 )
C ( 250 , 50 )
D ( 50 , 350 )          
Anda bisa melakukan nya seperti dibawah ini :

#include <windows.h>   // digunakan oleh sistem 
#include <gl/Gl.h>
#include <stdio.h>
#include <gl/glut.h>
#include <stdlib.h>
#include <stdarg.h>

//<<<<<<<<<<<<<<<<<<<<<<< myInit >>>>>>>>>>>>>>>>>>>>
 void myInit(void)
 {
    glClearColor(1.0,1.0,1.0,0.0);      
    glColor3f(0.0f, 0.0f, 0.0f);          
  glPointSize(4.0);      
glMatrixMode(GL_PROJECTION); 
glLoadIdentity();
gluOrtho2D(0.0, 640.0, 0.0, 480.0);
}
//<<<<<<<<<<<<<<<<<<<<<<<< myDisplay >>>>>>>>>>>>>>>>>
void myDisplay(void)
{
     float xa = 50,        ya = 70,
           xb = 200,       yb = 250,
           xc = 250,       yc = 50,
           xd = 50,        yd = 350,
           m1,m2,c1,c2,x,y;
    glClear(GL_COLOR_BUFFER_BIT);     
    glBegin(GL_LINES);
    glColor3f(0.0f, 0.0f, 1.0f); 
glVertex2f(xa, ya);        
glVertex2f(xb, yb);
    glEnd();
    
    glBegin(GL_LINES);
    glColor3f(0.0f, 1.0f, 0.0f);
glVertex2f(xc, yc);        
glVertex2f(xd, yd);
    glEnd();
m1 = (yb - ya) / (xb - xa);
m2 = (yd - yc) / (xd - xc);
c1 =ya - (xa * m1);
c2 =yc - (xc * m2);
    x = (c2 - c1) / (m1 - m2);
y = (m1 * x) + c1;
        
    glBegin(GL_POINTS);
    glColor3f(1.0f, 0.0f, 0.0f);
glVertex2f(x, y);
glEnd();
glFlush();                
}

//<<<<<<<<<<<<<<<<<<<<<<<< main >>>>>>>>>>>>>>>>>>>>>>
int main(int argc, char** argv)
{       

glutInit(&argc, argv);          
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); 
glutInitWindowSize(640,480);    
glutInitWindowPosition(100, 150);
//acuan sudut kiri-atas
glutCreateWindow("Titik Potong Garis");
glutDisplayFunc(myDisplay);    
myInit();                   
glutMainLoop();    
}

Link untuk Mendownload source code nya di bawah :
http://www.4shared.com/file/mnVUhpho/perpotongan.html


Reade more >>

Jumat, 28 September 2012

Grafkom Membuat gambar 2D

Untuk membuat gambar rumah dengan openGL seperti dibawah ini :
Bagaimana bisa membuat seperti itu?
Jawaban nya silahkan unduh source code nya di link ini
http://www.4shared.com/office/G_pydV8s/tugas_grafkom_672011101.html

semoga bisa bermanfaat, dan terimakasih sudah datang ke blog ku. . .
Reade more >>

Senin, 05 Desember 2011

Biodata SNSD

SNSD/girl generation adalah grup penyanyi wanita Korea Selatan yang dibentuk SM Entertainment. Mereka terdiri dari 9 anggota: Yoona, Tiffany, Yuri, Hyoyeon, Sooyoung, Seohyun, Taeyeon, Jessica, dan Sunny. Single perdana "다시 만난 세계 (Into the New World)" dirilis 2 Agustus 2007. Kedua album mereka masing-masing telah terjual lebih dari 100 ribu kopi.
Penggemar menyebut mereka sebagai SNSD, singkatan dari nama grup ini dalam bahasa Korea, So Nyeo Shi Dae. Klub penggemar resmi Girls' Generation bernama S♡NE (소원) yang diambil dari judul lagu dalam album pertama mereka.

1. YOONA




















Nama Panggilan : Yoona
Nama Lengkap : Im Yoon Ah
Arti Nama : Anak kecil yang tak berdosa
Nama Panggilan di SNSD : Charming Girl
Nama Panggilan Lain : Little Deer, Retarol, Flower Deer, Powerful Yoona, Bravery Yoona, YoonABC
Tgl. Lahir : 30 Mei 1990
Gol. Darah : B
Tinggi Badan : 166 cm
Berat Badan : 47 kg
Posisi : Ketua Dancer yang ke-3, membantu vokal
No. Favorite : 93
Spesial : Akting
Durasi Latihan : 7 tahun 2 bulan
Lagu favorite dari SNSD : Complete

2. TIFFANY





















Nama Panggilan : Tiffany
Nama Lengkap : Hwang Mi Young, Tiffany Hwang
Arti Nama : Daun bunga yang cantik
Nama Panggilan di SNSD : Brighter Than Gem
Nama Panggilan Lain : Fany, Brighter than Mushroom Tiffany, Fanny of Belly, Bacteria Fany, Fany The Practicer, Rural Fany, Spongebob Hwang, Fany Fany Tiffany, Human Jukebox, Mushroom
Tgl. Lahir : 1 Agustus 1989
Tinggi Badan : 162 cm
Berat Badan : 50 kg
Posisi : Ketua Vokal yang ke-4
Hobi : Main Seruling
Spesial : Bahasa Inggris, Main Flute ( Seruling )
Durasi Latihan : 3 tahun 7 bulan
Lagu Favorite dari SNSD : Baby Baby

3. YURI





















Nama Panggilan : Yuri
Nama Lengkap : Kwon Yuri
Arti Nama : Putih melati yang ramah ( Baik hati )
Nama Panggilan di SNSD : Black Pearl
Nama Panggilan Lain : Yul, Kwongul, Ggab-Yul, Black Yul, Yuree
Tgl. Lahir : 5 Desember 1989
Gol. Darah : AB
Tinggi Badan : 167 cm
Berat Badan : 45 kg
Posisi : Ketua Dancer yang ke-2, membantu vokal
No. Favorite : 19
Hobi : Dancing, Ballet, Main piano, Violin, Renang
Spesial : Bahasa Cina, renang
Durasi Latihan : 5 tahun 11 bulan
Lagu Favorite Dari SNSD : Baby Baby

4.HYOYEON





















Nama Panggilan : Hyoyeon
Nama Lengkap : Kim Hyo Yeon
Arti Nama : Selalu tumbuh dengan indah
Nama Panggilan di SNSD : Bright Snow White
Nama Panggilan Lain : Dancing Queen, Princess Fiona, Hyo Fit and Firm, Apple Princess, Hyon
Tgl. Lahir : 22 September 1989
Gol. Darah : AB
Tinggi Badan : 160 cm
Berat Badan : 48 kg
Posisi : Ketua Dancer yang ke-1, membantu vokal
No. Favorite : 85
Hobi : Menari/Nge dance
Spesial : Bahasa Cina, Dance
Durasi Latihan : 6 tahun 1 bulan

5. SOOYOUNG





















Nama Panggilan : SooYoung
Nama Lengkap : Choi Soo Young
Arti Nama : Daun bunga yang kemewahan
Nama Panggilan di SNSD : Fun Loving Princess
Nama Panggilan Lain : A Person with long body, Long Legs, Model, Food God, Interuptor, Syoung
Tgl. Lahir : 10 Februari 1990
Gol. Darah : O
Tinggi Badan : 170 cm
Berat Badan : 48 kg
Posisi : Membantu Vokal
No. Favorite : 08
Hobi : Makan
Spesial : Bahasa Jepang, Dance
Durasi Latihan : 6 tahun 3 bulan
Lagu Favorite dari SNSD : Complete

6. SEOHYUN






















Nama Panggilan : SeoHyun
Nama Lengkap : Seo Joo Hyun
Arti Nama : Mutiara penting/mutiara yang berguna
Nama Panggilan di SNSD : The Youngest Princess
Nama Panggilan Lain : Seororo, Innocent Seohyun, Kerohyun, Youngest Child, Milk Seo Joo
Tgl. Lahir : 28 Juni 1991
Gol.Darah : A
Tinggi Badan : 168 cm
Berat Badan : 48 kg
Posisi : Ketua Vokal yang ke-3
No. Favorite : 64
Hobi : Main Piano, nonton Keroro
Spesial : Bahasa Cina, Main Piano
Durasi Latihan : 6 tahun 6 bulan
Lagu Favorite dari SNSD : Kissing You


7. TAEYEON




















Nama Panggilan : Taeyeon
Nama Lengkap : Kim Tae Yeon
Arti Nama : Kebesaran ( yang mulia ) yang cantik
Nama Panggilan di SNSD : little child that is like Pack Sol – Ge snack
Nama Panggilan lain : Taetae, Taeng, leader Taeyeon, leader Taeng, Kid leader, Auntie, Afro Tangee, little person, A person with short body, Pack-Sol-Ge snack
Tgl. lahir : 9 Maret 1989
Gol. darah : O
Tinggi badan : 162 cm
Berat Badan : 44 kg
Posisi : ketua, ketua vocal yang ke- 1
No. Favorite : 22, 3, 6 ,9
Hobi : Renang
Special : Menyanyi Trot, bahasa Cina
Durasi latihan : 5 tahun 3 bulan
Lagu favorite dari SNSD : Merry Go – Round

8. JESSICA





















Nama Panggilan : Jessica
Nama Lengkap : Jung Soo Yeon, Jessica Jung
Arti Nama : Cantik dan kemewahan / barang mewah
Nama Panggilan di SNSD : Ice Princess
Nama Panggilan Lain : Sic, Sica, Sicachu, Liquid Sica, Sica Effect,, Sica Of Sweat, Baby Sic, Puppet Sic, Sexica, glowing Sic, Sleepy Sica
Tgl. lahir : 18 April 1989
Gol. darah : B
Tinggi badan : 163 cm
Berat badan : 45 kg
Posisi : ketua Vocal yang ke- 2
No. Favorite : 52
Hobi : sepakbola, tinju
Spesial : Dance, bahasa inggris
Durasi latihan : 7 tahun 6 bulan
Lagu favorite dari SNSD : Complete

9. SUNNY


Nama Panggilan : Sunny
Nama Lengkap : Lee Sun Kyu
Arti Nama : Permata yang dilahirkan dengan indah
Nama Panggilan di SNSD : Energy Pill
Nama Panggilan lain : Lee Sunny, Lee Sun, Dolphin, Dolphin Sunny, Cute Sunny, Sun Kyu
Tgl. Lahir : 15 Mei 1989
Gol. Darah : B
Tinggi Badan : 158 cm
Berat Badan : 43 kg
Posisi : Membantu Vokal
No. Favorite : 26
Hobi : Renang, main video game, olahraga
Spesial : Atletik
Durasi Latihan : 9 bulan
Lagu Favorite dari SNSD : Ooh-La-La!
Reade more >>