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

Senin, 30 Mei 2016

Wireshark

Wireshark merupakan salah satu network analysis tool, atau disebut juga
dengan protocol analysis tool atau packet sniffer. Wireshark dapat digunakan untuk
troubleshooting jaringan, analisis keamanan, pengembangan software dan protocol,
serta untuk keperluan edukasi. Wireshark merupakan software gratis, sebelumnya,
Wireshark dikenal dengan nama Ethereal. Packet sniffer sendiri diartikan sebagai
sebuah program atau tool yang memiliki kemampuan untuk ‘mencegat’ dan
melakukan pencatatan terhadap traffic data dalam jaringan. Selama terjadi aliran
data dalam, packet sniffer dapat menangkap protocol data unit (PDU), melakukan
dekoding serta melakukan analisis terhadap isi paket berdasarkan spesifikasi RFC
atau spesifikasi-spesifikasi yang lain.

Dalam berbagai kalangan praktisi Wireshark berguna antara lain untuk :
• Network Administrator, untuk Troubleshooting.
• Teknisi keamanan jaringan memakainya untuk mengawasi jaringan.
• Developer, untuk debug implementasi protocol.
• Awam memakainya untuk belajar protocol jaringan.
Fitur-Fitur Wireshark
• Tersedia untuk Windows dan UNIX. PP/018/TH18418/V/342
• Capturing paket data secara live dari suatu jaringan.
• Menampilkan informasi paket secara sangat detail.
• Membuka dan menyimpan paket data yang sudah di-capture.
• Import dan Export paket data dari program capturing lain.
• Paket Filter dalam berbagai criteria.
• Mencari paket dalam berbagai criteria.
• Membuat Statistik data.
Menu Wireshark :
• File : Open, Merge, Save, Print, export, capture, quit.
• Edit : Mencari Paket, Referensi Waktu, Menandai Paket, Konfigurasi Profil, Set Preferences
• View : Menangani tampilan data yang dicapture termasuk pewarnaan, zooming, dll.
• Go : Untuk menuju ke paket tertentu.
• Capture : Memulai dan Stop Capturing, dan mengedit Filter.
• Analyze : Memanipulasi Filter, Enable atau Disable Protokol yang diinginkan, dll.
• Statistics : Menampilkan berbagai statistic, termasuk garis besar paket yang ditampilkan.

Download Wireshark:
http://wireshark.org/download.html

Senin, 16 Mei 2016

Cara Mendapat Super Magical Chest di Clash Royale

Clash Royale merupakan game mobile yang sangat populer, dengan jumlah pengguna yang terus meningkat setiap harinya, menjadikan Clash Royale sebagai salah satu game dengan label Top Download di Google Play Store atau-pun App Store.
Bagi para pemain Clash Royale, tentu saja hal yang bernama Chest (Peti) sangat diinginkan oleh para pemainnya. Sejauh ini, ada 7 jenis Chest yang ada di Clash Royale, yaitu Free Chest, Crown Chest, Silver Chest, Golden Chest, Giant Chest, Magical Chest, dan Super Magical Chest.

Dari ketujuh Chest tersebut, Chest yang memiliki kartu paling baik dari seluruh Chest adalah Super Magical Chest, dengan 360 kartu di dalamnya. Paling tidak kamu akan mendapatkan 12 kartu Epic dan 72 kartu Rare di Super Magical Chest ini. Hebat, bukan?

Cara Mendapatkan Super Magical Chest di Clash Royale

Berikut adalah tips yang bisa kamu lakukan agar bisa mendapatkan Super Magical Chest dengan mudah dan cepat, dan tentunya tanpa harus mengeluarkan uang sepeser-pun.

1. Menangkan Battle 5 Kali Berturut-turut (Streak Win)

win-battle 

Sulit memang. Tapi dengan memenangkan battle 5 kali berturut-turut, maka kesempatan kamu mendapatkan Super Magical Chest di Clash Royale tentu semakin meningkat, jangan pernah takut untuk bereksperimen dengan Battle Deck kamu, karena tentunya musuh yang kamu hadapi memiliki gaya serangan yang berbeda.

2. Sebisa Mungkin Dapatkan 3 Crown di Battle Arena

three-crown 
Supercell sangat menghargai para pemain yang bisa menghancurkan King Tower lawan dan mendapatkan 3 Crown di Battle Arena. Dengan begini kesempatan kamu untuk mendapatkan Super Magical Chest akan terbuka lebar. Meskipun begitu, tidak menutup kemungkinan pemain yang mendapatkan 1 Crown bisa mendapatkan Super Magical Chest, tapi itu akan sangat jarang.

3. Pastikan Free Chest dan Crown Chest Dalam Keadaan "Next in:"

