Anda di halaman 1dari 100

ALGORITMA DAN PEMROGRAMAN PASCAL

INFORMATIKA SMA KELAS 10


Oleh : SYAMSUARDI, S.Pd, S.Kom
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 2
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 3
A. Materi Pokok Pembelajaran
1. Notasi algoritma: variabel, assignment, kondisional, loop
2. Pengenalan kerangka program utama dalam bahasa yang dipilih
3. Pengenalan tipe data primitive, variable, deklarasi, ekspresi, instruksi I/O
4. Sintaks instruksi kondisional: IF THEN, IF THEN ELSE, CASE. Sintaks berbagai
loop yang tersedia di bahasa pemrograman yang dipakai. Mekanisme eksekusi
setiap jenis instruksi
5. Deklarasi array, mengisi array, menulis isi array
6. Pemrograman prosedural; konsep statik: koding, programming; elemen
program (type, variable, value, ekspresi, I/O statement, loop) dan struktur data
sederhana (array 1 dimensi)
7. Konsep graf eksekusi program

Tipe data primitive adalah tipe data dasar yang tersedia secara langsung pada suatu
bahasa pemrograman. Sebagai contoh tipe data integer dan char. Tipe data composite
adalah tipe data bentukan yang terdiri dari dua atau lebih tipe data primitive. Contohnya
tipe data string (bentukan dari tipe data char)

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 4


B. Indikator Pembelajaran
1. Siswa mampu menyebutkan jenis instruksi yang dituliskan dalam
notasi algoritma dan menyebutkan dampak eksekusinya
2. Siswa mampu mengenal kerangka program utama dan "isi" nya serta
struktur suatu program dalam bahasa yang dipilih untuk diajarkan
3. Siswa mengenali program construct untuk tipe data primitive, variabel,
konstanta, value, ekspresi, instruksi I/O
4. Siswa mampu mengenal instruksi kondisional dan loop yang diajarkan
dan memahami mekanisme eksekusinya
5. Siswa mampu mendeklarasikan variabel bertipe array, mengisi,
menuliskan dalam bahasa yang diajarkan
6. Siswa mampu menulis program sederhana sesuai spesifikasi,
mendebug (Debugging) jika ada kesalahan, kemudian menguji sampai
benar
7. Siswa mampu menelusuri eksekusi sebuah program
Debugging adalah proses mengidentifikasi dan menghapus bug atau error di dalam kode.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 5


ALGORITMA

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 6


PENGERTIAN

Algoritma
Aljabar

Muhammad Ibnu Musa al-Khawarizmi

Algoritma adalah langkah-langkah proses yang disusun secara logis dan


berurutan untuk menyelesaikan suatu masalah dengan tepat. Algoritma
digunakan sebagai panduan langkah demi langkah untuk menuliskan program.
Jika algoritma yang dibuat salah, maka penulisan programnya akan salah juga.
Karena itu, algoritma sangat penting untuk dipelajari dan dikuasai dengan baik.
Jika sudah terbiasa menggunakan algoritma untuk menulis program, maka
semakin lama, kita dapat dengan mudah menulis progam, karena konsep
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 7
algoritma sudah dikuasai dengan baik.
Kriteria algoritma adalah sebagai berikut :
Setiap langkah harus jelas dan pasti
Jumlah langkah harus berhingga atau harus selesai.
Ditulis dengan kalimat yang mudah dipahami sehingga tidak menimbulkan arti
ganda.
Tuliskan dengan logika yang benar dan terstruktur
Semua operasi atau proses disebutkan dengan jelas.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 8


Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 9
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 10
Algoritma dalam kehidupan Sehari-hari
Sebenarnya dalam kehidupan sehari-hari kita sudah menggunakan algoritma
untuk melakukan sesuatu. Berikut contoh algoritma berangkat ke sekolah.
Langkah 1 - Memakai sepatu dan seragam sekolah (SMA)
Langkah 2 - Berpamitan kepada orang tua
Langkah 3 - Jika cuaca hujan maka memakai jas hujan. Jika tidak, lanjut ke
langah 4
Langkah 4 - Menuju ke Sekolah
Langkah 5 – Sampai di kampus Sekolah

Pada algoritma berangkat ke sekolah, untuk mencapai ke sekolah, kita dapat


saja menggunakan langkah-langkah yang berbeda dengan cara di atas. Jadi,
algoritma dapat menyelesaikan masalah dengan metode dan logika yang
berbeda.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 11


Syarat-syarat Algoritma
Berikut syarat-syarat algoritma menurut Donald E. Knuth, yaitu:
(a). Keterbatasan (Finiteness)
Algoritma harus berakhir setelah melakukan sejumlah langkah proses
(berawal dan berakhir).
(b) Kepastian (Definiteness)
Setiap langkah algoritma didefinisikan dengan tepat agar tidak
bermakna ganda (ambigu).
(c). Masukan (Input)
Suatu algoritma memiliki masukan (input) atau kondisi awal.
(d). Keluaran (Output)
Setiap algoritma memberikan satu atau beberapa hasil keluaran
(output).
(e). Effectiveness (efektivitas)
Langkah-langkah algoritma dikerjakan dalam waktu yang wajar dan
sungguh-sungguh menuntaskan masalah.
Perhatikan, mempelajari algoritma berarti kita mampu belajar
menyelesaikan suatu masalah berdasarkan tahapan-tahapan yang
sistematis dan logis.

Donald Ervin Knuth (lahir 10 Januari 1938) adalah seorang ilmuwan


