Algoritma C pascal



Suatu sistem komputer dapat bekerja sebab  ketiga komponen 

ini  bekerjasama sehingga hardware bisa di akses dengan 

brainware memakai  software terutama dengan memakai  

sistem operasi. 

 

Dengan memakai  beberapa aplikasi software, maka 

brainware pun dapat meningkatkan produktivitasnya. 

Komputer  

Sistem operasi 

Bhs. pemrograman  

Program aplikasi  

pemakai  

Contoh : 

•BASIC 

•PASCAL 

•FORTRAN 

•COBOL 

•C/C++/C# 

•PROLOG 

•ASSEMBLER 

•DSB 


Catatan : 

1. Hardware 

2. Software 

3. brainware 

sebab  algoritma berfokus pada software, maka akan dibahas 

Lebih detail mengenai software (program).  

 

Program yaitu  kumpulan instruksi atau perintah yang disusun  

Sedemikian rupa, sehingga memiliki  urutan nalar yang tepat 

Untuk menyelesaikan suatu persoalan. 

 

Instruksi (statement) yaitu  syntax atau cara penulisan yang 

sesuai dengan bahasa pemrograman yang digunakan dimana 

memiliki  komponen input, proses, output. 

 

 

 

 

PENGERTIAN ALGORITMA 

 

Algoritma yaitu  urutan langkah yang logis untuk 

menyelesaikan masalah tertentu. 

Penekanan dalam algoritma yaitu  urutan langkah yang logis, 

yang berarti algoritma harus mengikuti suatu urutan tertentu, 

tidak boleh melompat-lompat. 

 

Secara definisi, algoritma yaitu  alur pemikiran logis yang 

dapat dituangkan kedalam banyak tulisan.  

Yang ditekankan pertama yaitu  alur pikiran, sehingga algoritma 

seseorang dapat berbeda dengan algoritma orang lain. 

Sedangkan penekanan kedua yaitu  tertulis, yang berarti dapat 

berupa kalimat, gambar, atau tabel tertentu. 

 

 

Algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa al-

Khwarizmi, ilmuan persia yang menulis kitab Al Jabr W’al-

muqabala,  sekitar tahun 825 M, yang berasal dari Iran. 

 

PROSES PEMBUATAN SOFTWARE APLIKASI 

 

REQUIRMENT DESIGN 

IMPLEMENTATION TESTING 

SIKLUS HIDUP SOFTWARE 

 

1. Requirment, yaitu tahap mencari tahu kebutuhan 

klien/user, bisa dilakukan dengan wawancara, bertemu 

secara langsung atau dengan melihat program yang sudah 

ada. 

2. Design, yaitu tahap membuat prototype/bentuk program 

interface (tampilan program) yang bakal dibuat namun 

belum fungsional. 

3. Implementasi, yaitu tahap dimana programmer melakukan 

pengkode-an program secara nyata hingga semua 

fungsionalitasnya terpenuhi dan benar. 

4. Testing, yaitu tahap program sudah jadi. Program dites 

apakah semua fungsionalitasnya benar-benar sesuai dengan 

reqiurment yang sudah ditetapkan sebelumnya. 

 

  

Sebenarnya masih ada satu tahapan lagi, yaitu tahap maintenance. 

Tahap maintenance yaitu, tahap dimana setelah program valid maka 

harus dipelihara, dapat di update, di back-up, atau mungkin 

ditingkatkan versinya,  dan lain-lain sampai jangka waktu tertentu. 

 

KRITERIA ALGORITMA 

Algoritma yang baik memiliki kriteria sebagai berikut : 

1. Input 

 dari sisi input, minimal program harus memiliki nol input atau 

lebih dari pengguna. Program pasti memiliki input. Yang 

dimaksud dengan memiliki nol input yaitu  program tidak 

mendapatkan masukan data dari pengguna secara langsung, 

namun semua data yang akan digunakan oleh program sudah 

dideklarasikan didalam kode program yang akan dieksekusi. Jadi 

tidak perlu di input dari luar. 

2. Output 

 dari sisi output, minimal program harus memiliki  1 output. 

Program pasti menghasilkan output sebab  program dibuat 

untuk tujuan tertentu. Tujuan itulah outputnya. Output program  

bisa ditampilkan ke layar (screen), ditulis ke file, atau disimpan di 

clipboard untuk kemudian dipakai program lain atau disimpan 

dalam basis data. 

3. Finite (terbatas) 

  Program harus pasti dan berhenti, bukan tak terhingga. Suatu 

program yang dieksekusi haruslah berhenti dan selesai, bukan 

berjalan terus-menerus hingga hang up atau not responding, dan 

akhirnya harus di kill (dimatikan) secara paksa. 

4. Definite (pasti) 

 Program harus jelas arah dan tujuannya. Suatu program harus 

jelas kapan mulai dan kapan harus berakhir, apa tujuannya, dan 

memiliki logika yang jelas agar dapat menghasilkan output yang 

sesuai dengan yang diharapkan. 

5. Efesien 

 Artinya program harus efesien, tidak memakan banyak 

memori, tidak melakukan hal-hal yang tidak perlu. Suatu 

operasi/kegiatan yang tidak perlu, misalnya yaitu  

mengapa operasi ini  tidak efesien, sebab  setiap 

operasi pasti membutuhkan waktu eksekusi, padahal operasi 

ini  jelas tidak berguna, sebab  berapapun bilangan 

yang ditambah dengan nol pasti bilangan itu sendiri dan 

bialngan apapun jika dikalikan nol, hasilnya yaitu  nol. Oleh 

sebab itu program ini  tidak efesien. 

x= 5+0 atau y= 100*0.  

BENTUK – BENTUK DASAR ALGORITMA 

Algoritma secara umum memiliki beberapa bentuk dasar, yaitu: 

1. Algoritma sequensial 

 Algoritma sequensial banyak dijumpai pada kehidupan sehari-

hari, misalnya pada kasus “mengirim surat”. Pada kasus 

ini  terdapat langkah-langkah yang harus dilakukan, yaitu:  

  a. Membeli amplop 

  b. Membeli perangko 

  c. Memasang perangko ke amplop 

  d. Menuliskan alamat pengirim dan alamat tujuan 

  e. Pergi ke kantor pos atau memasukkan ke dalam bis surat 

  f. Surat terkirim 

 Pada contoh diatas dapat dilihat bahwa langkah harus 

dilakukan secara runut dan ada yang tidak boleh dibolak-balik 

urutannya. 

Pada prinsipnya algoritma sekuensial yaitu  alur pemikiran yang 

terstruktur, terurut, pasti, dan jelas untuk menyelesaikan masalah. 

Dalam algoritma ini kadang ada langkah-langkah yang tidak boleh 

ditukar urutannya. 

 

2. Algoritma Percabangan 

 Algoritma untuk memilih salah satu dari beberapa pilihan 

yang ada disebut algoritma percabangan/pemilihan. 

 

 Yang perlu diperhatikan dalam algoritma ini yaitu  solusi 

pilihan akan dilakukan jika kondisinya terpenuhi, dalam arti 

kondisinya menghasilkan nilai benar (TRUE).  

 

 Jika kondisi benar maka solusi akan dijalankan, dan jika 

salah maka tidak akan dijalankan (tidak menutup 

kemungkinan akan menjalankan solusi lain atau tidak sama 

sekali). 

3. Algoritma Perulangan 

 Algoritma perulangan berarti terdapat satu atau lebih 

kejadian/tindakan yang harus diulang terus-menerus sampai 

kondisinya terpenuhi. 

 

 Dari ketiga algoritma ini , bisa terjadi kombinasi antara 

algoritma sequential, algoritma percabangan dan algoritma 

perulangan. 

FLOWCHART DAN PSEUDOCODE 

 

Pengertian Flowchart 

Algoritma merupakan suatu alur pemikiran seseorang yang 

harus dituangkan secara tertulis. Salah satu nya yaitu  dengan 

memakai  simbol-simbol/gambar-gambar yang memang 

sudah standar pada dunia komputer. Gambar/simbol ini  

disebut dengan flowchart. 

 

Dengan memakai  flowchart/diagram alir maka progammer 

dapat memberikan idenya secara tertulis sehingga dapat 

dipahami oleh programmer lain, oleh klien atau oleh tim 

kerjanya.  

MENGAPA FLOWCHART ITU PENTING ? 

1. Pada kerja tim, banyak programmer terlibat. 

 Akibatnya, jika tim ini  merupakan tim yang mengerjakan 

beberapa bagian dari suatu proyek besar, maka flowchart 

sangat penting digunakan untuk mengungkapkan algoritma 

salah satu tim, untuk dapat dipahami dan dikerjakan oleh tim 

