RESIDENT EVIL 6

Game ini Menceritakan Tentang Petualangan Aksi Tembak Yang Sanagat Seru, yang Membuat Game Ini Hidup Adalah Tokoh Wanita ADA SHERRY dan HELANA yang Terlihat Cantik di Game Ini

RESIDENT EVIL Revelation 2

Melanjutkan kesuksesan versi sebelumnya RE Revelation 2 ini lebih menegangkan, coba aja

TOMB RAIDER 2013 PLAY NOW

Tomb Raider Menceritakan Tentang Petualangan Seorag Gadis Pemberani Yang Menyusuri Hutan

Rise of the TOMB RAIDER

Tomb Raider Menceritakan Tentang Petualangan Seorag Gadis Pemberani Yang Menyusuri Hutan

NARUTO Ninja Storm Revolution

Setelah Mengalahkan Kabuto Naruto Hihadapkan Dengan Pertempuran Melawan Obito dan Madara, Ayo Jadilah Naruto

NARUTO Ninja Storm 4

Setelah berhasil mengalahkan madara dan obito naruto dan sasuke harus berjuang musuh yg lebih kuat lagi apakan itu...

BEETLEFIELD 4

Tembak Musuh Dengan Senjata yang Kau Suka dan Lewati Rintanagn yang Ada

CALL OF DUTY black ops 3

Nikmati Sensasi Perang Di Amerika yang Sangat Menyenangkan

Tom Clancy's The Division

Nikmati Sensasi Perang Di Amerika yang Sangat Menyenangkan

NEED FOR SPEED RIVAL

Mampukah Kamu Menjadi Pembalad Liar atau Menjadi Polisi

PES 2016

Game gengan grafic sangat mengesankan, Gerakan pamain dibuat seerti nyata

FIFA 2016

Game gengan grafic sangat mengesankan, Gerakan pamain dibuat seerti nyata

Senin, 28 Mei 2018

Caesar Cipher c++

#include <cstdlib>
#include <iostream>
#include <string.h>
#define maks 500

using namespace std;

class Enkripsi{
public:
Enkripsi();
void enkripsi();
void deskripsi();
void output();
private:
char chiper[maks];
int key;
char plain[maks];
};

Enkripsi::Enkripsi(){
cout<<"Masukkan kata : ";
cin.getline(chiper,sizeof(chiper));
cout<<"Masukkan key : ";
cin>>key;
cout<<endl;
}

void Enkripsi::enkripsi(){
for(int i=0;i<strlen(chiper);i+=1){
cout<<chiper[i]<<"("<<int(chiper[i])<<") ";
chiper[i] = (chiper[i]+key)%128;
}
}
void Enkripsi::deskripsi(){
for(int i=0;i<strlen(chiper);i+=1){
plain[i] = (chiper[i]-key)%128;
chiper[i] = plain[i];
}
}

void Enkripsi::output(){
for(int i=0;i<strlen(chiper);i+=1){
cout<<chiper[i];
}
}

int main(int argc, char *argv[]){

Enkripsi Deskripsi;
Deskripsi.enkripsi();
cout<<"\n\nSetelah diEnkripsi : ";
Deskripsi.output();
Deskripsi.deskripsi();
cout<<"\n\nKembali diDeskripsi : ";
Deskripsi.output();
cout<<endl<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}

Kamis, 10 Mei 2018

pertemuan 6

// kode dasar untuk semua praktikum grafika komputer
// adhi prahara. 2018

// deklarasikan semua header disini
#include <windows.h>
#include <glut.h>

// inisialisasi variabel untuk transformasi seperti translasi, rotasi atau scaling
float angle = 0.0f;     // sudut transformasi kamera
float posX = 0.0f, rotX =  0.0f; // posisi kamera di sumbu X
float posY = 0.0f, rotY =  0.0f; // posisi kamera di sumbu Y
float posZ = 5.0f, rotZ = -1.0f; // posisi kamera di sumbu Z

float objectAngleX = 0.0f;   // sudut tranformasi obyek di sumbu X
float objectAngleY = 0.0f;   // sudut tranformasi obyek di sumbu Y
float objectAngleZ = 0.0f;   // sudut tranformasi obyek di sumbu Z

