12

Click here to load reader

petruk-pertemuan-51

Embed Size (px)

Citation preview

Page 1: petruk-pertemuan-51

Pertemuan 5Elemen-elemen Bahasa Pemrograman

A. Aturan Leksikal1. Token

Unit terkecil dari teks dalam program Pascal yang mempunyai arti khusus dan dikelompokan menjadi simbol-simbol / sejumlah karakter.

Token yaitu element terkecil pada bahasa pemrograman yang memiliki arti penting bagi compiler.

Yang termasuk token antara lain: identifier, keywords(reserved words), operator, dan sebagainya.

Token yang satu dengan yang lain dipisahkan dengan satu atau lebih spasi, tab, baris baru, atau komentar.

Token Menggunakan = simbol alphabet, angka dan karakter khusus.2. Komentar

Adalah kalimat yang digunakan untuk menjelaskan antara lain kegunaan dari program, dokumentasi program (agar program mudah dipahami).

Komentar teks (kumpulan karakter) yang diabaikan oleh Compiler. Komentar sangat berguna untuk memberi catatan mengenai bagian program tertentu sebagai referensi baik bagi programmer itu sendiri maupun orang lain yang membaca kode program tersebut.

Komentar tidak mempengaruhi proses program (bersifat unexecutable statement)Contoh penulisan :{ isi komentar } dengan kurung kurawal(* isi komentar *)

3. Identifier (Pengenal) Digunakan untuk menjelaskan Tipe Data, Fungsi dan Prosedur Program. Identifier merupakan kumpulan karakter yang digunakan sebagai penanda

untuk nama variable, nama tipe data, fungsi, prosedur, dan sebagainya. Aturan penulisan identifier pada bahasa Pascal Yaitu: suatu identifier harus diawali oleh karakter non angka

Ketentuan identifier :- Gabungan Huruf dan angka dengan karakter pertama Huruf.- Tidak boleh ada spasi- Tidak boleh ada simbol khusus kecuali garis bawah (under line)- Penggunaan panjang karakter maksimal 63 karakter.

Catatan :identifier pada bahasa Pascal bersifat case insensitive (huruf besar dan huruf kecil dianggap sama)

Page 2: petruk-pertemuan-51

Contoh :Program_Penjualan benar penggunaan underline untuk memisahkan kataDataMahasiswa BenarProgramP3K benar, gabungan huruf dan angka_Nama Benar No_Telpon Benar Bilangan2 Benar 4data Salah, karena diawali oleh karakter angka: 4data Teks? Salah, karena mengandung karakter Khusus/special: Teks?

4. Keyword/Reserved word (Kata Tercadang) Bentuk kata-kata yang sudah di definisikan oleh Bahasa Program yang

mempunyai maksud tertentu. Keywords atau Reserved words merupakan kata-kata yang telah

ada/didefinisikan oleh bahasa pemrograman yang bersangkutan. Kata-kata tersebut telah memiliki definisi yang sudah tetap dan tidak dapat diubah.

Karena telah memiliki definisi tertentu, maka kata-kata ini tidak dapat digunakan sebagai identifier.

Yang termasuk reserved word dalam pascal antara lain:

and array asm begin case const div do downto else end file for forward function goto if in label mod nil not of or packed procedure program record repeat set string then to type unit until uses var while with

5. Operator Bentuk Operasi perhitungan dalam instruksi program. Operator digunakan untuk menyatakan suatu perhitungan/operasi.

Operator yang digunakan untuk operasi yang melibatkan satu operand disebut unary ope

Jika melibatkan dua operand maka disebut binary operator, dan jika melibatkan tiga operand, operator tersebut disebut ternary operator.

Di dalam suatu operasi dapat terdapat banyak operator. Urutan eksekusi dari operator-operator disebut juga operator precedence.Contoh :A = 10 + 5 * 2

Karena precedence operator * lebih tinggi daripada operator + maka nilai A adalah 20, diperoleh dari perkalian 5 dan 2, kemudian dijumlahkan dengan 10.

Page 3: petruk-pertemuan-51

Untuk mendahulukan eksekusi precedence yang lebih rendah dapat digunakan tanda ( dan ) sebagai contoh: A = (10 + 5) * 2

a. Arithmatik OperatorOperator Operasi level

Sqrt Pangkat I* Perkalian II/ Pembagian II

Mod Sisa pembagian IIDiv Pembagian II+ Penjumlahan III- pengurangan III

