5/10/2018 Modul Beta2
1/35
BAB IPENGENALAN PASCAL
1.1 SE.JARAH SINGKAT LAHIRNYA BAHASA PASCALNama 'PASCAL' diambil dari nama seorang matematikawan Perancis yang juga merupakanpioneer di dalam sejarah perkembangan komputer. Pada tahun 1641, diusianya yang ke-18,Blaise Pascal telah membangun sebuah mesin aritmatika pertama, yang kemudiandiperdebatkan sebagai komputer pertama.
Mula-mula komputer diprogram dengan menggunakan bahasa mesin dan assembly. Bahasapemrograman jenis ini memiliki kesulitan yang tinggi sehingga susah untuk dimengerti dan dimodifikasi. Maka dikembangkanlah bahasa pemrograman tingkat tinggi yang didesainmenyerupai bahasamanusia(bahasa Inggris). Salahsatunya adalah bahasa Pascal.
Bahasa Pascalsendiri selesai dikembangkan pada tahun 1970 oleh seorang professor bernamaNiklaus Wirth di politeknik Zurich, Swiss. Tujuannya adalah untuk memudahkan paramahasiswanya dalam mempelajari pemrograman secara sistematis.
1.2 STRUKTUR PROGRAM BAHASA PASCALBerikut ini kerangka umum program yang terdapat di dalam bahasa pascal.
usesprogram
begin
pno.
biasanya samadengan nama program, contoh:1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ,1 Program ujicoba; 11 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _
berisi daftar unit yang akan digunakan di dalam program. Untuk membatasi unitsatu dengan yang lainnya, gunakan tanda koma (,). Contoh:1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ,1 Uses crt,dos; 11 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ~
berisi macam-macam deklarasi yang dibutuhkan oleh program, yang meliputihal-hal berikut:
Deklarasi tipe data Deklarasi konstanta Deklarasi variabel Deklarasi prosedur Deklarasi fungsi Deklarasi label
5/10/2018 Modul Beta2
2/35
merupakan perintah-perintah yang akan dituliskan. Statemen-statemenini harus berada di dalam blok begin-end. Berikut ini contoh penulisan statemen-statemen didalam program.1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 11 begin
clrscr;writeln('Isman Santoso');end.
1.3. PR05EDUR wri teln DAN readlndalam pembuatan program tentunya akan melakukan banyak penulisan(output) danpembacaan(input) data. Dalam bahasa Pascal,prosedur yang digunakan untuk melakukanpenulisan adalah Wri tedanWri teln. Perbedaan dari kedua prosedur ini hanyalah terdapatpada posisi kursornya. Pada prosedur Wri te, kursor akan berada di belakang teks yangdituliskan. Sedangkan pada prosedur wri teln, setelah menuliskan teks, maka posisi kursorakan dipindahkan ke baris berikutnya. Selanjutnya untuk proses pembacaan, bahasa Pascalmemiliki prosedur Read, Readln, dan Readkey. Namun prosedur yang banyak digunakanadalah Readln
1.4. KOMENTAR PROGRAMAda dua macam cara untuk membuat komentar program pada bahasa Pascal:1. Menggunakan tanda (* . . . * )
Digunakan untuk menuliskan komentar yang banyaknya lebih dari satu baris.2. Menggunakan tanda { ... }
Fungsinya sama seperti penggunaan komentar pada nomor 1.3. Menggunakan tanda //
Digunakan untuk menuliskan komentar untuk satu baris.
1.5. VARIABLEAdalah suatu pengenal yang didefinisikan oleh programmer untuk menyimpan nilai atau datatertentu yang dibutuhkan dalam program pada saat program sedang berjalan(run time).Bentuk umum pendeklarasian variabel:r-----------------------------------------------------------_
1: Var1 NamaVariabel : tipe data;I ~ - 1r-----------------------------------------------------------.1 Var 1X : integer;
Nama : string [25];1_
1.6. KON5TANTAAdalah tetapan yang nilainya tidak dapat diubah selama program berjalan. Bentuk umumkonstanta:r-----------------------------------------------------------.: const 1
1NamaKonstantal : nilaiKonstantal;1 NamaKonstanta2: nilaiKonstanta2; 1 J
5/10/2018 Modul Beta2
3/35
1.7. TIPE DATA1. Bilangan bulat
Berikut ini tipe yang termasuk ke dalam tipe bilangan bulat di dalam bahasa Pascal:Tipe data Rentang(jangkauan) nilaiShortint -128 sampai 127Integer -32768 sampai 32767Longint -2147483648 sampai 2147383647Byte o sampai 255Word o sampai 65535
2. Bilangan RiilAdalah bilangan yang mengandung angka di belakang koma. Tipe data yang termasuk kedalam tipe bilangan riil:Tipe data Rentang(jangkauan) nilaiReal 2.9 x 10-39 sampai 1.7 x 1038Single 1.5 x 10-45 sampai 3.4 x 1038Double 5.0 x 10-324 sampai 1.7x 10308Extended 3.4 x 10-4932 sampai 1.1 x 104932Comp -9.2 x 1018 sampai 9.2 x 1018
3. KarakterTipe ini direpresentasikan dengan menggunakan tipe char. Berguna untukmerepresentasikan nilai-nilai karakter seperti 'I','S','M','A','N'.
i. Binary operator4. String
Tipe ini direpresentasikan dengan menggunakan tipe string. String merupakan kumpulandari karakter yang terangkai menjadi satu kata ataupun kalimat, misalnya 'ILKOMJAYA'.
5. Tipe LogikaTipe yang hanya memiliki dua buah nilai yaitu true dan false. Pascalmenyediakan tipekhusus untuk mendefenisikan data-data logic tersebut, yaitu tipe Boolean.
TUGAS:1. Buat program untukalamat, nomor hp,
kemudian programoperator) .
2. Cari fungsi-fungsi aritmatika yang ada pada Pascal!
menampilkan data pribadi seperti: nama, nim,dan hobi! (data-data di input terlebih dahulu,menampilkan kembali apa yang diinputkan oleh
5/10/2018 Modul Beta2
4/35
BAB IIOPERATOR
2.1 TEORI
Tanda operasi (operator) dalam Pascaldikelompokkan ke dalam 9 kategori, yaitu: assignment,binary, unary, bitwise, relational, logical, address, set, dan string operator.
2.1.1 ASSIGNMENT OPERATOR
Assignment operator menggunakan simbol titik dua diikuti oleh tanda sama dengan := .Contoh: A:= B;
Operator ini digunakan untuk mengoperasikan dua buah operand. Operand dapatberbentuk konstanta / variabel. Operator ini digunakan untuk operasi aritmatika yangberhubungan dengan nilai tipe data integer danflooting point.
Operator Operasi* Perkalian
DIV Pembagian bulat/ pembagian real
MOD Modulus+ Pertambahan- Pengurangan
2.1.2 UNARY OPERATOR
Operator ini hanya menggunakan sebuah operand saja. Operand dapat berbentukkonstanta atau variabel. Unary operator dapat berupa unary minus atau plus.
2.1.3 BITWSE OPERATOR
Operator ini digunakan untuk operasi bit per bit pada integer. Operasi yangdipergunakan antara lain: NOT,AND, OR,XOR,Shl, dan Shr.
Operator OperasiNOT bitwise negationAND bitwise andOR bitwise orXOR bitwise xorShl Shift LeftShr Shift Right
5/10/2018 Modul Beta2
5/35
2.1.4 RELATIONAL OPERATOR
Operator ini digunakan untuk membandingkan hubungan antara dua buah operand danmenghasilkan tipe boolean, yaitu true atau false.
Operator Operasi= sama dengan tidak samadengan> lebih besar dari>= lebih besar samadengan dari< lebih kecil dari
5/10/2018 Modul Beta2
6/35
Writeln(23 / 5);Writeln(25 div 3);Writeln(25 mod 3);
End.Program 2.1 Penggunaan blnary operator.
Program 2.2 Penggunaan bltwlse operator.
Program 2.3 Penggunaan re1atlona1 operator.
BeginWriteln(not True);Writeln(True and False);Writeln(False or True);Writeln(True xor False);
End.
BeginWriteln(not 3);Writeln(not 0);Writeln(not -3);Writeln(l and 3);Writeln(3 or 1);Writeln(l xor 3);Writeln(6 Shl 4);Writeln(160 Shr 6);
End.
Vara, b
Begina - 5;b 2;Writeln(a b);
integer;
Writeln(a 5);Writeln(a b);Writeln(a > b);Writeln(a < b);
End.
5/10/2018 Modul Beta2
7/35
Program 2.4 Penggunaan logical operator.
TypeiniString = string[20];pointerString = AiniString;
Varnama iniString;letakNama : pointerString;
BeginNama .- 'Luminous Lunar';letakNama := @Nama;Writeln('Nama : " nama)Writeln('Letak nama: letakNamaA)
End.Program 2.5 Penggunaan address operator.
Varnamal, nama2, nama3, nama
Beginstring[20]
namalnama2nama3
'Luminous ';'Moon ';'Lunar' ;
nama := namal + nama2 + nama3;Writeln('Nama ',nama);
End.Program 2.6 Penggunaan strlng operator.
5/10/2018 Modul Beta2
8/35
BAB IIISTATEMEN IFDANCASE OFBlok pemilihan merupakan blok control yang digunakan untuk memilih statemen atau aksi-aksi yangakan dilakukan, di mana pemilihan tersebut didasarkan asasnilai dari kondisi-kondisi tertentu. Suatuaksi akan dikerjakan atau dieksekusi oleh program apabila kondisi yang didefinisikan untuk aksitersebut bernilai benar(true), sebaliknya, bila kondisi tidak terpenuhi atau salah(false) maka programakan melakukan aksi lain(jika ada) atau langsung keluar dari blok pemilihan.
3.1. STATEMEN IFStatemen if akan diikuti oleh ekspresi(sebagai kondisi yang akan diperiksa) dan selaluberpasangan dengan kata kunci then. Statemen if dikelompok menjadi tiga bagian yaitustatemen if untuk satu kasus,dua kasus dan tiga kasus atau lebih.
1. Satu KasusStatemen if dengan satu kasus merupakan bentuk yang paling sederhana karenahanya melibatkan satu kondisi yang diperiksa. Apabila kondisi yang diperiksabernilai benar, maka program akan mengeksekusi bagian yang berada di dalamblok, jika salah maka program akan mengabaikannya dan akan melanjutkan kebagian statemen berikutnya.Bentuk umumnya adalah:
{satu statemen}If (ekspresi) then
Statemen;{lebih dari satu statemen}If (ekspresi) then
Statemenl;Statemen2;
End;
Latihan 3.1Program ifsatukasusl;Uses
Crt;Var x: integerbegin
clrscr;write('Masukkan sebuah bilangan bulat: ');readln(x);if(x>10) then
writeln(x,'>10') ;readln;
end.
5/10/2018 Modul Beta2
9/35
Latihan 3.2ifsatukasus2;
uses crt;var
bil : integer;huruf char;clrscr;write('masukkan sebuah bilangan bulat: ');readln(bil);wri te ('masukkan sebuah huruf: '); readln (huruf) ;writeln;if(bilangan>l) and (bilangan
5/10/2018 Modul Beta2
10/35
Latihan 3.3Program ifduakasusl;Uses crt;Var Bil : integer;Begin
Clrscr;Write('Masukkan bil. Bulat: ');readln(bil);If (bil mod 2= 0) then
Writeln(bil,' adalah bilangan genap')Else
Writeln(bil,' adalah bilangan ganjil');Readln;
End.
Latihan 3.4
crt;
: integer;Begin
Clrscr;Wri te ('Masukkan bilangan bulat: '); readln (bil);If(bilangan= 0) thenBegin
Writeln('Anda tidak boleh memasukkan bilangan 0');Readln;Exit;
End;If (bilangan>O) then
Writeln(bil,' adalah bilangan POSITIF')Else
Writeln(bil,' adalah bilangan NEGATIF');Readln;
End.
3. Tiga Kasusatau lebihBentuk ini merupakan bentuk pemilihan yang sedikit kompleks dibandingkan duabentuk di atas. Pasalnya, bentuk ini memiliki tiga buah(atau lebih) kasus sehinggaakan terdapat statemen if bersarang(nested-if).Berikut ini bentuk umum pendefenisian statemen if yang memiliki tiga kasus ataulebih.
5/10/2018 Modul Beta2
11/35
If (kondisil) thenBegin
Statemen jika kondisil benar;End
Else if (kondisi2) thenBegin
Statemen jika kondisi2 benar;End
ElseBegin
Statemen alternatif;End;
Latihan 3.5Program iftigakasusl;
Bil integer;Begin
Clrscr;Write('masukkan sebuah bilangan bulat: '); readln(bil);If(bil=80) then
BeginNI:='A' ;
End
5/10/2018 Modul Beta2
12/35
akhirindeks
" NA: 0: 2) ;,,NI) ;
If(NA>=70) thenBegin
NI :=' B' ;End
If(NA>=50) thenBegin
NI:='C' ;End
If(NA>=30) thenBegin
NI :=' D' ;End
ElseBegin
NI :=' E' ;End;
Readln;End.
3.2. STATEMEN CASEApabila kondisi yang didefinisikan di dalam statemen if semakin banyak maka hal tersebuttentu akan menjadi hal yang cukup kompleks. Oleh karena itu, bahasa Pascal menyediakanalternatif lain untuk melakukan pemilihan yang yang didasarkan pada nilai-nilai konstantatertentu, yaitu dengan menggunakan statemen case.
Bentuk umum statemen case:
Nilai konstan2statement1;statement2;
ElseStatemen default;
Latihan 3.7
Clrscr;Write('Masukkan nomor hari (1..7)Case (nomorhari) of
1: write('Hari Minggu');');readln(nomorhari);
statemencase1;
Var nomorhari: integer;Begin
2 : write ('Hari Senin') ;3: write ('Hari Selasa' );4 : write ('Hari Rabu') ;5: write ('Hari Kamis') ;
5/10/2018 Modul Beta2
13/35
6: write('Hari Jumat');7: write('Hari Sabtu');Else
BeginWrite('tidak ada pilihan yang dimasukkan');
End;End;Readln;
TUGAS
1. Buat pseudocode dan program yang dapat menghitung luas dan kelilingdaria. Persegi {jika di pilih I};b. Persegi Panjang {jika dipili 2};c. Lingkaran {jika dipilih 3}d. Segitiga {jika dipilih 4};e. Keluar {jika dipilih 5};
2. Buat pseudocode dan program untuk menghitung akar-akar persamaankuadrat, dengan inputan a,b, dan c! (Semua kondisi harus ada!);
3. Buat pseudocode dan program untuk menampilkan nama, status pegawaidan gaji seorang pegawai jika penggajian berdasarkan status:1=> pegawai tetap, gaji pokok= Rp 500000/bulan, tunjangan=Rp
150000/bulan2=> pegawai honor, gaji pokok= Rp 15000/bulan, tunjangan=Rp40000/bulan3=> pegawai borongan, gaji pokok= Rp 80000/bulan, tunjangan=Rp
6000/bulan4. Buat program konversi suhu udara dari:
a. Celcius ke Fahrenheitb. Celcius ke reamurc. Celcius ke kelvin
5/10/2018 Modul Beta2
14/35
BABIVPERULANGANBlok pengulangan merupakan suatu blok program yang memiliki mekanisme untuk melakukanpengeksekusian statemen secara berulang. Hal ini tentu akan membuat program yang ditulismenjadi lebih efisien.
4.1.STATEMEN FORKonstruksi pengulangan for pada umumnya digunakan untuk melakukan pengulangan yangbanyaknya sudah diketahui secara pasti. Bentuk umum dari statemen for:
variable indeks:=batas awal to batas akhir doStatemen yang akan diulang;
Latihan 4.1statemenforl;
integer;Begin
Clrscr;For i:=O to 4 do
Writeln('ILMU KOMPUTER USU');
Latihan 4.2statementfor2;
crt;
I,N,jumlah integer;Begin
Clrscr;Writeln( 'masukkan sebuah bilangan bulat: ');readln(N);Jumlah:=O;For i:=l to N do
Jumlah:=jumlah+l;Writeln('Jumlah dari 1 sampai ',N,'= ',jumlah);Readln;
End.
Latihan 4.3statemenfor3;
crt;
i: integer;
clrscr;for i:=5 downto 1 do beginwriteln(i) ;
end;readln;
end.
5/10/2018 Modul Beta2
15/35
4.2. STATEMENT WHILEBerbeda dengan bentuk pengulangan for, pada konstruksi pengulangan while ini terdapatsuatu kondisi yang harus diperiksa terlebih dahulu. Apabila kondisi bernilai true, makastatemen di dalam blok while akan dikerjakan, jika false maka program tidak akan masuk kepengulangan while.Bentuk umum Statement while{satu statemen}While (kondisi) do
Statemen;{>=dua statemen}While (kondisi) do
BeginStatemen;
Latihan 4.4statementwhilel;
crt;i: integer;
beginclrscr;i:=l;while (i
5/10/2018 Modul Beta2
16/35
4.3.STATEMEN REPEAT ... UNTILTujuan
Setelah mengikuti praktikum ini, praktikan diharapkan mampu mencari solusi untuk kasusperulangan repeat ... until sederhana dan memrogramnya ke dalam bahasa Pascal.
TeoriRepeat
{ blok pernyataan }Until { ekspresi logika
Struktur penggunaan perulangan Repeat-Until.
Pernyataan Repeat ... Until digunakan untuk mengulang (repeat) suatu pernyataan atau blokpernyataan terus-menerus sampai (until) kondisi ungkapannya tidak terpenuhi (false).
Vari integer;
Begini := 0;Repeat
i := i + 1;Writeln(i) ;
Until i = 5;End.Program 6.1 Penggunaan perulangan Repeat-Until.
TUGAS1. Buat pseudocode dan program untuk menampilkan bilangan genap dan
ganjil mulai dari 1 sampai dengan n. n adalah batasan yang diinputkanoperator.
2. Buat pseudocode dan program untuk menghitung N!.3. Berdasarkan soal nomor 2, buat program untuk menghitung:
a. Kombinasi nCrb. Permutasi nPr
5/10/2018 Modul Beta2
17/35
BABVPELONCATAN
Statemen peloncatan merupakan statemen yang digunakan untuk memaksa program agar meloncatatau menuju statemen-statemen tertentu yang kita inginkan. Oalam bahasa pascal terdapat sebuahstatemen yang sering digunakan untuk melakukan hal tersebut yaitu statemen goto dan empat buahprosedur yaitu break, continue, exit dan halt.
5. 1.LABEL DAN STATEMEN GOTOUntuk menggunakan statemen goto, sebelumnya kita harus mendefinisikan sebuah labeldengan menggunakan kata kunci label. Oisini label akan berperan sebagai baris yang akandi tuju. Oengan kata lain, statemen goto akan memindahkan program secara langsung kelokasi yang ditandai oleh label yang telah didefinisikan.
Latihan 5.1
Destination;Begin
Clrscr;Write('statemen pertama');Goto Destination;Write('Statemen kedua');Write('statemen ketiga');Destination: writeln('ini adalah statemen yang akan dituju');Readln;
End.{apa yang terjadi???}
5.2.PROSEDUR BREAKProsedur break digunakan untuk meloncat dari proses pengulangan. Artinya, prosedurbreak akan memaksa program untuk menghentikan pengulangan dan akan langsungmenuju ke statemen selanjutnya yang terdapat di bawah blok pengulangan(jika ada).
Latihan 5.2prosedurbreak;
I:integer;Begin
Clrscr;Writeln('ini adalah statemen sebelum blok pengulangan');Writeln;For i=l to 100 do begin
If(i>3) then break;Writeln('statemen ke-',i);
End;Writeln;Writeln('apa yang terjadi??');Readln;End.
5/10/2018 Modul Beta2
18/35
5.3. PROSEDUR CONTINUEProsedur continue merupakan kebalikan dari prosedur break, yaitu berguna untukmelanjutkan pengulangan dengan cara meloncat ke bagian awal pengulangan. Padaumumnya prosedur continue digunakan di dalam kasus di mana kondisi pengulangannyaselalu bernilai true.Latihan 5.3
crt;
X: integer;Begin
Clrscr;While (true) do beginWrite('Masukkan bilangan bulat negative: ');readln(x);If(x>-l) then begin
Continue;EndElse begin
Wri teln ('anda telah memasukkan bilangan: " x) ;End;
End;Readln;
End.{apa yg terjadi???}
5.4. PROSEDUR EXITProsedur exit digunakan untuk keluar dari suatu blok program. Namun apabila prosedurexit kita gunakan di dalam program utama, maka prosedur tersebut akan menyebabkanprogram berhenti.Latihan 5.4
Prosedur contoh;Begin
Writeln('statemen pertama di dalam prosedur');Exit;Writeln('statemen kedua di dalam prosedur');
BeginClrscr;Writeln('statemen pertama di dalam program utama');Contoh;Writeln('statemen kedua di dalam program utama');
5/10/2018 Modul Beta2
19/35
5.5.PROSEDUR HALTBerbeda dengan prosedur exit yang digunakan untuk keluar dari blok program, prosedurhalt berguna untuk keluar dari program. Prosedur halt memiliki parameter berupa nilai 0dan 1 yang bersifat opsional. Statemen-statemen yang terdapat di bawah prosedur halttidak akan dieksekusi oleh program karena program akan langsung dihentikan.
Latihan 5.5Program prosedurhalt;
Clrser;Writeln('statemen sebelum pemanggilan prosedur halt') ;Halt(l);Writeln('statemen setelah pemanggilan prosedur halt') ;Readln;
End.
5/10/2018 Modul Beta2
20/35
BAB IXARRAY
6.1 TU.JUAN
Setelah mengikuti praktikum ini, praktikan diharapkan memahami penggunaan array padaprogram dalam bahasa Pascal.
6.2 TEORI6.2.1 DEKLARASI ARRAY
VarX : array[l ..10] of integer;
Array merupakan struktur data yang terdiri dari sejumlah elemen-elemen yang mempunyai tipedata yang sama. Untuk menyatakan array dalam Pascal, terlebih dahulu definisikan jumlah elemenarray dan tipe datanya.
6.2.2 DEKLARASI ARRAY MULTIDIMENSI
VarX : array[l ..10, 1..5] of integer;
Array merupakan struktur data yang terdiri dari sejumlah elemen-elemen yang mempunyai tipedata yang sama. Untuk menyatakan array dalam Pascal, terlebih dahulu definisikan jumlah elemenarray dan tipe datanya.
6.3 DEKLARASI ARRAY MENGGUNAKAN IDENTIFIER TYPE
TypeakuArray array[l ..10] of integer;
VarX : akuArray;
Array merupakan struktur data yang terdiri dari sejumlah elemen-elemen yang mempunyai tipedata yang sama. Untuk menyatakan array dalam Pascal, terlebih dahulu definisikan jumlah elemenarray dan tipe datanya.
5/10/2018 Modul Beta2
21/35
BAS VIISTRINGString merupakan kumpulan dari karakter. Dengan kata lain, string merupakan array dari karakteryang selalu dimulai dari indeks 1. Perhatikan ilustrasi berikut ini:
Berikut ini contoh program yang akan membuktikan teori di atas:
crt;
i,jmlkar: integer;S : String;
beginclrscr;S:='ILMU KOMPUTER';jmlkar:=length(S) ;for i:=l to jmlkar do begin
writeln('S[',i,']= ',Sri]);end;readln;
end.
7.1. MENGGABUNG STRINGDi dalam bahasa pascal, penggabungan dua buah string atau lebih dapat dilakukan dengandua cara, yaitu dengan menggunakan operator plus (+ ) dan dengan menggunakan fungsiConcat, yang memiliki bentuk deklarasi seperti ini:Function Concat(sl[,s2, ...sn] :string) :string;
Fungsi tersebut akan melakukan penggabungan terhadap string-string yang menjadiparameternya yaitu, sl,s2, ...,sn. Perlu diperhatikan bahwa apabila hasil penggabunganbeberapa buah string panjangnya melebihi 255 karakter, maka string akan dipotong padakarakter ke-256.
5/10/2018 Modul Beta2
22/35
Latihan 9.1
Sl,spasi,S2: String;hasilPlus,hasilconcat
beginclrscr;sl:='Isman' ;spasi:=' ';s2:='Santoso' ;hasilPlus:=sl+spasi+s2;hasilconcat:=concat(sl,spasi,s2) ;
string;
Program gabungstring;Uses crt;Var
writeln(hasilplus) ;writeln(hasilconcat) ;readln;
end.
7.2. MENGHAPUS SUBSTRINGUntuk melakukan penghapusan substring dari suatu string, kita harus menggunakanprosedur Delete, yang memiliki bentuk deklarasi sebagai berikut:Procedure Delete(var S: String;i,n: integer);
Prosedur tersebut aan menghapus substring sebanyak n karakter dari String S mulai dariposisi ke-i. untuk lebih jelasnya, kerjakan latihan ini:Latihan 9.2Program hapusstring;
crt;String;
BeginClrscr;S:='Ilmu Komputer';Wri teln ('Sebelum dihapus: ');Writeln(S) ;Delete(S,5,7);Wri teln ('Setelah dihapus: ');Writeln(S) ;Writeln('Apa yang terjadi?');Readln;
End.
7.3. MENYALIN STRINGDalam bahasa pascal, proses penyalinan string dilakukan dengna menggunakan fungsi copyyang memiliki bentuk deklarasi seperti berikut:Function copy(S: String;i,n: integer) :String;
5/10/2018 Modul Beta2
23/35
Fungsi ini akan melakukan penyalinan substring dari string 5 sebanyak n karakter dimulaidari posisi atau indeks ke-i. untuk lebih jelasnya, kerjakan latihan berikut ini:Latihan 9.3
Hasil:=copy(S,2,5) ;Writeln(Hasil) ;
Program SalinString;
S, hasil: String;Begin
Clrscr;S:='ILMU KOMPUTER';Hasil:=copy(S,1,3) ;Writeln(Hasil) ;
Hasil:=copy(S,4,7) ;Writeln(Hasil) ;
7.4. MENYISIPKAN STRINGPascaljuga mengizinkan kita untuk melakukan penyisipan substring ke dalam Stringtertentu. Adapun caranya adalah dengan menggunakan prosedur Insert, yang memilikibentuk deklarasi berikut.Procedure insert(Sl: String;var
Prosedur di atas akan menyisipkan string 51 ke dalam 52pada posisi ke-i.
Latihan 9.4
BeginClrscr;Sl:='AS' ;S2:='PCAL' ;
Program sisipstring;Uses crt;Var
Sl,S2: String;I : integer;
Insert(Sl,S2,2) ;Writeln(S2) ;Readln;
End.7.S. MENDAPATKAN POSISI STRING
Apabila kita ingin tahu posisi suatu string yang terdapat di dalam string tertentu, maka kitaharus menggunakan fungsi Pos,yang memiliki bentuk deklarasi sebagai berikut:Function pos(substr:string;S: string) :byte;
5/10/2018 Modul Beta2
24/35
7.6.
Latihan 9.5POsisiString;
crt;S, hasil: String;
BeginClrscr;S:='ILMU KOMPUTER';Hasil:=Pos ('I',S);Writeln(Hasil) ;Hasil:=Pos('M' ,S);Writeln(Hasil) ;Hasil:=Pos ('E',S);Writeln(Hasil) ;
MENDAPATKAN PAN.JANG STRING
Panjang string merupakan jumlah karakter yang terdapat di dalam suatu string. Dalambahasa pascal, cara untuk mendapatkan string adalah dengan menggunakan fungsi Length:Function length(S: String): integer;
Latihan 9.6panjangString;
crt;S, hasil: String;
BeginClrscr;S:='ILMU KOMPUTER';Hasil:=length(S)Writeln(Hasil) ;S:='USU' ;Hasil:=length(S)Writeln(Hasil) ;
TUGAS1. Terdapat sebuah string 'ILKOM' ,buat program yang memanipulasi string
tersebut menjadi seperti ini:II-LI-L-KI-L-K-OI-L-K-O-M
5/10/2018 Modul Beta2
25/35
2. Buat program yang memanipulasi string yang menampilkan stringtersebut dengan menghilangkan huruf vokalnya. Contoh: Turbo Pascalmenjadi Trb Pscl.
3. Buat tabel distribusi frekuensi skor nilai ujian dengan intervalsebagai berikut:Skor
5/10/2018 Modul Beta2
26/35
BAB VIIIPROCEDURE
B.l TU.JUAN
Setelah mengikuti praktikum ini, praktikan diharapkan mengerti tentang prosedur denganparameter dan prosedur tanpa parameter.
B.2 STRUKTUR PROCEDURE
Program { judul programProcedure judul prosedur
Beginblok pernyataan prosedur }
End;Begin
blok pernyataan program utama }End.Struktur penggunaan prosedur tanpa parameter.
P ro sed ur a dala h su atu p ro gram terp isa h d alam blo k sen diri y an g b erfu ng si seb aga i su bp ro gram(p ro gram b ag ia n). P ro sed ur dia wa li d en gan k ey wo rd procedure d i d alam b ag ia n d ek la ra si p ro se du r.
Procedure Stars;Begin
Writeln('*************') ;End;
BeginStars;Writeln('Hello Pascal!');Stars;
End.Program 7.1 Prosedur sederhana untuk menampi1kan karakter bintang tanpa
parameter.
Program ProsedurDenganParameter;Type
Huruf String[15] ;
5/10/2018 Modul Beta2
27/35
Procedure Stars (Namainteger) ;
Begin
Huruf; var Panjang integer; k
k := 0;Panjang := Length (Nama) + 6;Repeat Write('*');
k := k + 1;Until k > Panjang;Write1n;
End;
VarN integer;
Nama: String[10];i : integer;
BeginWrite('Nama Anda ');Read1n(Nama) ;Stars (Nama, N, i);
Write1n( 'Hello', Nama, "');Stars (Nama, N, i);
End.Program 7.2 Prosedur sederhana untuk menampllkan karakter blntang dengan lnput danparameter.
5/10/2018 Modul Beta2
28/35
BAB IXFUNGSIDefinisi fungsi sebenarnya sama dengan prosedur. Perbedaannya pada fungsi terdapatpengembalian nilai, sehingga pada saat pemanggilan, fungsi dapat langsung digunakan untukmengisi sebuah ekspresi. Berbeda dengan prosedur yang didefinisikan dengan kata kunci procedure,fungsi didefinisikan dengan kata kunci function.
Bentuk umum fungsi:
program yang akan ditulis}
Functionnama fungsi(parameterl:tipedatal;parameter2:tipedata2, ...:tipedata;Cont {daftar konstanta lokal}Var{daftar pendeklarasian variable lokal}
NamaFungsi:=nilai kembalian;{bagian ini harus diINGAT!}End;
Beberapa contoh pendefinisian fungsi sederhana yang akan mengalikan dua buah bilangan bulat:Function Kali(x,y:integer) :longint;Begin
Kali:=x*y;End;
integer) :longint;Hasil : longint;
BeginHasil:=x*y;Kali:=hasil;
9.1. PARAMETERParameter merupakan suatu nilai atau referensi yang dilewatkan ke dlam rutin tertentu dankehadirannya akan mempengarui proses maupun nilai yang terdapat di dalam rutin itusendiri. Parameter ditempatkan di dalam tanda kurung setelah nama rutin bersangkutan.Setiap parameter yang dilewatkan harus memiliki tipe data tersendiri.
Secara teori, parameter dibedakan menjadi dua yaitu parameter formal dan parameteraktual.Parameter formal adalah parameter yang terdapat pada saat pembuatan prosedur ataufungsi, sedangkan parameter aktual adalah parameter yang terdapat pada saatpemanggilan prosedur atau fungsi.
Menurut fungsinya, parameter dibedakan menjadi tiga jenis yaitu sebagai masukan,keluaran, masukan/keluaran.
5/10/2018 Modul Beta2
29/35
9.2. PARAMETER MASUKANSecara default parameter yang digunakan di dalam sebuah rutin akan berperan sebagaimasukan, artinya nila yang disimpan di dalam parameter tersebut akan dijadikan sebagaiinput(masukan) untuk melakukan proses yang terdapat di dalam rutin bersangkutan.Perhatikan contoh:Latihan 7.1
parametermasukan
Function jumlahkan(x,y: integer): integer;Begin
Jumlahkan:=x+y;End;{x dan y bertindak sebagai parameter masukan}a,b,hasil: integer;
begina=100;b=200;hasil:=jumlahkan(a,b) ;writeln('Hasil= ',hasil);
9.3. PARAMETER KELUARANParameter ini berfungsi sebagai penampung nilai hasil proses yang dilakukan oleh suatusubrutin. Parameter jenis ini biasanya diimplementasikan di dalam sebuah prosedur sebagainilai kembalian. Hal ini disebabkan karena prosedur tidak dapat mengembalikan nilai secaralangsung seperti yang dilakukan oleh fungsi.Perhatikan contoh:Latihan 7.2
parameterkeluaran;
Procedure Kali(x,y:integer;var hasil: integer);Begin
Hasil:=x*y;End;{x dan y parameter masukan, sementara hasil adllh parameterkeluaran
integer;a:=3;b:=5;kali(a,b,c) ;writeln('Hasil= ',c);readln;
9.4. end.Parameter jenis ini merupakan gabungan dari jenis pertama dan kedua, yaitu berperansebagai masukan sekaligus sebagai keluaran. Untuk mendefinisikan parameter sebagaiparameter masukan/keluaran maka kita harus melewatkannya berdasarkan referensi.
Perhatikan contoh:Latihan 7.3
5/10/2018 Modul Beta2
30/35
Procedure tambahsatu(var x:integer);Begin
x:=x+1;
a: integer;begin
a:=10;tambahsatu(a) ;write1n(a) ;read1n;
end.
TUGAS1. Buat pseudocode dan program menghitung 1uas segitiga dengan menggunakan
fungsi dengan parameter masukan.2. Buat program menghitung rata-rata dari sejum1ah bi1angan yang
diinputkan operator dengan fungsi!3. Buat pseudocode dan program dari n! secara rekursi!
5/10/2018 Modul Beta2
31/35
BAB XRECORD
10.1 . PENGERTIAN DAN PENDEKLARASIAN RECORD
Record adalah jenis tipe data terstruktur yang berisi beberapa data, yang masing-masing dapatberlainan tipe.Suatu tipe Record dideklarasikan dengan bentuk sebagai berikut :
Type Identifier = RECORDNama fieldl tipel;Nama field2 tipe2;Nama fieldn tipen;
End;
Masing-masing data field dapat berupa satu atau beberapa nama pengenal dan masing-masingdinamakan field.Contoh Penggunaan Record dalam Pascal:
program Recordl;Uses CRT;Type biodata = Record
nama String[25];NIM String[lO];Umur integer;
Vardata biodata;
beginclrscr;Write(' Masukkan Nama Anda ');readln(data.nama) ;Write(' Masukkan NIM Anda ');readln(data.NIM) ;Write(' Masukkan Umur Anda ');readln(data.umur) ;clrscr;Writeln(' Nama AndaWriteln(' NIM AndaWriteln(' Umur Anda
1 ,data.nama);1 ,data.NIM);1 ,data.umur);
Readln;End.
Contoh Di atas merupakan contoh Record sederhana untuk menginput data mahasiswa. DalamRecord, penampilan data tidak boleh dilakukan secara langsung, Contohnya Writeln(nama), Yangharus kita lakukan adalah kita harus menuliskan varia bel dan Field yang akan ditampilkan, contohWriteln(mahasiswa.nama).
5/10/2018 Modul Beta2
32/35
10.2. PENUGASAN ANTARRECDRD.
Penugasan antar Record merupakan penyalinan yang dilakukan dari record satu ke record yang lain,tetapi record yang disalin dan yang menyalin bertipe yang sama.Contoh:
Type recBio RECORDNama String[25] ;Alamat String[35] ;NoHp String[12] ;
End;Var
Biol,Bio2 RecBio;Begin
Biol.NamaBiol.Alamat .-Biol.NoHP
.- ' Ales Sanro SotarDodo ';, AGARA ';
.- '085265600310 ';
Bio2: =Biol; (* Proses Menyalin Dari Record BioI ke Bio2 *){ Menampilkan Data }Wri teln (' NamaWri teln (' AlamatWriteln(' NO. HP
,,Bio2 .Nama) ;" Bio2 .Alamat) ;',Bio2.NoHP) ;
Readln;End.
Contoh di atas akan menampilkan isi dari Record dari Biol.10.3. PERNYATAAN WITH
Pernyataan with di dalam record berfungsi untuk menyederhanakan atau menyingkat penulisanpernyataan. Bentuk penulisan :
WITH namarecord DoBegin
PernyataanEnd;
Contoh:Type recBio
NamaAlamatNoHp
RECORDString[25] ;String[35] ;String[12] ;
End;Var
Biol,Bio2 RecBio;Begin
With BioI dobeginNamaAlamatNoHP
.- ' Ales Sanro SotarDodo ';:= ' AGARA ';.- '085265600310 ';
End;
5/10/2018 Modul Beta2
33/35
Bio2:=Bio1;{ Menampi1kan Data }With bio2 dobeginWri teln (' NamaWri teln (' AlamatWriteln(' NO. HPEnd;
" Nama) ;',Alamat) ;',NoHP) ;
Readln;End.
Dalam penulisan program di atas, kita melakukan penulisan pernyataan yang lebih singkatdaripada yang sebelumnya.
10.4. Array Record
Elemen dari suatu array juga bisa berupa Record, yang menampung beberapa data sekaligus(data pertama hingga data ke n ).
Penulisan Array record:
Type Identifier RECORDNama field1 tipe1;Nama field2 tipe2;Nama fieldn tipen;
End;Var
Variabel array[l ..n] of Identifier;
Contoh Array Record:
program Recordn;Uses CRT;Type biodata = Record
nama String[25];NIM String[10];Umur integer;
End;Var
data array[l ..10] of biodata;n,i integer;
beginclrscr;write(' Masukkan Banyak data ');readln (n);clrscr;for i:=l to n dobegin
5/10/2018 Modul Beta2
34/35
writeln(' Masukkan Data ke ',i);with data[il dobeginWrite(' Masukkan Nama Anda ');readln(nama) ;Write(' Masukkan NIM Anda ');readln (NIM) ;Write(' Masukkan Umur Anda ');readln(umur) ;clrscr;end;end;clrscr;for i:=l to n dobeginWriteln(' Data ke ',i);with data[il dobeginWriteln(' Nama AndaWriteln(' NIM AndaWriteln(' Umur Anda
,,nama) ;',NIM) ;',umur);
end;writeln;end;Readln;
End.
t ri.e, RECORD DALAM RECORD
Record di dalam record adalah record yang mempunyai tipe record lain. Contoh Penulisan :Type recordl = RECORD
Nama_fieldl : tipel;Nama_field2 : tipe2;
Nama_fieldn : tipen;End;
Record2 = RecordNamal : Reordl;Nama2 : identifierl;Nama3 : Identifier2;
End;Var
Variabel : record;
5/10/2018 Modul Beta2
35/35
Contoh Penggunaan Record dalam record:
program recordinrecord;Uses Crt;Type Alamat = Record
Jalan String[30];No integer;kota string[25];
End;identitas = RecordNama : String[25];Nim : String[lO];Alamatku : Alamat;
End;Var
data Identitas;Begin
Clrscr;with data dobegin
Write(' Masukkan Nama Anda ');readln(nama) ;Write(' Masukkan Nama Anda ');readln (nim) ;Writeln (' Masukkan Alamat Anda ' ) ;with alamatku dobeginWrite (' Jalan ' ) ;
readln (jalan) ;write (' Nomor ' ) ;readln(no) ;write (' Kota ' ) ;readln(kota) ;
end;end;clrscr;writeln(' Data yang Anda Masukkan');with data dobegin
Wri teln (' NamaWri teln (' NIMWriteln(' AlamatWith alamatku do
,,nama) ;',NIM) ;, ) ;begin
writeln ('writeln ('Writeln ('
end;end;
JalanNoKota
',jalan);,,no) ;,,kota) ;
Readln;end.