lain. 

2. Pada saat seorang programmer selesai mengerjakan suatu 

program, langkah selanjutnya yaitu  memberikan program 

ini  kepada kliennya. Untuk menjelaskan alur pemikiran 

dan cara kerja program,  programmer dapat memakai  

flowchart. 

Flowchart berguna untuk dua keperluan : 

1. Sebelum program selesai dibuat 

2. Setelah program selesai dibuat 

1. Sebelum program selesai dibuat 

 pada tahap ini flowchart digunakan untuk menuangkan 

ide/pemikiran programmer kedalam bentuk gambar yang 

sudah standar secara internasional. 

 

 keuntungan dari penggunaan flowchart sebelum program 

selesai dibuat yaitu  : 

a. Programmer tidak lupa akan idenya dalam perencanaan 

program 

b. Desain algoritma yang dibuat dapat di sampaikan kepada 

klien, sehingga jika ada penambahan atau pengurangan dari 

pihak klien, programmer  tidak akan merasa kesulitan. 

2. Setelah program selesai dibuat 

 flowchart yang dibuat setelah program selesai dibuat, akan 

membantu programmer untuk menjelaskan alur kepada klien. 

Dan flowchart merupakan dokumentasi alur program secara 

tidak langsung. 

PENGGUNAAN FLOWCHART 

Flowchart merupakan alur pemikiran yang dituangkan kedalam 

bentuk gambar/simbol. Oleh sebab itu kita perlu mempelajari 

terlebih dahulu bentuk-bentuk gambar/simbol standar beserta 

kegunaannya. 

Start mulai 

selesai 

Aliran data 

Proses/kejadian 

Finish  

x = y + z 

sekuensial 

P1 

P2 

percabangan X < 2 

perulangan 

syarat 

Bagian yang di ulang 

pencacah 

Masukkan data input 

output Tampilkan data 

Pemberian nilai 

awal/inisialisasi 

X = 1 

Memanggil suatu 

fungsi / prosedur 

Nyalakan 

mesin 

Konektor di halaman 

yang sama 

Konektor di halaman 

yang berbeda 

Start 

Masukkan p 

Masukkan l 

Luas = p*l 

Tulis L 

finish 

Contoh flowchart 

Flowchart pada contoh, digunakan untuk menghitung luas 

persegi panjang, dimana input dari pengguna berjumlah 2 

buah, yaitu panjang yang dilambangkan dengan p dan lebar 

yang dilambangkan dengan l, dan kemudian dihitung luasnya 

dengan memakai  rumus Luas = p*l, dan yang terakhir, hasil 

luasnya ditampilkan dilayar. 

PEDOMAN PEMBUATAN FLOWCHART : 

 

1. Flowchart sebaiknya digambar dari atas ke 

bawah dan dimulai dari bagian kiri suatu 

halaman. 

2. Kegiatan didalam flowchart harus ditunjukkan 

dengan jelas. 

3. Harus ditunjukkan dari mana kegiatan dimulai 

dan dimana akan berakhir. 

4. Masing-masing kegiatan didalam flowchart 

sebaiknya memakai  suatu kata yang 

mewakili suatu pekerjaan. 

5. Masing-masing kegiatan didalam flowchart 

harus didalam urutan yang tepat. 

6. Kegiatan yang terpotong dan akan 

disambungkan ke tempat lain harus 

ditunjukkan dengan jelas memakai  

simbol penghubung yang benar. 

7. Gunakan simbol-simbol alir yang benar. 

Contoh flowchart 

Start 

Jam pulang kantor 

Cuaca cerah? 

Jam < 5 sore ? 

Jalan utama 

macet? 

Jalur alternatif B Jalur utama Jalur alternatif A 

Sampai di rumah finish 

yes 

no 

no 

yes 

yes 

no 

PENGERTIAN PSEUDOCODE 

 

Pseudocode berasal dari kata pseudo dan code, yang artinya yaitu  

kode semu, atau menyerupai kode program yang sebenarnya. Jadi 

pseudocede bukanlah program sebenarnya. 

 

Psedocode berbeda dengan flowchart. Jika flowchart memakai  

simbol-simbol berbentuk gambar untuk menjelaskan alur logika berfikir, 

maka pseudocode memakai  bahasa (biasanya bahasa inggris, 

seperti “print” untuk mencetak). 

Tabel perbedaan antara algoritma, flowchart, pseudocode 

Algoritma Flowchart Pseudocode 

memakai  bahasa tingkat 

tinggi (biasanya bahasa inggris) 

memakai  simbol berbentuk 

gambar 

memakai  bahasa tingkat 

tinggi yang menyerupai kode 

program 

tidak standar standar belum standar 

mudah dibaca mudah di mengerti mudah dibaca 

tidak dapat langsung dibuat 

programnya 

tidak dapat langsung dibuat 

programnya 

bisa dibuat langsung 

programnya 

masih berupa ide berupa rancangan sudah hampir berupa 

implementasi 

Perbedaan notasi algoritma dengan pseudocode 

algoritma pseudocode 

nilai A ditambah dengan 5 A <--- A+5 

cetak nilai A bila lebih besar dari 10 IF > 10 THEN PRINT A 

dari dua bilangan A dan B, cari bilangan yang 

terbesar 

IF A > THEN PRINT A ELSE PRINT B 

Penggunaan dan Notasi Pseudocode 

langkah algoritma pseudocode 

1 masukkan bilangan pertama input a 

2 masukkan bilangan kedua input b 

3 jika bilangan pertama > bilangan kedua maka 

kerjakan langkah 4. jika tidak, kerjakan 

langkah 5 

IF a > b THEN DO step 4, ELSE step 5 

4 tampilkan bilangan pertama print a 

5 tampilkan bilangan kedua print b 

pseudocode juga memakai  notasi tertentu yang bersifat 

umum. Namun tidak semua notasi dalam pseudocode bersifat 

universal sebab  belum terstandarisasi. Ada beberapa contoh yang 

bisa di ikuti : 

simbol Bahasa Inggris Penjelasan Soal Bahasa Pemrograman 

a <-- b gets pemberian nilai dari a ke b = 

a ˅ b  and operator logika antara a and b && 

a ˄ b or operator logika antara a or b II 

⌐a not negasi dari a ! 

a = b is equal to apakah a equal dengan b == 

a ≠ b is not equal to apakah a tidak equal dengan b ! = 

a < b is less than apakah kurang dari b < 

a ≤ b is less than or equal 

to 

apakah a kurang dari sama dengan b <= 

a > b is greater than apakah a lebih besar dari b > 

a ≥ b  is greater than or 

equal to 

apakah a lebih besar dari sama dengan b >= 

a ≈ b approximately a hampir sama dengan b N/A 

┌a┐ ceiling mengambil nilai integer terbesar dari 

pembulatan ke atas 

ceil() 

└a┘ floor mengambil nilai integer terkecil dari 

pembulatan ke bawah 

floor() 

a ϵ A element of a yaitu  anggota himpunan A tidak ada 

Beberapa kata yang sering digunakan pada pseudocode untuk 

berbagai algoritma yaitu  sebagai berikut : 

1. Perintah sekuensial 

 Perintah sekuensial dilakukan tahap demi tahap, tidak boleh 

melompat-lompat. Beberapa kata kunci pada perintah 

sekuensial yaitu  : 

a. Input : READ, OBTAIN, GET 

b. Output : PRINT, DISPLAY, SHOW 

c. Perhitungan : COMPUTE, CALCULATE, DETERMINE 

d. Inisialisasi : SET, INIT 

e. Penambahan dengan 1 : INCREMENT, BUMP 

 

 

2. Perintah percabangan 

 Perintah percabangan memakai  keyword IF dan perintah 

dijalankan jika dan hanya jika kondisi terpenuhi alias bernilai 

TRUE. Jika tidak TRUE maka bagian perintah ELSE yang 

dikerjakan. Jadi pasti dipilih salah satu, tidak mungkin kedua-

duanya. Bentuk umumnya yaitu  sebagai berikut : 

 

IF condition THEN 

  <sequence 1> 

ELSE 

  <sequence 2> 

ENDIF 

 

 

Contoh : 

IF jam kerja > jam normal maximal THEN 

 DISPLAY overtime message 

ELSE 

 DISPLAY regular time message 

ENDIF 

3. Perintah perulangan WHILE 

 Perintah perulangan akan mengulang satu atau beberapa 

perintah sekaligus selama masih dalam kondisi benar (TRUE).  

Jika kondisi sudah FALSE maka perintah tidak lagi diulang dan 

dilanjutkan ke perintah di bawah perulangan. Perulangan 

dapat memakai  WHILE atau FOR. Bentuk umumnya 

yaitu  sebagai berikut : 

 

