PENGENALAN PASCAL
ARRAY DAN STRING
Tahun Ajaran 2011/ 2012
1.
2.
3.
1. Definisi Array
Array (larik) adalah sebuah variabel yang dapat menyimpan lebih dari satu nilai
sejenis (memiliki tipe data sama). Hal ini tentu berbeda dengan variabel biasa yang hanya
mampu menampung satu buah nilai. Setiap nilai yang di simpan di dalam array disebut
dengan elemen array
, sedangkan nilai urut yang digunakan untuk mengakses elemennya
disebut dengan indeks array
. Setiap elemen array menyimpan nilai bertipe integer dan
akan menempati alamat memori yang berbeda .
2. Deklarasi Array
Sama seperti variabel lainnya, array memiliki deklarasi oleh variabel. Bila akan
didefinisikan sebagai tipe bentukan, maka array juga dideklarasikan di bagian definisi tipe.
Dalam bahasa pascal, pendeklarasian array dilakukan dengan menggunakan kata kunci array
dan tipe data yang akan di simpan di dalamnya, selain itu juga harus di sertai dengan
batasbatas indeksnya yang diapit oleh tanda bracket ([]). Berikut ini bentuk
pendeklarasiannya.
NamaArray
:
array
[IndeksAwal..IndeksAkhir]
of
tipe_data
;
Pada bahasa Pascal, indeks array juga dapat di mulai dari bilangan berapapun. Selain
itu, indeks array juga dapat bertipe karakter maupun tipe enumerasi. Di bawah ini contoh
kode yang dapat digunakan untuk mendeklarasikan 10 buah elemen array bertipe integer
sebagai penggantian kode di atas.
Var
A1
:
array[0..9]
of
integer
;
A2
:
array[5..15]
of integer ;
A3
:
array[‘a’..’j’] of
integer
;
Praktikum
Pemrograman
Dasar 1
A4
:
array[‘A’..’J’]
of
integer
;
Dalam bahasa pascal, tersedia dua buah fungsi yang dapat digunakan untuk
mengambil indeks terendah dan tertinggi dari sebuah array, yaitu fungsi Low dan High.
Adapun parameter dari kedua fungsi tersebut adalah nama array yang akan dicari indeksnya.
Perhatikan contoh di bawah ini :
var
A
:
Array[1..
100]
of
integer
;
terendah,
tertinggi
: integer
;
begin
terendah
: =
Low
(A)
; {akan
menghasilkan
nilai
1}
tertinggi
: = High
(A)
; {
akan
menghasilkan
nilai
100}
...
end.
Tugas 1 Membuat Program Menggunakan Elemen Array
1. Buatlah program mengurutkan abjad dari huruf az dengan menggunakan elemen
array
Berikut ini algoritma program:
max = 26;
A:array[1..max] of char;
c:char;
i:integer;
c:='a';
i:=1;
while (i<=max)
A[i]:=c;
inc(c);
inc(i);
Praktikum
Pemrograman
Dasar 2
for i:=1 to max
write (A[i],' ');
Tunjukkan hasil program kepada Assiten Anda dan minta paraf untuk tugas ini!
3. Elemen Array
NamaArray
[indeks]
:
=
nilai
;
Untuk lebih memahaminya, perhatikan contoh berikut :
var
A
:
array [1..100]
of
integer
;
begin
A
[1]
:
= 1
; {mengisi
elemen
pertama
dengan
nilai
1}
A
[2]
:
= 2
; {mengisi
elemen
kedua
dengan
nilai
2}
A
[3]
:
= 3
; {mengisi
elemen
ketiga dengan
nilai
3}
...
A
[100]
: =
100
;
{mengisi
elemen
keseratus
dengan nilai
100}
end.
Kode tersebut akan melakukan pengisian 100 elemen array dengan nilai 1 sampai 100
sehingga kode tersebut akan lebih sederhana apabila dituliskan dengan menggunakan struktur
pengulangan seperti di bawah ini :
var
A
:
array
[1..100] of
integer
;
i
: integer ;
begin
for
I :
= 1
to 100
do
begin
A[i] :
= i ;
end
;
end.
4. Array Konstan
Praktikum
Pemrograman
Dasar 3
Nilai yang terkandung di dalam sebuah array dapat bernilai konstanta, artinya
nilainilai tersebut tidak dapat diubah. Untuk melakukan hal tersebut, kita harus
mendeklarasikan array bersangkutan dengan kata kunci const
. Dibawah ini
pendeklarasiannya.
const
NamaArray : array [IndekAwal..IndeksAkhir] of tipe_data = (nilai1,
nilai2,
...
)
;
Agar lebih memahami konsep array, maka dapat melihat contoh implementasi dari array
konstan berikut :
function
HariSekarang : string;
const
Hari
:
array [0..6] of
string
[6]=
(‘Minggu’,‘Senin’,’Selasa’,‘Rabu’,‘Kamis’,‘Jumat’,‘Sabtu’);
var
thn,
bln,hr, indeksHari
:
word;
begin
GetDate (thn, bln,
hr, indeksHari);
HariSekarang : =
HARI [indeksHari];
end;
5. Array Berisi Record
Konsep dasar array berisi record hampir sama seperti pada saat mendefinisikan array
untuk tipe dasar, seperti integer, char, real dan juga lainnya. Langkah awal yang harus
dilakukan adalah mendefinisikan record terlebih dahulu yang selanjutnya akan digunakan
sebagai tipe data pada saat pendeklarasian array. Untuk lebih jelasnya dapat melihat contoh di
bawah ini :
Type
{Mendefinisikan tipe
data
berupa
record dengan
nama TSiswa}
TSiswa = record
Nim = record [8];
Nama
: string
[25]
;
End;
{Mendefinisikan tipe
data
berupa
array
dari tipe
TSiswa}
TKumpulan Siswa = array
[1..100] of
Tsiswa
;
Var
{Mendeklarasikan variabel
A
yang
bertipe
TKumpulan
Siswa}
A:
TKumpulanSiswa
;
Praktikum
Pemrograman
Dasar 4
Contoh di atas memperlihatkan bahwa tipe TKumpulanSiswa merupakan tipe
bentukan berupa array dimana setiap elemennya berisi record Tsiswa. Selanjutnya tipe
tersebut digunakan untuk mendeklarasikan variabel A. Dengan demikian, variabel A itu akan
dapat menampung 100 buah record yang bertipe TSiswa.
Program
Array_record;
uses wincrt;
const
max=100;
type
Tsiswa = record
NRP:string[8];
Nama:string[25];
end;
Tkumpulansiswa
= array[1..max]
of Tsiswa;
var
A:Tkumpulansiswa;
i,N:integer;
Begin
write('Masukan
jumlah
siswa
yang
akan
diisikan:');
readln(N);
writeln;
{memasukkan data
ke
dalam array}
writeln('Memasukkan
data');
for
i:=
1 to
N do begin
Writeln('Data siswa
ke',i);
write('NRP:');readln(A[i].NRP);
write('Nama:');readln(A[i].Nama);
writeln;
end;
{menampilkan
data dari dalam array}
writeln;
writeln('Daftar Siswa');
writeln('');
writeln('NRP',
' ':2,'Nama');
writeln('');
for
i:=1 to
N do
begin
with A[i] do
begin
write(NRP:8, '':2,
Nama);
end;
readln;
end.
6. Record Berisi Array
Bagian ini akan mempelajari bagaimana cara membentuk record yang di dalamnya
Praktikum
Pemrograman
Dasar 5
berisi aray. Untuk mempermudah pembahasan, maka dapat dijelaskan ke dalam sebuah
contoh di bawah ini. Di asumsikan mahasiswa memiliki 3 buah nilai (nilai kuis, UTS dan
UAS). Adapun nilai akhir (NA) akan dihitung berdasarkan ketentuan sebagai berikut.
Na
=
(20%
x
Kuis)
+
(30%
x
UTS)
+
(50%
x
UAS)
Berdasarkan kasus di atas, maka dapat mendefinisikan mahasiswa ke dalam sebuah
record yang di dalamnya mengandung field bertipe array, di bawah ini akan di deklasikan
untuk penyelesaiannya.
Type
TSiswa = record
NIM
: string
[8];
Nama : string
[25];
Nilai
: array
[1..3]
of
real; {field
bertipe
array}
End.
Tugas 2 Array Berisi Record
1. Buatlah program menggunakan elemen array berisi record dengan tampilan hasil
seperti berikut ini:
Catatan: Nilai Tugas 20 %
UTS 30%
UAS 50%
Masukkan
jumlah
siswa
yang
akan
diisikan
:
Memasukkan
Data
Data
Siswa
ke1
NRP
:
Nama :
Nilai
Nilai
ke1
(Kuis):
NIlai
ke2
(UTS):
Nilai
ke3
(UAS):
Data
Siswa
ke2
NRP
:
Nama :
Nilai
Nilai
ke1
(Kuis):
NIlai
ke2
(UTS):
Nilai
ke3
(UAS):
Praktikum
Pemrograman
Dasar 6
Data
Siswa
ke –n
Daftar
Nilai
MahaSiswa
NIM NAMA Nilai
‘NIM
siswa
ke1’
‘Nama
siswa
ke1’
ratarata
nilai
‘NIM
siswa
ke2
‘Nama
siswa
ke2’
ratarata
nilai
‘NIM
siswa
ken’
‘Nama
siswa
ken’
ratarata
nilai
7. Menggunakan Metode Pencarian Beruntun
Metode ini banyak digunakan untuk melakukan pencarian dari sekumpulan data, baik
data yang sudah terurut maupun yang belum atau masih acak. Bila dibandingkan dengan yang
lainnya metode ini memiliki cara kerja yang yang relative mudah untuk di pahami. Dalam
metode ini data yang dicari akan dibandingkan dengan seluruh elemen array yang ada.
Sebagai contoh, apabila kita memiliki array A yang memiliki indeks 1 sampai N, dan kita
akan mencari nilai X di dalam array tersebut, maka nilai X tersebut akan dibandingkan
dengan nilai A[1] sampai A[N]. dalam metode ini juga diterapkan bahwa apabila data
ditemukan pada indeks tertentu, maka proses pencarian akan dihentikan. Hal ini bertujuan
agar proses perbandingan nilai tidak dilakukan sampai indeks terakhir karena nilai yang
dicari telah ditemukan.
Di bawah ini contoh program yang akan menunjukkan implementasi dari metode
pencarian array secara beruntun. Apabila data pencarian array dengan menggunakan metode
di atas. Apabila data yang dicari ditemukan dalam array maka program akan menampilkan
indeks dimana data tersebut berada. Sebaliknya, apabila data tidak ditemukan maka program
akan mengembalikan indeks nol.
program CariBeruntun;
uses wincrt;
const
A
:
array [1..5] of
integer
= (75,
73,
78,
81,
80)
Var
i,
x, indeks
: integer;
begin
clrscr;
write
(‘Masukkan nilai
yang
akan
dicari
: ‘
);
readln
(x)
;
indeks :
= 0
;
for
i :=
1 to
5
do
begin
Praktikum
Pemrograman
Dasar 7
if
A[i]
=
x
then
begin
indeks :
= i;
end;
end;
writeln
(x,
‘
ditemukan pada
indeks
ke‘,
indeks);
readln;
end.
Hasil dari program di atas adalah sebagai berikut :
Masukkan
nilai
yang
akan
dicari
:
78
78
ditemukan
pada
indeks
ke3
8. Menggunakan Metode Pencarian Bagi Dua
Metode ini berbeda dengan metode pencarian beruntun yang dapat digunakan untuk
data belum terurut, metode pencarian bagi dua ini hanya dapat digunakan untik datadata
yang telah terurut, baik secara menaik maupun menurun.
Dalam metode ini elemen array akan dibagi menjadi dua, sehingga banyaknya proses
pembandingan nilai dapat dikurangi. Apabila terdapat array A yang memiliki N buah elemen
dengan indeks 1 sampai N dan datanya telah terurut secara menaik, maka array tersebut akan
dipenggal pada indeks kek, dimana k = N+1 div 2. Hal tersebut mengakibatkan array A
terbagi menjadi dua bagian, yaitu dari A[1] … A[k1] dan A[k+1] … A[N], sedangkan A[k]
menjadi pemenggal atau pembatas antar dua bagian tersebut. Apabila x (nilai yang dicari)
sama dengan nilai A[k] maka hentikan pencarian, sedangkan bila tidak, periksa apakah nilai
A[k] > x ataukah A[k] < x. bila A[k] lebih besar dari x, maka ulangi metode pencarian
tersebut untuk A[1] sampai A[k1]. Sebaliknya, apabila A[k]lebih kecil dari x, maka ulangi
metode pencarian tersebut untuk A[k+1] sampai A[N]. Pada kasus yang tidak di temukan,
metode ini akan melakukan proses pembandingan nilai sebanyak 2 log (N), dimana N adalah
jumlah elemen array. Jadi, misalkan kita memiliki array dengan 32 elemen, maka proses
pembandingan nilai yang akan dilakukan adalah
3
log
32
= 2
log
25
= . 2
5 log
2
=
5.1
=
5
kali
Apabila kita menggunakan metode pencarian beruntun maka proses akan tetap
dilakukan sebanyak 32 kali. Hal ini mengakibatkan proses pencarian yang dilakukan melalui
metode bagi dua jauh lebih cepat dibandingkan metode pencarian beruntun. Namun, seperti
Praktikum
Pemrograman
Dasar 8
yang telah disinggung sebelumnya, bahwa kekurangan dari metode ini adalah tidak dapat
digunakan untuk datadata yang belum terurut. Jadi, untuk mencari data di dalam datadata
yang belu terurut, kita harus tetap menggunakan metode pencarian beruntun.
Tugas 3 Pencarian Data Menggunakan Metode Pencarian Bagi Dua
1. Salin source code berikut ini dan perbaiki jika terdapat kesalahan. Perlihatkan hasil
program kepada asisten
program
CariBagiDua;
uses wincrt;
const
A:array[1..14]
of integer
=(12,13,14,15,20,25,30,35,40,45,50,55,60,65);
var
idxAwal,idxAkhir,k,x:integer;
ketemu:boolean;
Begin
write('Masukkan
nilai yang
akan
dicari :');readln(x);
idxAwal:=1;
idxAkhir:=14;
ketemu:=true;
while (not
ketemu)
and
(idxAwal
<
idxAkhir)
do
begin
k:=(idxAwal+idxAkhir)
div
2;
if
A[k]=x then
begin
ketemu:=true;
end
else
begin
if
A[k]
> x then
begin
idxAwal:=x+1;
end
else
begin
idxAkhir:=k1;
end;
end;
end;
if
ketemu then
begin
writeln(x,'ditemukan pada
indeks
ke
',k);
end else
begin
writeln(x,'tidak
ditemukan');
end;
readln;
end.
9. Mengurutkan Elemen Array
Praktikum
Pemrograman
Dasar 9
yang juga sering dijumpai dalam pemrograman. Sebagai bukti nyata tinjaulah metode
pencarian yang menuntut kita untuk melakukan pengurutan terlebih dahulu sebelum kita
melakukan pencarian. Di dalam pemrograman, terdapat beberapa metode untuk melakukan
pengurutan data. Namun terdapat delapan yang umumnya banyak digunakan. Adapun
metodemetode tersebut antara lain :
1. Bubble Sort
2. Maximum/Minimum Sort
3. Selection Sort
4. Insertion Sort
5. Heap Sort
6. Quick Sort
7. Merge Sort
8. Shell Sort
3.9.1 Bubble Sort
Berikut ini contoh program pengurutan :
program
Urut;
uses wincrt;
const
N
=
5;
A
=
array
[1…N] of
integer
= (25,
20,
15,
18,
22);
var
j,
k temp :
integer;
begin
clrscr;
{menampilkan
data
sebelum proses pengurutan}
writeln
(‘Data
sebelum diurutkan’);
for
j
: = 1 to
N do
begin
writeln (‘A[‘,J,’]
= ‘,
A [j]);
end;
{melakukan
proses
pengurutan data}
for
j
: = 1 to
N1 do
begin
for
k:=N
downto j+1
do
begin
if
A[k] < A[k1]
then begin
Temp :=
A[k];
A[k] :=A[k1];
A[k1]
:= temp;
end;
end;
end;
Praktikum
Pemrograman
Dasar 10
{menampilkan data
setelah
proses
pengurutan}
writeln;
writeln (‘Data
setelah
diurutkan’);
for
j:=
1
to
N
do
begin
writeln (‘A[‘,j,’]
=
‘, A[j]);
end;
readln;
end.
Tugas 4. Pengurutan Elemen Menggunakan Metode Bubble Sort
1. Buatkan flowchart dari source code program arra metode bubble sort diatas.
Tunjukkan hasil tugas tertulis kepada asisten dan minta paraf untuk tugas ini!
2. Ubah source code program bubble sort tersebut dengan program mengurutkan dari
nilai yang terbesar ke nilai yang terkecil. Minta asisten untuk memberikan paraf pada
tugas ini.
3.9.2 Pengurutan Elemen Menggunakan Metode Maksimum/Minimum
Elemen array dengan nilai maksimum atau minimum akan disimpan di bagian ujung
array (elemen pertama maupun terakhir). Nilai tersebut akan diisolasi dan tidak diikuti lagi
dalam proses berikutnya.
Tugas 5 Pengurutan Elemen Menggunakan Metode Maksimum/Minumum
1. Buatlah program mengurutkan nilai dengan menggunakan metode maksimum
berdasarkan algoritma berikut ini :
Var
N, {banyaknya elemen array yang keseluruhan}
X, {banyaknya elemen array yang belum terurut}
J ,k {untuk indeks pengulangan}
Maks, {untuk menyimpan nilai maksimal}
Imaks, {untuk menyimpan indeks dari elemen yang menyimpan nilai maksimal}
Temp:integer {variabel bantu untuk proses pertukaran}
Begin
X:=n; {semua nilai belum terurut pada awal kondidi}
For j:=1 to N‐1 do begin
Maks :=A[1];
Imaks:=1;
For k :=2 to X do begin
If (A[k] > maks) then begin
Praktikum
Pemrograman
Dasar 11
Maks := A[k];
Imaks := k;
End;
End;
{tukarkan maks dengan A[X]}
Temp:=A[x];
A[x]:=A[imaks];
A[imaks]:=temp;
{ikat elemen terakhir dengan menurunkan nilai X}
X:=x‐1;
End;
End;
3.9.3 Pengurutan Elemen Menggunakan Metode Seleksi
Memilih salah satu elemen dengan cara memilih salah satu elemen serta
memposisikannya sebagai nilai terkecil. Nilai tersebut akan dibandingkan dengan
elemenelemen pada posisi berikutnya.
Tugas 6 Tugas Pengurutan Elemen Menggunakan Metode Seleksi
1. Buatlah program mengurutkan nilai dengan menggunakan metode maksimum
berdasarkan algoritma berikut ini :
Var
N,
{banyaknya elemen
array}
Min, {indeks
dari elemen
terkecil}
Temp,
{variabel
bantu
untuk proses
pertukaran}
I,j:ineteger; {indeks
perulangan}
Begin
For
i:=1
to
N1 do
begin
Min:=1;
For j:=i+1
to N do
begin
If
A[j] < A [min] then
begin
Min:=j;
End;
End;
Temp:=A[i];
A[i]:=A[min];
A[min]:=temp;
End;
End;
10. String
String merupakan kumpulan karakter, dengan kata lain string merupakan array dari karakter
Praktikum
Pemrograman
Dasar 12
yang selalu dimulai dari indeks 1.
Berikut ini deklarasi dari string
program String;
uses
wincrt;
const
S
=
‘Pascal’ ; {konstanta
berupa
string}
var
i,
jmlKar
:
integer;
begin
clrscr;
jmlKar :=
length(S); {mendapatkan
jumlah
karakter
string
S}
for
I
: = 1
to jmlKar
do
begin
writeln
(‘S[‘,I,’] =
‘’’,
S[i].’’’’);
end;
readln;
end.
Hasil dari program di atas adalah sebagai berikut :
S[1]
=
‘P’
S[2]
=
‘A’
S[3]
=
‘S’
S[4]
=
‘C’
S[5]
=
‘A’
S[6]
=
‘L’
11. Array Dua Dimensi
Array yang memiliki dua buah elemen bertipe array atau subskrip yang biasanya
direpresentasikan dengan baris dan kolom.
Tugas 7 Program Menjumlahkan Dua Buah Matriks Berordo 2 x 3
1. Salin source code di bawah ini dan perbaiki jika terdapat kesalahan. Tunjukkan hasil
program ke assiten dan minta paraf asisten untuk tugas Anda!
Program
JumlahMatriks;
uses
wincrt;
const
jbaris=2;
jkolom=3;
type
matriks23=array[1..jbaris,1..jkolom]
of
integer;
var
A,B,C :matriks23;
j,k:integer;
Begin
{mengisikan
matriks
A}
Praktikum
Pemrograman
Dasar 13
writeln('Matriks
A');
for
j:=1 to
jbaris
do begin
for
k :=
1 to jkolom
do begin;
write('A[',j,',',k,']=');readln(A);
end;
writeln;
end;
writeln;
{mengisikan matriks B}
writeln('Matriks
B');
for
j
:= 1
to jbaris
do begin
for
k:= 1 to
jkolom do
begin
write ('B[',j,',',k,']=');readln(B);
end;
writeln;
end;
writeln;
{melakukan
penjumlahan
matriks
A
dan
B
sekaligus
menampilkan
hasilnya ke
layar}
writeln('Hasil
Penjumlahan');
for
j:=1 to
jbaris
do begin
for
k:=1
to jkolom
do begin
C[j,k]:=A[j,k]
+ B[j,k];
writeln('C[',j,',',k,']=',C);
end;
writeln;
end;
readln;
end.
2. Buatlah program perkalian matriks berikut ini:
123456 x 234122
12. Array Tiga Dimensi
Array yang memiliki tiga buah subskrip. Subskrip yang ada akan direpresentasikan
dengan sumbu x,y dan z atau panjang,lebar dan tinggi.
Tugas 8 Program Mengakses Array 3 Dimensi
1. Salin source code di bawah ini dan perbaiki jika terdapat kesalahan. Tunjukkan hasil
program ke assiten dan minta paraf asisten untuk tugas Anda!
Program
ArrayTigaDimensi;
uses
wincrt;
const
Praktikum
Pemrograman
Dasar 14
xmaks=2;
ymaks=2;
zmaks=2;
type
array3D=array[1..xmaks,1..ymaks,1..zmaks] of
integer;
var
A:array3D;
i,j,k:integer;
x:integer;
Begin
{mengisikan nilai ke
dalam array
A}
x:=1;
for
i:=1
to
xmaks do
begin
for
j:=1
to
ymaks
do
begin
for
k:=1
to
zmaks
do
begin
A[i,j,k]:=x;
end;
end;
end;
{menampilkan
isi
yang
terdapat
dalam
array
A}
for
i:=1
to
xmaks do
begin
for
j:=1
to
ymaks
do
begin
for
k:=1
to
zmaks
do
begin
write('A[',i,',',j,',',k,']=',A[i,j,k],' ');
end;
end;
writeln;
end;
readln;
end.
13. Operasi String
Dalam pembuatan program, kita akan banyak menjumpai kasuskasus yang melibatkan
pemanipulasian string, entah itu penggabungan, penyalinan,(copy) maupun yang lainnya.
A. Menggabungkan String
Penggabungan dua buah string atau lebih dapat dilakukan dengan cara menggunakan operator
plus (+) dan dengan menggunakan fungsi Concat, yang memiliki deklarasi sebagai berikut.
f unction Concat (s1 [, s2, …, sn] : string) : string;
Fungsi tersebut akan melakukan penggabungan terhadap stringstring yang menjadi
parameternya, yaitu s1, s2 …, sn. Perlu diperhatikan bahwa apabila hasil penggabungan
beberapa buah string panjangnya melebihi 255 karakter, maka string akan dipotong pada
karakter ke256 (setelah karakter ke255). Di bawah ini contoh program yang akan
memperlihatkan bentuk penggabungan string yang dilakukan dengan menggunakan operator
Praktikum
Pemrograman
Dasar 15
dan concat.
program Gabung
String;
uses
wincrt;
var
S1,
spasi, S2
: string;
hasilPlus, hasilConcat : string;
begin
clrscr;
{mengisikan
nilai}
s1 :=
‘Informatika’;
spasi := ‘ ‘;
s2 :=
‘ITENAS’;
{menggunakan operator
plus}
hasilPlus
:= s1
+
spasi
+ s2;
{menggunakan fungsi
Concat}
hasilConcat
:= Concat
(s1,
spasi,
s2);
{menampilkan hasil ke
layar}
writeln
(hasilPlus);
writeln
(hasilConcat);
readln;
end.
Hasil dari program di atas adalah sebagai berikut :
Informatika
ITENAS
Informatika
ITENAS
Ubahlah Nilai Variabel s1 dan s2 dengan nama Anda masingmasing!
B. Menghapus Substring
Untuk melakukan penghapusan substring dari suatu string, kita harus menggunakan
prosedur Delete, yang memiliki bentuk deklarasi sebagai berikut :
procedure
Delete(var
S:string;
i,
n
:
integer);
prosedur tersebut akan menghapus substring sebanyak n karakter dari string S mulai dari
posisi kei. Sebagai contoh, apabila kita ingin menghapus 7 karakter dari string tersebut
dimulai dari posisi ke5, maka kita harus menuliskan kode sebagai berikut :
Delete(S, 5, 7);
String S tidak lagi berisi teks ‘INFORMATIKA’ melainkan hanya menampilkan berupa teks
‘INFO’ karena sisanya telah dihapus. Di bawah ini contoh program substring.
program
HapusString;
uses
wincrt;
var
Praktikum
Pemrograman
Dasar 16
S
:
string;
begin
clrscr;
{mengisikan nilai}
S
:=
‘INFORMATIKA’;
{menampilkan
string
S sebelum dihapus
beberapa
karakternya}
writeln (‘Sebelum di
hapus
:’);
writeln (S);
writeln;
{menghapus
7 karakter
dari
S
pada
indeks
ke5}
Delete
(S,
5, 7);
{menampilkan
string
S setelah dihapus
beberapa
karakter}
writeln (‘Setelah dihapus
:’);
writeln (S);
readln;
end.
Hasil dari program di atas adalah sebagai berikut :
Sebelum
dihapus
:
INFORMATIKA
Setelah
dihapus
:
INFO
Ubahlah Nilai Variabel dengan nama Anda masingmasing!
C. Menyalin String
Proses penyalinan string dilakukan dengan menggunakan Copy, yang memiliki bentuk
deklarasinya sebagai berikut :
function
Copy
(S:
string;
i,
n
:
integer)
:
string;
Fungsi ini akan melakukan penyalinan substring dari string S sebanyak n karakter dimulai
dari posisi atau indeks kei. sebagai contoh apabila S berisi teks ‘INFORMATIKA’ dan kita
ingin melakukan penyalinan substring ‘TIKA’. Selanjutnya hasil dari proses penyalinan
tersebut akan ditampung ke dalam variabel hasil, maka kita harus menuliskan kode sebagai
berikut :
hasil
:=
Copy(S,
8,
4);
Nilai 8 menunjukkan kita akan memulai proses penyalinan mulai dari indeks ke8.
Sedangkan nilai 4, menunjukkan banyaknya karakter yang akan disalin.
D. Menyisipkan String
Selain proses manipulasi string pascal juga iizinkan untuk melakukan penyisipan
substring ke dalam string tertenti. Adapun caranya adalah dengan menggunakan prosedur
Insert, yang memiliki deklarasi sebgai berikut :
Praktikum
Pemrograman
Dasar 17
Procedure Insert (S1 : string; var S2 : string; i : integer );
Prosedur di atas akan menyisipkan string S1 ke dalam S2 pada posisi kei. berikut ini contoh
program menyisipkan string.
program
SisipString;
uses
wincrt;
var
S1,
S2,
: string;
begin
clrscr
{mengisikan nilai ke
dalam
variabel S1
dan
S2}
S1 :=
‘AS’;
S2 :=
‘PCAL’;
{menyisipkan
S1
ke
dalam S2
pada
posisi
atau indeks
ke2}
Insert
(S1,
S2,
2);
{menampilkan
isi
string
S2
setelah
disisipi
string
S1}
writln
(S2);
readln;
end.
Hasil dari program di atas adalah sebagai berikut :
PASCAL
Ubahlah Nilai Variabel dengan nama Anda masingmasing!
E. Mendapatkan Posisi String
Apabila kita ingin mengetahui posisi suatu string (lebih tepatnya substring) yang
terdapat di dalam string tertentu, maka kita harus menggunakan fungsi Pos, yang memiliki
deklarasi sebagai berikut :
Function
Pos
(substr
:
string;
S
:
string)
:
byte;
Fungsi tersebut akan mengembalikan indeks berupa nilai (bertipe bilangan bulat) yang
merupakan posisi dari substring yang dicari. Indeks yang dikembalikan adalah indeks dari
substring yang ditemukan pertama kali di dalam string. Apabila substring yang dicari tidak
terdapat di dalam string, maka fungsi ini akan mengembalikan nilai nol.
F. Mendapatkan Panjang String
Panjang string merupakan jumlah karakter yang terdapat di dalam suatu string. Cara untuk
mendapatkan panjang string adalah dengan menggunakan fungsi length, yang memiliki
deklarasi sebagai berikut :
Function
Length
(S
:
string)
:
integer;
Praktikum
Pemrograman
Dasar 18
Fungsi tersebut akan mengembalikan panjang string S. sebagai contoh , apabila string S berisi
teks ‘INFORMATIKA’, maka panjang string dari S adalah 12. Berikut ini contoh program
penggunaan Length.
Hasil
:=
Length
(‘ARISTA’); {hasil
akan
bernilai
6}
Hasil
:=
Length
(‘Marlboro’); {hasil
akan
bernilai
8}
Hasil
:=
Length
(‘
’); {hasil
akan
bernilai
1}
Hasil
:=
Length
(‘’); {hasil
akan
bernilai
0}
Sebagai catatan, variabel hasil di atas bertipe integer
Praktikum
Pemrograman
Dasar 19