// fungsi untuk menggambar kubus
void drawCube()
{
 glBegin(GL_QUADS);
 // beri warna merah di sisi depan
 glColor3f(1.0f, 0.0f, 0.0f);
 // buat sisi depan 
 glVertex3f(-1.0f, -1.0f, 1.0f);
 glVertex3f( 1.0f, -1.0f, 1.0f);
 glVertex3f( 1.0f,  1.0f, 1.0f);
 glVertex3f(-1.0f,  1.0f, 1.0f);
 // beri warna hijau di sisi belakang
 glColor3f(0.0f, 1.0f, 0.0f);
 // buat sisi belakang
 glVertex3f(-1.0f, -1.0f,-1.0f);
 glVertex3f( 1.0f, -1.0f,-1.0f);
 glVertex3f( 1.0f,  1.0f,-1.0f);
 glVertex3f(-1.0f,  1.0f,-1.0f);
 // beri warna biru di sisi kiri
 glColor3f(0.0f, 0.0f, 1.0f);
 // buat sisi kiri
 glVertex3f(-1.0f, -1.0f, 1.0f);
 glVertex3f(-1.0f, -1.0f,-1.0f);
 glVertex3f(-1.0f,  1.0f,-1.0f);
 glVertex3f(-1.0f,  1.0f, 1.0f);
 // beri warna cyan di sisi kanan
 glColor3f(0.0f, 1.0f, 1.0f);
 // buat sisi kanan
 glVertex3f( 1.0f, -1.0f, 1.0f);
 glVertex3f( 1.0f, -1.0f,-1.0f);
 glVertex3f( 1.0f,  1.0f,-1.0f);
 glVertex3f( 1.0f,  1.0f, 1.0f);
 // beri warna kuning di sisi atas
 glColor3f(1.0f, 1.0f, 0.0f);
 // buat sisi atas
 glVertex3f(-1.0f,  1.0f, 1.0f);
 glVertex3f( 1.0f,  1.0f, 1.0f);
 glVertex3f( 1.0f,  1.0f,-1.0f);
 glVertex3f(-1.0f,  1.0f,-1.0f);
 // beri warna magenta di sisi bawah
 glColor3f(1.0f, 0.0f, 1.0f);
 // buat sisi bawah
 glVertex3f(-1.0f, -1.0f, 1.0f);
 glVertex3f( 1.0f, -1.0f, 1.0f);
 glVertex3f( 1.0f, -1.0f,-1.0f);
 glVertex3f(-1.0f, -1.0f,-1.0f);
 glEnd();
}

// fungsi untuk menggambar silinder
void drawCylinder(float radius, float height, int slices, int stacks)
{
 glPushMatrix();

 GLUquadricObj* cyl = gluNewQuadric();
 gluQuadricDrawStyle(cyl, GLU_FILL);
 gluQuadricNormals(cyl, GLU_SMOOTH);
 gluQuadricOrientation(cyl, GLU_INSIDE);

 // buat tutup atas silinder
 glTranslatef(0.0f, -height/2, 0.0f);
 glRotatef(-90, 1.0f, 0.0f, 0.0f);
 glColor3f(1.0f, 1.0f, 0.0f); // warna kuning
 gluDisk(cyl, 0.0f, radius, slices, stacks);
 // buat badan silinder
 glColor3f(1.0f, 0.0f, 0.0f); // warna merah
 gluCylinder(cyl, radius, radius, height, slices, stacks);
 // buat tutup bawah silinder
 glColor3f(1.0f, 1.0f, 0.0f); // warna kuning
 glTranslatef(0.0f, 0.0f, 1.0f);
 gluDisk(cyl, 0.0f, 0.0f, slices, stacks);

 glPopMatrix();
}

// fungsi untuk menggambar bola
void drawSphere(float radius, int slices, int stacks)
{
 glPushMatrix();

 glColor3f(1.0f, 0.0f, 0.0f); // warna merah
 GLUquadric *sphere = gluNewQuadric();
 gluQuadricDrawStyle(sphere, GLU_FILL);
 gluQuadricNormals(sphere, GLU_SMOOTH);
 gluSphere(sphere, radius, slices, stacks);

 glPopMatrix();
}

