Anda di halaman 1dari 36

Kata Pengantar

Buku Pemrograman Dasar ini ditujukan untuk SMK/MAK bidang keahlian


Teknologi Informasi dan Komunikasi kelas XI semester 1. Buku ini dirancang untuk menjadi
buku pegangan siswa agar bisa digunakan untuk membantu pembelajaran yang
menerapkan Kurikulum 2013 (K13). Buku ini bukanlah pedoman utama dalam
pembelajaran berbasis Kurikulum 2013 tetapi buku ini hanya sebagai salah satu sumber
belajar yang mengarah pada penerapan Kurikulum 2013. Keberhasilan proses pembelajaran
bukan ditentukan semata-mata oleh buku ini tetapi lebih ditekankan pada bagaimana siswa
bisa lebih berkembang dengan menerapkan cara belajar dan berpikir scientific.

Buku ini sudah dirancang sedemikian rupa agar mudah dipelajari. Supaya siswa
lebih mudah menguasai setiap materi yang disajikan maka siswa diharapkan sudah memenuhi
standar ketuntasan belajar dalam pelajaran Pemrograman Dasar kelas X. Siswa diharapkan
banyak mencoba dan mengembangkan kreativitasnya dalam pembuatan program. Buku ini
menggunakan bahasa pemrograman Pascal dan compiler yang digunakan dalam penyusunan
buku adalah Free Pascal. Diharapkan siswa sudah terbiasa menggunakan compiler dan
Integrated Development Environment (IDE) Free Pascal.

Penguasaan materi buku ini bisa dilakukan dengan cara mempelajarinya secara
terurut mulai dari Bab I sampai Bab IV dan mempelajari setiap Kegiatan Belajar (KB) secara
terurut pula. Pada setiap Kegiatan Belajar siswa diminta untuk benar-benar membaca isi pada
bagian kegiatan Mengamati dan selanjutnya siswa diharapkan memunculkan pertanyaan dari
dirinya sendiri, meskipun dalam buku ini sudah disediakan beberapa pertanyaan yang berkaitan
dengan materi. Setiap pertanyaan yang sudah disediakan dalam buku ini bisa dijawab oleh
siswa setelah melakukan beberapa percobaan yang sudah disediakan pada kegiatan
selanjutnya. Setiap nomor pertanyaan akan bersesuaian dengan nomor eksperimen,
yaitu: pertanyaan nomor satu bersesuaian dengan eksperimen nomor satu, pertanyaan
nomor dua bersesuaian dengan eksperimen nomor dua, dan seterusnya
Kompetensi Inti:

K1. Menghayati dan mengamalkan ajaran agama yang dianutnya

K2. Menghayati dan mengamalkan perilaku jujur, disiplin, tanggungjawab, peduli


(gotong royong, kerjasama, toleran, damai), santun, responsif dan pro-aktif dan
menunjukkan sikap sebagai bagian dari solusi atas berbagai permasalahan dalam
berinteraksi secara efektif dengan lingkungan sosial dan alam serta dalam
menempatkan diri sebagai cerminan bangsa dalam pergaulan dunia.

K3. Memahami, menerapkan, dan menganalisis pengetahuan faktual, konseptual,


prosedural, dan metakognitif berdasarkan rasa ingin tahunya tentang ilmu
pengetahuan, teknologi, seni, budaya, dan humaniora dalam wawasan kemanusiaan,
kebangsaan, kenegaraan, dan peradaban terkait penyebab fenomena dan kejadian
dalam bidang kerja yang spesifik untuk memecahkan masalah.

K4. Mengolah, menalar, dan menyaji dalam ranah konkret dan ranah abstrak terkait
dengan pengembangan dari yang dipelajarinya di sekolah secara mandiri, bertindak
secara efektif dan kreatif, dan mampu melaksanakan tugas spesifik di bawah
pengawasan langsung.

Kompetensi Dasar:

1.1.Memahami nilai-nilai keimanan dengan menyadari hubungan keteraturan dan


kompleksitas alam dan jagad raya terhadap kebesaran Tuhan yang menciptakannya

1.2. Mendeskripsikan kebesaran Tuhan yang menciptakan berbagai sumber energi di alam

1.3. Mengamalkan nilai-nilai keimanan sesuai dengan ajaran agama dalam kehidupan
sehari- hari

1.4. Menunjukkan perilaku ilmiah (memiliki rasa ingin tahu; objektif; jujur; teliti; cermat;
tekun; hati-hati; bertanggung jawab; terbuka; kritis; kreatif; inovatif dan peduli
lingkungan) dalam aktivitas sehari-hari sebagai wujud implementasi sikap dalam
melakukan percobaan dan berdiskusi

Pembelajaran

Materi

1. Aritmatika dan Logika


2. Array
3. Operasi String dan KOnversi Data
4. Pointer
BAB I

Pengantar Pascal

Struktur Program Pascal


Secara ringkas, struktur suatu program Pascal dapat terdiri dari :
1. Judul Program
2. Tubuh Program
Tubuh program dibagi menjadi dua bagian utama :
a. Bagian deklarasi
- deklarasi label
- deklarasi konstanta
- deklarasi tipe
- deklarasi variabel/perubah
- deklarasi prosedur
- deklarasi fungsi
b. Bagian Pernyataan/Terproses

Cat : baris-baris komentar untuk memperjelas program diletakkan diantara tanda (* dan *)
atau { dan } .

1. Judul program
Judul program ini digunakan untuk memberi nama program dan sifatnya optional. Jika
ditulis harus terletak pada awal dari program dan diakhiri dengan titik koma (;).
Contoh penulisan judul program :
PROGRAM latihan;
PROGRAM latihan(input,output);
PROGRAM lat_1;
PROGRAM lat_satu(output);

2. Bagian Pernyataan/Terproses
Bagian ini adalah bagian yang akan terproses dan terdapat dalam suatu blok yang diawali
dengan BEGIN dan diakhiri dengan END (penulisan END diikuti dengan tanda titik).
Bagian ini berisi pernyataan / statamen yang merupakan instruksi program. Setiap
statemen diakhiri dengan tanda titik koma (;).
Bentuk umumnya adalah sbb :

