March 2011



Dalam penulisan kali ini saya susah sekali menemukan pengkodean yang tepat dalam menemukannya. Dan ini dapat di dapat dari teman saya..
Notasi program ini dijalankan di pascal..

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.

Pada lain kesempatan saya akan memposting pembuatannya dalam bahasa Delphi dan C++

sumber : http://mochinolove.blogspot.com/2011/03/tugas-2-sod-notasi-infix-menjadi.html

Notasi Posfix Infix

Posted on

Tuesday, March 15, 2011

Category



Dapet tugas Struktur Organisasi 2 di kampus :D

Disuruh bikin :

1. Program dengan ketentuan sebagai berikut
a. panjang dari sebuah string
b. menggabungkan isi dari dua buah string
c. menyisipkan isi sebuah string ke dalam string lain

2. Program untuk menampilkan jurusan & angkatan mahasiswa berdasarkan NPM

Oke, program pertama, langsung aja nih ketik script di bawah ini, hehe
Untuk penjelasan, bisa langsung diliat di bagian komentar program, komentar program di dalem ini nih '{ }'.

USES CRT;
VAR NAMA1, NAMA2 : STRING;
A : INTEGER;
PILIHAN : BYTE;
{DIKASIH VARIABEL DULU, DISINI ADA TIGA MACAM TIPE DATA YG DIGUNAKAN YAITU STRING, BYTE, DAN INTEGER}
BEGIN {KALO MAU MULAI NULIS SCRIPT DI PASCAL, HARUS PAKE 'BEGIN' DULU}
CLRSCR;
WRITELN ('/////////////////PROGRAM PUNYA AKBAR/////////////////');
WRITELN ('///\\\ 1. INSERT STRING ///\\\');
WRITELN ('///\\\ 2. MENGGABUNGKAN STRING ///\\\');
WRITELN ('///\\\ 3. MENGHITUNG PANJANG STRING ///\\\');
WRITELN ('///\\\ 4. EXIT ///\\\');
WRITELN ('/////////////////////////////////////////////////////');
WRITELN ('//////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\');
WRITELN;
{TULISAN DIATAS DIMAKSUDKAN UNTUK MENAMPILKAN MENU PILIHAN}
WRITELN ('MASUKIN PILIHANNYA DONG : ');
READLN (PILIHAN);
CASE PILIHAN OF
{NAHDIMASUKIN DEH PILIHANNYA, MASING-MASING PILIHAN PUNYA PROGRAM YANG BERDIRI SENDIRI}
1:BEGIN
CLRSCR;
WRITE('STRING PERTAMA = ');
READLN (NAMA1);
WRITE ('MASUKAN STRING YANG INGIN DI SISIPKAN = ');
READLN (NAMA2);
WRITE ('DISISIPKAN DI STRING KE - ');
READLN (A);
INSERT(NAMA2,NAMA1,A); {INI PROSEDUR STANDAR BUAT MENYISIPKAN STRING 'INSERT'}
WRITELN ('HASILNYA = ' ,NAMA1);
READLN;
END;
2 : BEGIN
CLRSCR;
WRITELN ('MASUKAN KARAKTER PERTAMA = ');
READLN (NAMA1);
WRITELN ('MASUKAN KARAKTER KEDUA = ');
READLN (NAMA2);
WRITELN ('HASILNYA = ',(CONCAT(NAMA1,' ',NAMA2))); {CONCAT BUAT GABUNGIN STRING}
READLN;
END;
3 : BEGIN
CLRSCR;
WRITE ('MASUKAN STRING = ');
READLN (NAMA1);
WRITELN ('PANJANG STRING ADALAH ',LENGTH(NAMA1), ' KARAKTER'); {BUAT MENGHITUNG PANJANG STRING}
READLN;
END;
END;
READLN;
END.

Kalo udah di ketik di pascal, langsung aja di run.
Hasilnya kaya gini nih



2. Ini program yang kedua susah susah gampang deh, tapi gw tetep ga bisa.

Jadi nih langsung gw kasih scriptnya

USES CRT;
VAR NPM,JUR1,JUR2,ANG1,ANG2 : STRING;
A,B,C : INTEGER;
BEGIN
CLRSCR;
WRITE ('MASUKAN NPM ANDA :');
READLN (NPM);
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 <>
STR(B:1,ANG2);
INSERT('0',ANG2,1);
WRITELN('ANDA TERMASUK ANGKATAN 20',ANG2,'.'); END;
WRITELN('ANDA TERMASUK ANGKATAN 20',B,'.');
END;
READLN;
END.

Ini program temen gw yang bikin, yang ini saya kurang mengerti -_______-

Bikin Program Pascal

Posted on

Tuesday, March 1, 2011

Category