// fungsi untuk menggambar obyek kubus
void drawObject()
{
 // obyek bisa dimasukkan diantara glPushMatrix() dan glPopMatrix() 
 // fungsinya agar obyek tidak terpengaruh atau mempengaruhi obyek lain
 // saat diwarnai, ditransformasi dan sebagainya
 glPushMatrix();

 // operasi transformasi rotasi obyek ke arah kanan-kiri
 glRotatef(objectAngleY, 0.0f, 1.0f, 0.0f);

 glPushMatrix();

 // operasi transformasi rotasi obyek ke arah atas-bawah
 glRotatef(objectAngleX, 1.0f, 0.0f, 0.0f);

 // set warna obyek ke warna hijau (0.0f, 1.0f, 0.0f)
 glColor3f(0.0f, 1.0f, 0.0f);

 // membuat obyek kubus
 drawCube();

 // membuat obyek silinder
 //drawCylinder(1.0f, 2.0f, 20, 20);

 // membuat obyek bola
 //drawSphere(1.0f, 50, 50);

 // membuat obyek polyhedron
 //glutSolidTetrahedron();
 //glutSolidOctahedron();
 //glutSolidDodecahedron();
 //glutSolidIcosahedron();
 //glutSolidCube(1.0f);
 //glutSolidCone(1.0f, 1.0f, 50, 50);
 //glutSolidSphere(1.0f, 50, 50);
 //glutSolidTeapot(1.0f);
 //glutSolidTorus(0.5f, 1.0f, 20, 20);

 glPopMatrix();

 glPopMatrix();
}

// taruh semua obyek yang akan digambar di fungsi display()
void display()
{
 // bersihkan dan reset layar dan buffer
 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 glLoadIdentity();

 // posisikan kamera pandang
 // dalam hal ini sumbu Y ada diatas dan posisi kamera pandang di (posX, posY, posZ)
 gluLookAt(posX, posY, posZ, posX + rotX, posY + rotY, posZ + rotZ, 0.0f, 1.0f, 0.0f);

 // panggil fungsi untuk menggambar obyek
 drawObject();
 
 // tampilkan obyek ke layar
 // gunakan glFlush() bila memakai single buffer
 // gunakan glutSwapBuffers() bila memakai double buffer
 glutSwapBuffers();
}