BEGIN
...
statemen;
statemen;
...
END.
3. Bagian deklarasi
Bagian ini menjelaskan/memperkenalkan secara rinci semua data yang akan digunakan pada
suatu program. Dalam penulisannya tidak boleh sama dengan kata-kata cadangan (reserved
words) dan selalu diakhiri dengan titik koma (;).

Deklarasi label
Deklarasi label digunakan Jika pada penulisan program akan menggunakan statemen GOTO
(untuk meloncat ke suatu statement tertentu).
Contoh :
PROGRAM cetak;
LABEL satu,akhir;
BEGIN
WRITELN('AMIK');
GOTO SATU;
WRITELN('INTELCOM');
satu:
WRITELN('GLOBAL');
GOTO akhir;
WRITELN('INDO');
akhir:
END.

Bila program di atas dijalankan, output sbb :


AMIK
INTELCOM

Deklarasi konstanta
Deklarasi ini digunakan untuk mengidentifikasikan data yang nilainya sudah ditentukan dan pasti,
tidak dapat dirubah dalam program.

Contoh :
PROGRAM CETAK_2(OUTPUT);
CONST a = 50; (* selalu menggunakan tanda = *)
b = 'INDONESIA Merdeka';
BEGIN
WRITELN(a,' TAHUN ');
WRITELN(b);
END.

Bila program dijalankan, output sbb :


50 tahun
INDONESIA Merdeka
Deklarasi tipe
Deklarasi ini digunakan untuk menyebutkan tipe setiap data yang akan digunakan pada
program Pascal. Tipe data menentukan jangkauan nilai yang mungkin dari data yang
digunakan
Contoh :
PROGRAM SATU;
TYPE bulat = INTEGER; { selalu menggunakan = }
hasil,pecahan = REAL;
ket = STRING[20];
BEGIN
pecahan := 2.52;
bulat := 2;
hasil := pecahan + bulat;
ket := 'hasil penjumlahan = ';
WRITE(ket,hasil:4:2);
END.
Output program, sbb : hasil penjumlahan = 4.52

Deklarasi variabel/perubah
Deklarasi ini berisi data-data yang bisa berubah-ubah nilainya di dalam program.
Deklarasi variabel harus di letakkan setelah deklarasi tipe (jika ada).
Contoh :
VAR satu : INTEGER;
dua : INTEGER;
a : REAL;
b : REAL; { selalu menggunakan : }
BEGIN
satu := 5;
dua := 4;
a := 2.3;
b := 5+4*2.3; { hasil real }
WRITE('hasil = ',b:4:1);
END.
Output program : hasil = 14.2
Program diatas bisa ditulis sbb :
VAR satu,dua : INTEGER;
a,b : REAL;
BEGIN
...
statement;
...
END.
Contoh jika terdapat deklarasi tipe :
TYPE
bilangan = integer;
VAR
satu,dua,a : bilangan;
b : real;
BEGIN
...
statement;
...
END.

Deklarasi prosedur dan Fungsi


Program dapat dibagi menjadi beberapa bagian/subprogram, yang terdiri dari satu
program utama dan satu / lebih program bagian (bisa berupa prosedur / fungsi).
Deklarasi prosedure/ fungsi terletak pada subprogram yang menggunakannya.

Tipe Data
Tipe Data dapat terletak pada deklarasi variabel maupun padadeklarasi tipe.
Pascal menyediakan beberapa macam tipe data, yang terdiri dari :
1. Tipe data sederhana/skalar, terdiri dari :
1.1. Tipe data standar/predefinisi
1.1.1. bulat (integer)
1.1.2. real
1.1.3. karakter
1.1.4. string
1.1.5. logika (boolean)
1.2. Tipe data didefinisikan pemakai :
1.2.1. subjangkauan (subrange)
1.2.2. terbilang (enumerated)
2. Tipe data terstruktur, terdiri dari :
2.1. larik (array)
2.2. rekaman (record)
2.3. berkas (file)
2.4. himpunan (set)
3. Tipe data penunjuk (pointer)

1.1. Tipe data standar


1.1.1. Tipe data integer
Tipe integer adalah bilangan yang tidak mempunyai titik desimal/bilangan pecahan.
Integer terdiri dari beberapa tipe, yaitu :
- byte, dengan jangkauan nilai 0..255
- shortint, dengan jangkauan nilai -128..127
- integer, dengan jangkauan nilai -32768..32767
- word, dengan jangkauan nilai 0..65535
- longint, dengan jangkauan nilai -2147483648..2147483647

OPERASI ARITMATIKA DAN LOGIKA

Dewasa ini seiring dengan perkembangan teknologi informasi yang pesat,


perkembangan software-software yang digunakan untuk membantu setiap kegiatan manusia
juga semakin berkembang ke arah yang lebih baik. Sebagai dampak perkembangan software
yang begitu pesat maka kebutuhan akan seorang programer software yang handal pun juga
meningkat. Namun kebutuhan akan programer yang handal tidak diikuti dengan upaya
peningkatan sumber daya manusia yang memadai.

Siswa SMK yang nantinya diharapkan bisa memenuhi kebutuhan pasar software yang
ada, perlu adanya pemahaman mengenai dasar-dasar pemrograman yang baik. Dengan
pemahaman dasar-dasar pemrograman yang baik diharapkan ketika mengembangkan suatu
program dapat diminimalisir kesalahan-kesalahan dasar yang dapat mengakibatkan program
tidak dapat berjalan sebagaimana mestinya. Ada berbagai macam dasar-dasar
pemrograman yang harus dikuasai antara lain struktur program, variabel, operator, array dll.

Maka dalam bab ini, kita akan membahas dasar pemrograman yang berkaitan dengan
operator. Operator memiliki peran yang vital dalam sutu struktur program. Operator bertugas
untuk melakukan manipulasi-manipulasi terhadap suatu nilai variabel yang ada menjadi
nilai variabel yang diinginkan programmer.

Pada bab ini, kita akan mempelajari berbagai jenis operator yang ada dalam
bahasa pemrograman Pascal. Ada beberapa macam operator yang dikenal antara lain operator
aritmatika (arithmetic operator), operator relasi (relational operator), operator logika (logical
operator), operator Bitwise (Bitwise operator) dan operator penugasan (assignment operator).
1.1. Kegiatan Belajar 1. Operator Aritmatika

