Wednesday, January 8, 2014

Praktikum 8 Variabel String: Operasi dan Fungsi-fungsi String

1. Program String 1
Program string1;
uses wincrt;
type
teks=string[10];
var
teks1,teks2 : teks;
n1,n2,i,j : integer;
lagi : char;
label baca;
begin
baca: clrscr;
writeln('Pengolahan String (Teks)');
write('Tuliskan teks I, maksimum 10 karakter: ');
readln(teks1);
write('Tuliskan teks II, maksimum 10 karakter: ');
readln(teks2);
writeln;
writeln('Teks pertama Anda adalah: ',teks1);
n1:=length(teks1);
write('Terdiri atas ',n1);
writeln(' karakter (termasuk spasi).');
write('Jika dibalik tulisan tersebut menjadi: ');
for i:=n1 downto 1 do write(teks1[i]);writeln;
write('Jika ditulis dengan HURUF BESAR: ');
for i:=1 to n1 do write(upcase(teks1[i]));writeln;
writeln;
writeln('Teks kedua Anda adalah: ',teks2);
n2:=length(teks2);
write('Terdiri atas ',n2);
writeln(' karakter (termasuk spasi).');
write('Jika dibalik tulisan tersebut menjadi: ');
for i:=n2 downto 1 do write(teks2[i]);writeln;
write('Jika ditulis dengan HURUF BESAR: ');
for i:=1 to n2 do write(upcase(teks2[i]));writeln;
writeln;
writeln('Urutan kedua teks tersebut adalah:');
if teks1 <= teks2 then writeln(teks1,', ',teks2)
else writeln(teks2,', ',teks1);
writeln('Tekan ENTER ...');readln;
writeln('Huruf-huruf yang sama pada kedua teks:');
for i:=1 to n1 do
for j:=1 to n2 do
if upcase(teks1[i])=upcase(teks2[j]) then
begin
write(teks1[i],'(posisi ke-',i,') dan ');
write(teks2[j],'(posisi ke-',j,').');
writeln
end;
write('Coba lagi?<Y/T>_');readln(lagi);
if upcase(lagi)='Y' then goto baca;
donewincrt;
end.


2. Program Pencarian Suku Kata
Program string2;
uses wincrt;
type
teks=string[50];
var
kalimat,sisa : teks;
n,i,ls : integer;
lagi : char;
suku,temp : string[5];
posisi : array[1..50] of integer;
jumlah : integer;
label baca;
begin
baca: clrscr;
writeln('Pencarian suku kata dalam kalimat');
writeln('Tuliskan sebuah kalimat, maksimum 50 karakter: ');
readln(kalimat);
write('Tuliskan sebuah suku-kata: '); readln(suku);
writeln;
ls:=length(suku); jumlah:=0;
sisa[0]:=kalimat[0];
for i:=1 to length(kalimat) do sisa[i]:=upcase(kalimat[i]);
for i:=1 to ls do
temp[i]:=upcase(suku[i]);temp[0]:=suku[0];
n:=pos(temp,sisa);
while n<>0 do
begin
inc(jumlah);posisi[jumlah]:=n+ls*(jumlah-1);
delete(sisa,n,ls);
n:=pos(temp,sisa);
end;
writeln('Kalimat: ',kalimat);
writeln('memuat ',jumlah,' suku kata ',suku);
if jumlah>0 then
begin
write('Yakni pada posisi ke-');
for i:=1 to jumlah do write(posisi[i]:3);writeln;
end;
writeln;
write('Coba lagi?<Y/T>_');readln(lagi);
if upcase(lagi)='Y' then goto baca;
donewincrt;
end.

3. Program Karakter to Biner
Program Kar2bin;
uses wincrt;
type
kodebiner=string[8];
var
karakter,lagi : char;
kode    : kodebiner;
ascii : byte;
i : integer;
label mulai;
begin
mulai: clrscr;
writeln('Kode ASCII dan BINER 8-bit suatu karakter');
write('Ketikkan sebuah karakter : ');readln(karakter);
ascii:=ord(karakter);
kode:='';
for i:=1 to 8 do
begin
if (ascii AND 1)=1 then kode:='1'+kode
else kode:='0'+kode;
ascii:=ascii SHR 1;
end;
write('Karakter ',karakter,' mempunyai nilai ASCII #');
writeln(ord(karakter),' dan kode biner 8-bit ',kode);
write('Coba lagi?<Y/T>_');readln(lagi);
if upcase(lagi)='Y' then goto mulai;
donewincrt;
end.

4. Program Mengubah Besar --> Kecil
Program string3;
uses wincrt;
type
teks=string[100];
var
kalimat : teks;
n,i : integer;
lagi,huruf: char;
label baca;
begin
baca: clrscr;
writeln('Mengubah huruf besar menjadi huruf kecil');
writeln('Tuliskan kalimat, maks 100 karakter, huruf besar
semua: ');
readln(kalimat);
write('Jika ditulis dengan huruf kecil menjadi: ');
writeln;
n:=length(kalimat);
for i:=1 to n do
begin
huruf:=kalimat[i];
if (huruf>='A') AND (huruf<='Z') then
begin
huruf:=chr(ord(huruf)+32);
kalimat[i]:=huruf;
end;
end;
writeln(kalimat);
writeln;
write('Coba lagi?<Y/T>_');readln(lagi);
if upcase(lagi)='Y' then goto baca;
donewincrt;
end.

5. Program Copy Kalimat
Program string4;
uses wincrt;
type
teks=string[100];
var
kalimat,hasil : teks;
k,n,p : integer;
lagi : char;
label baca;
begin
baca: clrscr;
writeln('Mengkopi String dari String (Kumpulan Karakter)');
writeln('Tuliskan sebuah kalimat, maksimum 100 karakter: ');
readln(kalimat);
write('Ingin mengkopi mulai karakter ke-'); readln(k);
write('Cacah huruf yang hendak dikopi : ');readln(p);
writeln;
n:=length(kalimat); if p>n then p:=n-k;
hasil:=copy(kalimat,k,p);
writeln('Kalimat yang Anda
masukkan:');writeln(#34,kalimat,#34);
writeln(p,' karakter dari posisi ke-',k,' adalah
',#34,hasil,#34);
writeln;
write('Coba lagi?<Y/T>_');readln(lagi);
if upcase(lagi)='Y' then goto baca;
donewincrt;
end.


No comments:

Post a Comment