// inisialisasikan variabel, pencahayaan, tekstur dan pengaturan kamera pandang di fungsi init()
void init(void)
{
 // inisialisasi warna latar belakang layar dalam hal ini warna putih (1.0, 1.0, 1.0, 0.0)
 glClearColor(1.0, 1.0, 1.0, 0.0);
 glEnable(GL_DEPTH_TEST);    // mengaktifkan depth buffer
 glMatrixMode(GL_PROJECTION);  
 glLoadIdentity();
 gluPerspective(45.0, 1.0, 1.0, 100.0); // set proyeksi ke perspektif
 glMatrixMode(GL_MODELVIEW);    
 glLoadIdentity();      
 // inisialisasi kamera pandang
 gluLookAt(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
 // enable lighting
 glEnable(GL_LIGHTING);
 glEnable(GL_COLOR_MATERIAL);
 glEnable(GL_LIGHT0);
}

// fungsi ini digunakan bila layar akan diresize (default)
void reshape(int w, int h)
{
 glViewport(0, 0, (GLsizei)w, (GLsizei)h);
 glMatrixMode(GL_PROJECTION);
 glLoadIdentity();
 gluPerspective(45, (GLfloat)w / (GLfloat)h, 1.0, 100.0);
 glMatrixMode(GL_MODELVIEW);
}

// fungsi untuk mengatur masukan dari keyboard 
// untuk arah kiri, kanan, atas, bawah, PgUp, dan PgDn
void keyboard(int key, int x, int y)
{
 float fraction = 0.1f;

 switch (key) 
 {
 // masukkan perintah disini bila tombol kiri ditekan
 case GLUT_KEY_LEFT:
  // dalam hal ini perintah rotasi obyek ke kiri sebanyak 1 derajat 
  objectAngleY -= 1.0f;
  glutPostRedisplay(); // update obyek
  break;
 // masukkan perintah disini bila tombol kanan ditekan
 case GLUT_KEY_RIGHT:  
  // dalam hal ini perintah rotasi obyek ke kanan sebanyak 1 derajat 
  objectAngleY += 1.0f;
  glutPostRedisplay(); // update obyek
  break;
 // masukkan perintah disini bila tombol atas ditekan
 case GLUT_KEY_UP:  
  // dalam hal ini perintah rotasi obyek ke atas sebanyak 1 derajat 
  objectAngleX -= 1.0f;
  glutPostRedisplay(); // update obyek
  break;
 // masukkan perintah disini bila tombol bawah ditekan
 case GLUT_KEY_DOWN:  
  // dalam hal ini perintah rotasi obyek ke bawah sebanyak 1 derajat 
  objectAngleX += 1.0f;
  glutPostRedisplay(); // update obyek
  break;
 // zoom in
 case GLUT_KEY_PAGE_UP:
  // masukkan perintah disini bila tombol PgUp ditekan
  posX += rotX * fraction;  
  posZ += rotZ * fraction;
  glutPostRedisplay(); // update obyek
  break;
 // zoom out
 case GLUT_KEY_PAGE_DOWN:
  // masukkan perintah disini bila tombol PgDn ditekan
  posX -= rotX * fraction;
  posZ -= rotZ * fraction;
  glutPostRedisplay(); // update obyek
  break;
 }
}

// timer untuk animasi (gunakan bila perlu)
void timer(int value)
{
 glutPostRedisplay();
 glutTimerFunc(55, timer, 0);
}

// program utama
int main(int argc, char** argv)
{
 // inisialisasi jendela OpenGL
 // GLUT_SINGLE berarti memakai single buffer
 // GLUT_DOUBLE berarti memakai double buffer
 // GLUT_RGB berarti mode tampilan yang dipakai RGB
 // GLUT_RGBA berarti mode tampilan yang dipakai RGBA
 // GLUT_DEPTH berarti memakai depth buffer
 glutInit(&argc, argv);
 glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH);

 // set ukuran jendela tampilan
 glutInitWindowSize(480, 480);  // besarnya jendela dalam piksel dalam hal ini 300x300
 glutInitWindowPosition(100, 100); // posisi jendela dilayar komputer dalam piksel
 // judul jendela (wajib diubah dengan informasi NAMA / NIM - JUDUL PRAKTIKUM masing-masing)
 glutCreateWindow("NAMA / NIM - KODE DASAR PRAKTIKUM GRAFIKA KOMPUTER");
 
 // panggil fungsi init untuk inisialisasi awal
 init();

 // event handler untuk display, reshape dan keyboard
 glutDisplayFunc(display);   // display
 glutReshapeFunc(reshape);   // reshape
 glutSpecialFunc(keyboard);  // keyboard
 //glutTimerFunc(0, timer, 0); // aktifkan timer bila perlu

 // looping
 glutMainLoop();

 return 0;
}

Kamis, 03 Mei 2018

glutSolidTeapot

// praktikum 5 grafika komputer : proyeksi 3D
// adhi prahara. 2018

// deklarasikan semua header disini
#include <windows.h>
#include <glut.h>

#define SCREEN_WIDTH 480
#define SCREEN_HEIGHT 480

float position[] = {0.0f,100.0f,100.0f,1.0f}; // posisi sumber cahaya utk orthogonal

// inisialisasi variabel untuk transformasi seperti translasi, rotasi atau scaling
float angle = 0.0f; // sudut transformasi kamera
float posX = 0.0f, rotX =  0.0f; // posisi kamera di sumbu X
float posY = 0.0f, rotY =  0.0f; // posisi kamera di sumbu Y
float posZ = 5.0f, rotZ = -1.0f; // posisi kamera di sumbu Z

float objectAngleX = 0.0f; // sudut tranformasi obyek di sumbu X
float objectAngleY = 0.0f; // sudut tranformasi obyek di sumbu Y
float objectAngleZ = 0.0f; // sudut tranformasi obyek di sumbu Z