1.1.1. Tujuan Pembelajaran

Tujuan pembelajaran pada Kegiatan Belajar 1 tentang Operator Aritmatika adalah:

1. Siswa mengetahui berbagai jenis operator aritmatika yang digunakan dalam


pemrograman.
2. Siswa dapat menjelaskan pengertian operand dan operator.
3. Siswa dapat menjelaskan cara kerja dari operator aritmatika dalam suatu program.
4. Siswa dapat menggunakan operator aritamatika dalam program yang sederhana.

1.1.2. Aktivitas belajar siswa

1.1.2.1. Mengamati/ observasi

Ketika masih duduk di bangku sekolah dasar, pernahkah kamu menemui


permasalahan di bawah ini?. Permasalahan di bawah ini merupakan contoh masalah
operasi matematika dasar
yang dapat dijumpai dalam kehidupan sehari-hari.

Satu bulan yang lalu, Pak ketut membeli 3 ekor kambing. Kemudian, Kemarin Pak
Ketut membeli lagi 4 ekor kambing. Berapakah jumlah kambing Pak Ketut
sekarang?

Kemudian muncul pertanyaan, bagaimanakah cara untuk menyelesaikan permasalahan di


atas?. Coba kalian cermati cara yang digunakan untuk menyelesaikan permasalahan di atas :
Penyelesaian :

Pertama, Bulan lalu Pak Ketut membeli 3 ekor kambing.


Kedua, Kemarin Pak ketut membeli lagi 4 ekor kambing.Maka, jumlah kambing pak ketut :
3+ 4 = 7
Jadi, jumlah kambing Pak Ketut adalah 7 ekor.
Coba kalian cermati bagian ekspresi matematika yang digunakan untuk menyelesaikan
permasalahan di atas.

3+4=7

Bilangan 3 dan 4 dalam ekspresi matematika di atas bertindak sebagai Operand


sedangkan simbol “+” berperan sebagai operator. Lalu, Apa definisi dari operand dan
operator?. Untuk itulah pada bab ini kita akan mempelajari definisi operand dan operator, jenis-
jenis operator dan bagaimana cara menggunakan operator dalam bahasa pemrograman
Pascal.

Definisi Operator dan Operand

Operand adalah nilai atau data asal yang digunakan dalam suatu operasi.
Operator dapat didefinisikan sebagai simbol atau instruksi khusus yang digunakan
untuk memanipulasi operand.

Operator Relasional

Operator Relasional adalah operator yang digunakan untuk menentukan relasi


atau hubungan dari dua buah operand. Misalkan variabel a = 10 dan b = 12 maka :

Operator Simbol Deskripsi Contoh


Sama dengan Untuk mengecek nilai dari kedua
= operand, jika nilainya sama maka (a = b) salah
pernyataan tersebut bernilai benar.

Tidak sama Untuk mengecek nilai dari kedua


dengan operand, jika nilainya tidak sama (a <> b) benar
< maka pernyataan tersebut bernilai
> benar.
Untuk mengecek nilai dari operand
Lebih dari kiri lebih besar daripada operand
kanan. Jika nilainya lebih besar (a > b) salah
> maka pernyataan tersebut bernilai
benar.
Untuk mengecek nilai dari operand
Lebih dari kiri lebih besar atau sama dengan
sama operand kanan. Jika nilainya lebih (a >= b) salah
dengan > besar atau sama dengan maka
= pernyataan tersebut bernilai benar.
Untuk mengecek nilai dari operand
Kurang dari kanan lebih besar daripada
< operand kiri. Jika nilainya lebih (a < b) benar
besar maka pernyataan tersebut
bernilai benar.

Untuk mengecek nilai dari operand


Kurang dari kanan lebih besar atau sama
sama dengan < dengan operand kiri. Jika nilainya
= lebih besar atau sama dengan (a <= b) benar
maka pernyataan tersebut
bernilai
ben
ar.
Operator Aritmatika

Operator aritmatika adalah operator yang digunakan untuk melakukan operasi-operasi


perhitungan aritmatika seperti penjumlahan, pengurangan, pembagian, perkalian dll. Dalam
bahasa pemrograman Pascal operator aritmatika dapat dibagi menjadi 2, yaitu :

Operator Aritmatika Unair


Operator aritmatika unair adalah operator aritmatika yang hanya melibatkan 1 operand saja.
Operator Aritmatika Biner
Operator aritmatika biner adalah operator aritmatika yang melibatkan 2 buah operand.berikut
ini jenis operator dan kegunaannya dalam bahasa pemrograman pascal :

Simb
Operator ol Deskripsi Contoh
Penjumlahan + menambahkan suatu operand dengan operand 5 + 7 = 11
yang lain
Pengurangan - mengurangkan suatu operand dengan operand 5 – 7 = -2
yang lain
Perkalian * melakukan penjumlahan berulang pada suatu 5 * 7 = 35
operand
Pembagian / melakukan pembagian pada operand 10 / 2 = 5

Pembagian membagi 2 bilangan bulat (integer)


Bulat Div kemudian mengambil hasil bagi dan sisanya 7 div 2 = 3
dibuang
membagi 2 bilangan bulat (integer) kemudian
Modulus Mod mengambil 7 mod 2 = 1
sisanya dan hasil baginya dibuang.
Setelah mengetahui definisi dan kegunaan dari berbagai macam operator aritmatika,
berikut ini adalah contoh program sederhana yang memanfaatkan operasi aritmatika pada
FreePascal :

Contoh :
Jika diketahui a = 1 dan b = 2. Buatlah program pada FreePascal untuk memperoleh hasil
operasi
a+b!

program Penjumlahan;
var a,b:integer;
begin
a:=1;
b:=2;
Writeln('a + b = ', a+b);
Write('Press any key to continue...');
Readln;
end.

Contoh :
Diketahui sebuah persegi panjang dengan panjang 10 cm dan lebar 5 cm. Buatlah
program menggunakan FreePascal untuk menghitung luas dari persegi panjang tersebut!

