Showing posts with label Belajar Pemrograman Pascal. Show all posts
Showing posts with label Belajar Pemrograman Pascal. Show all posts

Soal USB 2011 Live Coding


Waktu pengerjaan 30 Menit, outputnya diminta seperti dibawah ini:
Ketentuan Program:
1. Harus menggunakan perulangan untuk membuat bangun
2. Tampilan berletak center bisa menggunakan window atau gotoxy(x,y) **
Tips dan Trik cukup satu : BERDOA DAN KUAT MENTAL! hehehehe :D
NB: **optional


Berikut Source Code dari  Fauzi Online:
Program FINAL_USB_2011;
uses crt;
var batas,hor1,ver1,a,c:integer;
const x='+';
begin
clrscr;
batas:=5;
hor1:=20;
ver1:=5;

for a:=1 to batas do begin
        for c:=1 to a do begin
                hor1:=hor1-1;
                gotoxy(hor1,ver1);
                write(x);
        end;
        hor1:=20;
        inc(ver1);

end;

hor1:=44;
ver1:=5;
for a:=1 to batas do begin
        for c:=1 to a do begin
                hor1:=hor1+1;
                gotoxy(hor1,ver1);
                write(x);
        end;
        hor1:=44;
        inc(ver1);

end;

for a:=1 to batas do begin
//vertical
        gotoxy(22,4+a);write(x,x);
        gotoxy(26,4+a);write(x,x);

//horizontal
        gotoxy(21+a,9);write(x);
        gotoxy(29+a,5);write(x);
        gotoxy(29+a,7);write(x);
        gotoxy(29+a,9);write(x);
        gotoxy(36+a,5);write(x);
        gotoxy(36+a,7);write(x);
        gotoxy(36+a,9);write(x);
end;
for a:=1 to batas-2 do begin
//vertical kecil
        gotoxy(30,4+a); write(x,x);
        gotoxy(33,6+a); write(x,x);
        gotoxy(37,4+a); write(x,x);
        gotoxy(37,6+a); write(x,x);
end;
gotoxy(42,6);write(x);
gotoxy(42,8);write(x);
gotoxy(15,10);write(x,x,'Unlimited   Software   Building',x,x);

readln;
end.
Mohon doanya, agar bisa lebih maju yaah? AMIIN.. SEMANGAT!! Salam Fauzi Online... see youu ^__^

Game Tetris Versi Pascal

Assalamualaikum wr wb, Waktu Fauzi teringat nih saat-saat memiliki GamePad atau dulu sering dibaca "Gembot" haha, iya namanya juga anak kecil waktu itu fauzi masih balita tuh, dan permainan Gamepad yang paling disukai adalah menyusun kotakan kotakan kecil menjadi sebuah kotakan horisontal atau vertikal sehingga mendapat nilai yang nantinya menjadi pemain yang mempunyai high score (dibaca sambil Horeee)....

