Ni gw buatin coding buat tekhnik kordinat bressenham, kalo lo yang udah tau rumus Bressenham ini pasti lo semua bakalan bilang ‘ngapain si ni rumus ga jelas banget, Cuma diulang-ulang sampe ketemu titiknya!’. Dan gw tau juga lo bakalan bilang apa sama gw ‘ ngapain juga si ni orang kurang kerjaan banget pake bikin coding rumusnya segala!’, yang lo bilang emang bener selain gw kurang kerjaan lebih tepatnya lagi gw ngebuat codingnya karena tuntutan tugas softskill gw.

            Ok cukup curhatnya, langsung aja ni codingnya buat program PASCAL:

uses crt;

type

kordinat = record

xn:integer;

yn:integer;

pn:integer;

end;

var

a,c,dy,dx,xx,yy:integer;

b:string;

kor: array[1..100] of kordinat;

label go,keluar;

procedure pa;

begin

kor[a].xn:= kor[a-1].xn + 1; kor[a].yn:= kor[a-1].yn + 1;

kor[a].pn:= kor[a-1].pn + 2 * dy – 2 * dx;

writeln(‘xn : ‘,kor[a].xn,’  yn : ‘,kor[a].yn,’  pn: ‘,kor[a].pn);

end;

procedure pb;

begin

kor[a].xn:= kor[a-1].xn + 1; kor[a].yn:= kor[a-1].yn;

kor[a].pn:= kor[a-1].pn + 2 * dy;

writeln(‘xn : ‘,kor[a].xn,’  yn : ‘,kor[a].yn,’  pn: ‘,kor[a].pn);

end;

procedure tabel;

begin

clrscr;

writeln(‘—————————‘);

writeln(‘|     X , Y     |    Pn   |’);

writeln(‘—————————‘);

for c:= 1 to a  do

begin

writeln(‘|    ‘,kor[c].xn,’ , ‘,kor[c].yn,’    |   ‘,kor[c].pn:2,’|’:5);

writeln(‘—————————‘);

end;

readln;

end;

procedure nama;

begin

clrscr;

write(‘terima kasih telah menggunakan program saya `AGUNG NUGRAHA PUTRA`’);

end;

procedure maaf;

begin

write(‘maaf syarat dari hitungan ini DY harus lebih besar dari DX’);

readln;

end;

begin

clrscr;

writeln(‘masukan nilai awal’);

write(‘X : ‘); readln(kor[1].xn);

write(‘Y : ‘); readln(kor[1].yn);

writeln(‘masukan nilai akhir’);

write(‘X` : ‘); readln(xx);

write(‘Y` : ‘); readln(yy);

dx:= xx – kor[1].xn; dy:= yy – kor[1].yn;

kor[1].pn:= 2 * dy – dx;

writeln(”);

writeln(‘DX : ‘,dx,’   DY : ‘,dy,’   Pn:= ‘,kor[1].pn);

writeln(”);

if dy > dx then

begin

maaf;

goto keluar;

end;

for a:= 2 to 100 do

begin

if kor[a-1].pn >= 0 then

pa;

if kor[a-1].pn < 0 then

pb;

if (kor[a].xn = xx) and (kor[a].yn = yy) then

begin

goto go;

end;

end;

go:

writeln(‘selesai’);

write(‘tampilkan tabel ? (y/n)’); readln(b);

if b = ‘y’ then

tabel;

keluar:

nama;

readln;

end.

            Maaf ya kalo kodingnya panjang banget, selamat menikmati.