// fungsi untuk menggambar obyek kubus
void drawObject()
{
// obyek bisa dimasukkan diantara glPushMatrix() dan glPopMatrix() 
// fungsinya agar obyek tidak terpengaruh atau mempengaruhi obyek lain
// saat diwarnai, ditransformasi dan sebagainya
glLightfv(GL_LIGHT0,GL_POSITION,position);

glPushMatrix();

// operasi transformasi rotasi obyek ke arah kanan-kiri
glRotatef(objectAngleY, 0.0f, 1.0f, 0.0f);

glPushMatrix();

// operasi transformasi rotasi obyek ke arah atas-bawah
glRotatef(objectAngleX, 1.0f, 0.0f, 0.0f);

glPushMatrix();

glColor3f(1.0f, 0.3f, 0.0f); // set warna obyek ke warna merah
glTranslatef(-100.0f,100.0f,-80.0f); // translate ke kiri-atas
glRotatef(-90.0f,0.0f,1.0f,0.0f); // tampilan depan teapot
glutSolidTeapot(50.0f); // gambar teapot 1

glPopMatrix();


glPushMatrix();

glColor3f(0.7f, 0.0f, 1.0f); // set warna obyek ke warna merah
glTranslatef(100.0f,100.0f,-80.0f); // translate ke kiri-atas
glRotatef(-270.0f,0.0f,1.0f,0.0f); // tampilan depan teapot
glutSolidTeapot(50.0f); // gambar teapot 2

glPopMatrix();


glPushMatrix();

glColor3f(0.0f, 1.0f, 1.0f); // set warna obyek ke warna merah
glTranslatef(100.0f,-100.0f,-80.0f); // translate ke kiri-atas
glRotatef(-40.0f,0.0f,1.0f,0.0f); // tampilan depan teapot
glutSolidTeapot(50.0f); // gambar teapot 3

glPopMatrix();

glPushMatrix();

glColor3f(1.0f, 1.0f, 1.0f); // set warna obyek ke warna merah
glTranslatef(-100.0f,-100.0f,-80.0f); // translate ke kiri-atas
glRotatef(-180.0f,0.0f,1.0f,0.0f); // tampilan depan teapot
glutSolidTeapot(50.0f); // gambar teapot 4

glPopMatrix();

glPopMatrix();

glPopMatrix();
}

// taruh semua obyek yang akan digambar di fungsi display()
void display()
{
// bersihkan dan reset layar dan buffer
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();

// posisikan kamera pandang
// dalam hal ini sumbu Y ada diatas dan posisi kamera pandang di (posX, posY, posZ)
gluLookAt(posX, posY, posZ, posX + rotX, posY + rotY, posZ + rotZ, 0.0f, 1.0f, 0.0f);

// panggil fungsi untuk menggambar obyek
drawObject();

// tampilkan obyek ke layar
// gunakan glFlush() bila memakai single buffer
// gunakan glutSwapBuffers() bila memakai double buffer
glutSwapBuffers();
}