Operator-operator yang disebut di atas (selain sqrt) termasuk binary operator karena melibatkan dua operand. Terdapat pula operator unary, yaitu tanda – dan + yang digunakan sebagai penanda bilangan negatif atau positif.

b. Assigment OperatorOperator pemberi nilai , dalam pascal “ :=”Operator ini digunakan untuk memberi nilai suatu identifier.

C := A + B;

c. Bit wise / Logika OperatorOperator ini digunakan untuk melakukan operasi bit dan logika.Yang termasuk operatpr Bitwise: Negasi bahasa Pascal : NOT contoh A := NOT B; And

bahasa Pascal : AND contoh A := A AND B; Or

bahasa Pascal : OR contoh A := B OR C; Shift Left

bahasa Pascal : shl contoh A := B shl C; Shift Right

bahasa Pascal : shr contoh A := B shr C;

Operator yang digunakan untuk operasi bit per bit pada nilai integer;and, or, shl, shr1010 and 1100 = 10001010 or 1100 = 11101010 shl 1 = 101001010 shr 1 = 101

Page 4: petruk-pertemuan-51

d. Boolean OperatorOperator yang menggunakan nilai true (1) dan false (0).

A B Not A A and B A or B A xor B1 1 0 1 1 01 0 0 0 1 10 1 1 0 1 10 0 1 0 0 0

e. Relation OperatorOperator yang digunakan untuk membandingkan hubungan antara 2 operand yang menghasilkan nilai true atau false.

operand yang dibandingkan harus memiliki tipe data yang sama, kecuali untuk bilangan bulat (bertipe integer) dan bilangan pecahan (bertipe real atau float).

Operator Operasi= Sama dengan<> Tidak sama dengan< Lebih kecil> Lebih besar<= Lebih kecil atau sama dengan>= Lebih besar atau sama dengan

Contoh : 15 > 9 TRUE

B. TIPE DATATipe data digunakan untuk menentukan jenis nilai yang dapat ditampung oleh suatu variable. Pada suatu bahasa pemrograman umumnya telah menyediakan tipe-tipe data yang sederhana (simple) maupun yang terstruktur dan enumerated type (tipe data yang didefinisikan sendiri).

Dalam pemrograman variabel yang digunakan harus ditentukan tipe datanya sehingga bisa menentukan batasan nilai variabel dan jenis operasi yang dilaksanakan.

Tipe Data Sederhana Tipe data sederhana tunggal : real, integer, boolean,charTipe data sederhana majemuk : string

Tipe Data TerstrukturStruktur data sederhana : array, recordStruktur data majemuk :

1. Linier = stack(tumpukan), queque (antrian), linear linked list (senarai berantai)

2. Nonlinier = Binary Tree.

Page 5: petruk-pertemuan-51

C. Expressionexpression (ekspresi) yaitu suatu pernyataan yang menghasilkan suatu nilai. Expression tersusun dari operator dan operand yang digunakan untuk menghitung atau memberi suatu nilai suatu variable atau identifier.

Expression yang paling sederhana yaitu nama variable. Expression yang lebih kompleks akan melibatkan operator-operator, maupun pemanggilan function atau procedure.Contoh:

A hanya berupa nama variable 10 berupa suatu nilai A + 3 * 2 expression menggunakan operator Calculate(A,B) melakukan pemanggilan function bernama Calculate

D. Statementstatement merupakan bagian program yang berisi perintah yang akan dieksekusi/dijalankan. Sehingga statement-statement ini menentukan bagaimana jalannya program dan bagaimana suatu nilai variable dimanipulasi/berubah.

Statement dikelompokan :1. Simple Statement statement yang tidak berisi statement lainnya2. Compound Statement 3. Selection Statement 4. Iteration Statement

1. Simple Statement Assignment Statement Yaitu statement yang digunakan untuk memberikan nilai ke suatu variable.

Statement untuk pemanggilan function atau procedure Yaitu statement yang memanggil function atau procedure yang telah didefinisikan pada program.

Contoh pemanggilan procedure dan fungsi (dengan asumsi procedure Calculate, Cetak, dan function GetLength untuk contoh di bawah, telah didefinisikan terlebih dahulu) :

Page 6: petruk-pertemuan-51