WHILE condition 

  <sequence> 

ENDWHILE 

Contoh : 

WHILE  population < limit 

 compute population as Population + Births – Deaths  

ENDWHILE 

4. Perintah perulangan FOR 

 Perintah perulangan FOR sama dengan perulangan WHILE. 

Selama kondisi terpenuhi, perintah akan dijalankan. Perintah 

FOR memiliki karakteristik khusus, yaitu programmer dapat 

mengetahui batas perulangan yang akan dilakukan. Berikut 

yaitu  bentuk umum perintah FOR : 

 

FOR iteration bounds 

 <sequence> 

ENDFOR 

Contoh : 

FOR each month of the year 

 

FOR each employee in the list 

5. Perintah percabangan CASE 

 Perintah CASE mirip dengan IF, namun perintah CASE tidak 

bisa menangani lebih dari satu kondisi,  seperti misalnya jika 

X>1 dan X !=0.  Jadi CASE yaitu  percabangan yang 

dipermudah. Bagian OTHERS merupakan bagian default, jika 

semua kondisi tidak ada yang terpenuhi. Jika didalam IF , maka 

OTHERS sama dengan ELSE yang terakhir, bukan ELSE IF 

<condition> THEN. Berikut yaitu  bentuk umum CASE : 

 

CASE expression OF 

  condition 1 : <sequence 1> 

  condition 2 : <sequence 2> 

  ... 

  condition n : <sequence n> 

OTHERS : 

Default <sequence> 

ENDCASE 

Contoh : 

CASE Title OF 

Mr  : PRINT “Mister” 

Miss  : PRINT “Miss” 

Ms  : PRINT “Mizz” 

Dr  : PRINT “Doctor” 

ENDCASE 

 

Contoh lain : 

CASE grade OF 

A  : points = 4 

B  : points = 3 

C  : points = 2 

D  : points = 1 

E  : points = 0 

ENDCASE 

6. Perintah REPEAT-UNTIL 

 Perintah REPEAT-UNTIL merupakan perintah perulangan yang 

memiliki ciri khas. Perintah ini minimal dilakukan satu kali 

perulangan, baru kemudian diperiksa kondisinya apakah mash 

TRUE atau tidak. Jika kondisinya TRUE maka perintah 

perulangan akan dilanjutkan sampai FALSE. Berikut yaitu  

bentuk umumnya : 

 

REPEAT 

  <sequence> 

UNTIL condition 

Contoh : 

REPEAT 

 x = x + 1 

 PRINT x 

UNTIL x > 10 

7. Perintah NESTED CONSTRUCT 

 Perintah ini merupakan perulangan bertingkat, dimana 

didalam perulangan terdapat perulangan lagi. Berikut ini 

contohnya : 

 

SET total to zero 

REPEAT 

READ Temperature 

 IF Temperature > Freezing THEN 

  INCREMENT total 

 END IF 

UNTIL Temperature < zero 

PRINT total 

PEMOGRAMAN memakai  DEV C++ 

Contoh program sederhana : 

1. Pada baris pertama terdapat #include <stdio.h>. Bagian ini 

disebut dengan Preprocessor Directive, yang artinya bagian 

yang digunakan untuk mengikut-sertakan berkas-berkas file 

header/library  yang berisi fungsi-fungsi yang ada pada 

program yang akan dibuat pada baris-baris bawahnya. File 

yang diikutsertakan bernama stdio.h yang terletak di suatu 

direktori pada instalasi DecC++. 

2. Pada baris selanjutnya terdapat int main(). Ini merupakan 

judul fungsi utama program yang bernama fungsi main() yang 

mengembalikan nilai berupa integer (bilangan bulat negatif 

ataupun positif). Fungsi main() yaitu  fungsi yang wajib ada 

disetiap kode program yang ditulis memakai  bahasa C. 

