Scriplisting Program Pohon_Angka_dan_Huruf;
uses wincrt;
label 1;
var n : Integer; y, k, z, m : integer; keluaran :string; IntStartChar :integer;
{variable penampung baris} {karakter mulai}
tekan :char;
procedure Pohon_Angka;
begin
{ Langkah Pertama }
for k:= 1 to n do
begin writeln('');
{ 1. membuat baris kosong didepan }
for z:=1 to n-k do begin
write(' '); end;
{ 2. membuat bagian yang terisi sebelah kanan }
for y:=1 to k do begin write (y); end;
{ 3. membuat bagian yang terisi sebelah kiri }
for y:= k-1 downto 1 do begin write (y); end; end;
{ Langkah Ke - Dua }
for k:= n-1 downto 1 do begin writeln('');
{ 1. membuat bagian kosong didepan }
for z:=1 to n-k do begin write(' '); end;
{ 2. membuat bagian yang terisi sebelah kanan } for y:=1 to k do begin write (y); end;
{ 3. membuat bagian yang terisi sebelah kiri }
for y:= k-1 downto 1 do begin write (y); end; end; writeln; writeln; end;
procedure Pohon_Huruf;
begin intStartChar := 96;
{Langkah Pertama}
for k := 1 to n do begin
{ 1. membuat baris kosong didepan }
for z := 1 to n - k do
begin keluaran := concat(keluaran, ' '); end;
m := 1;
{ 2. Membuat bagian yang berisi huruf sebelah kanan }
for y := 1 to k do begin keluaran := concat(keluaran, chr(m+IntStartChar)); m := m + 1; end;
{ 3. Membuat bagian yang berisi huruf sebelah kiri }
for y := k - 1 downto 1 do begin keluaran := concat(keluaran,chr(IntStartChar-2+m)); m := m - 1; end;
writeln(keluaran); keluaran := '';
end;
{Langkah kedua}
for k := n - 1 downto 1 do begin
{membuat bagian kosong didepan}
for z := 1 to n - k do begin keluaran := concat(keluaran, ' '); end;
m := 1;
{ 2. Membuat bagian yang berisi huruf sebelah kanan }
for y := 1 to k do begin keluaran := concat(keluaran, chr(m + IntStartChar)); m := m + 1; end;
{ 3. Membuat bagian yang berisi huruf sebelah kiri }
for y := k - 1 downto 1 do begin keluaran := concat(keluaran, chr(IntStartChar - 2 + m)); m := m - 1; end;
writeln(keluaran); keluaran := ''; end;
writeln;
end;
begin gotoXY(33,12); write('Selamat Datang'); writeln; gotoXY(20,14); write('Tekan Sembarang Tombol Untuk Memulai........'); readkey; 1 : clrscr; writeln; write('Masukkan Jumlah n : '); readln(n); Pohon_Angka; writeln; Pohon_Huruf; gotoXY(20,20+n); Write('Tekan N untuk memulai kembali........'); tekan := readkey; if (tekan = 'n') or (tekan = 'N') then goto 1 else begin clrscr; gotoXY(33,13); writeln('Terima Kasih'); writeln; gotoXY(30,14); writeln('Sampai Jumpa Kembali'); end; end.