OPERASI STRING Pascal menyediakan beberapa prosedur standar dan fungsi standar untuk operasi string 1. Merangkai String Untuk merangkai string digunakan operatot +. Panjang maksimal suatu string dalam pascal adalah 255 karakter. const jenis = 'Bahasa'; nama = 'Turbo Pascal'; sifat : string[20]; kalimat : string[80]; sifat := 'terstruktur'; kalimat := jenis+' '+nama+' '+'merupakan '+jenis+' '+sifat; writeln(kalimat); 2. Penyeleksian string Dua buah string dikatakan sama bila nilai string yang pertama sama isi dan panjangnya dengan nilai string kedua. bahasa : string[20]; write('bahasa apa yang anda pelajari : ');readln(bahasa); if bahasa = 'pascal' then writeln('benar!!!') else writeln('salah!!!'); Prosedur Standar Untuk Operasi String 1. Prosedur Standar Delete Bentuk umum dari prosedur ini adalah : Delete( s:string;index:integer;count:integer); Prosedut ini digunakan untuk membuang (delete) sejumlah karakter (jumlah karakter yang dibuang ditunjukkan oleh nilai integer count) mulai dari posisi tertentu (ditunjukkan oleh integer index) dari suatu string (ditunjukkan oleh pengenal iabel string s).
Contoh Program : bahasa : string[30]; i, posisi : integer; bahasa := 'Sedang Belajar Pascal'; for i:=1 to 21 do posisi := 23-i; delete(bahasa,posisi,1); writeln(bahasa); 2. Prosedur Standar Insert Bentuk umum dari prosedur ini adalah : Insert(source:string; s:string;index:integer); Prosedut ini digunakan untuk menyisipkan (insert) suatu string (ditunjukkan oleh string source), ke nilai string yang lainnya (ditunjukkan oleh string s) mulai posisi ditunjukkan integer index. Contoh Program : teks : string[30]; teks := 'Belajar Pascal'; writeln(teks); insert('bahasa ',teks,9); writeln(teks); Fungsi Standar Untuk Operasi String 1. Fungsi standar Copy Bentuk umum fungsi ini adalah : Copy(s:string;index:integer;count:integer):string; Fungsi ini digunakan untuk menyalin (copy) sejumlah karakter (count) mulai dari posisi yang ditunjukkan nilai integer ke string s. teks : string[30];
teks := 'Belajar Pascal'; writeln(copy(teks,5,3)); writeln(copy(teks,10,4)); 2. Fungsi standar Concat Bentuk umum fungsi ini adalah : Concat[s2,...,sn]:string):string; Fungsi ini mempunyai operasi yang sama dengan operator string +, yaitu merangkai beberapa nilai string yang ditunjukkan oleh nilai string s1,s2,...,sn. const jenis = 'Bahasa'; nama = 'Turbo Pascal'; sifat : string[20]; kalimat : string[80]; sifat := 'terstruktur'; kalimat:=concat(jenis,' ',nama,' ','merupakan ',jenis,' ',sifat); writeln(kalimat); 3. Fungsi standar Pos Bentuk umum fungsi ini adalah : Pos(substr:string;s:string):byte; Fungsi ini digunakan untuk mencari posisi letak dari suatu nilai string (ditunjukkan oleh substr) yang ada didalam nilai string yang lain (ditunjukkan oleh s). Nilai yang dihasilkan adalah berupa nilai byte yang menunjukkan letaknya. const teks = 'Saya Sedang Belajar Bahasa Turbo Pascal'; kar1 = 'aya'; kar2 = 'Sedang'; kar3 = 'aha'; writeln(teks); writeln(kar1,' ada diposisi ',pos(kar1,teks)); writeln(kar2,' ada diposisi ',pos(kar2,teks));
writeln(kar3,' ada diposisi ',pos(kar3,teks)); 4. Fungsi standar lenght Bentuk umum fungsi ini adalah : lenght(s:string):integer; fungsi ini digunakan untuk menghitung panjang atau jumlah karakter yang ada pada string yang ditunjukkan oleh s. Hasil dari fungsi ini adalah nilai numerik integer positif. const teks = 'Saya Sedang Belajar Bahasa Turbo Pascal'; writeln(length(teks));
PROCEDURE DAN FUNCTION Procedure dan Function adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai sub-program (modul program) yang merupakan sebuah program kecil untuk memproses sebagian dari pekerjaan program utama. PROCEDURE Prosedur diawali dengan kata cadangan Procedure di dalam bagian deklarasi prosedur. Prosedur dipanggil dan digunakan di dalam blok program yang lainnya dengan menyebutkan judul prosedurnya. Prosedur banyak digunakan pada program yang terstruktur, karena : 1. Merupakan penerapan konsep program modular, yaitu memecah-mecah program yang rumit menjadi program-program bagian yang lebih sederhana dalam bentuk prosedurprosedur. 2. Untuk hal-hal yang sering dilakukan berulang-ulang, cukup dituliskan sekali saja dalam prosedur dan dapat dipanggil atau dipergunakan sewaktu-waktu bila diperlukan. Sebagaimana halnya sebuah program, suatu procedure juga memiliki header dan block. Perbedaan bentuknya dengan program hanyalah pada bagian header-nya saja. Bentuk Umum header suatu procedure adalah : PROCEDURE nama; Atau PROCEDURE nama (formal parameter : jenis); Jika kita menggunakan procedure dalam suatu program, maka procedure tersebut harus dituliskan pada bagian deklarasi. Contoh Program : Misal kita akan membuat prosedur untuk mencetak header suatu alamat Program CobaProsedur; procedure cetak; writeln('pt. Maju Jaya'); writeln('jl. Buntu No. 70'); writeln('jogjakarta'); cetak; Untuk memanggil prosedur pada contoh diatas dengan menyebutkan nama prosedurnya. Coba lakukan dengan memanggil beberapa kali.
Contoh program menambahkan prosedur garis Program CobaProsedur; procedure cetak; writeln('pt. Maju Jaya'); writeln('jl. Buntu No. 70'); writeln('jogjakarta'); Procedure garis; i:integer; for i:=1 to 20 do write('='); cetak; garis; Contoh program untuk menjumlahkan dua nilai dari input : Program PenjumlahanDgProsedur; procedure jumlah; a,b,c : integer; write('isi a : ');readln(a); write('isi b : ');readln(b); c:=a+b; writeln(a,' + ',b,' = ',c); jumlah; JANGKAUAN IDENTIFIER Identifier yang dideklarasikan dalam suatu blok program hanya berlaku pada blok dimana identifier tersebut didefinisikan
Program P; Var x : integer; Procedure PL; Var y : real;...; daerah daerah berlaku x...; berlaku y Begin...;...; End. x disebut iabel global dikenal di prosedur PL dan program utama y disebut iabel lokal hanya dikenal di prosedur PL PROCEDURE DENGAN PARAMETER Nilai di dalam suatu modul program Pascal sifatnya adalah lokal, artinya hanya dapat digunakan pada modul atau unit program yang bersangkutan saja, tidak dapat digunakan pada modul atau unit program yang lainnya. Untuk dapat dikenal dimodul lain suatu nilai harus dikirimkan dalam bentuk parameter. Pengiriman parameter secara nilai Parameter yang dikirimkan secara nilai, maka parameter formal yang ada di prosedur akan berisi nilai yang dikirimkan yang kemudian bersifat lokal di prosedur. Dengan kata lain pengiriman paramater secara nilai dimaksudkan nilai yang dikirimkan tidak diubah sekembalinya dari pemanggilan prosedur. Bentuk PROCEDURE nama (formal parameter : jenis); Contoh : Misalkan kita akan membuat prosedur untuk menukarkan dua buah nilai. x,y:integer; procedure tukar(a,b:integer); c:integer; c:=a; a:=b; b:=c; writeln('a=',a,' b=',b,' dalam prosedur hitung');
x:=5;y:=10; tukar(x,y); writeln('x=',x,' y=',y,' dalam program utama'); Output : Pengiriman parameter secara acuan Bila pengiriman parameter secara acuan (by reference), maka perubahan-perubahan yang terjadi pada nilai parameter formal di prosedur akan mempengaruhi nilai actual parameter. Dengan kata lain pengiriman paramater secara acuan dimaksudkan nilai yang dikirimkan untuk diubah sekembalinya dari pemanggilan prosedur. Bentuk PROCEDURE nama (Var formal parameter : jenis); Contoh : Misalkan kita akan membuat prosedur untuk menukarkan dua buah nilai. x,y:integer; procedure tukar(var a,b:integer); c:integer; c:=a; a:=b; b:=c; writeln('a=',a,' b=',b,' dalam prosedur hitung'); x:=5;y:=10; tukar(x,y); writeln('x=',x,' y=',y,' dalam program utama');
FUNCTION Blok fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya atau jenis hasilnya. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi. Pada bahasa Pascal dikenal beberapa fungsi, misalkan : abs, pred, sqrt, sqr, succ dan sebagainya. Fungsi-fungsi tersebut biasanya dikenal dengan Built in Function. Sedangkan function yang akan bicarakan disini adalah fungsi yang kita buat sendiri. Berbeda dengan procedure, function merupakan modul program yang menghasilkan suatu kuantitas. Dengan kata lain function mengembalikan nilai balik ke pemanggil. Hal ini dapat dilihat dari bentuk header-nya yang menyebutkan jenis data dari kuantitas yang dihasilkan. Secara umum bentuk header suatu function adalah : FUNCTION nama : jenis hasil; Atau FUNCTION nama (formal parameter : jenis ) : jenis_hasil; Contoh Akan dibuat program untuk menjumlahkan dua nilai dari input dengan menggunakan fungsi program penjumlahan; function jumlah(a,b:integer):integer; jumlah:=a+b; x,y:integer; write('masukkan X : ');readln(x); write('masukkan Y : ');readln(y); writeln(x,'+',y,'=',jumlah(x,y)); Contoh Akan dibuat program untuk mengkonversikan nilai mahasiswa dengan input nama mhs, nama mk, nilai uts, uas dan tugas. Akan dibuat dua fungsi yaitu rata2 dan huruf program KonversiNilai; function rata(a,b,c:integer):real; tot : integer; tot:=a+b+c; rata:=tot/3; function huruf(a:real):char; if a>=80 then
huruf:='a' else if a>=70 then huruf:='b' else if a>=60 then huruf:='c' else if a>=50 then huruf:='d' else huruf:='e'; nama,mk : string; uts,uas,tugas:integer; write('masukkan Nama Mhs : ');readln(nama); write('masukkan Nama MK : ');readln(mk); write('nilai UTS : ');readln(uts); write('nilai UAS : ');readln(uas); write('nilai Tugas : ');readln(tugas); writeln('nilai rata2 : ',rata(uts,uas,tugas):2:1); writeln('nilai huruf : ',huruf(rata(uts,uas,tugas)));