Thursday, April 11, 2013

Cara menambahkan custom map pada company of heroes

Game Company Of Heroes adalah game strategi yang dikembangkan oleh relic entertainment. Game ini menceritakan tentang perang kedua antara dua kubu yaitu amerika dan german.



System Requirement



Kali ini saya akan share tentang cara menambahkan map baru pada game company of heroes menggunakan company of heroes - dev , karena pada folder instalasi tidak tersedia folder map tersendiri seperti game-game lainnya.

Langsung saja,
1. Masuk ke folder instalasi company of heroes -> WW2 -> data
2. Jika ada folder "scenarios", masuk ke folder tersebut. Jika tidak ada, silahkan create new folder dengan nama "scenarios"(tanpa tanda kutip).
3. Masuk ke folder scenarios, kemudian create new folder lagi dengan nama "mp"
4. Ekstrak map baru yang ingin anda mainkan ke dalam folder mp tadi
5. Kemudian buat shortcut pada folder instalasi company of heroes. tambahkan " -dev " pada kolom target.
6. Gunakan Shortcut yang baru dibuat untuk bermain.


Selamat bermain :)




Wednesday, March 13, 2013

Transformasi Objek 2D menggunakan Delphi

Kali ini saya akan sharing tentang tugas grafika komputer transformasi objek 2D menggunakan bahasa pemrograman delphi. Ada beberapa transformasi objek 2D seperti rotasi, translasi, skala, dll. Pada program ini saya menunjukkan contoh program yang menerapkan translasi dan skala pada objek 2D.


Program diatas menggunakan timer. Kepala membesar dan mengecil sesuai nilai yang telah dirandom. Untuk animasi translasinya, objek orang tersebut berpindah-pindah dari koordinat tertentu ke koordinat yang lain juga sesuai dengan nilai random yang telah ditentukan komputer.
Untuk lebih jelasnya silahkan download file lengkapnya pada link ini:
Tranformasi Objek 2D


Sunday, January 6, 2013

Program C Metode Biseksi

Program di bawah ini merupakan program penyelesaian non linear menggunakan metode biseksi.
Flowchart Program :

Source Code :


#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <windows.h>


void input(int *a,int *b,int *c,int *d,int *e,float *xn, float *xn1,float *error);
float hitungxmid(float xn, float xn1);
float hitungfxn(float a,float b, float c, float d,float e,float xn);
float hitungfxn1(float a,float b, float c, float d,float e,float xn1);
float hitungfxmid(float a,float b, float c, float d,float e,float xmid);
void switchval(float *xn, float*xn1,float*xmid,float*fxn,float*fxmid);
void output(float *xn,float *xn1,float *xmid,float *fxn,float *fxn1,float *fxmid,int *count);

//FUNGSI UTAMA
int main(){
    char repeat;
    do{
    SetConsoleTitle("Created By Herdian");
    int a,b,c,d,e,count=1;
    float xn, xn1,error,xmid,fxn,fxn1,fxmid;
 
    system("cls");
 
    printf("\t\t\tPROGRAM BISEKSI\n\n");
    input(&a,&b,&c,&d,&e,&xn,&xn1,&error);
 
    while(fabs(xn1-xn)>= error){
    xmid=hitungxmid(xn,xn1);
    fxn=hitungfxn(a,b,c,d,e,xn);
    fxn1=hitungfxn(a,b,c,d,e,xn1);
    fxmid=hitungfxmid(a,b,c,d,e,xmid);
    output(&xn,&xn1,&xmid,&fxn,&fxn1,&fxmid,&count);
    switchval(&xn,&xn1,&xmid,&fxn,&fxmid); count++;
    }
    printf("Ingin Mengulang Program ? <Y/N>"); repeat=getch();
    }while(repeat=='y'||repeat=='Y');
}

//FUNGSI INPUT
void input(int *a,int *b,int *c,int *d,int *e,float *xn, float *xn1,float *error){

printf("f(x)= (a)x^4 + (b)x^3 + (c)x^2 + (d)x + e\n");
printf("\nINPUT:\n");
printf("a = "); scanf("%d",a); fflush(stdin);
printf("b = "); scanf("%d",b); fflush(stdin);
printf("c = "); scanf("%d",c); fflush(stdin);
printf("d = "); scanf("%d",d); fflush(stdin);
printf("e = "); scanf("%d",e); fflush(stdin);
printf("\ninputkan xn, xn+1 dan batas error\n");
printf("xn   = "); scanf("%f",xn); fflush(stdin);
printf("xn+1 = "); scanf("%f",xn1); fflush(stdin);
printf("batas error = "); scanf("%f",error); fflush(stdin);

}
//FUNGSI HITUNG XMID
float hitungxmid(float xn, float xn1){
float xmid;
xmid = (xn + xn1)/2;
return(xmid);  
}

//FUNGSI HITUNG F(xn)
float hitungfxn(float a,float b, float c, float d,float e,float xn){
float fxn;
fxn = ((a*pow(xn,4))+(b*pow(xn,3))+(c*pow(xn,2))+(d*xn)+e);
return (fxn);
}