komputer, matematikawan, dan profesor emeritus Amerika di
Universitas Stanford. Dia adalah penerima Penghargaan ACM Turing
1974, yang secara informal dianggap sebagai Hadiah Nobel ilmu
komputer. Knuth telah disebut sebagai "bapak analisis algoritma".
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 12
Struktur Dasar Algoritma
Perhatikan, dalam Algoritma, tidak dipakai simbol-simbol atau sintaks dari suatu bahasa
pemrograman tertentu, melainkan bersifat umum dan tidak tergantung pada suatu
bahasa pemrograman apapun. Notasi-notasi algoritma dapat digunakan untuk seluruh
bahasa pemrograman komputer (Pascal, C, C++, JavaScript, C#, Python dan lainnya).
Algoritma mempunyai tiga bentuk dasar berikut ini.
(a) Algoritma Runtunan (Sequence Algorithm)
Algoritma runtunan adalah algoritma dengan langkah-langkah secara urut
dari awal sampai akhir. Salah satu contoh algoritma sekuensial ini adalah
algoritma memasak air. Langkah demi langkah yang dijalankan harus urut
dari atas sampai ke bawah.
▪ Masukkan air bersih ke dalam panci
▪ Letakkan panci di atas kompor gas
▪ Nyalakan kompor gas
▪ Tunggu air sampai mendidih
▪ Jika air mendidih, matikan kompor gas
▪ Selesai

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 13


(b) Algoritma Perulangan (Repetition Algorithm)
Algoritma perulangan adalah suatu algoritma yang
menjalankan beberapa langkah tertentu secara berulang-
ulang. Salah satu contoh dari algoritma perulangan
adalah algoritma menjemur pakaian:
▪ Siapkan jemuran.
▪ Ambil satu pakaian yang akan dijemur.
▪ Peras pakaian tersebut terlebih dahulu.
▪ Letakkan pakaian tersebut pada tiang jemuran.
▪ Ulangi langkah dari 2 sampai 4 hingga pakaian habis.
Pada algoritma di atas, dapat diketahui bahwa dari
langkah 2 sampai 4 harus dilakukan secara berulang-
ulang sampai pakaian habis.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 14


(c) Algoritma Pemilihan (Selection Algorithm)
Algoritma pemilihan adalah algoritma yang menjalankan langkah berikutnya jika terdapat
syarat yang sudah dapat dipenuhi. Berikut salah satu contoh dari algoritma Membuat Mie
Goreng Atjeh bersyarat.
▪ Siapkan mie goreng Atjeh instant
▪ Apakah mie goreng Atjeh instant ada?
▪ Jika tika tidak, beli di warung
▪ Jika ada buka kemasan mie goreng Atjeh instant
▪ Keluarkan mie goreng Atjeh beserta bumbu-bumbunya
▪ Siapkan piring
▪ Lihat kondisi piring, jika kotor dicuci dulu
▪ Jika bersih siap digunakan
▪ Buka bumbu-bumbunya
▪ Letakkan di dalam piring
▪ Siapkan panci
▪ Lihat kondisi panci, jika kotor dicuci dulu
▪ Jika bersih, isi panci dengan air secukupnya
▪ Letakkan panci di atas kompor
▪ Nyalakan kompor
▪ Tunggu hingga air mendidih
▪ Jika sudah mendidih, masukkan mie goreng Atjeh
▪ Tunggu hingga mie matang
▪ Setelah mie matang, matikan kompor
▪ Siapkan saringan, lihat kondisi saringan jika kotor dicuci dulu
▪ Tuang mie ke saringan, tunggu sampai airnya tiris
▪ Masukkan ke dalam piring
▪ Siapkan sendok dan garpu, lihat kondisinya jika kotor dicuci dulu
▪Sabtu,Jika bersih2022
29 Januari aduk mie menggunakan sendok dan garpu
Syamsuardi, S.Pd, S.Kom 15
▪ Mie goreng Atjeh siap dihidangkan
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 16
1. KALIMAT DESKRIPTIF
Cara menuliskan instruksi-instruksi yang harus dilaksanakan dalam bentuk
untaian kalimat deskriptif dengan menggunakan bahasa yang jelas

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 17


Contoh pada pemrograman
(semua Bahasa pemrograman)

Program Persegi Panjang


Program untuk menghitung luas persegi Panjang
Algortima :
1. Masukkan Panjang dan lebar persegi Panjang
2. Hitung luas persegi Panjang dengan rumus : 𝑙𝑢𝑎𝑠 = 𝑝𝑎𝑛𝑗𝑎𝑛𝑔 × 𝑙𝑒𝑏𝑎𝑟
3. Tampilkan luas persegi panjang

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 18


1. Buatlah Algoritma untuk mencari nilai y dari persamaan y = 7a + 9b
Pembahasan :
Untuk mendapatkan nilai y, maka nilai a dan b harus diketahui
lebih dahulu. Nilai a dan b diperoleh dengan menginput ke dalam
program melalui keyboard. Kemudian a dikalikan dengan 7 dan b
dikalikan dengan 9. Hasil perkaliannya kemudian dijumlahkan
untuk mendapatkan nilai y.
Algoritma :
• Mulai
• Deklarasikan variabel y, a, dan b
• Input nilai a dan b
• Hitung nilai y = 7a + 9b
• Cetak nilai y
• Selesai

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 19


2. Buatlah algoritma untuk menghitung nilai y dari persamaan 𝑦 = 2𝑥 3 + 5𝑥 – 2
Pembahasan :
Untuk mendapatkan nilai y, maka kita dapat menyelesaikan secara bertahap
dengan menghitung 2𝑥 3 dan 5𝑥 secara terpisah. Untuk itu diperlukan
variabel tambahan misalnya a dan b untuk menyimpan hasil perhitungan
tersebut, a menyimpan hasil perhitungan 2𝑥 3 dan b menyimpan hasil
perhitungan 5𝑥.
Algoritma :
• Mulai
• Definisikan variabel 𝑦, 𝑥, 𝑎, 𝑏
• Input nilai 𝑥
• Hitung nilai 𝑎 = 2𝑥 3
• Hitung nilai 𝑏 = 5𝑥
• Hitung nilai 𝑦 = 𝑎 + 𝑏 − 2
• Cetak nilai 𝑦
• Selesai

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 20


2. FLOWCHART
Flowchart adalah skema diagram alir dari algoritma yang
disusun dalam bentuk bagan secara berurutan. Jadi
flowchart menggambarkan urutan penyelesaian masalah.
Flowchart digambarkan dengan menggunakan simbol-simbol
khusus seperti input, proses, output, dan lain-lain.
Dalam perencanaan flowchart
sebenarnya tidak ada rumus
atau patokan yang bersifat
mutlak (pasti). Hal ini didasari
oleh flowchart (bagan alir)
adalah suatu gambaran dari
hasil pemikiran dalam
menganalisis suatu masalah
dalam komputer.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 21


Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 22
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 23
1. Buatlah algoritma flowchart untuk mencari nilai y dari persamaan y = 7a + 9b
Pembahasan :
Untuk mendapatkan nilai y, maka nilai a dan b harus diketahui lebih dahulu. Nilai
a dan b diperoleh dengan menginput ke dalam program melalui tombol
smartphones Anda. Kemudian a dikalikan dengan 7 dan b dikalikan dengan 9.
Hasil perkaliannya kemudian dijumlahkan untuk mendapatkan nilai y.
Flowchart :

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 24


2. Buatlah algoritma flowchart untuk menghitung nilai y dari persamaan y = 2x3
+ 5x – 2
Pembahasan :
Untuk mendapatkan nilai y, maka Anda dapat menyelesaikan secara bertahap
dengan menghitung 2x3 dan 5x secara terpisah. Untuk itu diperlukan variabel
tambahan misalnya a dan b untuk menyimpan hasil perhitungan tersebut, dengan
a menyimpan hasil perhitungan 2x3 dan b menyimpan hasil perhitungan 5x.
Flowchart :

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 25


3. PSEUDOCODE
Langkah-langkah penyelesaian masalah dengan menggunakan kode yang tidak
terikat pada bahasa pemrograman komputer tertentu.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 26


1. Buatlah pseudocode untuk menentukan urutan instruksi bilangan A dan B.
Pembahasan :

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 27


2. Buat algortima pseudocode untuk menghitung luas segitiga.
Pembahasan :
Luas segitiga adalah setengah dari panjang alas dikalli tinggi. Panjang alas dan
tinggi segitiga dibaca dari piranti masukan. Luas segitiga dicetak ke piranti
keluaran.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 28


3. SMA Negeri 1 Cikarang Utara Bekasi menentuan kelulusan bidang studi Informatika berdasarkan
Nilai Akhir dengan kriteria sebagai berikut : jika NA >= 70 maka LULUS dan jika NA < 70 maka TIDAK
LULUS. Desainlah tiga notasi algoritmanya.
Pembahasan :
Kalimat deskriptif :
Langkah 1 : Input Nilai TUGAS, UTS, dan UAS
Langkah 2 : Hitung Nilai Akhir dengan rumus :
Flowchart
2 × 𝑇𝑈𝐺𝐴𝑆 + 3 × 𝑈𝑇𝑆 + 5 × 𝑈𝐴𝑆
𝑁𝐴 =
10
Langkah 3 : Menentukan kelulusan :
Jika NA >= 70 maka “LULUS”
JIka NA < 70 maka “Tidak LULUS”
Langkah 4 : Selesai

Pseudocode :
MENENTUKAN KELULUSAN
Deklarasi :
Nama : string
Tugas, UTS, UAS: integer
Nilai : real;
Keterangan : string
Deskripsi :
read (nama, Tugas, UTS, UAS)
If nilai >= 70 Then
keterangan = ‘LULUS’
Else
keterangan = ‘TIDAK LULUS’
write29(nama,
Sabtu, keterangan)
Januari 2022 Syamsuardi, S.Pd, S.Kom 29
Writing is twice speaking

Desainlah pseudocode

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 30


Flowchart:
Kalimat deskriptif :
Mulai Pseudocode :
Tentukan nilai phi dan r
Hitung 𝐿 = 𝑝ℎ𝑖 × 𝑟2
Cetak Hasil
Selesai

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 31


Flowchart :
Kalimat deskriptif :
Mulai Pseudecode :
Tentukan nilai p, l dan t
Hitung V = p . l. t
Cetak Hasil V
Selesai

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 32


Kalimat deskriptif (naratif) : Flowchart :
Langkah 1 : Mengaktifkan WA di ponsel.
Langkah 2 : Mencari nomor WA yang dituju
Langkah 3 : Menekan nomor WA yang dituju.
Langkah 4 : Tunggu ponsel yang dituju merespon.
Langkah 5 : Melakukan komunikasi via WA
Langkah 6 : Memutus hubungan ponsel.
Langkah 7 : Selesai.

Pseudecode :

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 33


Kalimat deskriptif : Flowchart :
1. Mulai
2. Definisikan variable I, J, N
3. Definisikan nilai awal I=1 dan
J= 0
4. Masukkan nilai N
5. Periksa apakah I > N? .
Jika Ya, cetak Hasil penjumlahan
J, kemudian ke langkah 7
Jika Tidak, maka cetak nilai I
Hitung : I = I + 1 (tambahkan nilai I
dengan 1)
J = J + I (jumlahkan nilai J dengan
I dan simpan kembali dalam
variabel J)
6. Ulangi langkah 5
7. Selesai
Perhatikan pada langkah ke-5,
gunakan perulangan while dalam
program Pascal
Pseudecode :
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 34
BAHASA PEMROGRAMAN PASCAL

Niklaus Emil Wirth (lahir 15 Februari 1934) adalah seorang ilmuwan komputer
Swiss. Dia telah merancang beberapa bahasa pemrograman, termasuk Pascal,
dan memelopori beberapa topik klasik dalam rekayasa perangkat lunak. Pada
tahun 1984, ia memenangkan Penghargaan Turing, yang secara umum diakui
sebagai penghargaan tertinggi dalam ilmu komputer,karena mengembangkan
rangkaian bahasa komputer yang inovatif.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 35


Pascal on Android
Aplikasi Pascal Editor and Compiler Programming adalah salah satu aplikasi
Android untuk belajar dan berkarya dengan bahasa pemrograman Pascal di
Smartphone tanpa harus menggunakan komputer PC, komputer Laptop dan
lainnya. Aplikasi ini menyediakan compiler untuk mengeksekusi kode program
yang Anda desain. Jadi, sangat direkomendasikan untuk Anda yang ingin
belajar bahasa pemrograman sampai mahir. Aplikasi Pascal Editor and
Compiler Programming ini dikembangkan oleh Duy Tran Le.

Aplikasi ini pertama sekali dirilis pada tanggal 26 Februari 2017 dan terakhir
diperbaharui pada tanggal 17 Maret 2018. Aplikasi ini sudah diunduh lebih dari
500.000 unduhan dengan ukuran file sekitar 5,11 MB dalam versi 4.32.
Diharapkan versi ini akan dikembangkan lagi di tahun 2020 ini. Perhatikan,
Aplikasi Pascal Editor and Compiler Programming ini adalah salah satu aplikasi
Android terbaik untuk belajar bahasa pemrograman Pascal atau disingkat Pascal
on Sabtu, 29 Januari 2022
Android. Syamsuardi, S.Pd, S.Kom 36
Keunggulan Pascal on Android
Kompilasi program tanpa hubungan internet
Ketika kita mengeksekusi compiler Pascal on Android, kita tidak harus terhubung dengan internet
(status offline).
Memudahkan mengetahui kesalahan ketika compiler
Aplikasi ini mengetahui dimana posisi kesalahan ketik (error), sehingga mempercepat dan
memudahkan proses mengedit kesalahan.
Fitur smart yang banyak
Terdapat fitur pintar (smart) yang tersedia pada aplikasi ini, diantaranya adalah sebagai berikut.
a) Menu File (icon folder): membuat file baru (New), membuka file (Open File), menyimpan
(Save), menyimpan sebagai (Save as) dan menyimpan secara otomatis (Auto save file).
b) Menu Edit (icon pensil) : terdapat menu Undo, Redo, Paste Copy all, dan Open drawer. Open
drawer sendiri berisi sejumlah fasilitas seperti Compile, Run, Debug program, Code sample
berada di bagian Code. Kemudian di bagian Tool terdapat Find, Find/Replace, Goto line, Format
code, Insert url media, Insert color. Pada bagian Code editor berisi Code theme and font dan
Setting. Pada bagian Data berisi Help me translate app. Pada bagian Information berisi Report
bug, Information, Rate app dan More app.
c) Auto recommended/saran : menampilkan pop up windows kecil yang menunjukkan kata-kata
yang bertepatan dengan kata yang diketik.
d) Fitur lainnya
Sensor, baterai, rekaman audio, kamera, tersedia bahasa C/C++ N-IDE released (support array
with char index).
e) Perpustakaan (library)
Konversi text to speech, mendukung kendali getaran, mendukung pengolahan sensor Android,
membantu memberitahu tampilan di status bar, dapat bekerja di clipboard Android, mengambil
informasi perangkat baterai.
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 37
Aturan Dasar Penulisan Kode Pascal
Kode program Pascal atau sintaksis Pascal, memiliki aturan-aturan
penulisan yang harus ditaati. Kalau tidak, kode program akan salah (error).
Aturan-aturan ini dibagi menjadi tujuah bagian, agar mudah dipahami.
1. Judul program
Judul program Pascal bersifat opsional. Porgram masih dapat berjalan,
meskipun belum diberikan judul. Namun, agar terlihat lebih bagus,
sebaiknya diberikan judul.
Judul program ditulis pada bagian teratas.
Program informatika_SMA_2022;
Nama program ditulis setelah kata kunci program. Lalu, apabila lebih dari
dua suku kata, maka dipisah dengan garis bawah (_) seperti contoh di atas.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 38