program LuasPersegi;
var p,l:integer;
begin

p:=10;
l:=5;
Writeln('Luas Persegi = ', p*l ,’cm2’);
Write('Press any key to continue...');
Readln;
end.
Contoh.

Willy mempunyai 7 buah permen. Dia berencana akan membagi permen yang dimiliki kepada 3
orang adiknya dengan jumlah yang sama banyak. Dengan menggunakan FreePascal hitunglah
jumlah permen yang diterima masing-masing adik willy dan apakah ada sisanya?
program permen;

begin

writeln('permen yang diperoleh = ', 7div3);

writeln(‘sisa permen willy = ’,7mod3)

write('press any key to continue...');

readln;

end.

1.1.2.2. Menanya

Berdasarkan kegiatan mengamati, ada beberapa hal yang bisa diperhatikan dan
dibahas lebih lanjut. Beberapa pertanyaan yang berkaitan dengan operator aritmatika adalah:
1. Bagaimana jika operator minus (-) hanya melibatkan stu operand saja?

2. Bagaimana jika operator plus (+) hanya melibatkan satu operand saja?

3. Bagaimana jika kita salah meletakkan urutan operand dengan operator ? Misalnya a
dan b kemudian ditulis ab+, apa yang akan terjadi?
4. Bagaimana urutan proses penghitungan jika kita melibatkan lebih dari 1
operator matematika, misalkan a+b*c-d+e/f ?

Untuk menjawab pertanyaan-pertanyaan tersebut, siswa diharapkan bisa


melakukan kegiatan berikut dengan bimbingan guru.

Percobaan

Untuk mengetahui jawaban dari pertanyaan kedua yaitu bagaimana jika operator plus
(+) hanya melibatkan satu operand saja?,salin program berikut ke dalam Freepascal, kemudian
lakukan kompilasi (Compile / Alt+F9). Jika kompilasi menghasilkan pesan kesalahan
maka perhatikan kesalahan yang terjadi. Jika kompilasi berhasil lanjutkan dengan
menjalankan program (Ctrl+F9) dan amati hasilnya.
Percobaan Selanjutnya

