Anda di halaman 1dari 19

PERTEMUAN   III 

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 
batas­batas  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  

  :  
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   a­z   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 

Setelah  mengetahui  cara  pendeklarasian  array,  maka  kini  saatnya  membahas 


bagaimana  cara  untuk  memanipulasi  array  tersebut.  Langkah  pertama  yang  harus  dilakukan 
adalah  mengisikan  nilai  ke  dalam  elemen­elemen  array  bersangkutan.  Adapun bentuk umum 
untuk   pengisian   elemen   array   adalah   sebagai   berikut   : 

NamaArray 
  [indeks] 
  :  
=  
nilai 
  ; 

Untuk   lebih   memahaminya,   perhatikan   contoh   berikut   : 

var  

  :  
array   [1..100]   
of 
   
integer   
; 
begin 

  [1]    
:  
=  1  
; {mengisi    
elemen   
pertama    
dengan   
nilai   
1} 

  [2]    
:  
=  2  
; {mengisi    
elemen   
kedua   
dengan   
nilai   
2} 

  [3]    
:  
=  3  
; {mengisi    
elemen   
ketiga   dengan 
  nilai 
  3} 
... 

  [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 

  :  
array    
[1..100]    of 
   
integer 
  ; 

   :  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 
nilai­nilai  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. 

Perlihatkan  hasil  dari  program  ini  ke  assisten Anda dan minta paraf jika program ini 


berhasil. 

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    
ke­1 
NRP 
     : 
Nama    : 
Nilai 
    
Nilai    
ke­1   
(Kuis): 
    
NIlai    
ke­2   
(UTS): 
    
Nilai    
ke­3   
(UAS): 
 
Data   
Siswa    
ke­2 
NRP 
     : 
Nama    : 
Nilai 
    
Nilai    
ke­1   
(Kuis): 
    
NIlai    
ke­2   
(UTS): 
    
Nilai    
ke­3   
(UAS): 
 
­ 
­ 

Praktikum 
  Pemrograman 
  Dasar 6 
 
­ 
Data 
  Siswa   
ke   –n 
 
 
Daftar   
Nilai    
MahaSiswa 
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ 
      NIM                       NAMA                      Nilai 
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ 
‘NIM 
  siswa   
ke­1’          
‘Nama 
  siswa 
  ke­1’ 
           
rata­rata 
  nilai 
‘NIM 
  siswa   
ke­2           
‘Nama 
  siswa 
  ke­2’ 
           
rata­rata 
  nilai 
‘NIM 
  siswa   
ke­n’          
‘Nama 
  siswa 
  ke­n’ 
           
rata­rata 
  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 
  ke­3 
 
 

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  data­data 
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  ke­k,  dimana  k  =  N+1  div  2.  Hal  tersebut  mengakibatkan  array  A 
terbagi  menjadi  dua  bagian,  yaitu  dari  A[1]  …  A[k­1]  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[k­1].  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  

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  data­data  yang  belum  terurut.  Jadi,  untuk  mencari  data  di  dalam  data­data 
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:=k­1; 
     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 

Selain  metode  pencarian,  pengurutan  data  merupakan  salah  satu permasalahan umum 

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 
metode­metode   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   
N­1   do   
begin 
for   
k:=N    
downto     j+1    
do   
begin 
if 
  A[k]   <  A[k­1]    
then    begin 
Temp   := 
  A[k]; 
A[k]   :=A[k­1]; 
A[k­1]    
:=   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 
elemen­elemen   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 
  N­1   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 

  =  
‘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  kasus­kasus  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  string­string  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  ke­256  (setelah  karakter  ke­255).  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   masing­masing! 
   
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  ke­i.  Sebagai  contoh,  apabila  kita  ingin  menghapus  7  karakter  dari  string  tersebut 
dimulai   dari   posisi   ke­5,   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 
 

  :  
string; 
begin 
clrscr; 
{mengisikan    nilai} 

  := 
  ‘INFORMATIKA’; 
{menampilkan    
string    
S  sebelum   dihapus 
  beberapa 
  karakternya} 
writeln    (‘Sebelum    di 
  hapus 
  :’); 
writeln    (S); 
writeln; 
{menghapus    
7  karakter    
dari 
  S  
pada   
indeks   
ke­5} 
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   masing­masing! 
 
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  ke­i.  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  ke­8. 
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 ke­i. 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 
  ke­2} 
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   masing­masing! 
 
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 
 

Anda mungkin juga menyukai