2. Kepala program
Bagian kepala program berisi deklarasi untuk type, constant, uses, var, dan termasuk juga judul program.
Type
Deklarasi type adalah deklarasi untuk stuktur data tertentu, seperti Array, Record, Pointer, dan lainnya.
type
TMember = record
Nama_pertama, nama_keluarga : string;
alamat: array [1..3] of string;
no_kontak: string;
tanggal_lahir: TDateTime;
berlangganan: boolean
end;
Penutup deklarasi type menggunakan end diikuti dengan titik-koma.
Konstanta
Konstanta adalah tetapan yang nilainya tidak dapat diubah.
Const PI = 3.141592654;
PI adalah nama konstanta, sedangkan 3.141592654 adalah nilainya. Setiap pembuatan konstanta harus
diakhiri dengan titik-koma. Nama konstanta sebaiknya pakai huruf kapital.
Uses
Uses untuk mendeklarasikan library atau unit yang digunakan dalam program.
uses crt; uses wincrt;
Apabila terdapat lebih dari satu library, maka pisahkan dengan tanda koma.
uses crt, my_library;
Pada Sistem Operasi DOS, digunakan crt, pada sistem operasi Windows digunakan wincrt, sedangkan
pada sistem operasi Android, digunakan wincrt atau crt. Jadi, Anda boleh menggunakan keduanya (pilih
salah satu).
Variabel
Format pendeklarasian variabel adalah sebagai berikut.
var umur: integer; a, b, c : real;
Deklarasi variabel
Sabtu, 29 dengan tipe data yang sama,
Januari 2022 dipisahS.Pd,
Syamsuardi, tanda koma. Gunakan garis bawah (_) untuk
S.Kom 39
memisahkan nama variabel yang lebih dari satu suku kata.
3. Tubuh Program
Tubuh program merupakan bagian utama dari progam. Tubuh program diawali dengan kata
kunci BEGIN, kemudian diakhiri dengan END..
Contoh:
Begin
Pesan :=’Semangat Informatika 2023’; tubuh program
Writeln (pesan);
End.
Perhatikan, penulisannya. Kita boleh menggunakan huruf kecil dan huruf besar, Pascal tidak
membedakannya. Perhatikan juga penulisan END., di sana harus diakhiri dengan tanda titik
(.). Sebagai tanda kalau END ini adalah akhir dari tubuh program utama.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 40


Struktur Dasar Bahasa pemrograman Pascal
Program NamaProgram;
Type
var
Type1 = DeklarasiTipe1;
Type2 = DeklarasiTipe2;
...
Const1 = Deklarasiconst1;
Const2 = Deklarasiconst2;
Var1 : Type1;
Var2 : Type2;
Procedure NamaProcedure(Parameter);
Begin
End;
[Instruksi];
..
Function NamaFungsi(Parameter):type;
Begin
[Instruksi];
..
End;
[Instruksi];
End.
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 41
4. Tipe-tipe Data
1. Byte adalah tipe data numerik terkecil merupakan bilangan bulat
sebesar 1 byte (1 byte = 8 bit bilangan biner) antara 0 sampai 255.
2. Word adalah tipe data numerik sebesar 2 byte antara 0 sampai
65535
3. Integer (bilbulpos dan bilbulneg) adalah tipe data numerik 2 byte
antara -32768 sampai 32767
4. Real adalah suatu bilangan pecahan sebesar 6 byte antara -29 × 109
sampai 1,7 × 108.
5. Boolean adalah jenis data uji kondidi memiliki dua keadaan TRUE
dan FALSE.
6. Char adalah jenis data yang terdiri dari satu huruf sebesar 1 byte.
7. String adalah kumpulan dari karakter dan menampung 2 milyar huruf
8. Longint adalah tipe data yang melebihi dari integer.
9. Single, double dan extanded adalah tipe data yang melebihi real.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 42


5. Deklarasi Variabel
Untuk dapat menggunakan suatu jenis data tertentu dalam pascal, harus
dilakukan pemesanan atau deklarasi jenis data tersebut dalam suatu nama
variabel. Ketentuan untuk nama variabel adalah sebagai berikut :
Terlarang dimulai dengan angka
Terlarang mengandung simbol operator aritmatika, dan simbol-simbol lain yang
digunakan sebagai operator dalam pascal, seperti koma, # @ ^ ! & titik dan
lainnya.
Terlarang mengandung spasi
Terlarang sama dengan nama fungsi dan keyword bahasa pascal.
Contoh penggunaan :
program If2022;
Var Uses wincrt;
BilBulat : Integer; var i : integer;
BilReal : Real; s : string;
W1,W2,W3 : Word; c : char;
A,B : Byte; b : boolean;
Nama, Alamat : String r : real;
Begin
I := 0;
Writeln(i);
end.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 43


Menggunakan Judul Program
program Pascal2022; {judul program}
begin
{Bagian Utama}
end.
Menggunakan Library
program Pascal2023;
uses wincrt; {Wincrt adalah perpustakaan umum di pascal untuk
manipulator I/O win crt.tpu}
var i : integer;
begin
{Main Body}
end. Menggunakan Variable
program Pascal2029;
program Pascal2023; uses wincrt;
uses wincrt; var i : integer;
var i : integer; j : integer;
Begin begin
Readln(i); i := 7;
writeln(i); j := 3;
i := i + j;
end.
writeln(i);
Sabtu, 29 Januari 2022 end.
Syamsuardi, S.Pd, S.Kom 44
Operator Aritmatika
1. Operator pemangkatan yang menggunakan tanda pangkat (^) atau (Sqr).
Contoh : a := Sqr(b);
2. Operator perkalian menggunakan tanda bintang (*);
Contoh : a := b * c ;
3. Operator pembagian menggunakan tanda slash (/), kata div dan mod.
Contoh : a := b/ c; a := b div c; a := b mod c;
4. Operator penjumlahan menggunakan tanda plus (+).
Contoh : a := b + c;
5. Operator pengurangan mengunakan tanda minus (–).
Contoh : a := b – c;
Dalam menggunakan operator-operator ini ada urutan prioritas pengerjaannya
yang dinamakan hirarki operator aritmatika.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 45


Format Data Real (Bilangan Desimal)
Selain dapat ditentukan jumlah kolom penempatan, untuk data real dapat
ditentukan bentuk penulisan (general, desimal), dan jumlah angka di belakang
koma. Cara penulisan format data real :
[Variabel Real] : [ Jumlah Kolom ] : [ Jumlah angka dibelakang koma ]
Contoh :
Write(R:10:2); (R adalah real dengan isinya 123.456 )
Tampilkan pada layar :

Input
Input adalah menerima suatu masukan data dari keyboard. Perintah bahasa pascal
untuk melakukan langkah ini antara lain sebagai berikut.
1. Readln adalah suatu perintah untuk memasukkan data dengan tipe sesuai
dengan data yang dilewatkan padanya. Contoh : readln (X); (artinya mengambil
masukan dari keyboard untuk disimpan di variabel X).
2. Readkey adalah perintah untuk memasukkan data bertipe karakter dan berfungsi
sebagai Right Value dari penugasan (Assigment) dan berada pada unit Uses Crt.
Contoh : Ch := Readkey; (artinya ch bertipe data karakter )
3. Keypressed adalah sama dengan readkey tetapi data ini menghasilkan tipe data
boolean dan mendeteksi jika terjadi penekanan tombol keyboard maka akan
menghasilkan nilai TRUE (biasanya dalam penggunaan looping until). Contoh :
Until Keypressed.
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 46
Output
Output adalah suatu proses menampilkan data pada layar komputer, perintah
bahasa pascal untuk melakukan langkah ini antara lain :
1. Write adalah perintah untuk menuliskan suatu data yang dilewatkan
kepadanya dan setelah penulisan dilakukan posisi pointer atau kursor berada di
sebelah kanan data yang kita tulis. Data yang kita tulis boleh lebih dari satu
dengan menggunakan pemisah tanda koma (,).
Contoh : Write(‘Selamat Informatika 2029‘);
Write(‘Nama Siswa : ‘); Write(‘ Hasil penjumlahan : ‘,C);
2. Writeln adalah perintah yang sama dengan write perbedaannya terletak pada
penempatan pointer penulisan setelah suatu data dituliskan ke layar dan posisi
kursor berada di sebelah kiri pada baris setelahnya.
Contoh : Writeln(‘ ‘); Writeln(‘Perhitungan Total Gaji Karyawan‘);
Writeln(‘ ‘);
Kata-kata Cadangan (Reserverd Words)
Kata-kata umum yang dicadangkan dari program Pascal. Kita terlarang
menggunakannya sebagai nama variabel.

begin end program var string if then


else for to downto while do repeat
until procedure function in
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 47
1. Buatlah program sederhana untuk menampilkan hasil perhitungan dari persamaan x = a + b
dan y = a x b
Pembahasan :
Deklarasikan empat variabel yaitu a, b, x, dan y. Tampilkan nilai x dan y dengan dua bentuk
yaitu x dan y berada pada satu baris dan x dan y berada pada baris yang berbeda.
Kalimat deskriptif :
1. Mulai
2. Deklarasikan variabel x, y, a, b Flowchart :
3. Input nilai a, b
4. Hitung nilai x = a + b
5. Hitung nilai y = a x b
6. Tulis Hasil x dan y (tampilan-1)
7. Tulis Hasil x dan y (tampilan-2)
8. Hentikan proses program untuk sementara
9. Selesai