next-in
Salah satu syarat berikutnya adalah dengan mengosongkan slot pada Free Chest dan Crown Chest. Cara ini terbukti dapat mengundang Super Magical Chest lebih cepat dari biasanya.

4. Cobalah Untuk Membeli Treasure Chests

treasure-chests
Tidak wajib memang, tapi dengan membeli salah satu dari Treasure Chests yang ada, tentunya Supercell akan lebih menghargai kamu karena sudah rela mengeluarkan uang. Dengan begitu, Supercell tidak akan sungkan memberikan Super Magical Chest kepada kamu.

5. Sebisa Mungkin Hindari Sudden Death

sudden-death
Meskipun terlihat keren, tapi Sudden Death sangat tidak dianjurkan jika kamu ingin mendapatkan Super Magical Chest dengan cepat. Alangkah baiknya kamu dapat menyelesaikan battle sebelum waktu normal habis, akan mendapat nilai tambah jika kamu mendapatkan 3 Crown.

6. Selesaikan Achievements

achievements 
Clash Royale memiliki banyak Achievements yang bisa kamu selesaikan. Jika kamu berhasil menyelesaikan seluruh Achievements yang ada, kamu tidak hanya mendapatkan Gems, kamu bahkan juga bisa mendapatkan Super Magical Chest.

7. Jangan Pelit Donasi

clan-donate
Jangan sepelekan Donasi, karena donasi adalah sebuah hal yang penting jika kamu sudah bergabung ke dalam sebuah Clan di Clash Royale. Donasi menjadi salah satu faktor penting kamu dalam mendapatkan Super Magical Chest.

 

menghitung data keseluruhan secara berurutan c++

menghitung data kelipatan
contih
1
2
3
4
5
6
7
8

anda ingin menghitung semua data diatas
jika di jumlahkan semua berapa jumlah keseluruhan data tersebut

#include<iostream>
#include<conio.h>

using namespace std;

int main()
{
int bil, n;
long int hasil;

cout<<"===Mencari Nilai Faktorial===";
cout<<"\n===dari Bilangan Desimal===";
cout<<"\n=============================";
cout<<"\n\nMasukan angka = ";
cin>> n;

hasil=0;
for(bil=n; bil>=0;bil--)
{
hasil=hasil+bil;
}
cout<<"Hasil Faktorial= "<<hasil<<"\n";
getch();
}

Rabu, 06 April 2016

Mencetak bilangan dengan perbedaan +3 output bilangan genapnya c++

#include <iostream>
#include <conio.h>

using namespace std;

class pretest{
friend istream& operator>>(istream&, pretest&);
friend ostream& operator<<(ostream&, pretest&);
public:
int rekursif(int i, int b);
int literatif(int j, int k);
private:
int x,y;
};
int pretest::rekursif (int i,int b){

if (i>=b)
{
if (i % 2==0)
{
cout << i <<" ";      }
else
{    }
}
else
{
if (i % 2==0)
{
cout << i <<" ";
return rekursif(i+3,b);
}
else
{
return rekursif(i+3,b);
}
}
};

int pretest::literatif (int j,int k)
{

while (!(j>=k))
{
if (j % 2==0)
{
cout << j <<" ";      }
else
{   }
j =j+3;
}
if (j % 2==0)
{
cout << j <<" ";   }
else
{  }
};

istream& operator>>(istream& in, pretest& input){
cout<<"menghitung nilai genap dengan beda 3";
cout<<"\n\nMasukkan awal : ";
in>>input.x;
cout<<"Masukkan batas : ";
in>>input.y;
};

ostream&operator<<(ostream& out, pretest& output){
cout << "\n\nSecara Literatif = ";
output.literatif(output.x,output.y);
cout << "\n\nSecara rekursif = ";
output.rekursif(output.x, output.y);
};
int main()
{ pretest v;

cin>>v;
cout<<v;

getch();
}

Mencetak bilangan yang habis dibagi 5 dan 7 c++

Bila diubah ke C++ berikut adalah tampilanya :
#include <iostream>
#include <string>
using namespace std;
class Bagi{
      friend istream& operator>>(istream&, Bagi &);
      friend ostream& operator<<(ostream&, Bagi&);
      public:
       Bagi();
       void proses();
       private:
       int a;
       };
Bagi::Bagi(){
cout<<"Menampilkan bilangan yang habis dibagi 5 dan 7 antara 1 sampai 100"<<endl;
             }
void Bagi::proses(){
a =1;
while (!(a>100)){
if (a % 5==0 && a % 7==0){
cout << a << endl;
}else{}
a =a+1;
}
}
int main(){
    Bagi X;
    X.proses();
system("pause");
return 0;
}