Naaaah karena dulu fauzi suka tuh sama game itu, munculah ide untuk membuat apakah bisa dibuat game di pascal? naaah karena fauzi telah punya modem baru nih(#SmartFren) {dibaca pamer cerintanya} hihihihi, langsung deh browsing dan terdampar disebuah situs yang terdapat coding dasar pembuatan game tetris itu sendiri.

Game Tetris yang telah sukses dimainkan, Gamenya seru, Keren, dan yang lebih hebatnya bisa dimainkan 2Pemain loh, hehe jadinya lebih seru bukan?. hehe

Berikut ini hasil output Codingan Game Tertris Versi Fauzi yang telah selesai dicopile:
Naaah terus codingnya gimana ji?
Tenang nih silahkan Copy Paste langsung ke Notepad terus ganti deh filetypenya jadi .PAS, Monggoo dicoba ngodingnya diutak atik yah:

program tetris_2player;
uses crt;
type _points = array [1..4] of record
x,y : longint;
end;
tetris = record
points : _points;
cshape, nshape, xmodel, xtetris, ymodel, ytetris : longint;
end;

Const template : array [1..8] of _points =
(((x:1; y:1),(x:1; y:2),(x:2; y:1),(x:2; y:2)),
((x:2; y:1),(x:1; y:1),(x:3; y:1),(x:4; y:1)),
((x:1; y:2),(x:1; y:1),(x:1; y:3),(x:2; y:3)),
((x:2; y:2),(x:2; y:1),(x:2; y:3),(x:1; y:3)),
((x:1; y:2),(x:1; y:1),(x:2; y:2),(x:2; y:3)),
((x:1; y:2),(x:2; y:1),(x:2; y:2),(x:1; y:3)),
((x:1; y:2),(x:1; y:1),(x:1; y:3),(x:2; y:2)),
((x:1; y:2),(x:2; y:1),(x:2; y:2),(x:2; y:3)));

var field : array [1..79,1..25] of boolean;
tetris1, tetris2, ttetris : tetris;
quit,gameover : boolean;
answer : char;

procedure init_field;
var i : longint;
begin
clrscr; fillchar(field,sizeof(field),0);
for i := 3 to 22 do
begin
gotoxy(20,i); write(#186); field[20,i] := true;
gotoxy(36,i); write(#186); field[36,i] := true;
gotoxy(60,i); write(#186); field[60,i] := true;
gotoxy(76,i); write(#186); field[76,i] := true;
end;
for i := 1 to 15 do
begin
gotoxy(20+i,23); write(#205); field[20+i,23] := true;
gotoxy(60+i,23); write(#205); field[60+i,23] := true;
end;
gotoxy(20,23); write(#200);
gotoxy(60,23); write(#200);
gotoxy(36,23); write(#188);
gotoxy(76,23); write(#188);
gotoxy(6,4); write('Next:');
gotoxy(46,4); write('Next:');
end;

procedure drawtetris(objek : tetris; mode : Boolean);
var i : longint;
c : char;
begin
if mode then c := #178 else c := #32;
for i := 1 to 4 do
begin
field[objek.points[i].x,objek.points[i].y] := mode;
gotoxy(objek.points[i].x, objek.points[i].y);
write(c);
end;
gotoxy(1,1);
End;

procedure dropnew(var objek : tetris);
var i : longint;
begin
if objek.cshape <> 0 then
begin
for i := 1 to 4 do
begin
ttetris.points[i].x := template[objek.nshape,i].x + objek.xmodel;
ttetris.points[i].y := template[objek.nshape,i].y + objek.ymodel;
end;
drawtetris(ttetris,false);
end;
objek.cshape := objek.nshape;
objek.nshape := random(8) + 1;
for i := 1 to 4 do
begin
objek.points[i].x := template[objek.cshape,i].x + objek.xtetris;
objek.points[i].y := template[objek.cshape,i].y + objek.ytetris;
ttetris.points[i].x := template[objek.nshape,i].x + objek.xmodel;
ttetris.points[i].y := template[objek.nshape,i].y + objek.ymodel;
if field[objek.points[i].x,objek.points[i].y] then
begin
gameover := true;
break;
end;
end;
drawtetris(objek,true);
drawtetris(ttetris,true);
end;

procedure init_tetris(var objek : tetris; id : longint);
begin
objek.nshape := random(8) + 1;
if id = 1 then
begin
objek.xmodel := 7; objek.xtetris := 26;
end else begin
objek.xmodel := 47; objek.xtetris := 66;
end;
objek.ymodel := 5; objek.ytetris := 2;
dropnew(objek);
end;

procedure eliminate(objek : tetris; y : longint);
var i,j,k : longint;
blank : boolean;
begin
for i := y downto 3 do
begin
blank := false;
for j := objek.xmodel + 14 to objek.xmodel + 28 do
if not field[j,i] then
begin
blank := true;
break;
end;
if not blank then
begin
for k := i downto 3 do
begin
gotoxy(objek.xmodel + 14,k);
for j := (objek.xmodel + 14) to (objek.xmodel + 28) do
begin
if field[j,k-1] then write(#178) else write(#32);
field[j,k] := field[j,k-1];
end;
end;
eliminate(objek,i);
break;
end;
end;
end;

procedure slide(var objek : tetris);
var i : longint;
dropped : boolean;
begin
drawtetris(objek,false);
ttetris := objek;
dropped := false;
for i := 1 to 4 do
begin
inc(ttetris.points[i].y);
if field[ttetris.points[i].x,ttetris.points[i].y] then
begin
dropped := true;
break;
end;
end;
if not dropped then objek := ttetris;
drawtetris(objek,true);
if dropped then
begin
eliminate(objek,22);
dropnew(objek);
end;
end;

procedure rotate(var objek : tetris);
var i : longint;
collide : boolean;
begin
drawtetris(objek,false);
ttetris := objek;
collide := false;
for i := 2 to 4 do
begin
ttetris.points[i].y := objek.points[1].y + objek.points[i].x - objek.points[1].x;
ttetris.points[i].x := objek.points[1].x - objek.points[i].y + objek.points[1].y;
if field[ttetris.points[i].x,ttetris.points[i].y] then
begin
collide := true;
break;
end;
end;
if not collide then objek := ttetris;
drawtetris(objek,true);
end;

procedure shift(var objek : tetris; x, y : longint);
var i : longint;
collide : boolean;
begin
drawtetris(objek,false);
ttetris := objek;
collide := false;
for i := 1 to 4 do
begin
ttetris.points[i].x := objek.points[i].x + x;
ttetris.points[i].y := objek.points[i].y + y;
if field[ttetris.points[i].x,ttetris.points[i].y] then
begin
collide := true;
break;
end;
end;
if not collide then objek := ttetris;
drawtetris(objek,true);
if collide then eliminate(objek,22);
end;

procedure userinput;
var i : longint;
c : char;
begin
for i := 1 to 20 do
begin
if keypressed then
begin
c := upcase(readkey);
case c of
'W' : if tetris1.cshape <> 1 then rotate(tetris1);
#72 : if tetris2.cshape <> 1 then rotate(tetris2);
'A' : shift(tetris1,-1,0);
#75 : shift(tetris2,-1,0);
'S' : shift(tetris1,0,1);
#80 : shift(tetris2,0,1);
'D' : shift(tetris1,1,0);
#77 : shift(tetris2,1,0);
#27 : gameover := true;
#32 : repeat delay(10); until keypressed;
end;
end;
delay(10);
end;
end;

begin
randomize;
while not quit do
begin
init_field;
init_tetris(tetris1,1);
init_tetris(tetris2,2);
gameover := false;
while not gameover do
begin
slide(tetris1);
slide(tetris2);
userinput;
end;
gotoxy(1,25); write('Play Again[Y/N]? ');
repeat
answer := upcase(readkey);
until answer in ['Y','N',#27];
if (answer = 'N') or (answer = #27) then break;
end;
end.
Huaaaammh, Fauzi masih ngantug nih.. Bobo lagi ahhh, teman-teman kalo yang udah nyobain minta komentarnya yah? hehehe.. Semoga Bermanfaat..
See you Next Fauzi Online Post ^__^

Game Sudoku

Berawal dari sebuah permainan game mengasah otak, dari sekian game pengasah otak saat ini permainan "Sudoku" tetap menjadi yang number one untuk dinikmati, khususnya saat seorang 2 cowok ganteng aslab internet dasar mengisi waktu luangnya. Keisengan mencoba untuk membuat game ini pun muncul disaat genting gentingnya H-3 menjelang Ujian Utama yang tidak ada bekalnya materi satupun dikelas saya. (STOP dong Curhatnya!!).. hehe

Outputnya akan dihasilkan sebagai berikut:


Nah Berikut ini Source COde dari Sudoku Versi Pascalnya:

program sudoku;
uses crt,dos;
type
puzzle=array[0..80]of integer;
arraysol=array[0..2]of puzzle;
waktu=record
jam,menit,detik,sec:word;
end;
const
database:arraysol=(
(4,2,9,3,1,6,5,7,8
,8,6,7,5,2,4,1,9,3
,5,1,3,8,9,7,2,4,6
,9,3,1,7,8,5,6,2,4
,6,8,2,9,4,1,7,3,5
,7,4,5,2,6,3,9,8,1
,3,5,4,6,7,2,8,1,9
,1,7,8,4,5,9,3,6,2
,2,9,6,1,3,8,4,5,7),
(9,6,5,4,1,8,7,3,2
,1,4,3,2,6,7,9,5,8
,8,2,7,9,5,3,6,1,4
,5,7,9,3,8,4,1,2,6
,4,1,2,6,9,5,3,8,7
,6,3,8,1,7,2,4,9,5
,3,5,4,7,2,1,8,6,9
,7,8,6,5,3,9,2,4,1
,2,9,1,8,4,6,5,7,3),
(1,2,5,8,9,7,6,3,4
,6,7,4,5,1,3,9,2,8
,3,9,8,4,2,6,1,5,7
,4,8,2,6,5,9,7,1,3
,7,6,9,2,3,1,4,8,5
,5,3,1,7,8,4,2,9,6
,2,4,3,9,7,5,8,6,1
,9,5,6,1,4,8,3,7,2
,8,1,7,3,6,2,5,4,9));
var
arrayrandom:array[1..21]of integer;
rdonly:array[0..80]of boolean;
currentpuzzle:puzzle;
jawaban:puzzle;
nama:string;
level:integer;
tombol:char;
waktuawal,waktuakhir:waktu;

function chartoint(x:char):integer;
begin
chartoint:=ord(x)-48;
end;

procedure generatearrayrandom;
var i,j,tmp:integer;
valid:boolean;
begin
i:=0;
randomize;
while i<=21 do
begin
valid:=true;
tmp:=random(81);
for j:=1 to i do
begin
if arrayrandom[j]=tmp then
valid:=false;
end;
if valid then
begin
arrayrandom[i]:=tmp;
inc(i);
end;
end;
end;

procedure tampilbox;
var i,j:integer;
begin
clrscr;
for i:=1 to 19 do
begin
for j:=1 to 19 do
begin
if (i=1) or (i=19) or (j=1) or (j=19)
or (i mod 2 <>0) or (j mod 2 <>0)
then
begin
gotoxy(j,i);write('#');
end;
end;
writeln;
end;
gotoxy(2,2);
end;
procedure inputnama;
begin
clrscr;
write('Masukkan nama anda : ');
read(nama);
end;

procedure pilihjawaban;
begin
randomize;
currentpuzzle:=database[random(3)];
end;

procedure transform(tipe: integer);
var i,tmp,tmpindx,mod9,div9:integer;
begin
case tipe of
0:for i:=0 to 80 do {vertikal}
if(i mod 9 < 4) then
begin
tmp:=currentpuzzle[i];
div9:=i div 9;
tmpindx:=(9*div9+8)-(i-(9*div9));
currentpuzzle[i]:=currentpuzzle[tmpindx];
currentpuzzle[tmpindx]:=tmp;
end;
1:for i:=0 to 80 do{diagonal kanan}
if(i div 9 + i mod 9 < 8) then
begin
mod9:=i mod 9;
div9:=i div 9;
tmp:=currentpuzzle[i];
tmpindx:=(8-mod9) * 9 + 8 - div9;
currentpuzzle[i]:=currentpuzzle[tmpindx];
currentpuzzle[tmpindx]:=tmp;
end;
2:for i:=0 to 80 do{diagonal kiri}
if(i div 9 > i mod 9) then
begin
mod9:=i mod 9;
div9:=i div 9;
tmp:=currentpuzzle[i];
tmpindx:=div9+mod9*9;
currentpuzzle[i]:=currentpuzzle[tmpindx];
currentpuzzle[tmpindx]:=tmp;
end;
3:for i:=0 to 80 do {horizontal}
if(i div 9 < 4) then
begin
mod9:=i mod 9;
div9:=i div 9;
tmp:=currentpuzzle[i];
tmpindx:=mod9+(8-div9)*9;
currentpuzzle[i]:=currentpuzzle[tmpindx];
currentpuzzle[tmpindx]:=tmp;
end;
end;
end;
procedure randomjawaban;
var i:integer;
begin
randomize;
for i:=1 to 7 do
transform(random(4));
end;

procedure pilihlevel;
begin
write('Pilih level yang anda inginkan [1--7] : ');
read(level);
if not level in [1,2,3,4,5,6,7] then
level:=7;
end;

function checkrandom(data:integer):boolean;
var
tmp:boolean;
i:integer;
begin
tmp:=true;
for i:=1 to level*3 do
if arrayrandom[i]=data then
begin
tmp:=false;
break;
end;
checkrandom:=tmp;

end;

procedure tampilsebagian;
var i:integer;
begin
generatearrayrandom;
for i:=0 to 80 do
begin
if checkrandom(i) then
begin
gotoxy(2+2*(i mod 9),2+2*(i div 9));
write(currentpuzzle[i]);
jawaban[i]:=currentpuzzle[i];
rdonly[i]:=true;
end;
end;
gotoxy(2,2);
end;
function checkjawaban:boolean;
var i:integer;
tmp:boolean;
begin
tmp:=true;
for i:=0 to 80 do
if jawaban[i]<>currentpuzzle[i] then
begin
tmp:=false;
break;
end;
checkjawaban:=tmp;
end;
begin
textcolor(green);
inputnama;
pilihlevel;
tampilbox;
pilihjawaban;
randomjawaban;
tampilsebagian;
textcolor(red);
gettime(waktuawal.jam,waktuawal.menit,waktuawal.detik,waktuawal.sec);
repeat
tombol:=readkey;
if ord(tombol)=0 then
begin
tombol:=readkey;
case ord(tombol) of(*atas bawah kiri kanan*)
72:if wherey<>2 then
gotoxy(wherex,wherey-2);
80:if wherey<>18 then
gotoxy(wherex,wherey+2);
75:if wherex<>2 then
gotoxy(wherex-2,wherey);
77:if wherex<>18 then
gotoxy(wherex+2,wherey);
end;
end;
if (tombol>='0') and (tombol<='9') and not (rdonly[(wherex div 2 - 1)+(wherey div 2 - 1)*9]) then
begin
jawaban[(wherex div 2 -1)+(wherey div 2 - 1)*9]:=chartoint(tombol);
write(tombol);
gotoxy(wherex-1,wherey);
end;
until (ord(tombol)=27) or checkjawaban;
if checkjawaban then
begin
clrscr;
gettime(waktuakhir.jam,waktuakhir.menit,waktuakhir.detik,waktuakhir.sec);
writeln('selamat, ',nama,' anda sukses pada sudoku level ',level);
write('waktu anda : ');
if waktuakhir.menit-waktuawal.menit<>0 then
write(waktuakhir.menit-waktuawal.menit,' menit');
write(waktuakhir.detik-waktuawal.detik,' detik');
end;
readln;
readln;
normvideo;
end.

Sekian dari Fauzi Online, Semoga bermanfaat yah... ^_^

Soal Dua Himpunan Seleksi GUCC

Adapun selain soal konversi waktu soal-soal berikutnya saat mengikuti tes penerimaan GUCC 2011 yaitu soal dimana peserta diharuskan membuat sebuah aplikasi dua himpunan yang berhasil dinikmati satu jam oleh sahabat fauzi online yang berasal dari betawi asli yang kerjaanya sembayang mengaji tapi jangan bikin diee.. {:obsesi nyanyi betawi:} hehehehehehe..

Okeh sudah cukup bercandanya, sekarang Untuk lebih jelasnya mari kita perhatikan output permintaanya, analisa programnya, dan modifikasilah alur programnya agar lebih efektif dimata teman-teman.. Sebelumnya Mari kita serukan kata semangat! untuk GUCC 2012 tahun depan.. HEHE

TAMPILAN MENU UTAMA YANG DINGINKAN
1. MENUJU PROSEDUR PENGISIAN HIMPUNAN A DAN HINPUNAN B
2. MENUJU PROSEDUR TAMPILAN PEMILIHAN MENU METODE SORT
2.a. MENUJU PROSEDUR GABUNGAN DUA HIMPUNAN SORT BY ASCENDING
2.b. MENUJU PROSEDUR GABUNGAN DUA HIMPUNAN SORT BY DESCENDING
2.c. KEMBALI KE MENU UTAMA
3. KELUAR PROGRAM

Agar sedikit gambar berikut layout output program yang diinginkan:

I. TAMPILAN MENU UTAMA DUA HIMPUNAN


II. TAMPILAN SAAT PENGISIAN HIMPUNAN A


III. TAMPILAN SAAT PENGISIAN HIMPUNAN B


IV. TAMPILAN OUTPUT HIMPUNAN A DAN HIMPUNAN B YANG DIINPUT


V. TAMPILAN MENU PEMILIHAN METODE SORT


VI. TAMPILAN OUTPUT HIMPUNAN GABUNGAN SORT BY ASCENDING


VI. TAMPILAN OUTPUT HIMPUNAN GABUNGAN SORT BY DESCENDING



CODINGNYA DI SINI VERSI UZI-ONLINE:

PROGRAM TES_SELEKSI_GUCC2011(TIPE_32B);
uses crt;
var pil,metode:byte; i,na,nb,nt:integer;j:integer;
nhimpa,nhimpb,nhimptot,nhimpasc:array[1..99] of longint;

procedure input;
begin
clrscr;
writeln('INPUT HIMPUNAN A');
write('Masukan Jumlah Himpunan A:');readln(na);
for i:=1 to na do begin
write('Input himpunan A nilai ke-',i,': ');
readln(nhimpa[i]);
end;
writeln;write('ISI HIMPUNAN A SELESAI');
readln;

clrscr;
j:=1;
writeln('INPUT HIMPUNAN B');
write('Masukan Jumlah Himpunan B:');readln(nb);
for i:=(na+1) to (na+nb) do begin
write('Input himpunan B nilai ke-',j,': ');
inc(j);
readln(nhimpb[i]);
end;
writeln;write('ISI HIMPUNAN B SELESAI');
readln;

clrscr;
writeln('HIMPUNAN A YANG ANDA INPUT:');
for i:=1 to na do write(nhimpa[i],' ');
writeln;writeln;
writeln('HIMPUNAN B YANG ANDA INPUT:');
for i:=(na+1) to (na+nb) do write(nhimpb[i],' ');
readln;
end;

procedure gabung;
begin
clrscr;
write('HIMPUNAN A: ');
for i:=1 to na do begin write(nhimpa[i],' ');end;
writeln;writeln;
write('HIMPUNAN B: ');
for i:=na+1 to na+nb do begin write(nhimpb[i],' ');end;
writeln;writeln;

for i:=1 to na do nhimptot[i]:=nhimpa[i];
for i:=na+1 to na+nb do nhimptot[i]:=nhimpb[i];
write('GABUNGAN HIMPUNAN A DAN HIMPUNAN B : ');
for i:=1 to na+nb do write(nhimptot[i],' ');
end;

procedure urut_asc;
var indek,isi:byte;
begin
clrscr;
gabung;
nt:=na+nb;

for indek:=1 to nt-1 do begin
isi:=1;
for isi:=1 to nt-1 do begin
if nhimptot[isi]>nhimptot[isi+1] then begin
nhimpasc[isi]:=nhimptot[isi];
nhimptot[isi]:=nhimptot[isi+1];
nhimptot[isi+1]:=nhimpasc[isi];
end else inc(j);
end;
end;
writeln;writeln;
write('SORT BY ASCENDING HIMPUNAN GABUNGAN : ');
for i:=1 to nt do
write(nhimptot[i],' ');
readln;
end;

procedure urut_desc;
var indek,isi:byte;
begin
clrscr;
gabung;
nt:=na+nb;
for indek:=1 to nt-1 do begin
for isi:=1 to nt-1 do begin
if nhimptot[isi] > nhimptot[isi+1] then begin
nhimpasc[isi]:=nhimptot[isi];
nhimptot[isi]:=nhimptot[isi+1];
nhimptot[isi+1]:=nhimpasc[isi];
end else inc(j);
end;
end;
writeln;writeln;
write('SORT BY DESCENDING HIMPUNAN GABUNGAN : ');
for i:=nt downto 1 do
write(nhimptot[i],' ');
readln;
end;

begin
repeat
clrscr;
gotoxy(32,11);writeln(' MENU UTAMA ');
gotoxy(32,14);writeln('1.INPUT 2 HIMPUNAN');
gotoxy(32,16);writeln('2.URUTKAN 2 HIMPUNAN ');
gotoxy(32,18);writeln('4.PERGI LU..');
gotoxy(32,20);write('SILAHKAN PILIH MENU:');readln(pil);
case pil of
1:input;
2:begin
repeat
clrscr;
gotoxy(32,11);writeln('PILIH METODE URUT ');
gotoxy(32,14);writeln('1.ASCENDING');
gotoxy(32,16);writeln('2.DESCENDING');
gotoxy(32,18);writeln('3.MENU UTAMA');
gotoxy(32,20);write('SILAHKAN PILIH MENU:');readln(metode);
case metode of
1:urut_asc;
2:urut_desc;
end;
until metode=3;
end;
end;
until pil=3;
end.

Konversi Waktu Soal Seleksi GUCC

Peserta seleksi calon Aslab GUCC 2011 Jum'at, 4 Februari 2011 harus mengikuti tahap kedua yaitu tahap tes pemrograman pascal sebelum mengikuti tes tahap akhir yaitu interview. Adapun contoh salah satu TYPE SOAL yaitu berupa permintaan untuk membuat aplikasi konversi detik menjadi jam, sisa menit , serta sisa detik yang menjadi soal beban pengerjaan satu jam oleh salah seorang sahabat saya.. hohohoho..

Okeh Okeh cukup! Untuk lebih jelasnya mari kita perhatikan output permintaanya, analisa programnya, dan modifikasilah alur programnya agar lebih efektif dimata teman-teman.. Sebelumnya Mari kita serukan kata semangat! untuk GUCC 2012 tahun depan.. HEHE

TAMPILAN MENU UTAMA YANG DINGINKAN
1. MENUJU PROSEDUR KONVERSI DARI DETIK KE JAM SISA MENIT DAN SISA DETIK
2. MENUJU PROSEDUR KONVERSI DARI INPUTAN JAM MENIT DAN JUGA DETIK
3. KELUAR PROGRAM

Agar sedikit gambar berikut layout output program yang diinginkan:

I. TAMPILAN MENU UTAMA KONVERSI


II. KONVERSI DETIK KE JAM DAN SISA MENIT SISA DETIK


III. KONVERSI INPUTAN JAM MENIT DAN JUGA DETIK KE BENTUK DETIK


CODINGNYA DI SINI VERSI UZI-ONLINE:

Program Konversi_Detik_TES_GUCC2011(Tipe2);
uses crt;
var detikin,jam, detik, menit:longint;
pil:byte;

procedure detiktojam;
begin
clrscr;
gotoxy(32,8);write('DETIK : ');readln(detikin);
gotoxy(32,11);writeln('HASIL KONVERSI:');
jam:=detikin div 3600;
gotoxy(32,13);writeln('JAM : ',jam);
menit:=round(detikin-3600) div (60*jam);
gotoxy(32,14);writeln('MENIT : ',menit);
detik:=round(detikin-(jam*3600)-(menit*60));
gotoxy(32,15);write('DETIK : ',detik);
readln;
end;

procedure jamtodetik;
begin
clrscr;
gotoxy(32,8);write('JAM : ');readln(jam);
gotoxy(32,10);write('MENIT: ');readln(menit);
gotoxy(32,12);write('DETIK: ');readln(detik);
writeln;
gotoxy(32,14);writeln('HASIL KONVERSI:');
detikin:=(jam*3600)+(menit*60)+(detik);
gotoxy(32,16);writeln('DETIK = ',detikin);
readln;
end;

begin
repeat
clrscr;
gotoxy(32,11);writeln(' MENU UTAMA ');
gotoxy(32,14);writeln('1.KONVERSI DARI DETIK');
gotoxy(32,16);writeln('2.KONVERSI KE DETIK ');
gotoxy(32,18);writeln('3.KELUAR AH ');
gotoxy(32,21);write('SILAHKAN PILIH MENU:');readln(pil);
case pil of
1:detiktojam;
2:jamtodetik;
end;
until pil=3;
end.


Semoga coding di atas bermanfaat bagi pembaca setia fauzi online.. Bagi teman yang sudah mencoba coding yang lebih efektif? share di comentar fauzi online yah... OKEH?? terimakasih teman... ^__^

Game Tebak Nama

Refreshing dulu aja sihh jii.. belajar mulu mah malah jadi over down dah nih otak... hehehe.. untukmu teman, fauzi buat game sulap tebak nama By Pascal,

Program permainan sulap tebak nama ini akan menebak sebuah nama yang ada di hati oleh seorang pemain, setelah menempuh beberapa wizard.

Silahkan Didownload (Exe nya ada Source Codenya juga ada), Kalo bisa kembangin juga source codenya yah? terus share share ilmu juga deh di fauzi online.. Okey?



[FILE BERISI PROGRAM TEBAK NAMA.RAR]


Game Sulap Angka

Refreshing dulu aja sihh jii.. belajar mulu mah malah jadi over down dah nih otak... hehehe.. untukmu teman, fauzi buat game sulap angka By Pascal tentunya.. hehehe..
Program permainan, sulap angka ini akan menebak sebuah angka yang dipilih oleh seorang pemain, setelah menempuh beberapa wizard.

Silahkan Didownload (Exe nya ada Source Codenya juga ada),
Kalo bisa kembangin juga source codenya yah?
terus share share ilmu juga deh di fauzi online.. Okey key? ^^