RSS

Monthly Archives: March 2011

Struktur Organisasi Data 2 Program Postfix

Berikut ini Source Code dari program Posfix ke Infix :

uses crt;
const max_elemen = u19;
type u19 = string [max_elemen];
tumpukan = record
rinci : u19;
atas : 0..max_elemen
end;
var infix : u19;
lagi : char;
function valensi (tanda_op : char) : integer;
begin
case tanda_op of
‘^’ : valensi := 3;
‘*’, ‘/’ : valensi := 2;
‘+’, ‘-’ : valensi := 1;
‘(‘ : valensi := 0
end
end;
procedure push (var t : tumpukan; elemen : char);
begin
t.atas := t.atas +1;
t.rinci[t.atas] := elemen
end;
function pop (var t : tumpukan) : char;
begin
pop := t.rinci[t.atas];
t.atas := t.atas – 1
end;
procedure konversi_cetak (infix : z100);
var i : integer;
operator : set of char;
temp, kar : char;
t : tumpukan;
test : boolean;
begin
operator := [‘^’]+[‘*’]+[‘/’]+[‘+’]+[‘-‘];
for i := 1 to length (infix) do
begin
kar := infix[i];
if kar = ‘(‘ then push (t, kar)
else if kar = ‘)’ then
begin
while t.rinci[t.atas] <> ‘(‘ do
write (pop(t) : 2);
temp := pop(t)
end
else if kar in operator then
begin
while (t.atas <> 0 ) and (valensi(kar)
<= valensi (t.rinci[t.atas])) do write (pop(t) : 2); push (t, kar) end else if kar <> ‘ ‘ then
write (kar : 2)
end;

if t.atas <> 0 then
repeat
write (pop(t):2)
until t.atas = 0
end;
begin
clrscr;
writeln (‘Mengubah Notasi Infix Menjadi Postfix’);
writeln (‘Dengan Memanfaatkan Struktur Tumpukan’);
writeln (‘————————————-’);
writeln ;
repeat
write (‘Masukkan Ungkapan Infix : ‘);
readln (infix); writeln;
write (‘Ungkapan Postfix : ‘);
konversi_cetak (infix);
writeln; writeln;
write (‘Akan Mencoba Lagi ? y(a) / t(idak) : ‘);
readln (lagi);
writeln
until not (lagi in [‘Y’, ‘y’])
end.

 

 
Leave a comment

Posted by on March 16, 2011 in Tugas

 

TUGAS PROGRAM PASCAL SOD2

SOAL :
1. buat program ketentuan sebagai berikut : a. panjang string
b. mengabungkan dua string
c. menyisipkan string kedalam string lain
2. buat program untuk menampilkan jurusan dan angkatan seorang mahasiswa universitas gunadarma berdasarkan NPM

jawabanya :

langkah membuat jawaban soal nomor 1
masukan source code ini ke bahasa program pascal

USES CRT;
VAR NAMA1, NAMA2 : STRING[30];
A : INTEGER;
PILIHAN : REAL;
BEGIN
WRITELN (‘==========PROGRAM PUNYA KEMAL===========’);
WRITELN (‘== 1. MASUKKAN STRING                                                           ==’);
WRITELN (‘== 2. MENGGABUNGKAN STRING                                           ==’);
WRITELN (‘== 3. MENGHITUNG PANJANG STRING                               ==’);
WRITELN (‘== 4. KELUAR                                                                                    ==’);
WRITELN (‘========================================’);
WRITELN;
WRITELN (‘MASUKIN PILIHANNYA DONG : ‘); READLN (PILIHAN);
CASE PILIHAN OF
1 : BEGIN
CLRSCR;
WRITE (‘STRING PERTAMA  = ‘);
READ (NAMA1);
WRITE (‘MASUKAN STRING YANG INGIN DI SISIPKAN = ‘);
READ (NAMA2);
WRITE (‘DISISIPKAN DI STRING KE – ‘);
READ (A);
INSERT (NAMA2,NAMA1,A);
WRITE (‘HASILNYA = ‘ ,NAMA1);
READ;
END;
2 : BEGIN
CLRSCR;
WRITELN (‘MASUKAN KARAKTER PERTAMA = ‘);
READLN (NAMA1);
WRITELN (‘MASUKAN KARAKTER KEDUA = ‘);
READLN (NAMA2);
WRITELN (‘HASILNYA = ‘,(CONCAT(NAMA1,’ ‘,NAMA2)));
READLN;
END;
3 : PILIHAN
CLRSCR;
WRITE (‘MASUKAN STRING = ‘);
READLN (NAMA1);
WRITELN (‘PANJANG STRING ADALAH ‘,LENGTH(NAMA1), ‘ KARAKTER’);
READLN;
END;
END;
READLN;
END.

Langkah membuat jawaban soal nomor 2

masukan source code ini ke bahasa program pascal

uses crt;

var npm,jur1,jur2,ang1,ang2 : string;
a,b,c : integer;

begin
clrscr;
write (‘Tuliskan NPM anda :’);
readln (NPM);
(*Gunadarma didirikan pada tahun 1981
Kode jurusan :
1 = Strata 1 ; Sistem Informasi
2 = Diploma 3 ; Manajemen Informatika
3 = Strata 1 ; Manajemen Komputer & Akuntansi*)
jur1:= Copy(npm,1,1);

if jur1 = ’1′ then jur2:= ‘Strata 1 – Sistem Informasi’ else
if jur1 = ’2′ then jur2:= ‘Diploma 3 – Manajemen Informatika’ else
if jur1 = ’3′ then jur2:= ‘Strata 1 – Manajemen Komputer & Akuntansi’ else
jur2:= ‘-’;

if jur2 <> ‘-’ then
Writeln(‘Jurusan anda adalah ‘,jur2,’ dengan kode jurusan ‘,jur1,’.’)
else
Writeln(‘Maaf, kode jurusan anda tidak ada dalam database kami.’);

ang1:= Copy(npm,4,2);
val(ang1,b,c);
if b > 81 then
Writeln(‘Anda termasuk angkatan 19′,b,’.’)
else begin
if b < 10 then begin
str(b:1,ang2);
insert(’0′,ang2,1);
Writeln(‘Anda termasuk angkatan 20′,ang2,’.’); end;
writeln(‘Anda termasuk angkatan 20′,b,’.’);
end;
readln;
end.

 
Leave a comment

Posted by on March 1, 2011 in Tugas