//FUNGSI HITUNG F(xn+1)
float hitungfxn1(float a,float b, float c, float d,float e,float xn1){
float fxn1;
fxn1 = ((a*pow(xn1,4))+(b*pow(xn1,3))+(c*pow(xn1,2))+(d*xn1)+e);
return (fxn1);
}

//FUNGSI HITUNG F(xmid)
float hitungfxmid(float a,float b, float c, float d,float e,float xmid){
float fxmid;
fxmid = ((a*pow(xmid,4))+(b*pow(xmid,3))+(c*pow(xmid,2))+(d*xmid)+e);
return (fxmid);
}

//FUNGSI MENUKAR NILAI
void switchval(float *xn, float*xn1,float*xmid,float*fxn,float*fxmid){
if((*fxn) * (*fxmid) < 0 ) {*xn1 = *xmid; }
else if ((*fxn) * (*fxmid) > 0 )*xn = *xmid;
}

//FUNGSI OUTPUT
void output(float *xn,float *xn1,float *xmid,float *fxn,float *fxn1,float *fxmid,int *count){
if(*count==1){
printf("ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ\n");
printf("no    xn       xn+1      xmid      f(xn)      f(xn+1)    f(xmid) \n");
printf("ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ\n");}
printf("%0d   %f  %f  %f  %f  %f   %f  \n",*count,*xn,*xn1,*xmid,*fxn,*fxn1,*fxmid);

}

Wednesday, October 31, 2012

Membuat Program / Software Portable menggunakan WinRar

Kali ini saya ingin share tentang cara membuat program menjadi portable. Membuat Program Aplikasi atau software Jadi portable berarti membuatnya mudah dibawa dan dijalankan di tempat lain tanpa memerlukan instalasi lagi.

Sebenarnya ada 3 cara untuk membuat program portable, yang pertama secara manual, menelusuri akar program yang berada di program files dan bermain registry.  Cara kedua adalah membuat program portable menggunakan software bantu. seperti Thinstall, Cameyo,dll. Sedangkan cara ketiga menggunakan program kompressi semisal winrar. Prinsip kerjanya adalah kita extrak program instalasi yang berasal dari file *. exe maupun *.msi kemudian mengemas kembali menggunakan winrar dengan toolnya, SFX. Tapi kelemahannya adalah tidak bisa digunakan untuk aplikasi yang menerapkan registry didalamnya.
Nah, kali ini saya akan membahas cara yang ketiga. Cara mudah menjadikan suatu program jadi portable, Tidak usah pakai alat bantu lain, cukup winrar yang insyallah di setiap PC sudah terinstall :D. Mungkin cara pertama atau yang kedua akan saya posting lagi jika ada waktu.

Oke, langsung saja . Berikut langkah-langkahnya :
1. Tentukan file program yang akan dibuat portable, berikut file pendukungnya (*.dll, *.ini, dsb, beserta folder2nya).

2. Buka notepad, ketikkan nama file program (*.exe) yang akan dibuat portabel (ex: firefox.exe), save dengan nama "launch.bat" (tanpa tanda kutip), save ke dalam satu direktori program yang akan dibuat portable.

3. Pilih semua file program (ctrl+a), beserta file pendukungnya (*.dll, *.ini, dsb, beserta folder2nya), ditambah dengan file launch.bat yang baru saja dibuat. klik kanan, pilih add to archive.

4. Pada Archiving Options, centang create sfx archive

5. pilih tab comment,
masukkan perintah berikut ini
Setup=Launch.bat
TempMode
Silent=1
Overwrite=1



Anda juga bisa mengganti icon program. Caranya pilih tab Advanced, pilih SFX Options, pilih tab text and icon lalu pada pilih file(*.ico) pada Load SFX icon from the file.

6. klik ok, dan tunggu proses kompresi selesai
7. Cek Program ,kalau error atau tidak bisa jalan, berarti memang program tsb tidak bisa jadi portabel.

Sudah segitu saja. Simple kan?
Semoga bermanfaat :)




Monday, October 29, 2012

Program C Latihan Pengulangan (Loop)




Source code dibawah ini merupakan latihan pengulangan menggunakan bahasa C. Keluaran atau outputnya seperti gambar diatas. User menginputkan nilai n yang berupa nilai ganjil.  nilai tertinggi berada di pusat dan dikelilingi nilai -1 dari bilangan tertinggi. nilai n menentukan panjang dan lebar kotak.

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

int main(){
int n,a,b,c,indeks=1,decrement;

//filter input agar selalu ganjil
while(n%2!=1){
system("cls");
printf("masukkan n : "); scanf("%d",&n);
}

decrement=n;
//pengulangan ke bawah
for(a=1;a<=n;a++) {
                  c=1;
                 //pengulangan ke samping
                  for(b=1; b<=n; b++) {
                                                                   printf("%d ",c);
                                                                   if(b>=1 && b<indeks) c= c+1;
                                                                   else if(b>=decrement) {c=c-1; }
                                                                   }
               
                  if(a>=(n/2)+1) {indeks= indeks - 1;
                                  decrement=decrement+1;}
                  else {indeks=indeks+1;
                        decrement = decrement-1;}
                 
                
                 printf("\n");
                 }  
   
   
getch();   
}

Soal ini diambil dari Tutorial Turbo Pascal 7.01
Selamat Berlatih..