Membalik kata yang diinputkan secara iteratif kemudian dirubah ke bentuk rekursif c++

Membalik kata yang diinputkan secara interatif kemudian dirubah ke bentuk rekursif dalam bentuk C++ :

#include <iostream.h>
#include <conio.h>


class Balik{
       friend istream& operator>>(istream&, Balik&);
       friend ostream& operator<<(ostream&, Balik&);
       public:
             void balik_kata();
             void balik(int s);
       private:
               char kata[50];
               int n;
};

void Balik::balik_kata(){//iteratif
     cout<<"Masukkan Kata Yang Akan Dibalik : ";
     cin>>kata;n=strlen(kata);
     //strrev(kata);
     cout<<"Kata Setelah Dibalik : ";
     balik(n);
}

void Balik::balik(int s){//rekursif
     if (s != -1){
            cout<<kata[s];
            balik(s-1);
            }
            }

int main()
{
 Balik X;
 X.balik_kata();
// X.balik(char *s);

  system ("Pause");
  return EXIT_SUCCESS;
}

Selasa, 22 Maret 2016

pengelolahan string prefix starclouser sufix positifclouser



unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    Label4: TLabel;
    a: TEdit;
    mmohasil: TMemo;
    Label5: TLabel;
    Button1: TButton;
    Button2: TButton;
    edttemplate: TEdit;
    Label2: TLabel;
    CheckBox3: TCheckBox;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox4: TCheckBox;
    procedure prefixmethod (karakter : string);
    procedure startmethod (karakter : string; ulang :integer);
    procedure sufixmethod (karakter : string);
    procedure positifmethod (karakter : string; ulang :integer);
    procedure Button1Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  karakter,i,j: string;
  ulang : integer;

implementation

{$R *.dfm}
procedure TForm1.prefixmethod(karakter : string);
 var
  i: Integer;
begin

  edttemplate.Text :='';
  mmohasil.Lines.Add('Hasil Prefik string = '+karakter);
  mmohasil.Lines.Add('--------------------------------');
  for i:= 0 to Length (karakter) do
  begin
     edttemplate.Text :=edttemplate.Text+''+karakter[i];
    mmohasil.Lines.Add (edttemplate.Text)
    end;
    mmohasil.Lines.Add ('--------------------------------');
  end;


procedure TForm1.startmethod(karakter : string;ulang : integer);
 var
    i : integer;
 begin
  edttemplate.Text :='';
  mmohasil.Lines.Add('Hasil Operasi StrartClouser = '+karakter);
  mmohasil.Lines.Add('--------------------------------');
  mmohasil.Lines.Add('');
  for i:= 0 to ulang-1 do
  begin
    edttemplate.Text := edttemplate.Text+''+karakter;
    mmohasil.Lines.Add (edttemplate.Text);
    end;
    mmohasil.Lines.Add('------------------------');
    end;


procedure TForm1.sufixmethod(karakter : string);
 var
  i,j: Integer;
begin
   edttemplate.Text :='';

     mmohasil.Lines.Add('Hasil Sufix string = '+karakter);
     mmohasil.Lines.Add('--------------------------------');
         for i:= 0 to length (karakter)   do
      begin
       edttemplate.Text:='';
       for j:=i+1 to length(karakter) do
       begin
       edttemplate.Text :=edttemplate.Text +''+karakter [j];
       end;
    mmohasil.Lines.Add (edttemplate.Text)

    end;
    mmohasil.Lines.Add ('--------------------------------');

  end;



procedure TForm1.positifmethod(karakter : string;ulang : integer);
 var
 i : integer;
 begin

  edttemplate.Text :='';
  mmohasil.Lines.Add('Hasil Operasi Positif Clouser = ');
  mmohasil.Lines.Add('--------------------------------');
 // mmohasil.Lines.Add('');
   for i:= 0 to ulang-1 do
  begin

    edttemplate.Text :=edttemplate.Text+''+karakter;
    mmohasil.Lines.Add (edttemplate.Text);
    end;
    mmohasil.Lines.Add('------------------------');
    mmohasil.Lines.Add('');
    end;



procedure TForm1.Button1Click(Sender: TObject);
begin
 if CheckBox1.Checked=true then
 begin
  prefixmethod(Edit1.Text);
 end;

 if CheckBox2.Checked=true then
 begin
  startmethod(Edit1.Text, StrToInt(a.Text));

   end;

   if CheckBox3.Checked=true then
   begin
   sufixmethod(Edit1.Text);
   end;

  if CheckBox4.Checked=true then
  begin
    positifmethod(Edit1.Text, StrToInt(a.Text));
   end;

    end;


end.