Hasil eksekusi kode program :

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 48


Kode program Pascal :
Program Paham_Dasar_Coding;
Uses crt; {Aktifkan kamus crt}
var x , y, a, b : integer; {Deklarasi variabel}
Begin (*Awal program*)
clrscr; {bersihkan layar}
writeln; {pindah baris 1 kali}
writeln; ('Contoh Perintah Input output');
writeln('Input nilai a = '); {kursor pindah baris setelah menulis}
readln(a);
write('Input nilai b = '); {kursor tidak pindah baris setelah
menulis}
readln(b);
x := a + b; {Hitung nilai x}
y := a * b; {Hitung nilai y}
writeln;writeln;{pindah baris 2 kali}
writeln('Hasil tampilan 1 ');
write(' x = ',x); (* Tulis nilai x *)
writeln(' y = ',y); (* Tulis nilai y *)
writeln;writeln; {pindah baris 2 kali}
writeln('Hasil tampilan 2 ');
writeln(' x = ',x); (* Tulis nilai x *)
write(' y = ',y); (* Tulis nilai y *)
writeln;writeln;
writeln('Tekan sembarang tombol untuk melanjutkan'); readkey;
(*Hentikan sementara proses program *)
End. (*29 Januari
Sabtu, Akhir 2022program*) Syamsuardi, S.Pd, S.Kom 49
Kode program Pascal : Hasil eksekusi kode Program :
Program Paham_Dasar-Coding;
uses crt;

?
var a,b, y : integer;
Begin
writeln;
clrscr; {Bersihkan layar}
write('Input nilai a =');
readln(a);
write('Input nilai b =');
readln(b);
writeln;
y := 6*a + 2*b; {Proses}
writeln('y = 6a + 2b');
writeln('y = ',y); {Output}
writeln;
writeln('Tekan sembarang tombol untuk keluar');
readln;
End.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 50