Tanda { merupakan tanda awal program. 

3. Pada baris berikutnya terdapat printf("Mari Kita Belajar 

Pemograman Bahasa C"). Hal ini merupakan perintah untuk 

menampilkan output dilayar monitor berupa tulisan “Mari 

Kita Belajar Pemograman Bahasa C” (tanpa tanda kutip). 

Perintah untuk menampilkan tulisan kelayar disebut dengan 

fungsi printf() yang menerima masukan berupa kalimat yang 

ingin ditampilkan. Tanda titik koma harus selalu dituliskan 

untuk memberi tanda akhir dari suatu barisn perintah. 

4. Pada baris berikutnya terdapat getch();, digunakan untuk 

menghentikan layar tampilan sejenak sampai pengguna 

menekan tombol yang ada pada keyboard. Jadi fungsinya 

yaitu  menunggu penekanan tombol tertentu dan kemudian 

program akan mati (terminated). 

5. Baris terakhir berisi } yang berarti akhir dari program 

Tampilan dari program 

Contoh program C yang lain : 

 

#include <stdio.h> 

#include <conio.h> 

 

int main () 

    int a,b,c; 

    printf ("masukkan nilai pertama :"); scanf ("%d", &a); 

    printf ("masukkan nilai kedua :"); scanf ("%d", &b); 

    c = a+b; 

    printf ("%d+%d=%d\n", a,b,c); 

    return 0; 

 

Pada program di atas, algoritma yang digunakan yaitu  algoritma 

sekuensial. Kode program ini hanya meminta pengguna untuk 

memasukkan dua buah bilangan, yang kemudian ditampung 

didalam suatu tempat penyimpanan bernama a dan b yang 

bertipe bilangan bulat integer. Kedua bilangan kemudian 

dijumlahkan dan hasilnya ditampilkan kelayar monitor. Beberapa 

fungsi yang muncul pada kode program diatas yaitu  : 

1. Printf(), digunakan untuk menampilkan tulisan kelayar. 

2. Scanf(), digunakan untuk menerima input ke suatu tempat 

penyimpanan di memori komputer. 

3. Return, digunakan untuk mengembalikan status program ke 

sistem operasi. 

 


Disaat membuat program kita pasti berhubungan dengan 

statement (ungkapan). Program sebenarnya yaitu  kumpulan 

statement yang dijalankan secara sekuensial. Berikut yaitu  

beberapa contoh statement : 

Instruksi/Statement Tindakan 

A=b*c menghitung 

printf("Nama Dosen"); menampilkan literal string 

scanf ("%f", &Celcius); menerima input data 

if(N<0) printf("negatif"); mengendalikan proses 

Statement memiliki jenis yang berbeda-beda, yaitu : 

1. Statement kosong 

 statement kosong sering disebut dengan empty statement 

atau null statement. Statement jenis ini hanya terdiri atas 

pengakhiran titik koma (;) saja dan tanpa perintah apapun 

didalamnya. Contoh: memberi jarak waktu/delay pada 

program sehingga antara perintah yang satu dengan yang lain 

terdapat jeda beberapa milidetik. Contoh program : 

 

For (J=0;  J<50000;  J++); 

2. Statement ungkapan 

 statement jenis ini sering disebut expression statement. 

Statement ini dibentuk dari suatu ungkapan dan diakhiri 

dengaan titik koma (;). Contoh programnya : 

 

 

Scanf (“%f”, &Panjang); 

Scanf (“%f”, & Lebar); 

Luas = Panjang * Lebar; 

X=Y; 

Y++; 

3. Statement kendali 

 Statement jenis ini sering disebut dengan control statement. 

Statement ini digunakan untuk mengendalikan proses dari 

program. Misalnya : 

a. Untuk menyeleksi kondisi (percabangan) : if, case, dan 

switch. 

b. Lompatan (perulangan) : for, while, do-while, goto, break 

dan continue. 

 

Contoh Program : 

 

If (N<0) printf (“Nilai N negatif”); 

4. Statement jamak 

 Statement jenis ini sering disebut compound statement atau 

block statement. Statement ini terdiri atas beberapa 

statement tunggal yang ditulis pada posisi diantara tanda 

kurung kurawal ( “{“ dan “}” ). Contoh programnya : 

 

 

 scanf (“%f”, & Panjang); 

 scanf (“%f”, & Lebar); 

 Luas = Panjang * Lebar; 

 printf (“%f”, Luas); 

IDENTIFIER, KEYWORDS DAN TIPE DATA 

 

Didalam bahasa C, tempat penyimpanan nilai-nilai 

didalammemori komputer disebut identifier. Identifier sendiri 

dibagi menjadi 2, yaitu : 

1. Konstanta 

 Identifier ini nilainya tetap selama program berjalan 

(dieksekusi). Konstanta sangat berguna untuk menyimpan 

nilai-nilai yang bersifat tetap, seperti konstanta fisika dan 

matematika, misalnya π (3,14). Bentuk umumnya seperti 

berikut : 

Bentuk umum :  #define <nama_konstanta> <nilai> 

 

Contoh : 

#define π 3.14 

#define nama “Sofiar Agusta” 

 

Penulisan konstanta diawali dengan tanda # dan tidak ada titik 

koma pada akhir perintah. Konstanta juga dapat ditulis dengan 

cara lain, yaitu : 

Bentuk umum : const <tipe_data><nama_konstanta> = <nilai>; 

 

 contoh : 

Const float π = 3.14; 

Const char nama [] = “Sofiar Agusta”; 

2. Variabel 

 Identifier ini nilainya dapat berubah atau diubah selama 

program berjalan (dieksekusi). Yang boleh mengubah yaitu  

pengguna ataupun statement pada proses. Cara 

pendeklarasian variabel pada C yaitu  : 

 

Bentuk umum : <tipe_data> <nama_variabel>; 

 

Contoh : 

Int umur; 

Float berat_badan; 

 

Identifier tidak harus selalu dibuat oleh programmer, sebab  

bahasa  C sudah memiliki berbagai identifier yang dikenali 

secara default. Identifier semacam itu sering disebut dengan 

standar identifier.  

Standar identifier yaitu  identifier yang biasanya berupa fungsi 

tertentu yang telah diberi makna tertentu oleh compiler bahasa 

C, tetapi tidak bersifat reserved (dipesan) sehingga dapat dipakai 

lagi oleh pemrograman. Contoh standar identifier yaitu  

printf(), scanf(), system(“cls”), dan lain-lain. 

Penulisan dan pembuatan identifier, baik konstanta ataupun 

variabel, memiliki beberapa aturan, yaitu : 

1. Tidak boleh sama dengan nama keyword reserved, function 

yang dimiliki C, dan harus unik. 

2. Maksimum 32 karakter. Bila lebih, maka karakter selebihnya 

tidak akan diperhatikan oleh komputer. 

3. Case sensitive : membedakan huruf besar dan kecil. 

4. Karakter pertama harus huruf atau underscore (_), dan yang 

selebihnya boleh angka. 

5. Tidak boleh mengandung spasi/blank. 

Penulisan identifier harus unik dan tidak boleh sama dengan 

reserved word yang digunakan pada bahasa C. Reserved word 

sering disebut keyword. Keyword yaitu  identifier yang telah 

didefinisikan oleh bahasa C. Sifat keyword yaitu  : 

1. Memiliki arti dan pemakaian tertentu. 

2. Bersifat reserved sehingga tidak boleh digunakan lagi oleh 

programmer. 

3. Semua ditulis dalam huruf kecil. 

4. Menurut standar ANSI terdapat 32 keywords. 

 

 

Berikut yaitu  daftar 32 keywords pada C : 

auto double int switch 

break else long typedef 

case enum register union 

char extern return unsigned 

const float short void 

continue for signed volatile 

default goto sizeof while 

do if static struct 

Semua identifier digunakan untuk menyimpan data pada 

memori komputer untuk keperluan komputasi. Penyimpanan 

data tentu tidak bisa dilakukan tanpa mengetahui secara pasti 

seberapa kemampuan suatu identifier untuk menyimpan data. 

Jenis dan ukurannya disebut dengan tipe data. Tipe data diatur 

dan dikelompokkan menjadi dua, yaitu tipe data numerik dan 

non-numerik. 

1. Tipe data numerik 

 tipe data ini mampu menampung semua nilai numerik mulai 

dari bilangan bulat dan pecahan. Tipe data numerik dibagi 

menjadi beberapa jenis. Namun tipe data numerik yang 

dikenal didalam bahasa C, yaitu : 

Tiper data bilangan bulat : 

Type Length Range 

short int 16 bit -32,768 to 32,767 

unsigned int 32 bit 0 to 4,294,967,295 

int 32 bit -2,147,483,648 to 2,147,483,648 

unsigned long 32 bit 0 to 4,294,967,295 

enum 16 bit -2,147,483,648 to 2,147,483,648 

long 32 bit -2,147,483,648 to 2,147,483,648 

Tipe data pecahan : 

Type Length Range 

float 32 bit 3,4 x 10-38 to 3,4 x 10+38 

double 64 bit 1,7 x 10-308 to 1,7 x 10+308 

long double 80 bit 3,4 x 10-4932 to 3,4 x 10+4932 

Nilai numerik pecahan yang disimpan dalam integer dibulatkan 

kebawah. Jadi nilai pecahan dibuang. Contoh : 2.38 akan 

dibulatkan menjadi 2 dan 4.9928 akan dibulatkan menjadi 4. nilai 

variabel yang melebihi jangkauannya akan dipotong sepanjang 

jumlah bit yang tersedia. Contoh : jika di deklarasikan variabel 

integer (16 bit = 2 byte) berarti hanya menyimpan sampai 

dengan 32,767.  

Jika variabel di isi nilai 70,000 ( 1 0001 0001 0111 0000 ), padahal 

70,000 menempati 17 bit maka bit paling kiri akan dipotong 

menjadi ( 0001 0001 0111 0000 ). Namun hal ini sangat 

bergantung ukuran tipe datanya. 



ELEMEN – ELEMEN BAHASA DALAM PASCAL 

a. Reserved Word 

Reserved word yaitu  kata – kata yang tidak dapat dijadikan menjadi identifier (pengenal), 

karena kata – kat tersebut sudah mempunyai arti tersendiri dalam Turbo Pascal. Adapun kata – kata yang 

termasuk ke dalam identifier yaitu : 

And, asm, array, begin, case, const, constructor, destructor, div, do, downto, else, end, exports, 

file, for, function, goto, if, implementation, in, inherited, inline, interface, label, library, mod, nil, not, 

object, of, or,packed, procedure, program, record, repeat, set, shl, shr, string, then, to, type, unit, until, 

uses, var, while, with, xor. 

b. Statement : Statement yaitu  salah satu dari berikut ini: 

-          Assignment (:=) 

-          Begin..end 

-          Case..of..else..end 

-          For..to/downto..do 

-          Goto 

-          If..then..else 

-           Inline(..) 

-          Procedure call 

-          Repeat..until 

-          While..do 

-          With..do 

c. Type 

Bentuk umum: 

Type 

Pengenal  = tipe data; 

………. 

Pengenal = tipe data; 

 

d. Const (Constant) 

Constant yang disingkat dengan const yaitu  nilai konstanta ( nilai tetap) yang dipasang dalam 

program. 

Bentuk umum: 

Const 

Pengenal = ekspresi 

……… 

Pengenal = ekspresi 

Const 

Pengenal: type = nilai; 

……….. 

Pengenal: type = nilai; 

 

e. Var ( Variabel) 

Jika constant yaitu  nilai tetap, maka Variabel yaitu  nilai yang isinya dapat berubah – ubah. 

Dalam program, Variabel disingkat menjadi Var. 

Bentuk umum: 

Var 

Pengenal, … pengenal : Tipe data; 

…… 

Pengenal,… pengenal: Tipe data; 

 

STRUKTUR PROGRAM PASCAL 

 

RUNTUNAN 

Algoritma merupakan runtunan (sequence) satu atau lebih instruksi, yang berarti bahwa : 

1. Tiap instruksi dikerjakan satu per satu 

2. Tiap instruksi dilaksanakan tepat sekali, tidak ada instruksi yang diulang 

3. Urutan instruksi yang dilaksanakan pemroses sama dengan urutan instruksi sebagaimana yang 

tertulis di dalam teks algoritmanya 

4. Akhir dari instruksi terakhir merupakan akhir algoritma 

Urutan instruksi di dalam algoritma yaitu  penting. Urutan instruksi menunjukkan urutan logik 

penyelesaian masalah. Bergantung pada masalahnya, urutan instruksi yang berbeda mungkin tidak ada 

pengaruhnya tehadap solusi persoalan, tetapi mungkin juga menghasilkan keluaran yang berbeda pula. 

Contoh kasus 1 : urutan instruksi tidak berpengaruh terhadap solusi persoalan. 

Dibaca dua buah nilai integer dari piranti masukan, A dan B. hitung jumlah keduanya dan hasil kali 

keduanya, lalu cetak jumlah dan hasil kali itu ke piranti keluaran. 

Hasil algoritma di atas sama saja jika urutan C←A+B dan D←A*B diubah sebagai berikut  

 

Contoh kasus 2 : urutan instruksi berpengaruh terhadap solusi persoalan. 

Diketahui dua buah nilai integer, masing-masing disimpan di dalam dua peubah, A dan B. bagaimana cara 

mempertukarkan nilai A dan B ? Misalnya, sebelum pertukaran nilai A=8, nilai B=5, maka setelah 

pertukaran, nilai A=5 dan B=8. 

 

{ proses pertukaran } 

 temp←A  { simpan nilai A di penampungan sementara, temp } 

 A←B  { sekarang A dapat diisi dengan nilai B } 

 B←temp  { isi B dengan nilai A semula yang tadi disimpan di temp } 

Diubah urutannya sebagai berikut : 

{ proses pertukaran } 

 temp←A  { simpan nilai A di penampungan sementara, temp } 

 B←temp  { isi B dengan nilai A semula yang tadi disimpan di temp } 

 A←B  { sekarang A dapat diisi dengan nilai B } 

maka runtunan yang terakhir ini sama saja dengan runtunan : 

B←A 

A←B 

Contoh runtunan : 

Dibaca waktu tempuh seorang pelari marathon dalam jam-menit-detik (hh:mm:ss). Diminta 

mengkonversi waktu tempuh tersebut ke dalam detik. Tuliskan algoritmanya. 

Ingatlah  

  1 menit = 60 detik 

  1 jam = 3600 detik 

Misalnya waktu tempuh seorang pelari marathon yaitu  1 jam, 5 menit, 40 detik. Dalam detik, waktu 

tempuh seluruhnya yaitu  ( 1 x 3600 ) + ( 5 x 60 ) + 40 = 3940 detik. 

 

Jika anda mentranslasikan algoritma KONVERSI_JAM_KE_DETIK ke dalam bahasa pascal, anda harus 

memperhatikan tipe bilangan bulat yang digunakan. Karena ranah nilai tipe integer terbatas, maka ada 

kemungkinan hasil pengubahan jam-menit-detik ke total detik bernilai negatif, sebab nilai (J.hh*3600) + 

(J.mm*60) + J.ss berada di luar rentang tipe integer. Tipe longint yang mempunyai ranah yang lebih besar 

dapat dipakai untuk masalah ini.  

Jadi, program KONVERSI_JAM_KE_DETIK dalam bahasa pascal yaitu  sebagai berikut : 

 

 

PEMILIHAN 

Struktur runtunan hanya terdapat pada program sederhana. Pada umumnya, masalah yang akan 

diselesaikan memiliki beberapa alternative pelaksanaan aksi. Suatu aksi hanya dilakukan bila 

persyaratan atau kondisi tertentu dipenuhi. Kita katakan bahwa masalah tersebut memiliki beberapa 

kasus. Jadi, dalam memecahkan masalah, kita harus menganalisis kasus-kasus apa saja yang mungkin 

ada, lalu aksi apa yang dilakukan bila suatu kasus dimasuki. Adanya pemilahan kasus-kasus 

menyebabkan terjadinya pemilihan instruksi di dalam algoritma, bergantung pada kasus yang 

memenuhi. 

Menganalisis kasus dari suatu masalah yaitu  menentukan kondisi boolean (bernilai true  atau 

false) untuk setiap kasus dan menentukan aksi yang dilakukan jika kondisi tersebut berlaku (memenuhi). 

Kondisi boolean yaitu  ekspresi boolean yang bernilai true atau false bergantung pada nilai 

masing-masing operand yang terlibat di dalamnya. Ekspresi boolean dibentuk dengan 

mengkombinasikan operand yang bertipe sama dengan salah satu dari operator relasional : =, ≠, <, >, ≤, 

≥, dan operator uner not.  

Contoh-contoh ekspresi boolean : 

 x > y 

 a ≠ 10 

 m = n 

 p ≤  q 

 a + b > 1 

 str = ‘itb’ 

k mod 4 = 0 

ketemu = true 

not berhenti 

(x > 0) and (y < 0) 

 

Aksi yang dikerjakan bila kondisi boolean dipenuhi dapat berupa pengisian nilai (assignment), 

kalkulasi, baca, tulis, dan sebagainya, bergantung pada masalahnya.  

Penentuan kondisi boolean dan aksi yang dilakukan bergantung pada jumlah kasus yang terdapat pada 

masalah tersebut : satu kasus, dua kasus, atau lebih dari dua kasus. 

Satu Kasus 

Notasi algoritmik untuk analisis dengan satu kasus yaitu  dengan menggunakan struktur IF-THEN (jika-

maka) 

 

Aksi sesudah kata then (dapat berupa satu atau lebih aksi) hanya akan dilaksanakan bila kondisi 

bernilai benar (true). Bila kondisi bernilai salah (false), tidak ada aksi apapun yang dikerjakan. Kata 

endif sengaja ditambahkan untuk mempertegas awal dan akhir struktur if-then. 

Contoh-contoh : 

 

a.  if x > 100 then 

       x←x+1 

endif 

b.  if ada=false then 

    read (cc) 

    write (cc) 

endif 

 

catatan: 

contoh (b) di atas dapat juga ditulis sebagai berikut : 

 if not ada then 

    read(cc) 

    write(cc) 

 endif 

Ingatlah bahwa aksi sesudah kata then akan dikerjakan hanya jika kondisi bernilai true ( dalam 

hal ini, not ada bernilai true bila ada = false ). 

 

Contoh analisis : 

Dibaca sebuah karakter. Diminta menuliskan pesan ‘huruf hidup’ jika karakter tersebut merupakan huruf 

vokal. 

 

Jadi, program HURUF_VOKAL dalam bahasa pascal yaitu  sebagai berikut 

Dua Kasus 

Notasi algoritma untuk analisis dengan dua buah kasus yaitu  dengan menggunakan struktur IF-

THEN-ELSE (jika-maka-kalau tidak) 

 

Aksi1 akan dilaksanakan jika kondisi bernilai benar, tetapi jika kondisi bernilai salah, maka aksi2 

yang akan dilaksanakan. Perhatikanlah bahwa “else” menyatakan ingkaran (negation) dari kondisi. 

Contoh analisis : 

Buatlah algoritma dan program yang membaca angka tahun masehi dari papan kunci,lalu menentukan 

apakah tahun tersebut merupakan tahun kabisat. Secara sederhana, tahun kabisat yaitu  tahun yang habis 

dibagi dengan 4. Pada tahun kabisat, bulan februari berjumlah 29 hari. Contoh tahun kabisat yaitu  1996 

dan 2000. Tahun 2002 bukan tahun kabisat karena tidak habis dibagi 4. 

 

Penyelesaian : 

 

Misalkan tahun masehi tersebut yaitu  Tahun. 

Analisis kasus : 

 Kasus 1 : Tahun mod 4 = 0, maka tulis Tahun yaitu  tahun kabisat 

 Kasus 2 : Tahun mod 4 ≠ 0, maka tulis Tahun bukan tahun kabisat 

 

Jadi, program TAHUN_KABISAT dalam bahasa pascal yaitu  sebagai berikut  

 

Tiga Kasus atau Lebih 

Masalah yang mempunyai tiga buah kasus atau lebih tetap dapat dianalisis dengan struktur IF-THEN-

ELSE sebagaimana halnya pada masalah dengan dua kasus. 

 

dan seterusnya. 

 

Contoh analisis : 

Buatlah algoritma dan program yang membaca temperatur air, T, (dalam suatu derajat celcius) pada 

tekanan normal, lalu menentukan apakah wujud air tersebut dalam keadaan padat (T ≤ 0°C), cair (0 < T < 

100), atau gas (T > 100). 

 

Penyelesaian : 

Misalkan suhu air yaitu  T. 

Analisis kasus : 

 Kasus 1 : T ≤ 0, maka tulis “padat” 

 Kasus 2 : 0 < T < 100, maka tulis “cair” 

 Kasus 3 : T ≥ 100, maka tulis “uap” 

 

Jadi, program WUJUD_AIR dalam penulisan IF-THEN-ELSE yang bertingkat-tingkat 

 

Struktur CASE  

Tidak semua bahasa pemrograman menyediakan struktur CASE (misalnya Bahasa Fortran). Bahasa 

pascal menyediakan struktur ini. Jika bahasa pemrograman tidak yang ekivalen. 

Contoh analisis : 

 

Buatlah algoritma dan program yang membaca angka bulan dan tahun, lalu menuliskan jumlah hari dalam 

bulan tersebut. Misalnya jika dibaca bulan 8 (agustus), maka jumlah harinya yaitu  31. 

 

Penyelesaian  

 

Kita harus mengidentifikasi bulan-bulan dan jumlah harinya sebagai berikut  

 

 

 

 

 

 

 

 

 

 

 

 

Jadi, program JUMLAH_HARI dalam bahasa pascal yaitu  sebagai berikut 

 

PENGULANGAN 

 Struktur pengulangan secara umum terdiri atas dua bagian : 

1. kondisi pengulangan, yaitu ekspresi Boolean yang harus dipenuhi untuk melaksanakan 

pengulangan. Kondisi ini ada yang dinyatakan secara eksplisit oleh pemrogram atau dikelola 

sendiri oleh komputer (implisit); 

2. badan (body) pengulangan, yaitu bagian algoritma yang diulang. 

 

Disamping itu, struktur pengulangan biasanya disertai dengan bagian : 

1. inisialisasi, yaitu aksi yang dilakukan sebelum pengulangan dilakukan pertama kali 

2. terminasi, yaitu aksi yang dilakukan setelah pengulangan selesai dilaksanakan 

 

 Inisialisasi dan terminasi tidak selalu harus ada, namun pada berbagai kasus inisialisasi 

umumnya diperlukan. 

Struktur pengulangan secara umum : 

 

yang dalam hal ini awal dan akhir pengulangan dinyatakan sebagai kata kunci yang bergantung pada 

struktur pengulangan yang digunakan. Selain itu, <inisialisasi> dan <terminasi> yaitu  bagian yang 

opsional. 

 

Di dalam algoritma terdapat beberapa macam struktur pengulangan yang berbeda. Beberapa 

struktur dapat dipakai untuk masalah yang sama, namun ada notasi pengulangan yang hanya cocok 

dipakai untuk masalah tertentu. Pemilihan struktur pengulangan untuk masalah tertentu dapat 

mempengaruhi kebenaran algoritma. Pemilihan struktur pengulangan yang tepat bergantung pada masalah 

yang akan deprogram. Tiga (3) macam notasi struktur pengulangan, yaitu : 

 

1)      struktur FOR 