program Aritmatika4;
uses crt;
var a,b,c,d,e,f:integer;
begin
clrscr;
writeln('Masukkan nilai a');
writeln('Masukkan nilai b');
writeln('Masukkan nilai c'); writeln('Masukkan nilai
d'); writeln('Masukkan nilai e'); writeln('Masukkan
nilai f');
writeln('=========================='); writeln('Hasil
dari a+b= ',a+b);
writeln('============================'); writeln('Hasil
dari a+b*c= ',a+b*c);
writeln('============================'); writeln('Hasil dari
a+b*c-d= ',a+b*c-d);
writeln('============================'); writeln('Hasil dari
a+b*c-d+e= ',a+b*c-d+e);
writeln('============================'); writeln('Hasil dari a+b*c-d+e/f=
',a+b*c-d+e/e:4:2);
writeln('============================');
readln;
end.

Tugas.
Buatlan program kalkulator sederhana dengan Input yang terdiri dari 2
Inputan yakni Nilai1 dan Nilai2 dan Output yang diharapkan adalah
menghasilkan Penjumlahan, Pengurangan, Perkalian dan Pembagian

2. Kegiatan Belajar 2. Pemanfaatan Operator Aritmatika

1.2.1. Tujuan Pembelajaran

Tujuan pembelajaran pada Kegiatan Belajar 2 tentang Pemanfaatan Operator Aritmatika


adalah :

1. Menggunakan definisi operator aritmatika dalam penyelesaian masalah sehari-hari,


seperti aplikasi bisnis atau permasalahan lainnya.

1.2.2. Aktivitas Belajar Siswa

1.2.2.1. Mengamati

Pada kegiatan belajar 1, kita telah mempelajari berbagai jenis operator relasi dan operator
aritmatika. Kita sering menjumpai berbagai macam masalah yang berkaitan dengan operasi
aritmatika sederhana seperti penjumlahan, pengurangan, pembagian dan perkalian. Namun
kebanyakan dari kita menyelesaikan masalah tersebut dengan pengoperasian secara manual
saja. Proses pengoperasian manual cenderung tidak efektif dan efisien. Untuk menghemat waktu
dan mendapatkan hasil yang akurat diperlukan suatu program yang dapat memudahkan dalam
menyelesaikan masalah tersebut. Setelah kita memahami penggunaan operator aritmatika maka
pada kegiatan belajar kali ini akan membahas mengenai pemanfaatan operator aritmatika untuk
menyelesaikan berbagai masalah sehari-hari dengan memanfaatkan Freepascal.
Misalnya kita diminta menyelesaikan permasalah dibawah ini menggunakan program
pascal :

Sebuah perusahaan komputer memiliki 5 unit penjualan dengan setiap unit memiliki laba per
bulannya adalah sebagai berikut :
1. unit 1 = Rp 2.456.750,00
2. unit 2 = Rp 2.738.900,00
3. unit 3 = Rp 1.578.000,00
4. unit 4 = Rp 1.875.000,00
5. unit 5 = Rp 2.123.000,00
akan dicari laba total dan rata-rata laba dari penjualan produk perusahaan komputer tersebut.

Tujuan dari penyelesaian masalah di atas adalah untuk mencari jumlah dan rata-rata laba dari
perusahaan komputer. Untuk menyelesaikan masalah tersebut dengan bahasa pemrograman
Pascal, kita perlu merancang program yang dapat menghitung jumlah dan rata-rata laba dari
kelima unit penjualan perusahaan komputer tersebut. Langkah pertama yang harus dilakukan
adalah menentukan input dan tipe data yang
dibutuhkan program yang akan dibuat. Apabila kita cermati, input dari masalah di atas adalah
laba dari setiap unit penjualan. Dari masalah tersebut kita dapat memisalkan :

Variabel a = laba dari unit penjualan 1


Variabel b = laba dari unit penjualan 2
Variabel c = laba dari unit penjualan 3
Variabel d = laba dari unit penjualan 4
Variabel e = laba dari unit penjualan 5

Dan variabel variabel tersebut bertipe integer. Kemudian kita harus mentranslasikan input di atas
menjadi kode yang dikenali oleh FreePascal, seperti di bawah ini :

//deklarasi tipe variabel

var a,b,c,d,e:integer;
rata,jumlah:real;

//input data

write('Masukkan laba dari toko a = Rp.');


readln(a);

write('Masukkan laba dari toko b = Rp.');


readln(b);

write('Masukkan laba dari toko c = Rp.');


readln(c);

write('Masukkan laba dari toko d = Rp.');


readln(d);

write('Masukkan laba dari toko e = Rp.');


readln(e);
Setelah menentukan input dari program yang akan dibuat maka langkah selanjutnya kita harus
menentukan cara atau metode untuk mengolah data input menjadi data yang dikehendaki. Dalam
masalah ini, data yang ingin dicari / ditampilkan adalah rata-rata dan jumlah laba dari semua unit
penjualan. Untuk memperoleh rata-rata dan jumlah laba maka kita harus melakukan perhitungan
sebagai berikut :

Maka dalam konteks masalah di atas, untuk mencari rata-rata dan total laba dari semua unit
penjualan adalah

Total laba = Laba Unit 1 + Laba Unit 2 + Laba Unit 3 + Laba Unit 4 + Laba Unit 5

Rata-rata laba = Total laba : 5

Kemudian kita translasikan perhitungan di atas menjadi kode pascal :

//Menghitung Total Laba


jumlah :=(a+b+c+d+e);
//Menampilkan Total laba
writeln('Jumlah laba dari kelima toko tersebut adalah Rp',jumlah:6:0);

// Menghitung Rata-rata Laba


rata :=((a+b+c+d+e)/5);

// Menampilkan Rata-rata Laba


writeln('laba rata-rata dari kelima toko tersebut adalah Rp',rata:6:0);

Setelah komponen deklarasi variabel, input dan proses pengolahan variabel telah dibuat maka
langkah selanjutnya adalah merangkai semua komponen menjadi satu dan melengkapinya
dengan komponen tambahan agar program dapat berjalan dan ditampilkan dengan baik.
Lengkapilah kode tersebut agar dapat berjalan sesuai yang diharapkan
Tugas 1

Sebuah Perusahaan Motor “Momogi” memiliki 8 dealer pemasaran di beberapa


Kabupaten di Sulawesi Selatan. Setiap dealer penjualan menghasilkan laba
penjualan yang berbeda-beda setiap bulannya. Buatlah sebuah program yang
digunakan untuk menghitung total laba dan laba rata-rata dari setiap dealer dalam
kurun waktu 1 bulan?

Tugas 2

Toko sepatu “Italy” akan memberikan diskon harga sebesar 10% untuk semua jenis
sepatu yang dijual di toko tersebut. Misalnya, Ali membeli sepasang sepatu ditoko
tersebut dengan harga sebelum didiskon adalah Rp 250.000,00. Berapakah harga
sepatu Ali setelah dikenai diskon sebesar 10%?

Kasus 3

Gaji bersih seorang pegawai dihitung dari gaji pokok dan tunjangan dipotong pajak
yang harus dibayar. Besar tunjangan adalah 15 % dari gaji pokok, dan besar pajak
adalah 10 % dari gaji pokok ditambah tunjangan. Buatlah programmnya dengan
menggunakan program PASCAL

1.3. Kegiatan Belajar 3. Pemanfaatan Fungsi Aritmatika


1.3.1. Tujuan Pembelajaran
Tujuan pembelajaran pada Kegiatan Belajar 4 tentang Pemanfaatan Fungsi Aritmatika
adalah :
1. Terampil membuat program yang menggunakan fungsi aritmatika.
2. Menggunakan definisi fungsi aritmatika dalam penyelesaian masalah sehari-hari, seperti
aplikasi bisnis atau permasalahan lainnya.
1.3.2. Aktivitas Belajar Siswa
1.3.2.1. Mengamati
Pada kegiatan belajar 3, kita telah mempelajari berbagai jenis fungsi aritmatika. Seperti
halnya operator aritmatika, fungsi aritmatika juga dapat kita manfaatkan untuk
mnyelesaikan permasalahan sehari-hari. Di bawah ini merupakan contoh masalah yang
dapat kita selesaikan dengan memanfaatkan
fungsi aritmatika pada FreePascal :
Permasalahan di atas meminta kita untuk menentukan panjang AC. Untuk mencari
panjang AC dapat memanfaatkan teorema Phytagoras yang telah dipelajari di bangku
sekolah dasar. Coba kalian ingat, bagaimanakah bentuk umum dari teorema
Phytagoras?

Ilustrasi di atas merupakan bentuk umum dari teorema phytagoras yang akan digunakan untuk
mencari panjang sisi miring dari masalah 1. Setelah itu kita harus mengaitkan bentuk umum dari
teorema Phytagoras dengan fungsi-fungsi aritmatika yang telah dipelajarari.
Dari bentuk umum Phytagoras, apabila diamati bentuk tersebut secara garis besar
memanfaatkan bentuk kuadrat dan bentuk akar. Dan dalam bahasa pemrograman Pascal juga
dimuat tentang fungsi SQR (x) dan SQRT (x) yang mana kedua fungsi itu mengacu pada operasi
kuadrat dan operasi akar dari suatu bilangan. Setelah itu, kita harus menyusun sourcecode yang
sesuai dengan masalah 1. Berikut ini alternatif code yang bisa digunakan untuk menyelesaikan
masalah 1 :
program Segitiga;
uses crt;
var a,b:integer;
c:real;
begin
clrscr;
writeln('=========================================');
writeln('Hitung sisi miring segitiga siku-siku');
writeln('=========================================');
writeln;
a:=3;
writeln('AB = ',a);
b:=4;
writeln('BC = ',b);
writeln('');
writeln('==========================================');
c:=sqrt(sqr(a)+sqr(b));
writeln('AC = ',c:1:0);
writeln('===========================================');
readln;
end.
Untuk mengetahui jawaban dari pertanyaan Apakah fungsi aritmatika dapat memecahkan
masalah terkait dengan jarak antara dua titik. Salin dan lengkapilah program berikut ke dalam
Freepascal, kemudian lakukan kompilasi (Compile / Alt+F9). Jika kompilasi menghasilkan pesan
kesalahan maka perhatikan kesalahan yang terjadi. Jika kompilasi berhasil lanjutkan dengan
menjalankan program (Ctrl+F9) dan amati hasilnya.

program Jarak;
uses crt;
var x1,x2,y1,y2:integer;
a:real;

begin

clrscr;
writeln('=================================');
writeln('Menghitung Jarak Antara 2 Titik');
writeln('=================================');
writeln;
//input variabel yang digunakan untuk titik A
writeln('Masukkan koordinat titik A(x1,y1)');
write('x1 = '); readln(x1);
write('y1 = '); readln(y1);
writeln;
//input variabel yang digunakan untuk titik B
writeln('Masukkan koordinat titik B(x2,y2)');
write('x2 = '); readln(x2);
write('y2 = '); readln(y2);
writeln;

//Menghitung jarak titik A dan B


a:= SQRT(SQR(x2-x1)+SQR(y2-y1));
//Menampilkan hasil perhitungan jarak A dan B
writeln('=================================');
writeln('Jarak Titik A dengan B : ',a:4:2,' satuan');
writeln('=================================');
readln();

end.
Tugas

Dua kota A berlokasi di titik (x1,y1) dan kota B berlokasi di titik (x2,y2) akan
dihubungkan dengan jalan tol. Biaya pembangunan jalan per kilometer sebesar
Rp 100 juta. Akn dicari biaya minimal yg harus disiapkan untu membangun
jalan tol tersebut.

1.4. Kegiatan Belajar 4. Operasi Logika


1.4.1. Tujuan Pembelajaran
Tujuan pembelajaran pada Kegiatan Belajar 5 tentang Operator Logika adalah :
1. Siswa dapat menjelaskan pengertian Operator Logika.
2. Siswa dapat menjelaskan cara kerja dari Operator Logika dalam suatu program.
3. Siswa dapat menggunakan Operator Logika dalam program yang sederhana.

1.4.2. Aktivitas Belajar Siswa


1.4.2.1. Mengamati
Operator Logika
Operator logika digunakan untuk menentukan nilai boolean dari satu atau beberapa
operand. Operator logika bekerja sebagaimana hukum-hukum logika yang ada dalam
hokum matematika. Di dalam Freepascal ada 4 buah operator logika yaitu : NOT, AND,
OR dan XOR.

STATEMENT KENDALI

BENTUK-BENTUK PERCABANGAN / PENYELEKSIAN KONDISI

1. IF-THEN
Bentuk struktur IF-THEN adalah sebagai berikut :
IF Kondisi THEN Statement
Ungkapan adalah kondisi yang diseleksi oleh statement IF. Bila kondisi yang diseleksi
terpenuhi, maka statement yang mengikuti THEN akan diproses, sebaliknya bila kondisi
tidak terpenuhi, maka yang akan diproses statement berikutnya.
Misalnya :
IF Pilihan = 2 THEN
BEGIN { jika kondisi terpenuhi, Yaitu jika pilihan = 2 }
......
......
END
ELSE { jika kondisi tidak terpenuhi, yaitu jika pilhan
tidak sama dengan 2}
BEGIN
.......
.......
END;

Contoh Program :
USES CRT;
VAR
Nilai : REAL;
BEGIN
WRITE('Jumlah Nilai :');
READLN(nilai); { Pemasukan data }
IF nilai >60 THEN { seleksi kondisi variabel nilai }
WRITELN('Lulus') { Dilaksanakan jika nilai lebih besar dari 60 }
ELSE
WRITELN('Tidak lulus'); { Dilaksanakan jika variabel nilai lebih kecil dari 60 }
END.
Hasil :
Jika kita Memasukan 40 pada varibel nilai, Maka program diatas akan mencetak
Tidak lulus.

IF tersarang (nested IF)


Struktur IF tersarang merupakan bentuk dari suatu statement IF berada di dalam
lingkungan statemen IF yang lainya. Bentuk statement IF tersarang sebagai berikut :

IF kondisi1 THEN atau IF Kondisi1 THEN


IF kondisi2 THEN BEGIN
statemen1 IF kondisi2 THEN
ELSE statemen1
statemen2; ELSE
statemen2
END;

2. CASE-OF
Struktur CASE-OF mempunyai suatu ungkapan logika yang disebut dengan selector dan
sejumlah statemen yang diawali dengan suatu label permasalahan (case label) yang
mempunyai tipe sama dengan selector. Statement yang mempunyai case label yang
bernilai sama dengan case label yang bernilai sama dengan nilai selector akan diproses
sedang statemen yang lainya tidak. Bentuk struktur dari CASE-OF :
CASE Variabel Kondisi OF
CASE- LABEL 1; STATEMENT 1;
CASE- LABEL 2; STATEMENT 2;
........
CASE- LABEL N; STATEMENT N;
END; { end dari case }
Daftar case label dapat berupa konstanta, range dari konstanta yang bukan
bertipe real.
Contoh program ;
PROGRAM nilai;
VAR
nil : CHAR;
BEGIN
WRITE('Nilai Numerik yang didapat :');
READLN(nil);
CASE nil OF
'A': WRITELN('SANGAT BAIK');
'B': WRITELN('BAIK');
'C': WRITELN('CUKUP');
'D': WRITELN('KURANG');
'E': WRITELN('SANGAT KURANG ');
END;
END.
hasil :
Nilai Numerik yang didapat : B BAIK
Tugas 1

Tugas 2

Tugas 3
BAB II. ARRAY

Setelah mengenal data tunggal, yaitu sebuah variabel yang hanya bisa menyimpan satu data
saja, kita akan belajar suatu struktur data yang mampu menyimpan beberapa data sekaligus.
Dalam kehidupan sehari-hari kita mungkin pernah melihat sebuah loker yang memiliki banyak
tempat penyimpanan, misalnya di tempat penitipan barang di supermarket. Untuk mempermudah
mengenali setiap tempat penyimpanan pada loker tersebut biasanya diberi nomor urut. Setiap
tempat pada loker memiliki kegunaan yang sama, yaitu sama-sama digunakan untuk menyimpan
barang pengunjung. Struktur data yang memiliki konsep serupa dengan ini dalam pemrograman
disebut dengan array. Array adalah sekumpulan data yang bertipe sama. Variabel bertipe array
memiliki kemampuan untuk menyimpan sekumpulan data yang mempunyai tipe sama.

Array adalah tipe data terstruktur yang terdiri dari sejumlah komponen komponen yang
mempunyai tipe sama. Komponen tersebut disebut sebagai komponen type, larik mempunyai
jumlah komponen yang jumlahnya tetap. Banyaknya komponen dalam larik ditunjukkan oleh
suatu index, dimana tiap komponen di array dapat diakses dengan menunjukkan nilai indexnya
atau subskript. Array dapat bertipe data sederhana seperti byte, word, integer, real, bolean,
char, string dan tipe data scalar atau subrange. Tipe larik mengartikan isi dari larik atau
komponen-komponenya mempunyai nilai dengan tipe data tersebut.
Contoh :
var
untai : array[1..50] of integer;

Pada contoh Array dengan nama untai telah dideklarasikan dengan tipe integer, dengan
jumlah elemen maksimum 50 elemen, nilai dari elemen array tersebut diatas harus bertipe
integer.
Contoh :
Program contoh_array_input;
uses crt;
var
bilangan : array[1..50] of integer;
begin
clrscr;
bilangan[1]:=3;
bilangan[2]:=29;
bilangan[3]:=30;
bilangan[4]:=31;
bilangan[5]:=23;
writeln('nilai varibel bilangan ke 3 =',bilangan[3]);
readln;
end.
Array juga dapat dideklarasikan bersama dengan tipe yang beragam seperti contoh dibawah ini
:
Program contoh_deklarasi_array_beragam;
uses crt;
var
NPM : array[1..20] of string[10];
nama : array[1..20] of string[25];
nilai : array[1..20] of real;
umur : array[1..20] of byte;
banyak,i : integer;
begin
clrscr;
write('Isi berapa data array');readln(banyak);
for i := 1 to banyak do
begin
write('NPM =');readln(npm[i]);
write('Nama =');readln(nama[i]);
write('Nilai=');readln(nilai[i]);
write('umur =');readln(umur[i]);
end;
{cetak varibel array}
writeln('NPM NAMA NILAI UMUR ');
for i:= 1 to banyak do
begin
writeln(npm[i]:10,nama[i]:25,nilai[i]:3:2,' ',umur[i]:3);
end;
READLN; end.
Untuk deklarasi array dapat digunakan beberapa cara seperti beri kut ini :
Type
Angka =string[20];
Var
nama : array [1..50] of angka;
begin
.
end.

Deklarasi tipe indeks subrange integer


Indeks pada array dapat tipe skalar atau subrange, tetapi tidak bisa real.
Contoh:
var
nilai : array[1..10] of integer;
Pada contoh ini array nilai mempunyai 10 buah elemen yaitu dari 1 sampai 10. Array tersebut
dapat dideklarasikan dengan type seperti berikut ini :
Type
skala = 1..10;
var
nilai : array [skala] of integer;
atau :
Type
skala = 1..10;
Y = array[skala] of integer;
var
nilai : Y;
atau :
Type
Y = array[1..10] of integer;
var
nilai : Y;
Atau :
const
atas =1;
bawah = 5;
type
y = array[atas..bawah] of integer;
var
nilai : y;

I. Deklarasi type indeks skalar


Indeks dari larik dapat berupa tipe skalar.
Contoh :
program deklarasi_indeks_array_skalar;
uses crt;
var
jum : array[(jan,feb,mar,apr,mei)] of integer;
begin
jum[jan]:=25;
jum[feb]:=45;
jum[mar]:=21;
jum[apr]:=23;
jum[mei]:=50;
writeln('Jumlah nilai bulan maret =',jum[mar]);
readln;
end.
dapat juga ditulis :
type
bln = (jan,feb,mar,apr,mei);
Var
jum : array[bln] of integer;
atau :
type
bln =(jan,feb,mar,apr,mei);
var
jum : array[jan..mei] of integer;

II. Deklarasi konstanta array


Array tidak hanya dapat berupa suatu varibel yang dideklarasikan di bagian deklarasi
variabel, tetapi dapat juga berupa konstanta (const).
Contoh :
program contoh_deklarasi_array_konstan;
uses crt;
const
tetap : array[1..4] of integer=(7,10,21,20);
var
i : integer;
begin
for i:= 1 to 4 do
writeln('Nilai Konstan array ke ',i:2,' =',tetap[i]);
readln;
end.
Konstanta array dapat juga berupa ketetapan dalam bentuk karakter seperti berikut.
Contoh :
program contoh_konstan_array_char_;
uses crt;
const
huruf : array[0..5] of char=('A','B','C','D','E','F');
VAR
i : integer;
begin
for i:= 0 to 5 do
writeln('Nilai konstan array ke',i:2,' = ',huruf[i]);
readln;
end.

Konstanta array dapat juga berupa string seperti berikut ini.


Contoh :
program constanta_array_string;
uses crt;
type
A = array [1..5] of string;
const
Nama : A = ('basic','pascal','cobol','paradox','dbase');
var
I : integer;
begin
for i:= 1 to 5 do
writeln('Nilai array ke-',i:2,'= ',nama[i]);
readln;
end.

Dalam pascal string merupakan array dari elemen- elemen karakter seperti berikut :
Contoh :
program string_adalah_array_tipe_char;
uses crt;
var
nama : string;
i : integer;
begin
nama:='Turbo Pascal';
for i:= 1 to length(nama) do
writeln('Elemen ',i,' dari ',Nama,'= ',nama[i]);
readln;
end.

Contoh program bilangan prima dengan menggunakan bantuan array.


program mencari_bilangan_prima_dengan_array;
uses crt;
var
prima : array[1..100] of integer;
i,j : integer;
bil : integer;
begin
clrscr;
for i := 2 to 100 do
begin
prima[i]:=i;
for j:= 2 to i-1 do
begin
bil := (i mod j); { i dibagi j dicek apakah 0}
if bil = 0 then prima[i]:=0;
{jika habis dibagi,berarti bkn prima}
end;
if prima[i]<> 0 then write(prima[i],' ');
{cetak array yg prima}
end; readln; end.

Contoh pengurutan data dengan metode buble sort, yaitu dengan cara penukaran,
dapat dilihat pada contoh dibawah ini :
Contoh program :
program penggunaan_array_untuk_sortir_buble_sort;
uses crt;
var
nil1 : array[1..100] of integer;
n,i,j,dum : integer;
begin
clrscr;
write('mau isi berapa data acak (integer) ='); readln(n);
for i := 1 to n do
begin
Write('Data Ke ',i,':');readln(nil1[i]);
end;

{* penyapuan proses}
for i:= 1 to n-1 do
begin
for j:= i to n do
begin
if nil1[j]<nil1[i] then
begin
dum:=nil1[j];
nil1[j]:=nil1[i];
nil1[i]:=dum;
end;
end;
end;
writeln;
writeln('Hasil Sortir');
for i := 1 to n do
write(nil1[i]:3);
readln;
end.

III. Array dua dimensi


Di dalam pascal Array dapat berdimensi lebih dari satu yang disebut dengan array
dimensi banyak (Multidimensional array), disini akan dibahas array 2 dimensi saja. Array
2 dimensi dapat mewakili suatu bentuk tabel atau matrik, yaitu indeks pertama
menunjukkan baris dan indeks ke dua menunjuk kan kolom dari tabel atau matrik.
Untuk mengetahui cara mendeklarasikan dari penggunaan aray dua dimensi dapat
dilihat pada listing program dibawah ini .
Contoh :
Program deklarasi_array_dua_dimensi;
uses crt;
var
tabel : array[1..3,1..2] of integer;
i,j : integer;
begin
clrscr;
tabel[1,1]:=1;
tabel[1,2]:=2;
tabel[2,1]:=3;
tabel[2,2]:=4;
tabel[3,1]:=5;
tabel[3,2]:=6;
for I := 1 to 3 do
begin
for J:= 1 to 2 do
begin
writeln('Elemen ',i,',',j,'= ',tabel[i,j]);
end;
end;
readln;
end.

IV. Alternatif deklarasi array dua dimensi


Ada beberapa cara dalam mendeklarasikan array dua dimensi, beberapa cara tersebut
dapat dilihat dibawah ini :
Contoh :
Var
tabel : array[1..3] of array[1..2] of byte;
atau :
type
matrik = array[1..3,1..2] of byte;
var
tabel : matrik;
atau :
Type
baris = 1..3;
kolom = 1..2;
matrik = array[baris,kolom] of byte;
var
tabel : matrik;
atau :
type
baris = 1..3;
kolom=1..2;
matrik=array[baris] of array[kolom] of byte;
var
tabel : matrik;

Dibawah ini akan diberikan listing program penggunaan array dua dimensi dalam
aplikasi penjumlahan matrik :
Contoh:
Program Penjumlahan_matrik;
uses crt;
var
matrik1,matrik2
, hasil : array[1..3,1..2] of integer;
i,j : integer;
begin
clrscr;
{ input matrik ke satu }
writeln(' Elemen matrik satu');
for i := 1 to 3 do
begin
for j := 1 to 2 do
begin
write('Elemen baris -',i,' kolom -',j,'= ');
readln(matrik1[i,j]);
end;
end;
{input matrik ke dua}
writeln('input elemen matrik dua');
for i:= 1 to 3 do
begin
for j:= 1 to 2 do
begin
write('Elemen baris -',i,' kolom -',j,'= ');
readln(matrik2[i,j]);
end;
end;
{proses penjumlahan tiap elemen}
for i := 1 to 3 do
begin
for j:= 1 to 2 do
begin
hasil[i,j]:=matrik1[i,j]+matrik2[i,j];
end;
end;
{proses cetak hasil}
for i:= 1 to 3 do
begin
for j:= 1 to 2 do
begin
write(hasil[i,j]:6);
end;
writeln;
end;
readln;
end.

V. Array sebagai parameter


Array dapat digunakan sebagai parameter yang dikirimkan baik secara nilai (by value)
atau secara acuan (by reference) ke procedure atau ke function. Procedure yang
menggunakan parameter berupa array harus dideklara sikan di dalam judul procedure
yang menyebutkan parameternya bertipe array.
Contoh :
program contoh_pengiriman_parameter_array_di_procedure;
uses crt;
const
garis ='---------------------------------------------------';
type
untai = array[1..10] of string[15];
bulat = array[1..10] of integer;
huruf = array[1..10] of char;
var
i,banyak : integer;
procedure proses(nama:untai;nilai:bulat);
var
ket : string;
abjad : char;
begin
writeln(garis);
writeln('Nama Nilai Abjad Keterangan');
writeln(garis);
for i := 1 to banyak do
begin
if nilai[i] > 90 then
begin
abjad:='A';
ket :='Istimewa';
end;
if (nilai[i]<90) and (nilai[i]>70) then
begin
abjad:='B';
ket :='Memuaskan';
end;
if (nilai[i]<70) and (nilai[i]>60) then
begin
abjad:='C';
ket :='Cukup';
end;
if (nilai[i]<60) and (nilai[i]>45) then
begin
abjad:='D';
ket :='Kurang';
end;
if nilai[i]< 45 then
begin
abjad:='E';
ket :='Sangat kurang';
end;
writeln(nama[i]:15,' ',nilai[i]:4,' ',abjad,' ',ket:15);
end;
writeln(garis);
end;
procedure masuk_data;
var
nama : untai;
nilai : bulat;
begin
write('banyak data =');readln(banyak);
for i:= 1 to banyak do
begin
clrscr;
writeln('Data ke - ',i);
write('Nama =');readln(nama[i]);
write('Nilai =');readln(nilai[i]);
end;
proses(nama,nilai);
end;
{modul Utama}
begin
masuk_data;
readln;
end.
Daftar Pustaka
Dani Pambudi dan Dwi Maryono. 2014. Pemrograman Dasar. Jakarta.
Ermayani Purba. 2016. Modul Pascal. Google.com

Anda mungkin juga menyukai