pernah kedapetan kode program yang ditulis kayak gini gak ?
#include <stdio.h> /*Program penukaran dua variabel*/ void tukar(int* x, int* y){ int temp=*x; *x=*y; *y=temp; } int main(){ int a=5; int b=7; printf("a=%d\n",a); printf("b=%d\n",b); tukar(&a,&b); //terjadi penukaran printf("..Setelah penukaran..\n"); printf("a=%d\n",a); printf("b=%d\n",b); }
Waktu pertama kali diliat, mungkin ada beberapa orang yang mengerti maksud kode di atas, tapi tidaklah banyak. Kita sebagai programmer yang baik harus membuat kode kita readable atau dapat dibaca dan dipahami. Coba bandingkan kode di atas dengan kode di bawah ini.
/** * * Program penukaran dua variabel * dengan menggunakan sub-program. */ #include <stdio.h> void tukar(int* x, int* y) { int temp = *x; *x = *y; *y = temp; } int main() { // deklarasi dan inisialisasi variabel int a = 5; int b = 7; // variabel sebelum tertukar printf("a = %d\n", a); printf("b = %d\n", b); tukar(&a, &b); //terjadi penukaran printf("..Setelah penukaran..\n"); // variabel setelah tertukar printf("a = %d\n", a); printf("b = %d\n", b); }
A lot more readable, right ?
Ini ada beberapa perbandingan gaya penulisan kode yang disarankan
Variabel:
// Disarankan int x = 5; // Tidak disarankan int x=5;
Function call:
// Disarankan printf("x = %d", x); // Tidak disarankan printf("x=%d\n",x);
Operator dan operand:
// Disarankan z = x + (y * 2); // Tidak disarankan z=x+y*2;
Scope spacing:
// Disarankan void sub1() { //TODO } void sub2() { //TODO } // Tidak disarankan void sub1() { //TODO } void sub2() { //TODO }
Scope indentation:
// Disarankan int main() { int x = 5; printf("x = %d\n", x); } // Tidak disarankan int main() { int x=5; printf("x=%d\n",x); }
Tapi dari semua perbandingan kode di atas, ada loh orang yang menulis kode program dengan gaya yang unik. Contohnya seperti ini.
#include <math.h> #include <sys/time.h> #include <X11/Xlib.h> #include <X11/keysym.h> double L ,o ,P ,_=dt,T,Z,D=1,d, s[999],E,h= 8,I, J,K,w[999],M,m,O ,n[999],j=33e-3,i= 1E3,r,t, u,v ,W,S= 74.5,l=221,X=7.26, a,B,A=32.2,c, F,H; int N,q, C, y,p,U; Window z; char f[52] ; GC k; main(){ Display*e= XOpenDisplay( 0); z=RootWindow(e,0); for (XSetForeground(e,k=XCreateGC (e,z,0,0),BlackPixel(e,0)) ; scanf("%lf%lf%lf",y +n,w+y, y+s)+1; y ++); XSelectInput(e,z= XCreateSimpleWindow(e,z,0,0,400,400, 0,0,WhitePixel(e,0) ),KeyPressMask); for(XMapWindow(e,z); ; T=sin(O)){ struct timeval G={ 0,dt*1e6} ; K= cos(j); N=1e4; M+= H*_; Z=D*K; F+=_*P; r=E*K; W=cos( O); m=K*W; H=K*T; O+=D*_*F/ K+d/K*E*_; B= sin(j); a=B*T*D-E*W; XClearWindow(e,z); t=T*E+ D*B*W; j+=d*_*D-_*F*E; P=W*E*B-T*D; for (o+=(I=D*W+E *T*B,E*d/K *B+v+B/K*F*D)*_; p<y; ){ T=p[s]+i; E=c-p[w]; D=n[p]-L; K=D*m-B*T-H*E; if(p [n]+w[ p]+p[s ]== 0|K <fabs(W=T*r-I*E +D*P) |fabs(D=t *D+Z *T-a *E)> K)N=1e4; else{ q=W/K *4E2+2e2; C= 2E2+4e2/ K *D; N-1E4&& XDrawLine(e ,z,k,N ,U,q,C); N=q; U=C; } ++p; } L+=_* (X*t +P*M+m*l); T=X*X+ l*l+M *M; XDrawString(e,z,k ,20,380,f,17); D=v/l*15; i+=(B *l-M*r -X*Z)*_; for(; XPending(e); u *=CS!=N){ XEvent z; XNextEvent(e ,&z); ++*((N=XLookupKeysym (&z.xkey,0))-IT? N-LT? UP-N?& E:& J:& u: &h); --*( DN -N? N-DT ?N== RT?&u: & W:&h:&J ); } m=15*F/l; c+=(I=M/ l,l*H +I*M+a*X)*_; H =A*r+v*X-F*l+( E=.1+X*4.9/l,t =T*m/32-I*T/24 )/S; K=F*M+( h* 1e4/l-(T+ E*5*T*E)/3e2 )/S-X*d-B*A; a=2.63 /l*d; X+=( d*l-T/S *(.19*E +a *.64+J/1e3 )-M* v +A* Z)*_; l += K *_; W=d; sprintf(f, "%5d %3d" "%7d",p =l /1.7,(C=9E3+ O*57.3)%0550,(int)i); d+=T*(.45-14/l* X-a*130-J* .14)*_/125e2+F*_*v; P=(T*(47 *I-m* 52+E*94 *D-t*.38+u*.21*E) /1e2+W* 179*v)/2312; select(p=0,0,0,0,&G); v-=( W*F-T*(.63*m-I*.086+m*E*19-D*25-.11*u )/107e2)*_; D=cos(o); E=sin(o); } }
#define _ -F<00||--F-OO--; int F=00,OO=00;main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO() { _-_-_-_ _-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_ _-_-_-_ }
Gaya penulisan kode seperti itu dinamakan Obfuscated Programming. Yaitu penulisan kode agar maksud dari kode tersebut susah untuk ditebak.
Sekian dulu, semoga kita dapat menulis kode yang lebih indah dan readable.
Post a Comment