2)      struktur WHILE 

3)      struktur REPEAT 

 

 

Struktur FOR 

 Struktur pengulangan FOR digunakan untuk menghasilkan pengulangan sejumlah kali yang 

dispesifikasikan. Jumlah pengulangan diketahui atau dapat ditentukan sebelum eksekusi. Untuk mencacah 

sudah berapa kali pengulangan dilakukan, kita memerlukan sebuah peubah (variable) pencacah (counter). 

Peubah ini nilainya selalu bertambah satu setiap kali pengulangan dilakukan. Jika cacah pengulangan 

sudah mencapai jumlah yang dispesifikasikan, maka proses pengulangan berhenti 

Bentuk umum struktur FOR ada dua macam : menaik (ascending) atau menurun (descending). 

FOR menaik: 

 

Keterangan : 

i.      pencacah haruslah dari tipe data yang memiliki predecessor dan successor, yaitu integer atau karakter. 

Tipe riil tidak dapat digunakan sebagai pencacah. 

ii.      Aksi yaitu  satu atau lebih instruksi yang diulang. 

iii.      nilai_awal harus lebih kecil atau sama dengan nilai_akhir. Jika nilai_awal lebih besar dari 

nilai_akhir, maka badan pengulangan tidak dimasuki. 

iv.      Pada awalnya,pencacah diinisialisasi dengan nilai_awal.Nilai pencacah secara otomatis bertambah 