• Jump Statement Yaitu statement yang digunakan untuk melompati statement-statement lain. Yang termasuk dalam kategori statement ini yaitu: Fungsi Melompat ke statement tertentu goto Keluar dari iterative statement break Melompat ke iterasi selanjutnya pada iterative statement continue Keluar dari function/procedure exit

2. Compound Statement (kumpulan statement) adalah sekumpulan statement yang terdiri dari statement-statement lain, termasuk juga iteration dan selection statement

3. Selection Statement

Selection Statement melakukan pemeriksaan nilai/kondisi, yang kemudian akan memilih statement mana yang akan dieksekusi

4. Iteration StatementIteration statement digunakan untuk melakukan perulangan sekumpulan statement (compound statement).

E. Function dan ProcedureProcedure dan Function disebut juga subroutine, merupakan blok statement yang dapat dipanggil dari lokasi yang berbeda di dalam program. Yang membedakan antara function dan procedure yaitu: suatu function jika dijalankan/dipanggil akan mengembalikan suatu nilai.

Ketika procedure atau function dipanggil, kita dapat melewatkan suatu nilai ke dalam function atau procedure tersebut. Nilai yang dilewatkan disebut juga argument atau parameter.

Page 7: petruk-pertemuan-51

Ada 2 cara melewatkan nilai yaitu : passing by value dilewatkan secara nilai dan passing by reference dilewatkan secara acuan.

Transfer ParameterPada saat program utama memanggil prosedur / fungsi dengan parameter, maka telah terjadi pengiriman parameter yaitu dari :

Parameter aktual/nyata (yang terdapat pada pemanggil prosedur/fungsi yaitu pada program utama) parameter/variabel yang memberi nilai

ke parameter Formal (yang terdapat pada prosedur/fungsi tersebut ) parameter yang diberi nilai.

Program coba;

Procedure hitung(VAR x:integer);Begin X:= 50End;

Begin {** Program utama **} A := 10; Hitung(A);WRITE(a);End.

Berdasarkan hubungannya parameter dibedakan menjadi 2 yaitu parameter nilai & parameter acuan.Parameter nilai procedure Hitung(a: integer; b: real);Parameter acuan procedure Hitung(var a: integer;var b: real);

Pengiriman Parameter dapat dilakukan dengan 2 cara :1. Passing By Value ( secara Nilai)

Pengiriman parameter satu arah.Nilai parameter formal pada prosedur/fungsi akan sama dengan nilai parameter aktual/nyata pada program utama.

2. Passing By Reference (Secara Acuan/lokasi).Pemgiriman 2 arah.Perubahan nilai pada parameter formal akan mempengaruhi parameter aktual

Contoh Program

Parameter aktual

Parameter Formal

Page 8: petruk-pertemuan-51

procedure Hitung(a,b : integer;var c: integer);begin c := a+b;end;

var x,y,z : integer;begin z :=0; write('Nilai X = '); readln(x); write('Nilai y = '); readln(y); writeln('----- sebelum prosedur dipanggil ---'); writeln('Nilai X = ',x); writeln('Nilai Y = ',y); writeln('Nilai Z = ',z); writeln; Hitung(x,y,z); writeln('----- setelah prosedur dipanggil ---'); writeln('Nilai X = ',x); writeln('Nilai Y = ',y); writeln('Nilai Z = ',z); readln;

end.HASIL EKSEKUSINilai X = 4Nilai y = 8----- sebelum prosedur dipanggil ---Nilai X = 4Nilai Y = 8Nilai Z = 0

----- setelah prosedur dipanggil ---Nilai X = 4Nilai Y = 8Nilai Z = 12

Terlihat perubahan pada parameter formal (c) mempengaruhi nilai parameter aktual (z).Parameter z yang bernilai 0 berubah mengikuti perubahan pada parameter c.

TUGAS 1. Buat lah program untuk mengetahui apakah sebuah kata yang dimasukan adalah

Palindrom atau bukan.Palindrom = kata yang dibaca dari kiri atau dari kanan bermakna sama.Contoh : KATAK, TAMAT

Page 9: petruk-pertemuan-51

Buatlah program dengan menggunakan prosedur.Palindrom (kata : string);FUNCTION Palindrom(kata : string) : boolean;

Note : - gunakan perintah Length() untuk mengetahui panjang string.- Gunakan perulangan for to do | for downto do

Contoh ketika program dijalankan :========================== Program Palindrom==========================Masukan Kata = KATAK

Hasil = kata KATAK adalah palindrom.====================================