Membuat Program Menghapus Karakter dengan Pascal
Posted by kuliahkomputer pada Desember 5, 2007
Program penghapusan beberapa string dari string yang sudah ada
Algoritma program penghapusan string
Program ini bertujuan untuk menghapus beberapa bagian string dari string yang sudah ada berdasarkan index awal dan akhir yang dimasukkan oleh pengguna.
Algoritma program hapus string adalah sebagai berikut.
Deklarasi global
1. Deklarasikan konstanta maxChar=255
2. Deklarasikan tipe arrKata=array[1..maxChar] of char;
Fungsi doHapus
fungsi doHapus bertujuan untuk memproses penghapusan karakter dari karakter yang dimasukkan. Adapun parameter yang di ikutkan adalah strKata bertipe string berfungsi untuk melewatkan kata atau kalimat yang ingin dihapus nilainya, awal dan akhir yang merupakan batas penghapusan karakter. Nilai keluaran dari fungsi ini adalah string hasil penghapusan. Adapun algoritma pada fungsi doHapus ini adalah sebagai berikut.
1. Deklarasikan variable I dan j dengan tipe data integer
2. Deklarasikan arrHasilHapus bertipe arrKata
3. Deklarasikan strHasilHapus bertipe string
4. Inisialisasi j=0
5. Lakukan langkah 6 dari i=1 sampai dengan panjang strKata
6. Jika i<awal atau i>akhir i>akhir maka karakter tersebut dimasukkan kedalam arrHasilHapus ke j dan naikkan nilai j sebesar 1.
Program Utama
1. Memasukkan kata atau kalimat yang ingin di hapus karakternya.
2. Masukkan batas awal dan akhir penghapusan
3. Memanggil fungsi doHapus
4. Cetak hasil dari fungsi doHapus
Source Code program penghapusan string
program HapusString;
uses wincrt;
const maxChar=255; {maximal jumlah karakter}
type
arrKata=array[1..maxChar] of char;
var awal, akhir:byte; {posisi awal dan akhir karakter yang dihapus}
kata, hasilHapus, tempNilai:string;
nilaiKonv:integer;
pil : char;
isNumber:boolean;
function doHapus(strKata:string; awal, akhir:byte):string;
{fungsi untuk melakukan penghapusan mulai dari index Awal sampai index akhir dengan keluaran berupa string yang sudah dihapus }
var i,j:integer;
arrHasilHapus:arrKata;
strHasilhapus:string;
begin
j:=1; {inisialisasi untuk counter arrHasilHapus}
for i := 1 to length(strKata) do
begin
if (i<awal) or (i>akhir) then
begin
arrHasilHapus[j]:=strKata[i];
j:=j+1; {pencacah j di increase sebanyak 1}
end
end;
strHasilHapus :=”;
for i:=1 to j-1 do
begin
strHasilHapus:=strHasilHapus+ arrHasilHapus[i];
end;
doHapus:=strHasilHapus;
end;
procedure menu;
begin
clrscr;
writeln(‘===============================================================================’);
writeln(‘# PROGRAM PENGHAPUS KARAKTER #’);
writeln(‘# program ini menghapus karakter dari kalimat yang dimasukkan. #’);
writeln(‘#—————————————————————————–#’);
writeln(‘# Silakan pilih menu berikut : #’);
writeln(‘# 1. Masukkan kalimat #’);
writeln(‘# 2. Masukkan index awal dan akhir penghapusan #’);
writeln(‘# x. Keluar #’);
writeln(‘# Pilihan : #’);
writeln(‘===============================================================================’);
gotoxy(2,11);writeln(‘##################################################################’);
gotoxy(2,12);writeln(‘# #’);
gotoxy(2,13);writeln(‘# Kalimat yang dimasukkan : ‘,kata);
gotoxy(2,14);writeln(‘# #’);
gotoxy(2,15);writeln(‘##################################################################’);
gotoxy(67,13);writeln(‘#’);
gotoxy(4,17);writeln(‘ ——————‘);
gotoxy(4,18);writeln(‘|Indexs Awal :’,awal);
gotoxy(4,19);writeln(‘|Indexs Akhir :’,akhir);
gotoxy(4,20);writeln(‘ ——————‘);
gotoxy(23,18);writeln(‘|’);
gotoxy(23,19);writeln(‘|’);
gotoxy(2,21);writeln(‘==================================================================’);
gotoxy(2,22);writeln(‘# Hasil Penghapusan : ‘,hasilHapus);
gotoxy(2,23);writeln(‘==================================================================’);
gotoxy(67,22);writeln(‘#’);
pil:=’ ‘;
end;
begin
{Program utama}
repeat
menu;
gotoxy(46,9);pil:=readkey;
case upcase(pil) of
‘1’ : begin
gotoxy(46,9);writeln(‘Memasukkan kalimat’);
gotoxy(30,13);writeln(‘ ‘);
gotoxy(30,13);readln(kata);
hasilHapus:=doHapus(kata, awal, akhir);
end;
‘2’ : begin
if kata=” then
begin
clrscr;
gotoxy(6,11);writeln(‘————————————————————————‘);
gotoxy(6,12);writeln(‘ Kalimat masih kosong, silakan isi dahulu ‘);
gotoxy(6,13);writeln(‘————————————————————————‘);
readln;
end else
begin
gotoxy(46,9);writeln(‘Memasukkan index’);
gotoxy(19,18);writeln(‘ ‘);
gotoxy(19,19);writeln(‘ ‘);
gotoxy(19,18);readln(tempNilai);
val(tempNilai, awal,nilaiKonv);
if nilaiKonv=0 then
begin
isNumber:=true;
gotoxy(19,19);readln(tempNilai);
val(tempNilai, akhir,nilaiKonv);
if nilaiKonv<>0 then
begin
isNumber:=false
end;
end else isnumber:=false;
if isnumber=false then
begin
clrscr;
gotoxy(6,11);writeln(‘————————————————————————‘);
gotoxy(6,12);writeln(‘silakan masukkan angka’);
gotoxy(6,13);writeln(‘err : ‘,tempNilai,’ : bukan angka’);
gotoxy(6,14);writeln(‘————————————————————————‘);
readln;
end else
begin
if (awal<1) or (awal >length(kata)) or (akhir<1) or (akhir>length(kata)) or (awal>akhir) then
{pengecekan apakah memnuhi syarat untuk dihapus}
begin
clrscr;
gotoxy(6,11);writeln(‘————————————————————————‘);
gotoxy(6,12);writeln(‘index awal dan akhir tidak sesuai dengan karakter pada kalimat : ‘);
gotoxy(6,13);writeln(kata);
gotoxy(6,14);writeln(‘————————————————————————‘);
readln;
end else
begin
hasilHapus:=doHapus(kata, awal, akhir); end;
end;
end;
end;
‘X’ : begin
donewincrt;
end;
else writeln(‘Maaf, pilihan yang anda masukkan salah. Silakan ulangi lagi’);
end;
until upcase(pil)=’X’;
end.
Tinggalkan komentar