satu setiap kali pengulangan dimasuki, sampai akhirnya nilai pencacah sama dengan nilai_akhir. 

v.      Jumlah pengulangan yang tejadi yaitu  nilai_akhir - nilai_awal + 1. 

 

Contoh analisis : 

Buatlah algoritma dan program mencetak angka 1, 2, .., N, yang dalam hal ini nilai N dibaca terlebih 

dahulu dari piranti masukan 

 

 

 

 

 

Jadi, program CETAK_N_ANGKA dalam bahasa pascal yaitu  sebagai berikut 

 

Pertanyaan : 

Apa yang terjadi bila N=0? N=-1? N=1? 

 

Jawab : 

Jika N = 0 atau N = -1, proses pengulangan tidak terjadi, karena nilai akhir pencacah pengulangan lebih 

besar dari nilai awalnya (1). 

Jika N = 1, pengulangan yang terjadi yaitu  1 kali, karena 1 – 1 + 1 = 1 

 

Keterangan : 

      i.     Pencacah haruslah dari tipe data yang memiliki predecessor dan successor, yaitu integer atau karakter. 

Tipe riil tidak dapat digunakan sebagai pencacah. 

    ii.     Aksi yaitu  satu atau lebih instruksi yang diulang. 

  iii.     nilai_akhir harus lebih besar atau sama dengan nilai_awal. Jika nilai_akhir lebih kecil dari 

nilai_awal, maka badan pengulangan tidak dimasuki. 

  iv.     Pada awalnya, pencacah diinisialisasi dengan nilai_akhir. Nilai pencacah secara otomatis berkurang 

satu setiap kali aksi diulang, sampai akhirnya nilai pencacah sama dengan nilai_awal. 

    v.     Jumlah pengulangan yang terjadi yaitu  nilai_awal-nilai_akhir+1. 

 

Contoh analisis : 

Algorima dan program peluncuran roket dengan hitung mundur, mulai dari 10, 9, 8, …, 0 

 

 

Struktur WHILE 

Bentuk umum : 

 

Aksi (atau runtunan aksi) akan dilaksanakan berulangkali selama kondisi benilai true. Jika kondisi 

bernilai false, badan pengulangan tidak akan dilaksanakan, yang berarti pengulangan selesai. 

 Yang harus diperhatikan yaitu  pengulangan harus berhenti. Pengulangan yang tidak pernah 

berhenti menandakan bahwa logika algoritma tersebut salah. Pengulangan berhenti apabila kondisi 

bernilai false. Agar kondisi suatu saat bernilai false, maka di dalam badan pengulangan harus ada 

instruksi yang mengubah nilai peubah kondisi. 

Contoh analisa : 

Dibuat sejumlah data bilangan bulat positif dari piranti masukan. Banyaknya data tidak diketahui 

sebelumnya, tetapi akhir pemasukan data yaitu  bila data yang dimasukkan bernilai -99. Bilangan -99 

akan diinterpretasikan sebagai tanda berhenti proses pengisian data. Kita diminta menghitung jumlah 

seluruh nilai yang dimaskkan (-99 tidak termasuk data yang dijumlahkan). 

Sebagai ilustrasi : 

 

               i.          misalkan dibaca berturut-turut data: 10, 4, 5, 8, -99. 

 maka jumlah seluruh nilai yaitu  10 + 4 + 5 + 8 = 27 

             ii.     misalkan dibaca berturut-turut data : 9, -99 

maka jumlah seluruh nilai yaitu  9 

           iii.     misalkan dibaca berturut-turut data : -99 

maka jumlah seluruh nilai yaitu  0 

 

 

 

Struktur REPEAT 

Bentuk umum : 

 

Notasi ini mendasarkan pengulangan pada kondisi boolean. Aksi di dalam badan kalang diulang samopai 

kondisi boolean bernilai true. Dengan kata lain, jika kondisi boolean masih false, pengulangan masih 

terus dilakukan. Karena proses pengulangan suatu saat harus berhenti, maka di dalam badan pengulangan 

harus ada aksi yang mengubah nilai peubah kondisi. 

 Struktur REPEAT memiliki makna yang sama dengan WHILE, dan dalam beberapa masalah 

kedua struktur tersebut komplemen satu sama lain. 

Contoh analisa :  

Algoritma dan program untuk menghitung jumlah angka dari 1 sampai N. Nilai N dibaca dari papan 

kunci. Misalnya N = 5, maka 1 + 2 + 3 + 4 + 5 = 15. 

 

 

PROSEDUR DAN FUNGSI 

Sebuah program yang baik yaitu  program yang membagi permasalahan utama 

menjadi bagian-bagian kecil dimana setiap bagian kecil ditangani oleh sebuah 

subprogram, cara ini disebut dengan modular programming (pemrograman 

terbagi/terpecah). Cara ini termasuk pemrograman terstruktur dan sangat didukung 

oleh bahasa Pascal. Untuk itu, Pascal telah menyediakan dua jenis subprogram, yaitu 

procedure dan function (prosedur dan fungsi). 

Dengan modular programming, program lebih mudah dibaca dan dimengerti. 

Selain itu, pembenahan program dan penelusuran jalannya program (debugging) 

menjadi lebih mudah sebab dapat langsung diketahui subprogram mana yang berjalan 

tidak sesuai dengan yang diharapkan. 

 

 

1.  P r o s e d u r 

Prosedur yaitu  subprogram yang menerima masukan tetapi tidak mempunyai 

keluaran secara langsung. 

Pada dasarnya, struktur prosedur sama dengan struktur algoritma yang sudah anda kenal. Setiap 

prosedur mempunyai nama yang unik. Nama prosedur sebaiknya diawali dengan kata kerja karena 

prosedur berisi suatu aktivitas. 

Notasi algoritma yang digunakan untuk mendefinisikan struktur prosedur (tanpa parameter) yaitu  : 

 

