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 ^__^

Perbedaan Web Developer, Web Desainer, dan Web Master

Hai postingan Fauzi Online kali ini akan membahas mengenai dunia web, yups, apakah kalian ingin tuh membuat web? hehe tantangan yang lumayan menarik juga yah. Sebelum kalian bercita-cita untuk menjadi pembuat web , maka kalian harus paham dulu dengan yang namanya Web Developer, Web Designer dan Webmaster. Ketiga profesi tersebut tentunya saling berbeda baik pekerjaanya, karakteristiknya, sampai dengan gaji yang diperoleh tentunya. Naaaah Maka dari itu bersama Fauzi Online kita akan mengungkap dengan sejelas-jelasnya perbedaan diantara ketiga Profesi ini.. OK Check it Out:

Web Developer
Web developer merupakan seseorang yang menciptakan aplikasi berbasis web dengan menggunakan bahasa pemrograman. Pada dasarnya, web developer membuat berbagai hal “terjadi” pada sebuah website. Peran web developer adalah sebagai penghubung dari semua sumber daya yang akan digunakan pada sebuah website, mulai dari pemanggilan database, membuat halaman website yang dinamis, hingga mengatur cara pengunjung untuk berinteraksi dengan elemen-elemen dari website tersebut.Seorang web developer yang handal akan terbiasa dengan bahasa pemrograman, baik itu di sisi server ( server-side scripting ) maupun disisi client ( client-side scripting ). Dan jangan lupa dengan aspek database yang akan digunakan. ;) Berikut adalah bagian aplikasi yang harus dipahami oleh seorang web developer.
• Client-side: JavaScript
• Server side: ASP, ASP.NET, Java, Perl, PHP, Python, Ruby, dsb.
• Databases: MySQL, Oracle, dsb.

Aspek tampilan menjadi sisi yang agak “terpinggirkan” oleh web developer. Pada umumnya setelah scripting dari aplikasi web telah selesai dibuat, web developer akan menyerahkan pekerjaannya kepada web designer untuk menciptakan tampilan yang baik.

Web Designer
Web designer adalah seseorang yang bekerja dengan unsur-unsur visual pada suatu halaman web. Dia adalah orang yang membuat wajah halaman web tampak begitu “cantik”. Para web design mengintegrasikan komponen seperti gambar, file flash, atau multimedia ke dalam halaman web untuk menambah pengalaman visual user, atau untuk melengkapi content page.Pemahaman tentang Client-side scripting, HTML, CSS, cara memanipulasi image dan animasi merupakan beberapa hal yang dikuasai oleh web designer.
Berikut adalah bagian hal yang harus dipahami oleh seorang web designer:
• Client-side scripting: JavaScript
• Server-Side scripting: PHP, ASP, dsb.
• Cascading Style Sheets
• HTML
• Manipulasi image : Adobe Photosop, GIMP, Corel Draw, dsb.
• Animasi, biasanya berupa flash.

Web designer biasanya bekerja dalam tim untuk memastikan sebuah tampilan website dapat membuat aplikasi web bekerja dengan baik. Keterampilan tambahan berupa komunikasi, tentu akan menjadi sangat berguna bagi para web designer.

Sisi lain yang juga harus dipahami oleh web designer adalah usability / kegunaaan, standar W3C untuk HTML dan CSS dan kompabilitas tampilan pada browser yang berbeda.

Webmaster
Webmaster merupakan gabungan dari keduanya, bahkan webmaster juga bertugas untuk memelihara aplikasi web yang digunakan. Sebagai catatan tambahan, webmaster mungkin juga bertanggung jawab untuk optimisasi mesin pencari ( SEO ), mengisi content pada website, hingga ‘memasarkan’ website tersebut.Dalam kelompok kerja yang lebih besar, webmaster akan lebih banyak menjadi manager dari sebuah web-based project, mengatur pekerjaan web developer dan web designer, hingga melakukan pengujian terhadap usability dari aplikasi web yang dibuat.
Bagi seorang web developer, kemampuan logis sangat dibutuhkan untuk mengatur alur aplikasi web yang dibuat. Sedangkan web designer membutuhkan kemampuan artistik dan kreatifitas. Dan bagi seorang webmaster, tentu akan membutuhkan kemampuan logis, artistik serta pengalaman yang memadai dibidangnya.

Masalah Gaji
Jika kita analisa dan kita lihat pekerjaan mereka masing-masing tentunya dapat kita dapat menebak lah siapa sih pemilik gaji terbesar diantara profesi di atas:

Nah sudah tahukan perbedaan masing-masing profesi web designer, web developer, dan juga webmaster , OK Teman silahkan tentukan pilihan anda untuk masa depan anda, karna pilhan anda ada di tangan anda sendiri. ^__^