3. Buatlah algortima narasi, algoritma flowchart dan kode program Pascal untuk
menghitung persamaan z = x2 + y4
Pembahasan :
Flowchart :
Kalimat deskriptif :
1. Mulai
2. Deklarasikan variabel x,y,z
3. Input nilai x dan y
4. Hitung nilai z = x2 + y4
5. Cetak hasil z
6. Tekan sembarang tombol
7. Selesai
Kode program Pascal :
Program Paham_Dasar_Coding;
Uses crt; (* Aktifkan kamus crt *)
Var x,y,z : real; {Deklarasikan variabel}
Begin
clrscr;
write('Input x = '); readln(x); {input
nilai x}
write('Input y = '); readln(y); { input
nilai y}
z := sqr(x) + sqr(y); {Proses, hitung nilai z}
writeln; writeln;
Hasil eksekusi
writeln(' z = ', z:6:2); {Output, cetak z } kode program :
writeln; writeln;
writeln('Tekan sembarang tombol untuk keluar');
readln;
End.
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 51
4. Desainlah kode program Pascal on Android berikut ini dengan menggunakan Smatphones.
Pembahasan :
Program Tampilan;
Uses Crt;
Var
A, B, C : Integer;
Begin
Clrscr;
Writeln(‘Program Menampilkan Input dan Output’);
Writeln;
Writeln(’=========================================================’);
Writeln(’ Program Penjumlahan’);
Writeln(’=========================================================’);
Writeln;
Write(‘ Nilai Pertama : ‘);readln(A);
Write(‘ Nilai Kedua : ‘);readln(B); C:= A + B;
Writeln(’ Hasil Penjumlahan: ’,C);
Writeln(’=========================================================’);
Wrieln;
Writeln(’=========================================================’);
Writeln(’ Program Pengurangan’);
Writeln(’=========================================================’);
Writeln;
Write(‘ Nilai Pertama : ‘);readln(A);
Write(‘ Nilai Kedua : ‘);readln(B);
C:= A - B;
Writeln(’ Hasil Pengurangan: ’,C);
Writeln(’=========================================================’);
Writeln(;

Writeln(’ Program Perkalian’);


Writeln(’=========================================================’);
Writeln;
Write(‘ Nilai Pertama : ‘);readln(A);
Write(‘ Nilai Kedua : ‘);readln(B);
C:= A * B;
Writeln(’ Hasil Perkalian: ’,C);
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom
Writeln(’=========================================================’); Readln; 52
End;End.
5. Rancanglah kode program Pascal data Siswa SMA Pahlawan T Tinggi Deli.
Pembahasan :
Program Data_siswa;
Uses Crt ;
Var
NISN,Nama,Alamat,Jurusan : String;
Umur : Integer;
IP : Real;
Begin
Clrscr;
Writeln(‘ ‘);
Writeln(‘ Data Siswa ‘); Writeln(‘ ‘);
Writeln;
Writeln(‘ Nomor Induk Siswa Nasional : ‘);readln(NISN);
Writeln(‘ Nama Siswa : ‘);readln(Nama);
Writeln(‘ Alamat Siswa : ‘);readln(Alamat);
Writeln(‘ Jurusan Siswa : ‘);readln(Jurusan);
Writeln(‘ Umur Siswa : ‘);readln(Umur);
Writeln(‘ IP Siswa : ‘);readln(IP);
Writeln;
Writeln(‘ ‘); Readln;
End;
End.
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 53
Decision dan Selection (Pengkondisian)
Percabangan IF-THEN
Pernyataan IF-THEN adalah bentuk pernyataan kendali yang paling sederhana,
sering digunakan dalam pengambilan keputusan dan mengubah aliran kendali dari
eksekusi program. Sintaks untuk pernyataan IF-THEN adalah jika kondisi ekspresi
boolean bernilai benar (true), maka blok kode di dalam pernyataan IF akan
dieksekusi. Jika ekspresi boolean bernilai salah (false), maka kumpulan kode pertama
setelah akhir pernyataan IF (setelah akhir penutupan) akan dieksekusi.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 54


1. Buatlah kalimat deskriptif, flowchart dan kode program Pascal untuk menentukan, apakah
masukan bilangan bulat n adalah bilangan genap atau ganjil.
Pembahasan :
Ciri khas dari bilangan genap adalah jika dibagi dengan 2, maka sisanya 0. Sedangkan ciri khas bilangan
ganjil adalah jika dibagi dengan2, maka sisanya 1. Kode program meminta masukan bilangan bulat n.
Kemudian n dibagi dengan 2 oleh operator mod, misalnya a = n mod 2. Jika a=0, maka n adalah bilangan
bulat. Kemudian a diperiksa, apakah nilai a=1. Jika benar, maka n adalah bilangan ganjil.

Kalimat deskriptif (narasi) :


Flowchart :
1. Mulai
2. Definisikan variabel n
3. Input bil bulat
4. Hitung sisa hasil bagi : a = n mod 2
5. Cek nilai a, jika a = 0, cetak “N bilangan genap”
6. Cek nilai a, jika a = 1, cetak “N bilangan ganjil”
7. Hentikan sementara proses program
8. Selesai
Kode program Pascal :
Program Ganjil_Genap;
Uses crt;
Var n,a : integer;
Begin
Writeln; clrscr;
Write('Input n = '); Readln(n);
Writeln;
a := n mod 2; {Cari sisa hasil bagi n dengan 2}
If a=0 then writeln('N adalah bilangan genap');
If a=1 then writeln('N adalah bilangan ganjil');
Writeln;
writeln('Tekan sembarang tombol untuk keluar'); readln;
Sabtu, 29 Januari
End. 2022 Syamsuardi, S.Pd, S.Kom 55
2. Pascal on Android mencoba menyelesaikan soal gerak bola yang ditendang Lionel
Messi yang bekerjasama dengan Mohamad Salah dan berbentuk lintasan parabola
dengan input Vo, , t dari tombol smartphones Anda dan konstanta gravitasi g = 9.8 N/kg.

Buatlah kode program Pascal dengan menggunakan IF..THEN untuk memilih :


“1” Menghitung Xt,
“2” Menghitung Yt,
“3” Menghitung Vx,
“4” Menghitung Vy,
Bantuan :
“5” Menghitung Xmaks,
𝑋 = 𝑉𝑜 . 𝑐𝑜𝑠 𝛼 . 𝑡 (jarak bola pada sumbu-x);
“6” Menghitung Ymaks 𝑡 1
𝑌𝑡 = 𝑉𝑜 . 𝑠𝑖𝑛 𝛼 . 𝑡 − 2 . 𝑔. 𝑡 2 (jarak bola pada sumbu-y);
𝑉𝑥 = 𝑉𝑜 . 𝑐𝑜𝑠 𝛼 (kecepatan bola pada sumbu-x);
𝑉𝑦 = 𝑉𝑜 . 𝑠𝑖𝑛 𝛼 − 𝑔. 𝑡 (kecepatan bola pada sumbu-y);
𝑉𝑜 2 .𝑠𝑖𝑛 2𝛼
𝑋𝑚𝑎𝑘𝑠 = 𝑔
(jarak terjauh bola pada sumbu-x)
𝑉𝑜 2 .𝑠𝑖𝑛 𝛼
𝑌𝑚𝑎𝑘𝑠 = 2𝑔
(jarak terjauh bola pada sumbu-y)

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 56


PROGRAM GERAK_BOLA; IF pilih=’2’ THEN
USES Begin
WinCrt; Write ('Kecepatan Awal = '); readln (Vo);
CONST Write ('Sudut Elevasi = '); readln (a);
g = 10; {dalam satuan N/kg} Write ('Waktu = '); readln (t);
VAR Yt := Vo*sin(a*pi/180)*t-0.5*g*t*t;{ingat rumus
Vo, a, t, Xt, Yt, Vx, Vy, Xmaks, Ymaks : real; 𝑌𝑡 = 𝑉𝑜 . 𝑠𝑖𝑛 𝛼 . 𝑡 − 1 . 𝑔. 𝑡 2 }
2
Pilih : char; Writeln ('Jarak Bola Pada Sumbu-y = ',Yt:10:0,
BEGIN
' meter');
Writeln ('Pilihan Menu');
End;
Writeln ('Pemrogram : Pak Syams');
Writeln ('1. Menghitung Xt'); IF pilih=’3’ THEN
Writeln ('2. Menghitung Yt'); BEGIN
Writeln ('3. Menghitung Vx'); Write ('Kecepatan Awal = '); readln (Vo);
Writeln ('4. Menghitung Vy'); Write ('Sudut Elevasi = '); readln (a);
Writeln ('5. Menghitung Xmaks'); Vx := Vo*cos(a*pi/180); {ingat rumus 𝑉𝑥 =
Writeln ('6. Menghitung Ymaks'); 𝑉𝑜 . 𝑐𝑜𝑠 𝛼}
Writeln ('Tekan Sembarang Tombol Untuk Keluar'); Writeln ('Kecepatan Bola Pada Sumbu-x =
',Vx:10:0, ' meter');
BEGIN End;
Write ('Pilihan Anda = '); readln (pilih); IF pilih=’4’ THEN
BEGIN
IF pilih=’1’ THEN Write ('Kecepatan Awal = '); readln (Vo);
Begin Write ('Sudut Elevasi = '); readln (a);
Write ('Kecepatan Awal = '); readln (Vo); Write ('Waktu = '); readln (t);
Write ('Sudut Elevasi = '); readln (a); Vy := Vo*sin(a*pi/180)-g*t; {ingat rumus 𝑉𝑦 =
Write ('Waktu = '); readln (t); 𝑉𝑜 . 𝑠𝑖𝑛 𝛼 . −𝑔. 𝑡 }
Xt := Vo*cos(a*pi/180)*t;{ingat rumus 𝑋𝑡 = Writeln ('Jarak Bola Pada Sumbu-y =
𝑉𝑜 . 𝑐𝑜𝑠 𝛼 . . 𝑡 } ',Vy:10:0, ' meter');
Writeln ('Jarak Bola Pada Sumbu-x = ',Xt:10:0, End;
' meter');
End;

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 57


IF pilih=’5’ THEN
BEGIN
Write ('Kecepatan Awal = '); readln
(Vo);
Write ('Sudut Elevasi = '); readln
(a);
Xmaks :=
(Vo*Vo*sin(2*a*pi/180))/2*g; {ingat
𝑉𝑜 2 .𝑠𝑖𝑛 2𝛼
rumus 𝑋𝑚𝑎𝑘𝑠 𝑔
}
Writeln ('Jarak Maksimum Bola Pada
Sumbu-x =',Xmaks:10:0,' meter');
End; IF pilih=’6’ THEN
BEGIN
Write ('Kecepatan Awal = '); readln
(Vo);
Write ('Sudut Elevasi = '); readln
(a);
Ymaks:=
(Vo*Vo*sin(a*pi/180)*sin(a*pi/180))
𝑉𝑜 2 .𝑠𝑖𝑛 𝛼
/(2*g); {ingat rumus 𝑌𝑚𝑎𝑘𝑠 }
2𝑔
Writeln ('Jarak Maksimum Bola Pada
Sumbu-y =',Ymaks:10:0,' meter');
End;
End;
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 58
End.
Percabangan IF THEN ELSE
Pernyataan ini untuk mengendalikan jalan suatu program berdasarkan suatu
kondisi atau syarat yang diberikan. Jika kondisi yang diseleksi terpenuhi maka
pernyataan yang mengikuti Then akan diproses, sebaliknya jika kondisi tidak
terpenuhi, maka yang akan diproses pernyataan berikutnya. Jika kondisi bernilai
benar (TRUE) maka pernyataan akan dikerjakan. Jika kondisi bernilai salah
(FALSE) maka pernyataan tidak akan dikerjakan.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 59


1. Buatlah narasi, flowchart dan kode program Pascal untuk menentukan Lulus atau Gagal seorang
siswa SMA.
Pembahasan :
Kode program akan meminta masukan nilai x kemudian diperiksa, apakah lebih besar atau sama
dengan 70. Jika benar, maka dinyatakan “Lulus”. Jika salah, maka dinyatakan “Gagal‟.
Narasi :
1. Mulai Flowchart
2. Definisikan variabel n
3. Input bil bulat n
4.Periksa nilai n, jika n >= 70, cetak “Lulus”
5. Jika tidak, maka cetak “Gagal”
6. Selesai
Kode Program Pascal :
Program Lulus_Gagal;
uses crt;
var n : integer;
Begin
clrscr;
write('Input nilai n = ');
readln(n);
if (n>=70) then
writeln('Lulus')
else
writeln('Gagal');
writeln('Tekan sembarang tombol untuk keluar');
readln;
End.
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 60
2. Rakitlah kode program Pascal berdasarkan Pseudocode dan flowchart berikut ini.
Pseudocode :
Gapok ← 1500000
Flowchart :
Read (Nama, JmlAnak)
If JmlAnak <=3 Then
TunjAnak ← JmlAnak*0.1*Gapok
Else
TunjAnak ←3*0.1*Gapok
End If
TotalGaji ← Gapok + TunjAnak
Write (Nama,TunjAnak, TotalGaji)
Pembahasan :
Ketiklah kode program berikut dengan smartphones Anda.
Program Gaji_pegawai;
Uses crt;
Var JmlAnak : Byte;
TunjAnak,TotalGaji : Real;
Nama : String [20];
Const Gapok = 1500000;
Begin
ClrScr;
Write ('Nama Pegawai : ');ReadLn(Nama);
Write ('Jumlah Anak : ');ReadLn(JmlAnak);
IF JmlAnak <=3 Then TunjAnak:= JmlAnak * 0.1 * Gapok
Else TunjAnak := 3 * 0.1 * Gapok;
TotalGaji:=Gapok+TunjAnak;
WriteLn ('Nama Anda adalah : ',Nama);
WriteLn ('Tunjangan Anak : ',TunjAnak:0:0);
WriteLn ('Total Gaji : ',TotalGaji:0:0);
Sabtu, 29 Januari 2022
ReadLn; Syamsuardi, S.Pd, S.Kom 61
End.
Percabangan IF - Then – Else If - Else
IF - Then – Else If – Else adalah bentuk pilihan dengan dua pilihan “pernyataan”
yang harus dipilih salah satunya untuk dikerjakan dengan menyeleksi beberapa
kondisi dari suatu variabel. Pernyataan yang dipilih adalah pernyataan yang
memenuhi syarat atau pernyataan yang bernilai benar. Bentuk Perintah :

• Jika kondisi1 benar, maka “pernyataan1” akan dikerjakan dan pilihan lain akan diabaikan (tidak dibaca).
• Jika kondisi1 Salah, maka kondisi2 akan diperiksa. Jika kondisi2 benar, maka “pernyataan2” akan dikerjakan dan
pilihan lain akan diabaikan (tidak dibaca).
• Jika kondisi2 Salah, maka kondisi berikutnya akan diperiksa. dan seterusnya.
Sabtu, 29 Januari
• Jika kondisi (n 2022 Syamsuardi,
– 1) Salah, maka pernyataan n akan S.Pd, S.Kom
dikerjakan. 62
1. Kita membuat program untuk membaca bilangan bulat, lalu di tentukan
apakah bilangan tersebut positif, negatif atau nol.
Pembahasan :
Karena program akan berjalan
secara sekuensial maka prosesnya adalah
Flowchart ▪ Jika bil > 0, maka bilangan tersebut adalah
positif
▪ jika bil < 0, maka bilangan negatif
▪ jika bil = 0, maka bilangan positif.

program Percabangan_tiga; var bil : integer;


begin
write ('Masukan Bilangan : ');read(bil); if (bil > 0)
then
begin
writeln ('Positif’);
end
else if (bil < 0) then
begin
writeln ('Negatif’);
end
else if (bil=0) then
begin
writeln ('Nol’);
end;
end.
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 63
Percabangan If Then Else bersarang (NESTED IF)
Nested If adalah bentuk algoritma seleksi, dalam If terdapat If lain yang menyeleksi kondisi dari
suatu variabel yang berbeda. Bentuk Perintah nested IF adalah sebagai berikut.

• Jika kondisi variabel A benar, maka pernyataan A-1 akan dikerjakan


• Kemudian periksa kondisi variabel B.
• Jika kondisi variabel B benar, maka pernyataan B-1 akan dikerjakan.
• Jika kondisi variabel B salah, maka pernyataan B-2 akan dikerjakan.
• Jika
Sabtu,kondisi
29 Januari variabel
2022 A salah, maka pernyataan A-2
Syamsuardi, S.Pd, akan dikerjakan.
S.Kom 64
Seorang siswa dapat diterima menjadi pilot jika memenuhi syarat sebagai berikut :
• Umur minimum 19 tahun dan maksimum 25 tahun
• Tinggi badan minimal 165 cm Kode program Pascal :
• Nilai Test masuk minimal 70 program Nested_IF;
Buatlah narasi, flowchart dan kode program Pascal uses crt;
menentukan seorang siswa “Lulus” atau “Gagal”. var u,t,n : integer;
Pembahasan :
Narasi : begin
1. Mulai writeln;writeln;
2. Definisikan var umur, tinggi, nilai clrscr;
3. Input umur, tinggi badan, dan nilai test write('Input Umur = ');
4. Periksa syarat sebagai berikut : readln(u);
• Periksa umur (19 s.d 25 tahun) jika syarat umur benar maka write('Input Tinggi Badan = ');
Periksa tinggi badan (minimum 165 cm) jika syarat tinggi badan readln(t);
benar maka periksa nilai ujian (minimum 70) write('Input Nilai Test = ');
Jika syarat Nilai ujian benar readln(n);
Maka cetak “Lulus writeln;writeln;
• Jika salah satu syarat tidak memenuhi maka cetak “Gagal” write('Hasil test adalah : ');
5. Selesai If (u>=19) and (u<=25) then
Begin
Flowchart
if (t>=165) then
begin
if n>=70 then
Hasil kode Pascal write('LULUS')
else
write('GAGAL');
end
else
write('GAGAL');
end
else
write('GAGAL');
writeln;writeln;
writeln('Tekan sembarang tombol');
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom readln; 65
end.
Pernyataan CASE … OF
Case var of atau biasa disingkat Case Of adalah salah satu fungsi pada pascal yang mirip
dengan IF, namun untuk penggunaan yang lebih kompleks. Diagram alir CASE---OF adalah
sebagai berikut.

Expression adalah ‘sesuatu’ yang akan diperiksa nilainya. Jika nilai dari
expression ini sama dengan kondisi 1, maka yang dijalankan adalah (kode
program 1), jika sesuai dengan kondisi 2, maka yang akan dijalankan adalah
(kode program 2), dan seterusnya
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 66
Buatlah narasi, flowchart dan kode program Pascal untuk menghitung Luas, Volume, dan
Keliling suatu Balok dengan tampilan Daftar Pilihan sebagai berikut.

Jika kita menginput data panjang, lebar, dan tinggi balok, maka program akan menampilkan
Daftar Pilihan :
1 artinya program akan menghitung Luas Balok
2 artinya program akan menghitung Volume Balok
3 artinya program akan menghitung Keliling Balok
4 artinya keluar dari program.
Pembahasan :
Narasi :
• Mulai
• Deklarasikan variabel p,l,t, v,ls,k, vk (variabel kontrol)
• Input nilai panjang, lebar, dan tinggi balok
• Tampilkan menu Pilihan
• Input nilai variabel kendali, vk
• Periksa nilai variabel kendali
Jika 1, maka kerjakan pilihan-1
Jika 2, maka kerjakan pilihan-2
Jika 3, maka kerjakan pilihan-3
Jika 4, maka keluar dari program
• Selesai

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 67


Kode program Pascal :
Program
Program Menu_Pilihan;
Uses crt;
Var p,l,t,v,ls,k : real;
vk : char;
Begin
{ clrscr;}
write('Input Panjang Balok = ');readln(p);
write('Input Lebar Balok = ');readln(l);
write('Input Tinggi Balok = ');readln(t);
writeln;
writeln('Menu Program ');
writeln('====================');
writeln('1.Hitung Luas Balok');
writeln('2.Hitung Volume Balok');
writeln('3.Hitung Keliling Balok');
writeln('4.Keluar');
write('Pilihan Anda (1/2/3/4)');readln(vk);
writeln;
case vk of
'1' : Begin
ls:=p*l;
writeln('Luas = ',ls:6:2);
End;
'2' : Begin
v:=p*l*t;
writeln('Volume = ',v:6:2);
End;
'3' : Begin
k:=2*(P+l+t);
writeln('Keliling = ',k:6:2);
End;
'4' : Begin
Exit; {Keluar dari program}
End;
End;
writeln;
writeln('Tekan sembarang tombol untuk keluar');
readln;
writeln;
End.
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 68
Pernyataan CASE … OF …ELSE
Ketika Anda dihadapkan dengan banyak pilihan (lebih dari dua kondisi) maka program percabangan case of sangat cocok
untuk digunakan. Berikut ini sintaksis penulisan percabangan case of else dalam pascal.

Flowchart Sebagai contoh ketika Anda ingin menggunakan ATM. Anda


melihat banyak pilihan menu : transfer, tarik tunai, cek saldo, dan
lain-lain, maka dibutuhkan program case of untuk mengatasinya.
Jumlah case label dapat disesuaikan dengan kebutuhan Anda.
Kemudian jika semua kondisi tidak terpenuhi maka pernyataanDefault
yang akan dijalankan. Perhatikan, jenis variabel (kondisi) yang
dipakai Case Of adalah Integer atau Char.

program struktur_case;
uses crt;
var
grade: string;
begin
clrscr;
write('Grade Anda (A-E): ');
readln(grade);
case (grade) of
'A' : writeln('Sangat Memuaskan');
'B' : writeln('Memuaskan');
'C' : writeln('Cukup Baik');
'D' : writeln('Kurang Baik');
'E' : writeln('Anda tidak lolos');
else
writeln('Format yang Anda masukkan salah');
writeln('Harap input grade berupa huruf: A,
B, C, D, atau E');
end;
readln;
end.
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 69
Perulangan For…to…do (perulangan positif)
For-To-Do adalah perintah perulangan yang digunakan untuk mengerjakan suatu
blok pernyataan secara berulang kali selama syarat kondisi pada for-to-do bernilai
benar atau memenuhi syarat. Jika kondisi tidak memenuhi syarat, maka blok
pernyataan tidak akan dikerjakan dan program akan mengerjakan pernyataan
setelah kata kunci end dari blok pernyataan. Bentuk Perintah :

dengan i = variabel kendali, n1= nilai awal dan n2= nilai batas, dengan n1 < n2
Nilai variabel kendali i secara otomatis akan bertambah satu mulai dari i=n1
sampai i=n2. Selama nilai benar, maka pernyataan-1 akan dikerjakan. Jika i
bernilai salah atau i>n2, maka pernyataan-2 akan dikerjakan. Variabel kendali
pada For-to-do hanya dapat bertipe Integer.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 70


1. Ketiklah kode program Pascal untuk perulangan teks ‘LAWAN COVID-19’ ini
menggunakan smartphones sebanyak 100 kali.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 71


2. Buatlah narasi, algoritma flowchart dan kode program Pascal untuk mencetak angka 1
sampai n. Nilai n adalah data masukan.

Pembahasan :
Narasi :
1. Mulai
2. Deklarasikan variabel i dan n dengan tipe integer.
3. Input nilai n.
4. Buat perulangan mulai i = 1 s.d i = n Kode program Pascal :
5. Cetak nilai i Program CetakAngka;
6. Ulangi langkah 4 uses crt;
7. Selesai var i,n : integer;
Begin
Flowchart clrscr;
write('Input nilai n = ');
readln(n);
for i:=1 to n do
Begin
write(' ',i); {cetak spasi(jarak)
dan nilai i}
End;
writeln;
writeln('Tekan sembarang tombol
untuk keluar'); readln;
End.
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 72
3. Buatlah narasi, flowchart dan kode program Pascal dengan format hasil keluaran sebagai berikut.

Pembahasan
Narasi : Flowchart
1. Mulai
2. Deklarasikan variabel kontrol i dan j
3. Buat perulangan baris dari i=1 hingga i=5
4. Buat perulangan kolom dari j=1 hingga j=i
5. Cetak nilai j
6. Ulangi langkah 4
7. Pindah baris
8. Ulangi langkah 3
9. Press any key
10. Selesai

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 73


Kode program Pascal :
Program Baris_Kolom;
uses crt;
var i,j : integer;
Begin
clrscr;
for i:= 1 to 5 do
Begin
for j:=1 to i do
Begin
write(' ',j);
End;
writeln; {kursor pindah baris}
End;
writeln; writeln;
writeln('Tekan sembarang tombol untuk keluar');
readln;
End.

Bentuk keluaran terdiri dari 5 baris dan 5 kolom. Kita harus membuat dua perulangan (loop) for-to-do.
Perulangan pertama menyatakan baris dan perulangan kedua menyatakan kolom. Perulangan baris mulai
1 sampai 5 karena terdiri dari 5 baris sedangkan perulangan kolom mulai dari 1 sampai 1 untuk baris
pertama sedangkan baris berikutnya bertambah 1 kolom ketika berpindah baris. Pada setiap baris, nilai
variabel kendali kolom akan dicetak.
Misalnya :
ketika baris i=1, maka kolom j akan berulang dari j=1 sampai j=1
ketika baris i=2, maka kolom j akan berulang dari j=1 sampai j=2
ketika baris i=3, maka kolom j akan berulang dari j=1 sampai j=3
ketika baris i=4, maka kolom j akan berulang dari j=1 sampai j=4
ketika baris i=5, maka kolom j akan berulang dari j=1 sampai j=5
Nilai i selalu sama dengan nilai akhir j, sehingga perulangan baris adalah For i:=1 to 5 dan perulangan
kolom For j:=1 to i do
:
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 74
Perulangan For….downto…do (perulangan negatif)
For-Downto-Do adalah perintah untuk algoritma perulangan dengan nilai dari
variabel kendalinya secara otomatis berkurang satu. Bentuk Perintah :

dengan k = variabel kendali, n1= nilai awal dan n2= nilai batas, dengan n1 > n2
Nilai variabel k secara otomatis akan berkurang satu mulai dari k=n1 sampai k=n2.
Selama nilai k benar, maka pernyataan-1 akan dikerjakan. Jika k bernilai salah atau k <
n2, maka pernyataan-2 akan dikerjakan.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 75


1. Untuk siswa SD bagus nih, buatlah lirik lagu ayak ayam dengan perulangan For Downto, untuk menampilkan
string “Anak ayam turun 10, pergi 1 tinggal 9”, kemudian dilanjutkan dengan string “Anak ayam turun 9, pergi
1 tinggal 8”, sampai “Anak ayam turun 1, pergi 1 tinggal 0”. Jumlah anak ayam awal harus diinput oleh
pengguna. Jelaskan kode program Pascal berjudul “Lagu Anak Ayam” berikut.

Pembahasan :
Kita membuat dua variabel : i sebagai variabel counter, dan anak_ayam sebagai variabel penampung
masukan untuk perintah readln(anak_ayam). Perhatikan, perintah writeln(‘Anak ayam turun ‘,i,’
pergi 1, tinggal ‘,i-1); inilah yang menampilkan teks lagu anak ayam yang terus menurun sampai “Anak
ayam turun 1, pergi 1 tinggal 0”.
Kita dapat membuat perulangan dengan for i := anak_ayam downto 1 do. Kita tidak membuat for i :=
anak_ayam downto 0 do, karena di bagian looping nilai i akan dikurangi lagi. Jika Anda melakukan
perulangan sampai 0, lirik lagu terakhir akan menjadi “Anak ayam turun 0, pergi 1 tinggal -1”. Sangat
tidak logis ada anak ayam dengan nilai negatif. Sama seperti FOR TO DO, perulangan FOR DOWN TO
jugaSabtu,
dapat digunakan
29 Januari 2022 untuk nilai negatif. Tentu saja nilai
Syamsuardi, awal harus lebih besar daripada nilai akhir.76
S.Pd, S.Kom
2. Buatlah algoritma narasi, algoritma flowchart dan kode program Pascal untuk menampilkan keluaran
berikut.

Pembahasan :
Hasil keluaran yang diminta berupa urutan angka mulai dari 15 sampai 8, artinya nilai berikutnya
berkurang satu dari nilai di depannya. Untuk menyelesaikan, maka Anda misalkan variabel m untuk
menyimpan nilai awal, m=15 dan nilai akhir disimpan oleh variabel n, n = 8. Kedua variabel harus
bertipe integer.
Flowchart
Narasi :
• Mulai
• Deklarasikan variabel k,m,n dengan tipe integer
• Definisikan nilai m=15 dan n=8
• Buat perulangan mulai dari k=m hingga k=n
• Cetak nilai k Kode program Pascal :
• Selesai Program downtodo;
uses crt;
var k,m,n,b,s,p : integer;
Begin
clrscr;
m:=15; n:=8;
for k:=m downto n do
Begin
write(k,' ');
End;
writeln; writeln;
writeln('Tekan sembarang tombol untuk keluar');

Sabtu, 29 Januari 2022 readln; Syamsuardi, S.Pd, S.Kom 77


End.
Perulangan While….Do
WHILE-DO digunakan untuk melakukan proses perulangan dengan mengerjakan
suatu blok pernyataan selama kondisi pada WHILE bernilai BENAR. Variabel
kendali pada kondisi while dapat bertipe integer, real, atau char. Bentuk Perintah :

• Jika Kondisi bernilai benar, maka


pernyataan-1 akan dikerjakan
• Jika Kondisi bernilai salah, maka
pernyataan-2 akan dikerjakan

Pada perulangan While-Do, nilai awal dari variabel kendali selalu didefinisikan lebih
dahulu mis x :=0. Kemudian perubahan nilai variabel kendali harus dinyatakan
dalam blok Begin-End. Perubahan nilai x dapat bertambah atau berkurang dan
dapat ditentukan berdasarkan kebutuhan program. Perubahan nilai variabel kendali
bertipe integer dengan perubahan nilai 1 dapat menggunakan perintah berikut.
• inc (x) untuk pertambahan nilai 1
• dec (x) pengurangan nilai 1
Pertambahan atau pengurangan nilai
Sabtu, 29 Januari 2022
selain 1 dinyatakan dengan persamaan linier.
Syamsuardi, S.Pd, S.Kom 78
Misalnya var kendali x dengan pertambahan 4 dinyatakan dengan x := x + 4.
1. Buatlah narasi, flowchart dan kode program Pascal seperti tampilan di bawah ini dengan perulangan
While-Do.
20 21 22 23 24 25 26 27
Pembahasan :
Tampilan keluaran yang diminta menunjukkan bawah nilai awal 20 dan nilai akhir 27 dengan pertambahan
1. Tipe variabel yang digunakan adalah integer. Jadi, Anda harus menentukan nilai awal misalnya a=20
dan nilai akhir a=27. Untuk menampilkan urutan bilangan 20 sampai 27, maka kondisi pada while adalah a
<= 27 dengan pernyataan WHILE a <= 27 DO.
Flowchart
Narasi :
1. Mulai
2. Deklarasikan variabel a dengan tipe integer
3. Definisikan nilai awal a = 20
4. Buat perulangan while dengan kondisi a<=27
5. Cetak nilai a
6. Hitung perubahan nilai a
7. Ulangi langkah 4 Kode program Pascal :
8. Press any key Program While_DO;
uses crt;
9. Selesai
var a : integer;
Begin
clrscr;
a:=20;
While a<=27 Do
Begin
write(' ',a);
inc(a);
End;
writeln;
writeln; writeln;
writeln('Tekan sembarang tombol untuk keluar’);
readln;
Sabtu, 29 Januari 2022 End. Syamsuardi, S.Pd, S.Kom 79
Hasil kode Pascal
2. Jelaskan kode program Pascal berikut.

Pembahasan :
Untuk membuat perulangan hitung mundur, diubah nilai
awal variabel counter dan kondisi syarat dari
perulangan WHILE DO.

Kita memulai variabel i dari 100. Memeriksa kondisi while i >= 0 do artinya,
perulangan akan dijalankan selama nilai i lebih besar dari 100. Bagaimana
agar kondisi ini dapat bernilai FALSE? Gunakanlah i:= i – 1, sehingga
dalam setiap perulangan, nilai i selalu berkurang 1, dari 100, ke 99, ke 98,
dan seterusnya hingga berhenti saat i = 0, yaitu ketika syarat i >= 0
menghasilkan FALSE.
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 80
Perulangan Repeat..Until
Pada perulangan Repeat-Until, kondisi perulangan diletakkan pada bagian akhir perulangan
sedangkan pada While-Do, terletak di bagian awal. Blok pernyataan diantara repeat dan until
akan dikerjakan secara berulang kali selama <kondisi> pada UNTIL bernilai SALAH. Jika
kondisi BENAR, maka perulangan selesai. Nilai awal ditentukan pada bagian awal sebelum
Anda kunci repeat, kemudian perubahan nilai variabel kendali dilakukan di dalam blok repeat-
until. Variabel kendali pada kondisi Until dapat bertipe integer, real, atau char. Bentuk
Perintah :
Dalam perulangan repeat-until,
pernyataan-1 dikerjakan satu kali
lebih dahulu, kemudian nilai
variabel kendali diperiksa pada
bagian akhir perulangan. Jika
kondisi pada until bernilai salah,
maka ulangi kerjakan pernyataan-
1. Jika bernilai benar, maka
kerjakan pernyataan-2. Kata
begin-end yang mengapit
pernyataan-1 dapat dihilangkan
atau dihapus karena pernyataan-1
sudah ditandai dengan blok
repeat-until.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 81


1. Buatlah narasi, flowchart dan kode program Pascal untuk hasil tampilan keluaran sebagai berikut.

Pembahasan :
Tampilan keluaran berupa urutan bilangan genap positif dengan nilai awal 2 dan nilai akhir 12
pertambahan 2. Jadi, nilai awal variabel kendalil i = 2, kemudian i mengalami perubahan nilai dengan
pernyataan i = i + 2. Untuk memeriksa nilai i, maka pernyataan kondisi pada until adalah i > 12.

Narasi : Flowchart Program Repeat_Until;


1. Mulai uses crt;
2. Deklarasi variabel kendali i var i : integer;
3. Tentukan nilai awal i, i=2;
Begin
4. Perulangan dengan repeat
5. Cetak nilai i clrscr;
6. i = i + 2; i:=2;
7. Cek nila i, apakah i >12 writeln;writeln;
8.Jika Tidak, ulangi langkah 4 repeat
9. Jika ya lanjutkan ke langkah 10 write(' ',i);
10. Press any key i:= i +2;
11. selesai
Until i>12;
writeln;writeln;
writeln('Tekan sembarang
tombol untuk melanjutkan');
readkey;
Sabtu, 29 Januari 2022 end.
Syamsuardi, S.Pd, S.Kom 82
2. Jelaskanlah kode program Pascal berikut.
Pembahasan :
Berikut kode program menggunakan
perulangan REPEAT UNTIL untuk
menampilkan teks “Syams Informatics”
sebanyak 10 kali.
Hasil eksekusi kode program :

Terlihat mirip dengan WHILE DO, bedanya


variabel counter i diperiksa di akhir perulangan.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 83


Perbedaan For-to-do, repeat-until dan while-do pada Pascal

For-To-Do :
Perulangan langsung. Program langsung mencetak sesuai dengan kondisi yang telah
ditetapkan. Diletakkan pada program utama

Program For_to_do;
uses crt;
var
i := integer;
Begin
clrscr;
for i := 1 to 5 do
writeln (‘FOR TO DO’);
readln;
End.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 84


Repeat-Until :
Terdapat nilai awal.
Terdapat counter.
Repeat digunakan sebagai awal perulangan.
Until digunakan sebagai akhir perulangan (letaknya di bawah).
Tidak menggunakan blok statemen begin dan end, karena repeat-until
digunakan sebagai pengganti begin dan end.
Program Repeat_until;
uses crt;
var
i := integer;
Begin
clrscr;
i := 0;
Repeat
i := i + 1;
writeln (‘REPEAT UNTIL’);
Until
i := 5;
readln;
End.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 85


While-Do :
Terdapat nilai awal.
Terdapat operator pembanding (<,>,=,dan lainnya).
Terdapat counter.
Menggunakan blok baru yaitu begin dan end untuk program perulangan.
Program While_Do;
uses crt;
var
k := integer;
Begin
clrscr;
k := 1;
while k <= 5 do
Begin
writeln (‘WHILE DO’);
k := k + 1;
End;
Readln;
End.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 86


3. Buatlah kode program yang dapat menampilkan hasil berikut :

Repeat..Until
Program segitiga_bilangan;
Pembahasan : Uses crt;
Var
i, j :integer;
begin
clrscr;
i:=1;
repeat
j:=1;
repeat
write(i*j,’ ‘);
inc(j);
until(j>i);
inc(i);
writeln; {untuk ganti baris}
until (i>5);
readln;
end.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 87


While ..do
program segitiga_bilangan;
For ..to..do uses
Program segitiga_bilangan; crt;
Uses crt; var
Var i, j: integer;
i, j :integer; begin
begin clrscr;
clrscr; i := 1;
for i:= 1 to 5 do while (i <= 5) do
begin begin
for j:= 1 to i do j := 1;
begin while (j <= i) do
write(‘i*j,’ ‘); begin
end; write(i * j, ' ');
writeln; {untuk ganti baris} inc(j);
end; end;
readln; inc(i);
end. writeln;
{untuk ganti baris}
end;
readln;
end.
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 88
Pengertian Array
Array atau larik adalah tipe data bentukan yang terdiri dari sejumlah komponen dengan tipe yang
sama. Artinya, dapat menyimpan banyak data dalam satu variabel.

Sintaksis Array
Ketika kita mendeklarasikan array ke compiler, maka kita menciptakan hotel dengan nomor
kamar yang tersedia. Setelah berhasil mendeklarasikan array, maka kita dapat memberikan
nilai untuk setiap kamar-kamar yang tersedia dalam hotel yang tadi kita deklarasikan. Tipe
data array yang dapat digunakan antara lain: int, char, double, string, dan boolean.
Berikut cara mendeklarasikan array dalam kode program Pascal.
nama_Array: array[panjang_indeks] of tipe_Array
Array berdimensi 1 (satu) adalah : X : array [0..9] of integer;

Pada contoh di atas Anda telah mendeklarasikan variabel X bertipe Array yang memiliki
indeks 0 – 9 (10 larik) dengan tipe data integer. Artinya Anda dapat menyimpan 10
angka.
Berikut ini cara memberikan nilai pada array.
X[0] := 9; X[1] := 8; X[2] := 7; X[3] := 10; X[4] := 8;X[5] := 7; X[6] := 9; X[7] := 7; X[8] := 8;
X[9] := 10;
Perhatikan, X[0] := 9 menunjukkan bahwa X adalah nama larik, 0 adalah nilai indeks, 10
menunjukkan nilai integer. Sedangkan untuk mengakses nilai dari variabel : …
menggunakan namaVariabel[nomorIndeks], contoh: Writeln(X[0]);
Dalam praktiknya, array dipasangkan dengan satu fungsi perulangan.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 89


Jenis-jenis Array
Ada dua jenis tipe data array yaitu array satu dimensi, array dua dimensi dan array multi
dimensi. Jika array satu dimensi kita asumsikan sebagai deretan data, maka array berdimensi
dua mewakili suatu bentuk tabel atau matriks dengan indeks pertama sebagai baris dan indeks
yang kedua sebagai kolom dari tabel atau matriks. Berikut bentuk umumnya :
Nama_larik : Array [indeks_baris,Indeks_kolom] of Tipe_Array;
Contoh array satu dimensi dalam pascal dengan fungsi for to do.
Program ContohArray;
uses crt;
var data:array[0..4] of integer;
m,n,i : integer;
Begin
n:=4;
Write('Masukan 5 buah angka (1-10): ');
for i:=0 to n do
begin
write ('Data ke-',i+1,' = ');readln(data[i]);
end;

Write('data ke berapa yang ingin anda lihat? (1-5) :


');readln(m);

Write('Data Ke-',m,' = ',data[m-1]);


readln;
end.
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 90
Contoh array dua berdimensi dalam pascal dengan fungsi for to do.
Program Matriks;
uses crt;
var A:array[1..3,1..3] of integer;
i,j,m,n,k,l : integer;
Begin
Writeln('Program input matriks A');
writeln('-----------------------');
write('Banyaknya baris : ');readln(m);
write('Banyaknya kolom : ');readln(n);
for i:=1 to m do
begin
for j:=1 to n do
begin
write('A [',i,',',j,'] : ');readln(A[i,j]);
end;
writeln;
end;
writeln('Melihat Elemen Matrik A');
write('Baris ke-');readln(k);
write('Kolom ke-');readln(l);
Write('Elemen Matrik A baris ke-',k,' kolom ke-',l,' =',A[k,l]);
readln;
end.
Untuk mengakses array berdimensi dua kita dapat menggunakan
nested loop atau perulangan bersarang.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 91


Buatlah narasi, flowchart dan kode program untuk menampilkan data array satu dimensi yang
terdiri dari satu baris dengan bentuk : 1 2 3 4 … 10 dengan hasil eksekusi kode program
sebagai berikut.

Pembahasan :
Array satu dimensi berupa data baris berisi data bilangan bulat (integer) mulai dari 1 hingga 10. Data tersebut
berjumlah 10 data dan sebagai data terakhir adalah 10. Sehingga variabel array dideklarasikan dengan bentuk
N : array[1..10] of integer. Gunakan perintah write untuk mencetak data pada satu baris dan
tambahkan spasi untuk jarak antar data. Misalnya write(j, ‘ ‘) artinya cetak data j dan spasi. Spasi harus diapit
oleh tanda petik satu.
Kode program Pascal :
Narasi : Program ARRAY_DASAR;
1. Mulai uses crt;
2. Deklarasikan variabel array dengan tipe integer, variabel var j : integer;
kendali j untuk perulangan for n : array[1..10] of integer;
3. Mulai perulangan j, dengan j = 1 sampai j = 10 Begin
4. Tentukan nilai n[j]:=j clrscr;
5. Cetak nilai n[j] Flowchart writeln;
6. Ulangi langkah 3 for j:=1 to 10 do
7. Hentikan proses sementara Begin
8. Selesai n[j]:=j;
write(n[j],’ ‘);
End;
writeln;writeln;
writeln(‘Tekan sembarang tombol’);
readln;
End.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 92


Narasi Kode program Pascal :
1. Mulai Program ARRAY_DASAR;
2. Deklarasikan variabel a, variabel array uses crt;
dengan tipe integer, variabel kontrol var j,n : integer;
perulangan j untuk perulangan for data : array[1..50] of integer;
3.Input banyaknya data n Begin
4. Mulai perulangan j, dimana j=1 hingga clrscr;
j=n writeln;
5.Tentukan nilai data[j]:= 2j + (j-1) write('Banyaknya data = ');
6.Cetak nilai data[j] readln(n);
7. Ulangi langkah 4 writeln;
8. Hentikan proses sementara for j:=1 to n do
9. Selesai Begin
Flowchart data[j]:=2*j + (j-1);
write(data[j],' ');
End;
writeln;writeln;
writeln('Tekan sembarang tombol');
readln;
End.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 93


Narasi :
1. Mulai Flowchart
2. Deklarasikan var j, array A dengan tipe integer
3. Mulai perulangan untuk j=1 hingga j=4
4. Input data matrik A
5. Ulangi langkah 3
6. Mulai perulangan untuk j=1 hingga j=4
7. Tampilkan data matrik A
8. Ulangi langkah 6
9. Hentikan tampilan
10. Selesai
Kode program Pascal :
Program ARRAY_DASAR;
uses crt;
var j : integer;
A : array[1..4] of integer;
Begin
clrscr;
writeln;
for j:=1 to 4 do
Begin
write('Input data matrik A[',j,']= ');
readln(A[j]);
End;
writeln;writeln;
for j:=1 to 4 do
write(A[j],' ');
writeln;writeln;
writeln('Tekan sembarang tombol');
readln;
End.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 94


Narasi : Flowchart
1. Mulai
2. Deklarasikan var j, array A dengan tipe integer
3. Mulai perulangan untuk j=1 hingga j=3, setelah selesai
lanjutkan ke langkah 8
4. Mulai perulangan untuk k=1 hingga k=3, setelah selesai
lanjutkan ke langkah 7
5. Input data matrik A[j,k]
6. Ulangi langkah 4
7. Ulangi langkah 3
8. Mulai perulangan untuk j=1 hingga j=3, setelah selesai
lanjutkan ke langkah 13
9. Mulai perulangan untuk k=1 hingga k=3, setelah selesai
lanjutkan ke langkah 12
Kode program Pascal :
10. Tampilkan data matrik A[j,k] Program ARRAY_DASAR;
11. Ulangi langkah 9 uses crt;
12. Ulangi langkah 8 var j,k : integer;
13. Hentikan tampilan A : array[1..3,1..3] of integer;
14. Selesai Begin
clrscr;
writeln;
for j:=1 to 3 do
for k:=1 to 3 do
Begin
write('Input data matrik A[',j,',',k,']= '); readln(A[j,k]);
End;
writeln;writeln;
for j:=1 to 3 do
Begin
for k:=1 to 3 do
write(A[j,k],' ');
writeln;
End;
writeln;writeln;
writeln('Tekan sembarang tombol');
readln;
Sabtu, 29 Januari 2022 End. Syamsuardi, S.Pd, S.Kom 95
Narasi : Flowchart
1. Mulai
2. Deklarasikan variabel i, nama, nilai, jumlah
3. Tentukan nilai awal jumlah=0.
4. Mulai Perulangan i = 1 hingga i = 5
5. Input nama[i] dan nilai[i].
6. Ulangi langkah 3
7. Mulai Perulangan i = 1 hingga i = 5
8. Cetak nama[i] dan nilai[i].
9. Ulangi langkah 7
10. Cetak Jumlah dan rata-rata
11. Hentikan tampilan output
12.Selesai

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 96


Kode Program Pascal :
program Array_Dasar;
uses crt;
var
i, jumlah: integer;
nilai: array [1..5] of integer;
nama: array [1..5] of string[20];
rata: real;
begin
clrscr;
{Bagian Input Data}
for i := 1 to 5 do
begin
write('Nama : ');readln(nama[i]);
write('Nilai : ');readln(nilai[i]);
end;
clrscr;
{Bagian Judul}
writeln('Nama Nilai');
writeln('==========================');
{Bagian Output data }
for i := 1 to 5 do
begin
write(nama[i]);
write(' ');
writeln(nilai[i]);
jumlah := jumlah + nilai[i];
end;
writeln('=========================');
rata := jumlah / 5;
writeln('Jumlah Nilai = ', jumlah);
writeln('Nilai rata-rata = ', rata: 6: 2);
writeln;
Writeln('Tekan sembarang tombol');
readln;
end.

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 97


Kolaborasi antara Pascal, C++, Python dan Scratch
Bahasa Pemrograman PASCAL
program Kelajuan_mobil;
uses
crt;
var
waktu, jarak: integer;
t, s, kelajuan: real;
begin
write('Masukkan waktu: ');readln(waktu); //detik
write('Masukkan jarak: ');readln(jarak); //meter
t := waktu/3600; //jam
s := jarak/1000; //km Bahasa Pemrograman C ++
kelajuan := s/t; //km/jam #include <iostream>
write('Kelajuan mobil adalah : '); using namespace std;
writeln(trunc(kelajuan)); int main()
readln; {
end. int waktu, jarak;
cout<<"Waktu yang dibutuhkan mobil = ?
";
cin>>waktu;
cout<<"Jarak yang ditempuh mobil = ? ";
cin>>jarak;
cout<<"Kelajuan mobil adalah : ";
cout<<(jarak*60*60)/(waktu*1000);
cout<<" km/jam"<<endl;
}
Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 98
Kolaborasi antara Pascal, C++, Python dan Scratch
Bahasa Pemrograman PYTHON
waktu = int(input("Masukkan waktu dalam detik : "))
jarak = int(input("Masukkan jarak dalam meter : "))
print("Kelajuan mobil :", int(3.6*(jarak/waktu)),
"km/jam")

Bahasa Pemrograman SCRATCH

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 99


TERIMAKASIH ….SEMOGA BERMANFAAT

Sabtu, 29 Januari 2022 Syamsuardi, S.Pd, S.Kom 100

Anda mungkin juga menyukai