Pendeklarasian prosedur di atas yaitu  untuk prosedur yang tidak memerlukan 

parameter. Parameter yaitu  data masukan untuk subprogram yang nantinya akan 

diproses lebih lanjut dalam subprogram tersebut. Dalam Pascal, dikenal dua macam 

parameter yaitu : 

1. parameter nilai (value parameter), dan 

2. parameter referensi (reference parameter). 

 

Cara mendeklarasikan parameter tersebut yaitu  sebagai berikut : 

 

Pada deklarasi prosedur di atas, parameter X yaitu  parameter nilai sedang parameter 

Y yaitu  parameter referensi. Jadi, pendeklarasian parameter referensi didahului oleh 

reserved word var. Parameter referensi ini nantinya dapat dijadikan sebagai variabel 

keluaran dari prosedur. 

Untuk lebih memahami penggunaan prosedur dalam Pascal, perhatikan contoh 

program di bawah ini : 

 

program Prosedur; 

uses wincrt; 

var 

Bil_1, Bil_2, Hasil : integer; 

procedure Awal; 

begin 

Writeln('Latihan Pascal 2 : Prosedur dan Fungsi'); 

Writeln('--------------------------------------'); 

Writeln; 

Writeln('Nama : ____________________'); 

Writeln('NIM : __________'); 

Writeln; 

end; 

procedure Baca_Data; 

begin 

Write('Masukkan bilangan pertama : '); 

Readln(Bil_1); 

Write('Masukkan bilangan kedua : '); 

Readln(Bil_2); 

Writeln; 

end; 

procedure Kali(A,B : integer); 

var 

I : integer; 

begin 

Hasil := 0; 

for I := 1 to B do Hasil := Hasil + A; 

end; 

procedure Kalikan(A,B : integer; var C : integer); 

var 

I : integer; 

begin 

C := 0; 

for I := 1 to B do C := C + A; 

end; 

begin 

ClrScr; 

Awal; 

Baca_Data; 

Kali(Bil_1, Bil_2); 

Writeln(Bil_1:3,' x ',Bil_2:3,' = ',Hasil:5); 

Kalikan(Bil_1, Bil_2, Hasil); 

Writeln(Bil_1:3,' x ',Bil_2:3,' = ',Hasil:5); 

Writeln; 

Write('Tekan Enter...'); 

Readln; 

end. 

 

Perhatikan program di atas. Dua prosedur terakhir memiliki kemiripan, bedanya hanya 

pada jumlah parameter dan variabel hasil perkaliannya. Untuk lebih jelas, jalankan program dan 

perhatikan apa yang dilakukan oleh dua prosedur tersebut maka akan nampak perbedaan keduanya. 

 

2. F u n g s i 

Fungsi yaitu  subprogram yang menerima masukan dan mempunyai keluaran secara langsung. Cara 

mendeklarasikan sebuah fungsi yaitu  sebagai berikut    

 

Perbedaan utama antara prosedur dan fungsi yaitu  dalam menghasilkan keluaran. 

Walaupun prosedur bisa menghasilkan nilai keluaran, tetapi nilai tersebut tidak dapat 

diambil secara langsung, melainkan harus diambil melalui parameter referensi. 

Sedangkan keluaran dari fungsi dapat diambil langsung dari fungsi tersebut. 

Untuk lebih memahami perbedaan prosedur dan fungsi, perhatikan contoh berikut ini : 

program Fungsi; 

uses wincrt; 

var 

Bil_1, Bil_2, Hasil : integer; 

procedure Awal; 

begin 

Writeln('Latihan Pascal 2 : Prosedur dan Fungsi'); 

Writeln('--------------------------------------'); 

Writeln; 

Writeln('Nama : ____________________'); 

Writeln('NIM : __________'); 

Writeln; 

end; 

procedure Baca_Data; 

begin 

Write('Masukkan bilangan pertama : '); 

Readln(Bil_1); 

Write('Masukkan bilangan kedua : '); 

Readln(Bil_2); 

Writeln; 

end; 

function Kali(A,B : integer) : integer; 

var 

I,J : integer; 

begin 

J := 0; 

for I := 1 to B do J := J + A; 

Kali := J; 

end; 

procedure Kalikan(A,B : integer; var C : integer); 

var 

I : integer; 

begin 

C := 0; 

for I := 1 to B do C := C + A; 

end; 

begin 

 

 

ClrScr; 

Awal; 

Baca_Data; 

Writeln(Bil_1:3,' x ',Bil_2:3,' = ',Kali(Bil_1,Bil_2):5); 

Kalikan(Bil_1, Bil_2, Hasil); 

Writeln(Bil_1:3,' x ',Bil_2:3,' = ',Hasil:5); 

Writeln; 

Write('Tekan Enter...'); 

Readln; 

end. 

 

Perhatikan program di atas. Prosedur Kalikan dan fungsi Kali mempunyai keluaran yang sama, tetapi cara 

mengambil keluarannya berbeda. Perhatikan dan jelaskan apa yang terjadi jika baris keempat dalam 

program utama yang semula perintah :  

Writeln(Bil_1:3,' x ',Bil_2:3,' = ',Kali(Bil_1,Bil_2):5); 

diubah menjadi : 

Writeln(Bil_1:3,' x ',Bil_2:3,' = ',Kalikan(Bil_1,Bil_2,Hasil):5); 

 

3. Rekursi 

Dalam Pascal, ada satu kelebihan dalam cara pemanggilan subprogram. Pascal mengijinkan pemanggilan 

suatu subprogram dari dalam subprogram itu sendiri. Tidak semua bahasa pemrograman mengijinkan cara 

pemanggilan subprogram seperti itu karena akan banyak memakan memori. Untuk lebih jelasnya 

perhatikan potongan program di bawah ini : 

 

Pada baris terakhir prosedur Z di atas, terdapat pemanggilan kembali terhadap prosedur Z, sehingga 

prosedur di atas tidak akan pernah selesai dijalankan sebab begitu sampai pada baris terakhir dari 

prosedur, program akan kembali lagi ke awal prosedur. Yang terjadi yaitu  semacam perulangan tanpa 

perintah perulangan Pascal, dan perulangan dengan cara ini disebut dengan rekursi. Rekursi berlaku 

terhadap semua subprogram dalam Pascal, yaitu prosedur dan fungsi. 

 

Dengan adanya rekursi ini, banyak algoritma komputer menjadi lebih mudah dibuat programnya. Berikut 

ini yaitu  program menghitung suku banyak Legendre, salah satu contoh perhitungan yang dapat 

diselesaikan dengan menggunakan rekursi : 

 

program Rekursi; 

uses wincrt; 

var 

Jum_Suku, I : integer; 

Bil_X : real; 

function Legendre(X : real; N : integer) : real; 

var 

Suku_1, Suku_2 : real; 

begin 

if N = 0 then 

Legendre := 1 

else if N = 1 then 

Legendre := X 

else 

begin 

Suku_1 := ((2*N - 1) * (X * Legendre(X, N-1))) / N; 

Suku_2 := ((N-1) * Legendre(X, N-2)) / N; 

Legendre := Suku_1 + Suku_2; 

end; 

end; 

procedure Awal; 

begin 

Writeln('Latihan Pascal 2 : Prosedur dan Fungsi'); 

Writeln('--------------------------------------'); 

Writeln; 

Writeln('Nama : ____________________'); 

Writeln('NIM : __________'); 

Writeln; 

end; 

procedure Baca_Data; 

begin 

Writeln('Menghitung Suku Banyak Legendre'); 

Writeln; 

Write('Sampai suku ke : '); 

Readln(Jum_Suku); 

Write('Masukkan nilai X : '); 

Readln(Bil_X); 

Writeln; 

end; 

begin 

ClrScr; 

Awal; 

Baca_Data; 

for I := 0 to Jum_Suku do 

begin 

Writeln('Suku ke-',I:2,', Nilainya = ',Legendre(Bil_X, I):8:3); 

end; 

Writeln; 

Write('Tekan Enter...'); 

Readln; 

end. 

 

Untuk lebih jelas memahami program, jalankan program dengan F7. Perhatikan pula 

apa yang dilakukan oleh fungsi Legendre. Amati perubahan variabel-variabel yang 

terlibat dalam fungsi. 

 

Pada potongan program di atas, maksudnya yaitu  sebagai berikut : variabel A berupa array dari integer 

dengan jumlah elemen sebanyak 10, nomer indeks terkecil yaitu  1 dan nomer indeks terbesar yaitu  

10. Untuk mengakses elemen dari variabel A dapat dilakukan dengan menunjukkan nomer indeks 

elemen A seperti ini : 

 

 

