Senin, 14 Maret 2011

*Struktur Organisasi Data 2* part 2

uses crt;

const max_elemen = 255;

type s255 = string [max_elemen];
tumpukan = record
rinci : s255;
atas : 0..max_elemen
end;

var infix : s255;
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 : s255);
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.

Rabu, 02 Maret 2011

*Struktur Organisasi Data*

uses crt;
var
a,b,c,d,e : integer;
pilihan : byte;
x,y,str1,str2: string[99];
z:char;
label o,n,m;
begin
clrscr;
o:writeln(‘ *Menu Operator String* ’);
writeln(’1.Input String’);
writeln(’2.Mencari Panjang String’);
writeln(’3.Menggabungkan String’);
writeln(’4.Menyisipkan String’);
writeln(’5.Exit’);
writeln;
writeln(‘Ketik Pilihan Anda’);
readln(pilihan);
case pilihan of
1 : begin
clrscr;
writeln(‘Masukan 2 String yang ingin di proses : ‘);
writeln(‘String 1: ‘);
readln(x);
writeln(‘String 2: ‘);
readln(y);
readln;
goto o;
end;
2 : begin
clrscr;
writeln(‘Masukan String yang ingin di hitung panjangnya: ‘);
readln(a);
if a = 1 then
begin
writeln(‘Panjang String 1: ‘,length(x));
end
else
if a = 2 then
begin
writeln(‘Panjang String 2: ‘,length(y));
end
else
begin
writeln (‘Maaf string yang di maksud tidak tersedia’);
end;
readln;
clrscr;
goto o;
end;
3: begin
clrscr;
n:writeln(‘Untuk String 1 ke string 2 (y/n) : ‘);
readln (z);
if z = ‘y’ then
begin
writeln(‘Hasil penggabungan : ‘,concat(x,y));
readln;
goto o;
end
else if z = ‘n’ then
begin
writeln(‘Untuk String 2 ke string 1 (y/n): ‘);
readln(z);
if z = ‘y’ then
begin
writeln(‘Hasil penggabungan : ‘,concat(y,x));
readln;
goto o;
end
else
writeln(‘Ingin Kembali ke Menu utama ? (y/n) :’);
readln(z);
if z = ‘y’ then
begin
clrscr;
goto o;
end
else
goto n;
end;
end;
4: begin
clrscr;
writeln(‘Masukan nomor string yang akan di sisipkan :’);
readln(b);
writeln(‘Masukan nomor string sebagai penyisip: ‘);
readln(c);
writeln(‘Masukan posisi String untuk di sisipkan: ‘);
readln(d);
if b = 1 then
begin
write(‘Hasilnya : ‘);
insert(x,y,d);
writeln(y);
readln;
goto o;
end
else if b = 2 then
begin
write(‘Hasilnya : ‘ );
insert(y,x,d);
writeln(x);
readln;
clrscr;
goto o;
end;
end;
5: begin
end;
end;
end.

STRUKTUR ORGANISASI DATA 2

Program ' Case of '

uses crt;
var
pilihan : byte;

begin
clrscr;
writeln(' Menu Makanan ');
writeln(' 1. Makanan pagi');
writeln(' 2. Makanan siang');
writeln(' 3. Makanan malam');
writeln(' 4. Selesai');

write(' masukan nomor menu piliahan anda [ 1-4 ] : ');
readln(pilihan);
writeln;
case pilihan of
1: begin
writeln(' roti coklat lapis keju '); writeln(' buah apel '); writeln(' susu ');
end;
2: begin
writeln(' nasi putih '); writeln(' ayam bakar/goreng '); writeln(' sayur bayam '); writeln(' es jeruk ');
end;
3: begin
writeln(' nasi goreng seafood '); writeln(' buah jeruk '); writeln(' es teh manis/teh manis hangat ');
end;
readln;
end.