// inisialisasikan variabel, pencahayaan, tekstur dan pengaturan kamera pandang di fungsi init()
void init(void)
{
// inisialisasi warna latar belakang layar dalam hal ini warna putih (1.0, 1.0, 1.0, 0.0)
glClearColor(1.0, 1.0, 1.0, 0.0);
glEnable(GL_DEPTH_TEST); // mengaktifkan depth buffer
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
// set proyeksi ke perspektif
//gluPerspective(45.0, 1.0, 1.0, 100.0);
// set proyeksi ke orthogonal
glOrtho((GLfloat)-SCREEN_WIDTH / 2, (GLfloat)SCREEN_WIDTH / 2,
(GLfloat)-SCREEN_HEIGHT / 2, (GLfloat)SCREEN_HEIGHT / 2, 1.0, 100.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
// inisialisasi kamera pandang
gluLookAt(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
// enable lighting
glEnable(GL_LIGHTING);
glEnable(GL_COLOR_MATERIAL);
glEnable(GL_LIGHT0);
}

// fungsi ini digunakan bila layar akan diresize (default)
void reshape(int w, int h)
{
glViewport(0, 0, (GLsizei)w, (GLsizei)h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
// set proyeksi ke perspektif
//gluPerspective(45, (GLfloat)w / (GLfloat)h, 1.0, 100.0);
// set proyeksi ke orthogonal
glOrtho((GLfloat)-w / 2, (GLfloat)w / 2, (GLfloat)-h / 2, (GLfloat)h / 2, 1.0, 100.0);
glMatrixMode(GL_MODELVIEW);
}

// fungsi untuk mengatur masukan dari keyboard 
// untuk arah kiri, kanan, atas, bawah, PgUp, dan PgDn
void keyboard(int key, int x, int y)
{
float fraction = 0.1f;

switch (key) 
{
// masukkan perintah disini bila tombol kiri ditekan
case GLUT_KEY_LEFT:
// dalam hal ini perintah rotasi obyek ke kiri sebanyak 1 derajat 
objectAngleY -= 1.0f;
glutPostRedisplay(); // update obyek
break;
// masukkan perintah disini bila tombol kanan ditekan
case GLUT_KEY_RIGHT:
// dalam hal ini perintah rotasi obyek ke kanan sebanyak 1 derajat 
objectAngleY += 1.0f;
glutPostRedisplay(); // update obyek
break;
// masukkan perintah disini bila tombol atas ditekan
case GLUT_KEY_UP:
// dalam hal ini perintah rotasi obyek ke atas sebanyak 1 derajat 
objectAngleX -= 1.0f;
glutPostRedisplay(); // update obyek
break;
// masukkan perintah disini bila tombol bawah ditekan
case GLUT_KEY_DOWN:
// dalam hal ini perintah rotasi obyek ke bawah sebanyak 1 derajat 
objectAngleX += 1.0f;
glutPostRedisplay(); // update obyek
break;
// zoom in
case GLUT_KEY_PAGE_UP:
// masukkan perintah disini bila tombol PgUp ditekan
posX += rotX * fraction;
posZ += rotZ * fraction;
glutPostRedisplay(); // update obyek
break;
// zoom out
case GLUT_KEY_PAGE_DOWN:
// masukkan perintah disini bila tombol PgDn ditekan
posX -= rotX * fraction;
posZ -= rotZ * fraction;
glutPostRedisplay(); // update obyek
break;
}
}

// timer untuk animasi (gunakan bila perlu)
void timer(int value)
{
glutPostRedisplay();
glutTimerFunc(55, timer, 0);
}

// program utama
int main(int argc, char** argv)
{
// inisialisasi jendela OpenGL
// GLUT_SINGLE berarti memakai single buffer
// GLUT_DOUBLE berarti memakai double buffer
// GLUT_RGB berarti mode tampilan yang dipakai RGB
// GLUT_RGBA berarti mode tampilan yang dipakai RGBA
// GLUT_DEPTH berarti memakai depth buffer
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH);

// set ukuran jendela tampilan
glutInitWindowSize(480, 480); // besarnya jendela dalam piksel dalam hal ini 300x300
glutInitWindowPosition(100, 100); // posisi jendela dilayar komputer dalam piksel
// judul jendela (wajib diubah dengan informasi NAMA / NIM - JUDUL PRAKTIKUM masing-masing)
glutCreateWindow("NAMA / NIM - KODE DASAR PRAKTIKUM GRAFIKA KOMPUTER");

// panggil fungsi init untuk inisialisasi awal
init();

// event handler untuk display, reshape dan keyboard
glutDisplayFunc(display);   // display
glutReshapeFunc(reshape);   // reshape
glutSpecialFunc(keyboard);  // keyboard
//glutTimerFunc(0, timer, 0); // aktifkan timer bila perlu

// looping
glutMainLoop();

return 0;
}

Rabu, 23 November 2016

AVL Tree c++

#include <cstdlib>
#include <iostream>

using namespace std;
#include<stdio.h>
#include<stdlib.h>

// An AVL tree node
struct Node
{
    int key;
    struct Node *left;
    struct Node *right;
    int height;
};

// A utility function to get maximum of two integers
int max(int a, int b);

// A utility function to get height of the tree
int height(struct Node *N)
{
    if (N == NULL)
        return 0;
    return N->height;
}

// A utility function to get maximum of two integers
int max(int a, int b)
{
    return (a > b)? a : b;
}

/* Helper function that allocates a new node with the given key and
    NULL left and right pointers. */
struct Node* newNode(int key)
{
    struct Node* node = (struct Node*)
                        malloc(sizeof(struct Node));
    node->key   = key;
    node->left   = NULL;
    node->right  = NULL;
    node->height = 1;  // new node is initially added at leaf
    return(node);
}

// A utility function to right rotate subtree rooted with y
// See the diagram given above.
struct Node *rightRotate(struct Node *y)
{
    struct Node *x = y->left;
    struct Node *T2 = x->right;

    // Perform rotation
    x->right = y;
    y->left = T2;

    // Update heights
    y->height = max(height(y->left), height(y->right))+1;
    x->height = max(height(x->left), height(x->right))+1;

    // Return new root
    return x;
}

// A utility function to left rotate subtree rooted with x
// See the diagram given above.
struct Node *leftRotate(struct Node *x)
{
    struct Node *y = x->right;
    struct Node *T2 = y->left;

    // Perform rotation
    y->left = x;
    x->right = T2;

    //  Update heights
    x->height = max(height(x->left), height(x->right))+1;
    y->height = max(height(y->left), height(y->right))+1;

    // Return new root
    return y;
}

// Get Balance factor of node N
int getBalance(struct Node *N)
{
    if (N == NULL)
        return 0;
    return height(N->left) - height(N->right);
}

// Recursive function to insert key in subtree rooted
// with node and returns new root of subtree.
struct Node* insert(struct Node* node, int key)
{
    /* 1.  Perform the normal BST insertion */
    if (node == NULL)
        return(newNode(key));

    if (key < node->key)
        node->left  = insert(node->left, key);
    else if (key > node->key)
        node->right = insert(node->right, key);
    else // Equal keys are not allowed in BST
        return node;

    /* 2. Update height of this ancestor node */
    node->height = 1 + max(height(node->left),
                           height(node->right));

    /* 3. Get the balance factor of this ancestor
          node to check whether this node became
          unbalanced */
    int balance = getBalance(node);

    // If this node becomes unbalanced, then
    // there are 4 cases

    // Left Left Case
    if (balance > 1 && key < node->left->key)
        return rightRotate(node);

    // Right Right Case
    if (balance < -1 && key > node->right->key)
        return leftRotate(node);

    // Left Right Case
    if (balance > 1 && key > node->left->key)
    {
        node->left =  leftRotate(node->left);
        return rightRotate(node);
    }

    // Right Left Case
    if (balance < -1 && key < node->right->key)
    {
        node->right = rightRotate(node->right);
        return leftRotate(node);
    }

    /* return the (unchanged) node pointer */
    return node;
}

// A utility function to print preorder traversal
// of the tree.
// The function also prints height of every node
void preOrder(struct Node *root)
{
    if(root != NULL)
    {
        printf("%d ", root->key);
        preOrder(root->left);
        preOrder(root->right);
    }
}

/* Drier program to test above function*/
int main(int argc, char *argv[])
{
    struct Node *root = NULL;

  /* Constructing tree given in the above figure */
  root = insert(root, 10); 
  root = insert(root, 20);
  root = insert(root, 30);
  root = insert(root, 40);
  root = insert(root, 50);
  root = insert(root, 25);  //replace as number desideratum

  /* The constructed AVL Tree would be
            30
           /  \
         20   40
        /  \     \
       10  25    50
  */

  printf("Preorder traversal of the constructed AVL"
         " tree is \n");
  preOrder(root);
    system("PAUSE");
    return EXIT_SUCCESS;
}


Rabu, 05 Oktober 2016

Link list v2 C++

#include <cstdlib>
#include <iostream>

using namespace std;
template <class T>
class Node {
friend class List<T>;
friend ostream& operator<<(ostream&, const List<T>&);
public :
protected :
T info;
Node *berikut;
};
template <class T>
class List {
friend ostream& operator<<(ostream&, const List<T>&);
public :
List() : kepala(0) { }
~List();
void sisip(T t);

int hapus(T& t);
int kosong() { return (kepala == 0); }

void cetak();
Node(T& t, Node<T>* p) : info(t), berikut(p) { }
protected:
Node<T>* kepala;
Node<T>* nodeBaru(T& t, Node<T>* p)
{ Node<T>* q = new Node<T>(t,p); return q; }
};
template <class T>
ostream& operator<<(ostream& out, const List<T>& k) {
for (Node<T>* p = k.kepala; p; p=p->berikut)
out << p->info << " -> ";
out << "*\n";
return out;
}
template <class T>
List<T>::~List() {
Node<T>* temp;
for (Node<T>* p = kepala; p;)
{
temp = p;
p = p->berikut;
delete temp;
}
}
template <class T>
void List<T>::sisip(T t)
{ cout << t << " masuk list : ";
Node<T>* p = nodeBaru(t,kepala);
kepala = p;
}
template <class T>
int List<T>::hapus(T& t)
{
if (kosong()) return 0;     // penghapusan gagal
t = kepala->info;
Node<T>* p = kepala;
kepala = kepala->berikut;
delete p;
return 1;                      // penghapusan sukses
}
template <class T>
void List<T>::cetak()
{
for (Node<T>* p = kepala; p; p=p->berikut)
cout << p->info << " -> ";
cout << "*\n";
}
int main(int argc, char *argv[])
{
    List<char> x;
char data;
x.sisip('a');
cout << x;
x.sisip('b');
cout << x;
x.sisip('c');
cout << x;
x.sisip('d');
cout << x;
for (int i=0; i<5; i++) {
x.hapus(data); cout << data << " dihapus dari list : ";
cout << x;
}
    system("PAUSE");
    return EXIT_SUCCESS;
}

Link list C++

#include <cstdlib>
#include <iostream>

using namespace std;
struct link{
       int nilai;
       link *next;
       };
link *head=NULL;
void insert(int i){
     link *temp =new link;
     temp->nilai=i;
     temp->next=NULL;
     if(head==NULL){
                    head=temp;
     }
     else{
     link *temp2= head;
     while(temp2->next !=NULL){
     temp2=temp2->next;
     }
     temp2->next=temp;
     }
     }
void cetak(){
     link *baik =head;
     while(baik !=NULL){
     cout<<baik->nilai<<" ";
     baik=baik->next;
}
}
int main(int argc, char *argv[])
{
    insert(3);
    insert(7);
    insert(90);
    insert(6);
    insert(5);
    cetak();
    cout<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}

Senin, 08 Agustus 2016

Farming Pokemon dengan Pokecrot 4.0 new 08-08-2016

Pokecrot 4.0 Farming
pokecrot ini sudah saya edit gan khusus akun google dan API terbaru
jika ingin ganti lokasi lihat tutorial yang ad didalam rar
Pokemon terbaru memiliki fitur

  •  fix pokemon list forbidden error
  • Multi account Bot
  • Auto Farms pokestops
  • Auto Catches Pokemons 
  • Auto Evolves Pokemons
  • auto Recycle Items
  • Humanwalk Logic
  • Anti Softban
  • Keep pokemon which can be evolved 
  • add spain
  • brazil Turkey language
  • another language soon
  • Add egg incubator
  • System api

Berikut screenshotnya



Cara pakainya sangat mudah. Pada umumnya permainan pokemon go ini harus menangkap dan bertarung pokemon untuk menaikkan level, karna genre permainan ini location based game yang memanfaatkan teknologi AR (Augmented Reality) jadi untuk memainkan permainan inikalian mesti ke luar rumah, tapi sobat tenang aja deh dengan aplikasi ini sobat tidak perlu keluar rumah untuk memainkan game pokemon go ini, hanya dengan berbaring atau dumis (duduk manis) di depan rumah, hanya dengan instal pokecrot for pokemon go terbaru.

tutorial singka  //nomer 4 harus di rubah

1.jangan buka pokecrotnya karena kita harus menyetel dari notepad (jika sudah terlanjur maka tutup aplikasi pokecrot dan hapus file LastCoords.ini didalam folder setting)

2. Buka File PokemonGo.RocketAPI.Console.exe Dengan notepad

3. cari
      <setting name="DefaultLatitude" serializeAs="String">
        <value>-33.864715</value>
      </setting>
      <setting name="DefaultLongitude" serializeAs="String">
        <value>151.209602</value>
      </setting>
ganti kordinat dengan yang kalian inginkan defaulnya sydney

4. PENTING Cari
      </setting>
      <setting name="GoogleEmail" serializeAs="String">
        <value>001</value>
      </setting>
      <setting name="GooglePassword" serializeAs="String">
        <value>002</value>
      </setting>
ganti 001 dengan akun google kalian contoh // muhammad@gmail.com
ganti 002 dengan paswod google kalian

5. jika sudah buka PokemonGo.RocketAPI.Console

ini link terbaru gan tutorian ada didalamnya
http://adf.ly/1d046h
atau
http://www77.zippyshare.com/v/4OqM1PAY/file.html