7. ARRAY DAN RECORD 

Dalam bahasa Pascal, secara garis besar dikenal dua macam tipe data yaitu tipe data sederhana 

(primitive type) dan tipe data kompleks (complex type). Contoh tipe data sederhana yaitu  tipe numerik 

(integer dan real), tipe data karakter, tipe data boolean dan tipe data enumerasi. Contoh tipe data 

kompleks yaitu  string, array (larik), record dan object. Tipe data sederhana yaitu  tipe data yang 

hanya mampu menyimpan satu nilai tiap satu variabelnya. Sebaliknya tipe data kompleks yaitu  tipe 

data yang mampu menyimpan lebih dari satu nilai dalam tiap satu variabelnya. Dalam latihan ini hanya 

akan dibahas dua tipe data kompleks yaitu array dan record. 

1. A r r a y 

Array yaitu  tipe data kompleks yang elemen-elemennya mempunyai tipe data yang sama. 

Jumlah elemen array bersifat tetap dan tidak bisa ditambah atau dikurangi setelah 

pendeklarasiannya. Tiap elemen mempunyai nomer indeks sendiri dan pengaksesan terhadap 

elemen array dilakukan dengan menunjukkan nomer indeks dari elemen yang akan diakses. 

Cara pendeklarasian suatu variabel bertipe array yaitu  sebagai berikut : 

 

Pada potongan program di atas, maksudnya yaitu  sebagai berikut : variabel A berupa array dari integer 

dengan jumlah elemen sebanyak 10, nomer indeks terkecil yaitu  1 dan nomer indeks terbesar yaitu  

10. Untuk mengakses elemen dari variabel A dapat dilakukan dengan menunjukkan nomer indeks 

elemen A seperti ini : 

 

contoh : A[1] := 10; 

 

Untuk lebih memahami penggunaan array dalam program, perhatikan contoh 

program di bawah ini : 

 

program Fibonacci; 

uses wincrt; 

var 

I : integer; 

Data : array[1..10] of integer; 

procedure Awal; 

begin 

Writeln('Praktikum DKP III : Array dan Record'); 

Writeln('------------------------------------'); 

Writeln; 

Writeln('Nama : ____________________'); 

Writeln('NIM : __________'); 

Writeln; 

end; 

procedure Fibo; 

begin 

for I := 1 to 10 do 

begin 

if I < 3 then 

Data[I] := I - 1 

else 

Data[I] := Data[I-1] + Data[I-2]; 

end; 

Writeln('Deret Fibonacci suku ke-1 hingga suku ke-10 :'); 

for I := 1 to 10 do Write(Data[I]:3); 

Writeln; 

end; 

 

 

begin 

ClrScr; 

Awal; 

Fibo; 

Writeln; 

Write('Tekan Enter...'); 

Readln; 

end.  

 

Perhatikan program di atas, terutama cara mengakses variabel array pada prosedur 

Fibo. Untuk lebih memahami jalannya program, jalankan program dengan F7 dan perhatikan perubahan 

elemen-elemen variabel Data yang berupa array. Jika program di atas telah dimengerti, buatlah program 

menghitung deret Fibonacci tetapi tidak menggunakan variabel array. Kemudian bandingkan dan 

perhatikan perbedaan kedua program tersebut. Array yang digunakan pada program di atas yaitu  

array berdimensi tunggal atau array berdimensi satu. Dengan demikian, dapat pula dideklarasikan 

variabel array dengan dimensi lebih dari satu atau array berdimensi banyak. Berikut yaitu  cara 

mendeklarasikan array berdimensi dua : 

 

Antara dimensi satu dengan dimensi lainnya dipisahkan oleh tanda koma (,), demikian juga untuk 

mendeklarasikan array berdimensi lebih dari dua. Cara mengakses elemen array juga tidak jauh berbeda 

dengan cara mengakses elemen array berdimensi satu, yaitu menggunakan nomer indeksnya. 

Contohnya sebagai berikut : A[2,3] := 10; artinya elemen yang terletak pada nomer 2 dimensi pertama 

dan nomer 3 dimensi kedua diisi dengan nilai 10. Array berdimensi dua ini banyak digunakan dalam 

perhitungan matrik, oleh sebab itu array berdimensi dua disebut juga dengan array matrik. Perhatikan 

contoh program berikut ini : 

 

program Jumlah_Matrik; 

uses wincrt; 

const 

Orde = 3; 

type 

Matrik = array[1..orde,1..orde] of integer; 

var 

M1, M2, H : matrik; 

I, J : integer; 

procedure Awal; 

begin 

Writeln('Latihan Pascal 3 : Array dan Record'); 

Writeln('------------------------------------'); 

Writeln; 

Writeln('Nama : ____________________'); 

Writeln('NIM : __________'); 

Writeln; 

end; 

procedure JumlahMatrik(var Mat1, Mat2, MatHasil : matrik); 

begin 

for I := 1 to orde do 

for J := 1 to orde do 

MatHasil[I,J] := Mat1[I,J] + Mat2[I,J]; 

end; 

procedure BacaData(var Mat : matrik); 

begin 

for I := 1 to orde do 

for J := 1 to orde do 

begin 

Write('Nilai[',I,',',J,'] = '); 

Readln(Mat[I,J]); 

end; 

end; 

procedure TulisMatrik(var Mat : matrik); 

begin 

for I := 1 to orde do 

begin 

for J := 1 to orde do 

begin 

Write(Mat[I,J]:5); 

end; 

Writeln; 

end; 

end; 

begin 

 

ClrScr; 

Awal; 

Writeln('Isi matrik pertama :'); 

BacaData(M1); 

Writeln; 

Writeln('Isi matrik kedua :'); 

BacaData(M2); 

Writeln; 

JumlahMatrik(M1, M2, H); 

Writeln('Penjumlahan matrik pertama dan kedua :'); 

TulisMatrik(H); 

Writeln; 

Write('Tekan Enter...'); 

Readln; 

end.  

 

 

R e c o r d 

Record yaitu  tipe data kompleks yang elemen-elemennya boleh mempunyai tipe data yang berbeda. 

Record lebih kompleks daripada array karena record merupakan kumpulan beberapa variabel dengan 

tipe data yang berbeda. Berbeda dengan array yang tiap elemennya ditandai dengan nomer indeks 

maka record ditandai dengan nama variabel anggotanya. Cara mengakses elemen dari record dilakukan 

dengan menyebutkan nama variabel anggota setelah menyebutkan nama record yang akan diakses. Di 

antara nama record dan nama variabel anggota dipisahkan tanda titik (.).  

Untuk lebih memahami penggunaan record dalam program, perhatikan contoh 

berikut ini. 

 

program Jumlah_Kompleks; 

uses wincrt; 

Type 

Kompleks = record 

bil_real : integer; 

bil_imaj : integer; 

end; 

var 

K1, K2, H : kompleks; 

procedure Awal; 

begin 

Writeln(' Latihan Pascal 3 : Array dan Record'); 

Writeln('------------------------------------'); 

Writeln; 

Writeln('Nama : ____________________'); 

Writeln('NIM : __________'); 

Writeln; 

end; 

procedure JumlahKompleks(var Komp1, Komp2, KompHasil : kompleks); 

begin 

KompHasil.bil_real := Komp1.bil_real + Komp2.bil_real; 

KompHasil.bil_imaj := Komp1.bil_imaj + Komp2.bil_imaj; 

end; 

procedure BacaData(var Komp : kompleks); 

begin 

Write('Bilangan real : '); 

Readln(Komp.bil_real); 

Write('Bilangan imajiner : '); 

Readln(Komp.bil_imaj); 

end; 

procedure TulisKompleks(var Komp : kompleks); 

begin 

Write('(',Komp.bil_real:3,' + ',Komp.bil_imaj:3,'i)'); 

end; 

begin 

 

ClrScr; 

Awal; 

Writeln('Isi bilangan kompleks pertama :'); 

BacaData(K1); 

Writeln; 

Writeln('Isi bilangan kompleks kedua :'); 

BacaData(K2); 

Writeln; 

JumlahKompleks(K1, K2, H); 

Writeln('Penjumlahan bilangan kompleks pertama dan kedua :'); 

TulisKompleks(K1); 

Write(' + '); 

TulisKompleks(K2); 

Write(' = '); 

TulisKompleks(H); 

Writeln; 

Writeln; 

Write('Tekan Enter...'); 

Readln; 

end. 

 

Perhatikan program di atas. Untuk lebih jelasnya, jalankan program dengan F7 

sehingga akan terlihat urutan jalannya program. Perhatikan pula bagaimana cara 

mengakses elemen record seperti pada prosedur JumlahKompleks. 

 

 

 





Lebih baru Lebih lama