Game Angry Bird Lokasi Golden Eggs

Sebelum melanjutkan artikel ini silahkan baca terlebih dahulu artikel TERPOPULER mengenai Rekomendasi Untuk Cloud Dedicated Server Terbaik Dan Termurah Di Indonesia
Demam angry bird sudah merebak diseluruh penjuru kelas Fauzi, berawal dari seseorang teman yang memiliki gadget tercanggih dari ipad Apple, si Android, yang menularkan virus ketagihan android kepada pemilik gadget termurah nexian yakni fauzi online sendiri, hihihi.. maklum namanya juga mahasiswa lagi masa masanya prihatin kata orang tua..

Ok stop stop setiap posting pasti curhat deh si fauzi ini haha, Peace. Postingan kali ini Fauzi Online akan mengungkap rahasia panduan untuk mencari lokasi golden eggs di Angry Bird, haha.

Game Angry Bird Lokasi Golden Eggs
Game Angry Bird Lokasi Golden Eggs
Lokasi Golden Eggs Angry Birds memang banyak yang rahasia (tersembunyi). Kalau gak ada panduan lokasi untuk menemukan Golden Eggs Angry Birds yang tersembunyi, pasti akan terasa sulit. Di Fauzi Online akan bagi-bagi neh panduan lokasi Golden Eggs Angry Birds yang tersembunyi. Check It Out

Lokasi: Menu Utama

Tapping pada matahari di level yang telah dipilih secara berulang, maka telur emas akan muncul.

Lokasi: Menu Utama

Perhatikan Credit keseluruhan, tapping pada telur emas yang muncul di akhir.

Lokasi: Semua level, setelah mengunlock World 2 di Level 14

Buka menu Help dan klik burung-burung putih, tapping pada telur emas.

Lokasi: World 1, Level 8

Tapping pada chest secara berulang maka telur akan muncul.

Lokasi: World 2, Level 2

Ledakkan bola pantai ini maka telur akan muncul.

Lokasi: Poached Eggs

Dapatkan 3 bintang di tiap sesi pada Worlds 1, 2 dan 3, yang akan menghasilkan “Poached Eggs”.

Lokasi: World 4, Level 7

Cubit layar dan zoom untuk melihat telur emas yang berada di atas area tertinggi. Burung yang dapat menjangkaunya hanyalah burung kuning.

Lokasi: World 5, Level 19

Berupa menara tempat disembunyikannya telur emas. Hantamlah bangunan ini dengan burung putih untuk menjangkau telur di dalamnya.

Lokasi: Mighty Hoax

Jangkaulah tiga bintang di tiap sesi pada Worlds 4 dan 5, yang akan menghasilkan “Mighty Hoax”.

Lokasi: World 6, Level 14

Lakukan zoom out untuk melihat balon berwarna kuning yang mengambang di bawah rumah pohon. Satu-satunya cara untuk menembaknya (yang akan mengunlock telur emas) adalah dengan menembakkan burung boomerang secara akurat.

Lokasi: World 8 Menu

Telur tebal ini tersembunyi di sisi bawah. Dragging layar ke sisi kiri bawah untuk menembaknya.

Lokasi: World 8, Level 15

Yang dapat menjangkau telur ini hanyalah burung boomerang dengan cara tapping layar.

Lokasi: Danger Above

Dapatkan skor tiga bintang di setiap sesi pada Worlds 6, 7 dan 8, yang akan menghasilkan “Danger Above”, level pack ketiga.

Lokasi: World 9, Level 14

Telur tebal ini mengenakan topi keras, berada di sisi atas lereng tebing sebelah kanan. Hancurkan terlebih dahulu menara besar yang akan menghalangi tembakan. Saat menara sudah runtuh, tembakan ke telur ini tidaklah sulit lagi.

Lokasi: World 10, Level 3

Telur berada di dalam bebek karet.

Lokasi: World 11, Level 15

Telur bermuka tebal ini tersembunyi di bawah stage dan untuk mendapatkannya memerlukan bantuan burung boomerang.

Lokasi: The Big Setup

Dapatkan tiga bintang di tiap sesi Worlds 9 ,10 dan 11, yang akan menghasilkan “The Big Setup”, yaitu level pack keempat dan terakhir.

OK Demikianlah lokasi 17 telur emas Angry Bird Insya ALLAH terpecahkan sama teman-teman yah.. Sekian Game Angry Bird Lokasi Golden Eggs di Fauzi Online.
Selamat Mencoba DAN silahkan jangan lupa Cari Uang Lewat ekiosku.com.. ^__^

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... ^_^