Senin, 05 Februari 2018

Modul Pemrograman Dasar Kelas X semester 2

Modul Pemrograman Dasar Kelas X semester 2


BAB I
PROGRAM DAN BAHASA PEMROGRAMAN

Menurut definisi,program komputer adalah kumpulan instruksi yang digunakan untuk mengatur komputer agar melakukan suatu tindakan tertentu. Jadi komputer tidak akan bisa apa-apa jika tidak ada program di dalamnya. Sebuah komputer atau laptop secanggih apa pun spesifikasinya tanpa program sistem operasi maka tidak ada gunanya.
Demikian juga untuk lebih optimal kemanfaatannya perlu dipasang berbagai program seperti pengolah kata, pengolah angka, pengolah grafis, program video, musik hingga game. Semua program tersebut pada dasarnya memberikan instruksi kepada komputer sedemikain rupa sehingga bisa melakukan berbagai macam hal sesuai dengan fungsi program tersebut. Orang yang mengembangkan program disebut dengan programmer.
Komputer bekerja dengan operasi-operasi biner, yaitu mengolah data-data berupa barisan biner 0 dan 1 sehingga tidak mungkin ketika seorang programmer memerintahkan untuk menulis pesan langsung dimengerti oleh komputer. Oleh karena itu harus ada suatu bahasa yang penghubung agar komputer mengerti instruksi atau perintah yang diberikan.Bahasa penghubung inilah yang disebut dengan bahasa pemrograman.
Bahasa Pemrograman adalah suatu instruksi standar untuk memerintahkomputer.Untuk menjadi sebuah program maka kode-kode yang sudah dituliskan dalam bahasa pemrograman diubah ke dalam bahasa mesin yang dimengerti oleh komputer dengan menggunakan interpreter atau compiler. Proses perubahan ini disebut dengan interprestasi atau kompilasi. Hasil kompilasi inilah yang menghasilkan program komputer.


Menurut kedekatannya dengan mesin komputer, bahasa pemrogaman di bagi menjadi beberapa tingkatan diantaranya:
1.      Bahasa Mesin
Bahasa mesin merupakan rangkaian instruksi yang terdiri dari kode biner, contohnya 0001110011. Bahasa ini menempati tingkatan yang paling rendah karena bahasa ini bisa langsung dieksekusi oleh processor, sehingga bahasa mesin sering kali digunakan untuk kompilasi oleh compiler pada bahasa pemrograman lain, yang lebih tinggi tingkatnya.
2.      Bahasa Tingkat Rendah
Bahasa tingkat rendah merupakan rangkaian instruksi menggunakan kode-kode singkat (kode mnemonic) contohnya bahasa Assembly.
3.      Bahasa Tingkat Menengah
Bahasa tingkat menengah merupakan rangkaian instruksi gabungan antara bahasa manusia dengan kode-kode simbolik, contohnya {,},?,<,>&&,$,dsb. Yang termasuk bahasa menengah yakni bahasa C.
4.      Bahasa Tingkat Tinggi
Bahasa tingkat tinggi merupakan rangkaian instruksi yang menggunakan unsur kata-kata manusia sehingga lebih mudah untuk dimengerti contohnya begin, end, if, for, while, and, or dsb. Untuk bahasa ini diperlukan compiler untuk mengompilasi ke dalam bahasa mesin ehingga dimengerti komputer. Yang termasuk kategori ini adalah Pascal dan Basic

Mengenal Bahasa Pascal
Dalam buku Pemrograman Dasar ini, digunakan bahasa Pemrograman Pascal. Mengapa Pascal? Seperti yang dijelaskan sebelumnya bahasa pemrograman Pascal, selanjutnya disingkat bahasa Pascal, adalah salah satu bahasa tingkat tinggi, yang menggunakan perintah-perintah sebagaimana bahasa sehari-hari. Dalam Bahasa Pascal digunakan perintah-perintah sepertiread, write, pernyataan if then, while do, repeat until, begin,end, dan sebagainya yang dimengerti oleh kebanyakan orang, sehingga menjadi bahasa Pascal mudah dipelajari, khususnya untuk mengenalkan pemrograman, melatih kemampuan algoritma dan pemecahan masalah.
Bahasa Pascal pertama kali dirancang oleh Profesor “Niklaus Wirth” dari Technical Uneversity di Zurich, Switzerland pada tahun 1971. Nama Pascal sendiri terinspirasi nama seorang matematikawan Perancis, Blaise Pascal yang pertama kali menciptakan mesin penghitung. Bahasa Pascal kala itu dikembangkan untuk memudahkan para mahasiswa dalam mempelajari pemrogaman secara sistematis

Mengenal Tools/Framework Pengembangan Program
Seperti yang telah disampaikan sebelumnya bahwa Pascal termasuk bahasa pemrogaman tingkat tinggi sehingga dibutuhkan sebuah compiler atau tools pengembang yang berfungsi menterjemahkan bahasa kedalam bahasa yang dimengerti komputer.
Beberapa compilerPascal diantaranya GNU Pascal, Free Pascal, Dev Pascal dan Turbo Pascal, dan Delphi. Dari beberapa compiler tersebut, untuk pembelajaran buku ini menggunakan FreePascal.FreePascal memiliki keunggulan yakni cocok digunakan untuk berbagai platform Sistem Operasi diantanya: DOS,Linux, Windows, FreeBSD, PalmOs dan masih banyak yang lain. Tools ini gratis (freeware) dan dapat didownload di www.freepascal.org. Selain sebagai compiler, kita bisa langsung menggunakan FreePascal sebagai editor, sehingga kita bisa membuat dan mengedit kode sekaligus mengkompilasi menjadi sebuah aplikasi.

BAB II
STRUKTUR BAHASA PEMROGAMAN PASCAL

Secara umum, struktur kode dari sebuah program komputer terdiri dari dua bagian utama yaitu bagian judul dan blok program. Sedangkan blok program terdiri dari bagian deklarasi dan pernyataan. Struktur kode program mirip atau dapat dikatakan sama denganstruktur algoritma, ada judul, deklarasi dan pernyataan (deskripsi). Yang membedakan hanya pada aturan penulisan, dimana dalam bahasa pemrograman, bahasa yang digunakan sudah baku dan detail, sehingga tidak menoleransi kesalahan-kesalahan kecil yang tidak sesuai dengan sintaksnya, meskipun hanya titik, koma, atau tanda petik saja.
Contoh struktur kode program dengan Bahasa Pascal dapat dilihat pada Gambar 1.1.
Judul Program
Judul program digunakan untuk mengidentifikasikan nama program yang dibuat. Untuk penulisan judul program sifatnya optional jadi boleh dicantumkan atau tidak, namun untuk keperluan identifikasi lebih baik judul ada dan diberi nama sesuai dengan tujuan program. Nama program diawali dengan kata Program, sebagai kata baku dalam Pascal, diikuti dengan nama zprogram atau identifier.
Aturan pemberian nama identifer, dalam hal ini termasuk judul program adalah sebagai berikut.
1.    Nama identifier harus dimulai dengan karakter huruf alfabet a-z atau A-Z.
2.    Setelah karakter pertama, dapat dilanjutkan dengan karakter afanumerik (angka maupun huruf)
dan underscore (_).
3.    Dalam penulisan identifier tidak boleh menggunakan karakter-karakter berikut ini.
~ ! @ # $ % ^ & * ( ) + ` - = { } [ ] : " ; ' <> ? , . / |
4.    Tidak boleh menuliskan identifier dengan nama yang sama pada kata kunci dari Pascal, seperti
and, array, begin, case, const, div, do, downto, else, end, file, for, forward, function, goto, if, in, label, mod, nil, not, of, or, packed, procedure, program, record, repeat, set, then, to, type, until, var, while, with
5.    Jika ingin tetap digunakan, maka kata tersebut harus dirangkai dengan kata/karakter yang lain.
Misal program_if, begin1.


Gambar 1.1. Struktur kode program dengan Bahasa Pascal
Berikut ini contoh pemberian nama Progam yang benar.
Program LuasLingkaran;
Program Luas_Lingkaran
Program Luas2;
Program L_uas;
Berikut ini contoh nama program yang salah
Program Luas Lingkaran;
Program Luas-Lingkaran;
Program Luas^Lingkaran.
Program 2Luas;
Di akhir nama program harus diikuti dengan tanda semicolon/titik koma (;).
Identifier juga digunakan untuk memberi nama variabel ,konstanta, sub program seperti function dan prosedur, sehingga format penamaan harus sesuai dengan aturan di atas.
Deklarasi Program
Sebagaimana dalam algoritma, bagian deklarasi adalah bagian persiapan di mana semua hal yang diperlukan oleh program pada bagian deskripsi didefinisikan di sini. Yang termasuk dari bagain deklarasi adalah sebagai berikut.
1.    Unit, yaitu fungsi-fungsi tambahan dari Pascal, cara memanggilnya adalah dengan menggunakan kata kunci Uses. Sebagai contoh pada program di atas adalah penggunaan Uses crt.Uses crt diperlukan karena kode program menggunakan perintah clrscr untuk membersihkan layar. Perintah ini disediakan oleh unit crt.
2.    Konstanta, yaitu suatu nilai yang besarnya tetap (konstan) selama program dijalankan
3.    Deklarasi Variabel, yaitu identifer atau nama-nama untuk menyimpan nilai beserta dengan tipe datanya.
4.    Deklarasi Tipe data baru yang didefinisikan oleh programmer
5.    Prosedur dan fungsi
Penjelasan lengkap mengenai komponen bagian deklarasi akan dibahas pada Bab 2 nanti.

Bagian Pernyataan/Statement
Pada bagian ini dituliskan urutan-urutan instruksi yang perlu dieksekusi oleh program. Aturan penulisan;
1.    Bagian program inti diawali dengan Begin (tanpa diikuti tanda baca) dan diakhiri dengan End (diikuti tanda titik (.) )
2.    Dalam Pascal penggunaan huruf besar dan kecil tidak dipermasalahkan (tidak sensitive-case)
3.    Untuk setiap perintah atau pernyataan, diakhiri dengan titik koma (;), boleh ada lebih dari 1 pernyataan dalam tiap baris.
Contoh:
Pernyataan1;
Pernyataan2;
Boleh juga dituliskan
Pernyataan1;Pernyataan2;
Namun demikian agar penulisan lebih terstruktur dan mudah dalam menemukan adanya kesalahan, lebih baik satu pernyataan satu baris dan digunakan aturan indentasi sebagaimana ketika menyusun algoritma pada Semester 1.
4.    Jika ada struktur percabangan (kondisi bersyarat) atau perulangan dengan lebih dari satu pernyataan, diawali dengan begin dan diakhiri dengan end dan titik koma (;)
Contoh:
If (kondisi) then
Begin
Pernyataan_If1;
Pernyataan_If2;
End;
Jika pernyataan dlam struktur hanya satu saja maka Begin dan End boleh dihilangkan
If (kondisi) then
Pernyataan_If1;
5.    Komentar dituliskan di antara tanda kurung {}
Contoh
Program Luas_lingkaran; {Program ini menghitung luas lingkaran}
uses crt;
varr : integer;
L : real;
Tulisan “Program ini menghitung luas lingkaran” tidak akan tercetak pada program yang sudah jadi, karena diletakkan di antara kurung { } maka ini hanya sebagai komentra untuk menerangkan bagian Judul mengenai apa tujuan program. Hal ini memudahkan orang lain untuk memahami atau mengedit program tersebut.
Sebagai tambahan, dalam bahasa Pascal, penulisan write atau WRITE atau Write dianggap sama karena tidak case-sensitive seperti di Bahasa C. Demikian juga dengan nama identifier a atau A, luas atau Luas, Phi atau PHI dianggapsebagai identifier yang sama.
Untuk lebih jelasnya perhatikan contoh-contoh berikut.
Contoh 1
Program Pascal yang paling sederhana adalah sebagai berikut.
Program di atas hanya terdiri dari begin dan end saja, tapi dapat dijalnkan oleh Pascal, tanpa ada
kesalahan. Namun demikian tidak ada output apapun dalam program ini.
Contoh 2
Program di atas meskipun tanpa judul dapat dijalankan oleh Pascal, di mana dalam program tersebut menampilkan isi dari variabel a, yang sudah dideklarasikan di awal. Tulisan di antara kurung { } adalah komentar yang tidak akan dieksekusi oleh program. Komentar ini bertujuan untuk memberikan informasi kepada pengguna mengenai kode program yang dituliskan.
Contoh 3
Program Menghitung Luas Segitiga

Kode program ini lebih lengkap, ada judul, bagian deklarasi, dan bagian pernyataan. Dari program
diatas maka dapat diketahui algoritma dalam bahasa natural sebagai berikut.
Algoritma LuasSegitiga
Persiapkan variable Luas,a,t bertipe real
Langkah-langkah
1. Meminta inputan nilai alas
2. Membaca nilai input dan menyimpan dalam variable a
3. Meminta inputan nilai tinggi
4. Membaca nilai input dan menyimpan dalam variable t
5. Melakukan perhitungan luas segitiga dengan rumus
½ ( a * t ), dan menyimpannya dalam variable Luas
6. Menampilkan hasil Luas

Berikut ini penjelasan kode program satu demi satu.
1.    Judul Program, nama programnya adalah Luas_segitiga
2.    Bagian Deklarasi, diantaranya
Ø Uses crt; ini digunakan untuk menyiapkan layar di awal program.
Ø Var Luas,a,t: real, artinya menyiapkan variabel-variabel seperti Luas, a, t sekaligus tipedatanya yaitu bilangan real.
3.    Bagian Pernyataan, terdiri dari beberapa urutan instruksi:
Ø Begin Digunakan sebagai penanda akan memulai instruksi program
Ø Clrscr, digunakan untuk membersihkan layar
Ø Write(‘Masukan nilai alas=’); Meminta input nilai alas
Ø Readln(a); Menyimpan inputan nilai dalam variable a
Ø Writeln(‘Masukan nilai tinggi=’); Meminta input nilai tinggi
Ø Readln(t); Menyimpan inputan nilai dalam variable t
Ø Luas:=1/2 (a * t); Proses perhitungan Luas Segitiga
Ø Writeln(‘Luas Segitiganya adalah=’, Luas); Menampilkan luas segitiga
Ø End. Digunakan untuk mengakhiri instruksi program.




BAB III
STANDAR INPUT OUTPUT

Dalam pemrograman, secara garis besar ada tiga tahap, yaitu INPUT, PROSES, dan OUTPUT. Ketiganya terangkai dalam bagian pernyataan dalam kode program. Standar masukan
pada Pascal adalah keyboard, sedangkan standar output dalam Pascal adalah monitor. Artinya
dalam Pascal umumnya semua input dimasukkan lewat keyhasilnya juga pada file. board dan
output ditampilkan melalui layar monitor. Selain itu, dalam Pascal juga dikenal standar input output
lain, yaitu dengan melakukan operasi pada file, artinya kita bisa membaca input dari file dan
mencetak pada file.
Standar Output.
Lihat kembali algoritma pada kasus1 Untuk menampilkan data ke layar digunakan instruksi Write dan Writeln.Apa bedanya?
Kode program 1 hanya menggunakan perintah write sedangkan kode program 2 menggunakan
perintah writeln. Hasilnya pada kode program satu menghaslkan output semua dalam satu baris, sedangkan kode program 2, satu perintah cetak ditulis pada satu baris. Apa kesimpulannya?
Ada beberapa perbedaan untuk instruksi write dan writeln:
1.    Write digunakan untuk menampilkan data ke layar tanpa disertai pergantian baris baru, jadi data berikutnya akan menyambung pada baris yang sama
2.    Writeln digunakan untuk menampilkan data ke layar kemudian mencetak baris baru.
Perintah write atau writeln dapat digunakan untuk menuliskan beberapa hal berikut:
a. Nilai
Contoh :
Write (5); {menuliskan nilai bilangan bulat 5}
Writeln(‘Halo apa kabar’); {menuliskan string ‘halo apa kabar’)
Write (‘a’); {menuliskan karakter ‘a’}
Writeln(3.14); {menuliskan bilangan real 3.14}
b. Variabel
Contoh:
A:=5;
Kata:=’Halo apa kabar’;
StatusLulus:=True;
Write(A); {menuliskan isi variabel A}
Writeln(Kata); {menuliskan isi variabel Kata}
Writeln(StatusLulus); {menuliskan isi variabel StatusLulus}
c. operasi nilai-nilai atau variable
Contoh:
writeln(3+2); {menuliskan hasil jumlahan }
write(A*2); {menuliskan hasil perkalian A*2}
write('Aku'+’Bisa'); {menuliskan string ‘Aku’ diikuti ‘bisa’}
d. Gabungan ketiga bentuk di atas (nilai, variabel, dan operasinya)
Contoh:
Write(‘Luas segitiga= ‘, Luas) {menuliskan ‘Luas segitiga = ‘, diikuti nilai variabel luas}
Write(a,b); {menuliskan nilai variabel a diikuti nilai variabel b}
Writeln (Hasil penjumlahan adalah ‘, a+b);
Write (‘Luas segitiga dengan alas ‘, a, ‘dan tinggi ‘, t, ‘adalah ’, Luas);
{menuliskan string diikuti nilai a, kemudian string, nilai t, string, dan nilai Luas}


Standar Output
Perhatikan kembali berbagai macam bentuk output pada Kasus 2.
Input berupa bilangan 2, 3, dan 4 dibaca oleh program melalui perintah membaca input. Dalam
Pascal perintah dasar membaca input adalah Read dan Readln. Apa bedanya? Kode-kode berikut
adalah kode dari pembacaan ketiga inputan di atas.

Berdasarkan contoh kode program di atas, apa perbedaan antara perintah read dan readln?
1.    Read mengambil/membaca nilai dari layar yang diinptakan melalui keyboard menyimpannya
dalam variable dan kursor tetap pada baris input.
2.    Readln mengambil/membaca nilai dari layar yang diinputkan melalui keyboard kemudian
memerintahkan ganti baris (kursor turun pada baris berikutnya)
Contoh1
Program Latihan1;
Uses crt;
Var a: String[30];
b : Integer;
c: String[3];
Begin
Clrscr;
Write(‘Masukan Nama:’); {Menampilkan string ‘Masukkan nama:’}
Readln(a); {Menyimpan data dalam variabel a bertipe string}
Write(‘Masukan Umur:’); {Menampilkan string ‘Masukkan Umur’}
Readln(b); {Menyimpan data dalam variabel b bertipe Integer}
Write(‘Masukan Pendidikan Terakhir:’);
Readln(c); {Menyimpan data dalam variable c bertipe String}
Write(‘Nama Saya’,a, ‘Umur Saya’,b, ‘Pendidikan Terakhir:’,c);{Menampilkan hasil}
Readln;
End.
Maka ketika dijalankan akan muncul:
Mengatur format penulisan
Secara default, perintah write atau writeln menuliskan dengan rata kiri, namun kita juga bias menuliskan dengan rata kanan, dengan memberikan ruang yang lebih pada data yang akan dituliskan.
Contoh :
Write (nama:20); {nama adalah variabel bertipe string}
Write(tinggi_badan:10); {ringgi_badan adalah variabel dengan tipe integer}
Write(5/2:10); {menuliskan nilai 5/2 dengan diberikan ruang 10 karakter}
Khusus untuk penulisan bilangan real, dapat juga dituliskan format berapa angka di belakang koma. Misalkan sebagai berikut.
Write(Rerata:10:2)
Artinya nilai rerata dituliskan pada ruang den an 10 digit dengan dua angka di belakang koma.

BAB IV
KOMPILASI PROGRAM DAN PERBAIKAN KESALAHAN
Kompilasi Program
Yaitu proses menerjemahkan kode program dalam bahasa pemrograman, ke bahasa mesin yang
sehingga dapat dimengerti dan dijalankan oleh komputer. Proses kompilasi sendiri dibantu oleh
translator yaitu program yang mengambil inputan sebuah program yang ditulis pada satu bahasa
program ke bahasa yang lain.
Pada bahasa tingkat tinggi termasuk di dalamnya bahasa Pascal translatornya adalah Compiler, dimana salah satunya adalah Free Pascal. Dalam proses kompilasi, dilakukan proses pengecekan untuk mengetahui kebenaran dalam hal penulisan instruks, apakah sudah sesuai kaidah dan struktur penulisan Bahasa Pemrogrman tersebut atau belum. Jika belum, maka proses kompilasi tidak akan diteruskan hingga benar. Untuk melakukan kompilasi pada Compiler Free Pascal maka berikut langkah-langkahnya:
1.    Membuat File baru klik File->New File
2.    Kemudian simpan data klik File->Save beri nama
3.    Setelah itu perhatikan pada menu bar terapat menu compile pilih compile.
4.    Kemudian untuk menjalankan program maka pada menu bar pilih menu Run atau dengan
menekan Ctrl + F9
Namun demikian meskipun dilihat dari kaidah (sintaks) sudah benar beldum berarti program yang dihasilkan sudah benar. Perlu dilihat juga apakah output yang dihasilkan sudah sesuai dengan yang diharapkan atau belum. Jika belum bisa jadi terjadi kesalahan di luar sintaks, seperti kesalahan logika (logical error) atau run-time error.

Memperbaiki Kesalahan
Dari penjelasan di atas ada beberapa tipe kesalahan yang mungkin bisa terjadi. Secara garis besar, kita dapat membedakan jenis kesalahan-kesalahan dalam pembuatan program sebagai berikut.
1.    Syntax Error
Jenis eror ini adalah jenis yang paling sering dijumpai, erornya program dikarenakan adanya penulisan perintah yang diketik tidak sesuai dengan aturan bahasa pemrogaman.Contohnya penulisan perintah tidak diakhiri dengan semicolon (;), lupa menyebutkan tipe data pada variabel, salah dalam penulisan identifer, salah penulisan dalam operator-operator perhitungan, pemberian tanda titik atau tanda petik, dan sebagainya. Meskipun sering muncul eror jenis ini pada umumnya mudah untuk diatasi karena Compiler Messageakan mendeteksi kesalahan pada baris ke berapa, biasanya kesalahan penulisan ada pada baris tersebut dan atau pada baris sebelum/sesudahnya.
2.    Run-Time Error
Runtime Eror terjadi manakala program menuliskan kode untuk sesuatu yang tidak memungkinkan. Misalnya mengakses file yang tidak ada, terjadi kesalahan alokasi memori, atau bisa juga bukan karena penulisan progam tapi karena tidak sengaja menghapus file penting aplikasi.Untuk eror jenis ini dapat dilakukan pencegahan dengan memberikan validasi atau penanganan error (error handling/exception) sehingga kesalahan tidak berakibat berhentinya program di tengah jalan.
3.    Logical Eror
Jenis Eror ini cukup sulit untuk dilacak, karena biasanya tidak dituliskan kesalahan pada compiler massage, namun saat program dijalankan belum sesuai dengan yang kita harapkan.Untuk mengatasinya maka perlu dilakukan pengecekan secara runtut alur kerja program yang berkaitan.

Tugas

1.    Apa yang dimaksud dengan bahasa pemrogaman?
2.    Sebutkan fungsi tools/framework bahasa pemrogaman!
3.    Apakah kelebihan tools/framework Free Pascal dibanding yang lain?
4.    Sebutkan klasifikasi tingkatan bahasa pemrogaman, dan masing-masing perbedaannya
5.    Apakah yang dimaksud dengan struktur bahasa pemrograman?
6.    Sebutkan apa saja struktur bahasa pascal!
7.    Sebutkan aturan penulisan masing-masing bagian pada struktur bahasa pascal!
8.    Apa yang dimaksud dengan mengkompilasi program?
9.    Apakah yang di maskud dengan read dan readln
10.              Apakah yang dimaskud dengan write dan writeln





BAB V
VARIABEL, TIPE DATA, KONSTANTA, OPERATOR, DAN EKSPRESI

Variabel
Kalian masih ingat apakah arti variabel? Iya, variabel adalah suatu nama atau simbol untuk menyimpan sebuah nilai. Atau lebih tepatnya variabel adalah sebuah nama yang diberikan olehprogrammer yang berfungsi sebagai tempat penyimpanan data, sehingga dapat dimanipulasi oleh program. Seperti pada contoh pada source code di atas, Progam Biodata diperlukan variabel nama, alamat dan umur. Pada program menghitung volume diperlukan variabel r,t, V yang mewakili jari-jari, tinggi, dan volume tabung. Sedangkan pada Program UAN diperlukan variabel NilaiMat, NilaiIngg, NilaiInd, rerata, dan stsLulus.
Variabel ini ditentukan sesuai dengan kebutuhan dari solusi permasalahan. Karena Volume tabung adalah Volume = pr2t, maka tentu kita membutuhkan variabel untuk mewakili Volume, jari-jari dan tinggi, dan satu lagi adalah p sebagai konstanta. Jadi ada 3 variabel dan 1 konstanta. Demikian juga dengan kelulusan, karena tergantung dari nilai ketiga mata pelajaran, maka variabel-variabel yang dibentuk pun menyesuaikan.
Jenis nilai yang disimpan variabel tentu berbeda-beda sesuai dengan kebutuhan, ingat kembali
materi pada semester 1. Variabel namadan alamat tentu menyimpan nilai berupa susunan huruf, atau
yang dulu dikenalkan sebagai string (dalam Pascal disebut juga string), Volume, r, dan t menyimpan
nilai bilangan real, sedangkan variabel nilaiMat, nilaiInd menyimpan nilai bilangan bulat (mungkin juga
bilangan real, sesuai kebutuhan). Jenis-jenis data inilah yang disebut sebagai TIPE DATA. Oleh karena itu dalam mendeklarasikan variabel harus didefinisikan juga tipe data yang akan digunakan. Hal ini sekaligus digunakan program untuk menentukan besarnya memori sebagai tempat penyimpanan variabel tersebut.
Sintaks Penulisan Variabel Berikut ini adalah sintaks pendeklarasian variabel.
var nama_variabel:tipe_data;
Jika ada beberapa variabel dengan tipe data sama, sintaksnya adalah:
var namaVar1, namaVar2, namaVar3:tipe_data;
Jika ada beberapa variabel dengan tipe data berbeda-beda sintaksnya adalah:
var namaVar1:tipe_data1;
namavar2:tipe_data2;
namaVar3:tipe_data3;

Pemberian Nama Variabel
Pemberian nama variabel sebagaimana pemberian nama identifier seperti yang dijelaskan pada Bab 1, sebagai berikut.
1.    Nama identifier harus dimulai dengan karakter huruf alfabet a-z atau A-Z.
2.    Setelah karakter pertama, dapat dilanjutkan dengan karakter afanumerik (angka maupun huruf) dan underscore (_).
3.    Dalam penulisan identifier tidak boleh menggunakan karakter-karakter berikut ini. ~ ! @ # $ % ^ & * ( ) + ` - = { } [ ] : " ; ' <> ? , . / |
4.    Tidak boleh menuliskan identifier dengan nama yang sama pada kata kunci dari Pascal, seperti and, array, begin, case, const, div, do, downto, else, end, file, for, forward, function, goto, if, in, label, mod, nil, not, of, or, packed, procedure, program, record, repeat, set, then, to, type, until, var, while, with
5.    Jika ingin tetap digunakan, maka kata tersebut harus dirangkai dengan kata/karakter yang lain. Misal program_if, begin1.
Aturan tersebut juga berlaku untuk pemberian nama konstanta, tipe data buatan, dan sub program (procedure dan function).
Berikut ini contoh pemberian nama variabel yang benar.
Jari_jari, jari2, Volume_Balok, LuasPersegi, Luas_segi3, record3.
Berikut ini contoh nama variabel yang salah
Jari^2, jari-jari, Volume Balok, p*l, 2jari, alam@t

Konstanta
Variabel dapat diturunkan dari kebutuhan input, output, dan segala sesuatu yang dilibatkan dalam pengolahan input menjadi output. Pemberian nilai variabel dapat dilakukan melalui perintah baca (input) maupun dari pernyataan pemberian nilai (assignment), dengan demikian nilai variable dapat berubah-ubah selama proses dijalankan. Jika diperlukan suatu nilai yang tetap, maka dibutuhkan konstanta. Dalam hal ini, sebagai contoh karena besaran nilai p adalah tetap, tidak berubahselama perhitungan maka p yang diwakili dengan variabel Phi dideklarasikan sebagai konstanta. Jadi konstanta adalah variabel yang mempunyai nilai tunggal, dimana nilai tunggal tersebut tidak dapat berubah ketika program sudah dieksekusi. Sebagaimna juga variabel constants mempunyai tipe data tertentu yang menyesuaiakan nilai yang diberikan dalam deklarasi konstanta.
Sintaks deklarasi penggunaan konstanta adalah sebagai berikut :
ConstNama_konstanta = nilai_konstanta;
Contoh deklarasi konstanta pada beberapa tipe :
ConstA = 100;
ConstPi = 3.14;
ConstOperator = ‘+’;
ConstPesan = ‘Selamat Datang’;

Tipe Data
Tipe data merupakan klasifikasi jenis data dari variabel atau object yang terdapat dalam program computer. Jenis data yang digunakan dalam variabel merupakan bagian penting dalam pengkodean pemrograman computer. Ketepatan pemilihan data pada variabel atau konstanta akan sangat menentukan pemakain sumber daya komputer (terutama memori komputer). Sehingga dalam pemilihan tipe data yang akan digunakan dalam variabel dan konstanta akan mempengaruhi efesiensi dan kinerja dari program tersebut.
Secara garis besar tipe data dalam Pascal dibagi menjadi 3 kategori, yaitu tipe data sederhana (tunggal), Tipe data pointer dan tipe data terstruktur (stuctured data). Masing-masing kategori dapat dibagi lagi menjadi beberapa jenis lagi seperti pada Gambar 2.1.
1.    Tipe Data Sederhana
Tipe data sederhana merupakan tipe data paling dasar yang terdapat dalam pascal. Tipe data ini mewakili satu objek yaitu hanya satu nilai yang dapat disimpan dalam tipe data ini sehingga disebut juga tipe data tunggal. Tipe data sederhana dibagi menjadi dua yaitu tipe data standar dan User Defined.
a)    Standar, merupakan tipe data yang umum dijumpai dalam berbagai bahasa pemrograman. Tipe data standar meliputi integer, real, character dan boolean.
          i.     Integer
Tipe data integer merupakan tipe data berupa bilangan bulat. Tipe data ini cocok untuk variabel-variabel seperti: jumlah anak, bulan, tahun, dan sebagainya. Berat badan, tinggi, suhu, panjang, lebar, nominal uang dapat juga dimasukkan dalam tipe data ini, meskipun dapat juga dimasukkan ke dalam tipe data lain seperti bilangan real.
Dalam bahasa Pemrograman, terkait dengan penggunaan memori untuk menyimpan variabel, maka tipe data integer, dibagi menjadi beberapa kelas sesuai dengan kebutuhan. Sebagai contoh untuk variabel jumlah anak, maka kita dapat memperkirakan batasan berapa maksimalnya. Jumlah anak biasanya tidak leboh dari 10, maka dipilih tipe data integer dengan jangkauan yang kecil, yaitu byte. Sedangkan untuk nominal uang, karena tidak mungkin bernilai negatif, dan jangkaunnya yang tinggi (bisa mencapai ratusan juta atau milyar) bisa digunakan tipe data cardinal, dan sebagainya. Hal ini penting untuk diperhatikan agar program kita lebih efisien.
Tabel jenis-jenis tipe data integer dapat dilihat pada Tabel 2.1.


Gambar 2.1. Macam-macam tipe data dalam Pascal

Penulisan deklarasi dengan tipe data integer adalah sebagai berikut :
var nama_variabel : integer; atau var nama_variabel : byte;
atau var nama_var1, nama_var2,nama_var3:integer;

        ii.     Real
Tipe data real merupakan tipe data yang berisi bilangan yang bisa memuat angka di belakang koma. Berbeda dengan integer yang hanya menyimpan bilangan bulat. Dalam tipe data real nilai yang tersimpan dapat berupa bilangan desimal. Untuk mengidentifikasi variabel dengan tipe data real, dapat dilihat dari operasi yang dibutuhkan dalam proses perhitungan. Jika variabel tersebut diperoleh dari operasi dari bilngan lain bertipe data real maka tipe datanya juga real. Sebagai contoh Luas lingkaran, volume tabung dan kerucut termasuk bertipe data real karena melibatkan perkalian dengan Phi3.14 sehingga hasilnya pasti ada angka di belakang koma. Selain itu adanya operasi bagi (‘/’) juga menghasilkan bilangan real. Sebagai contoh Luas segitiga = (alas*tinggi)/2 termasuk mempunyai tipe data real, demikian juga rata-rata, suhu konversi dalam Reamur dan
Farenheit, karena melibatkan operasi pembagian. Selain berdasarkan operasi, variabel dengan tipe data bilangan real tergantung kebutuhan. Misalkan menghitung tinggi badan. Kita bisa melakukan pembulatan tanpa koma sehingga tinggi badan bisa kita masukkan tipe data integer. Jika ingin lebih teliti, menggunakan koma, bisa menggunakan tipe data real. Sebagaimana pada tipe data integer, tipe data bilangan real ini dapat dibagi menjadi beberapa kelas sesuai dengan jangkauannya seperti pada Tabel 2.2.

Sedangkan penulisan deklarasi variabel dengan tipe data real adalah sebagai berikut.
var nama_variabel : real; atau var nama_variabel : double;
atau var nama_var1, nama_var2,nama_var3:real;
      iii.     Character
Tipe data character merupakan tipe data yang menyimpan karakter yang berupa angka maupun huruf. Tipe data character dalam pascal meliputi char dan string. Tipe data char hanya meyimpan 1 karakter saja. Variabel yang cocok untuk tipe data karakter adalah variabel yang nilainya hanya terdiri dari satu karakter saja, contoh: JenisKelamin (nilainya bisa diwakili ‘L’ untuk laki-laki atau ‘P’ untuk perempuan), Pilihan yang bernilai iya dan tidak (bisa diwakili dengan ‘Y’ atau ‘N’), dan lain-lain.
Tipe data string merupakan susunan dari karakter-karakter dengan batas maksimum 255 karakter, tipe data string digunakan untuk menyimpan data text, misal nama, alamat dan sebagainya. Penulisan deklarasi variaebl dengan tipe data characterdan string adalah sebagai berikut :
var nama_variabel : char;
atau
var nama_variabel : string[batasMaksimal];
Keterangan: batasMaksimal diganti dengan banyaknya karakter yang maksimal dapat ditampung oleh variabel tersebut.
Contoh:
var Gender:char;
var pilihan:char;
var nama:string[20];
var alamat:string [50];
      iv.     Boolean
Tipe data Boolean merupakan tipe data yang hanya mempunyai dua nilai yaitu trueataufalse. Tipe data ini biasanya digunakan variabel yang hanya mempunyai nilai benar atau salah saja. Misalkan statusLulus, bisa bernilai True atau False; remidi, bias bernilai true atau false, Menikah, bisa bernilai true atau false, pdan sebagainya. Penulisan deklarasi variabel dengan tipe data ini adalah ebagai berikut.
Var nama_variabel:boolean;
b)   User defined
Tipe data ini merupakan tipe data yang dibuat oleh sang programmer. Jadi setiap programmer
dapat membuat tipe data baru yang dibutuhkannya. User defined meliputi enumerated dan
subrange.
1)   Enumerated
Tipe data enumerated merupakan tipe data yang didefinisikan oleh programmer. Hal ini memungkinkan programmer untuk membuat tipe datanya sendiri, yang terdiri dari kumpulan symbol. Contoh penulisan code program tipe data enumerated adalah sebagai berikut:
type hari = (senin,selasa,rabu,kamis,jumat,sabtu,minggu);
var nama_hari : hari;
Dari contoh diatas, baris pertama menunjukkan pembuatan tipe data baru yaitu hari yang berisi nama-nama hari, kemudian di baris kedua menunjukkan deklarasi penggunaan tipe data yang telah dibuat tadi.
2)   Subrange
Tipe data subrange merupakan tipe data yang memungkinkan programmer untuk
mendefinisikan beberapa nilai dari tipe data tertentu. Misalkan seorang programmer ingin
membuat tipe data nilai yang dimana tipe data ini berisi bilangan integer dari 1 sampai 10.
Contoh penulisan code program tipe data enumerated adalah sebagai berikut:
type nilai = 1..10;
var nilai_mtk : nilai;
Dari contoh diatas, baris pertama merupakan tipe data baru yang berisi bilangan integer
dari satu sampai 10. Berikut beberapa contoh lain untuk tipe data subrange :
Positif = 1..32500;
Skor = 0.00..4.00;
Abjad = ‘Z’..’A’;
Range = ‘1’..9;
Count = -15..15;


2.    Tipe Data Pointer
Sama seperti tipe data sederhana, pointer merupakan tipe data yang dapat menyimpan satu nilai saja. Bedanya adalah, sesuai dengan namanya tipe data ini berfungsi menunjuk, yaitu alamat memori yang digunakan suatu variabel dengan tipe data tertentu. Misalkan a adalah variable dengan tipe data integer. Variabel point adalah variabel dengan tipe data pointer dari integer. Ketika variabel point diberi nilai dengan alamat a (alamat memori a), maka kita bisa mengubah isi a melalui variabel point tersebut dengan langsung mengakses ke memori tanpa melalui variable a. Tipe data ini sangat berguna untuk membangun suatu program dengan data yang dinamis. Lebih jelasnya akan dipelajari di kelas XI nanti.

3.    Tipe Data Terstruktur
Berbeda dengan tipe data sederhana dan pointer, yang hanya dapat menyimpan satu nilai saja, tipe data terstruktur dapat menyimpan beberapa nilai dalam satu variabel. Tipe data terstruktur adalah tipe data yang terdiri dari data-data tunggal, yang diorganisasi oleh suatu tipe data terstruktur. Sebagai contoh, terdapat data mengenai nilai ulangan 20 anak, apakah kita harus membuat 20 variabel untuk menyimpan masing-masing nilai tersebut? Tentu ini akan menjadikan program komputer menjadi tidak efisien. Mungkinkah kita bisa mengumpulkan semua variable tersebut dalam satu wadah? Iya, bisa yaitu menggunakan tipe data terstruktur. Inilah pentingnya data terstruktur dalam algoritma atau pemrograman. Berikut ini jenis-jenis tipe data terstruktur.
a)    Array
Array dapat diartikan sebagai larik, atau barisan. Array digunakan untuk menyimpan banyak data dengan tipe data yang sama. Sebagai contoh, dalam sebuah algoritma diberikan input sejumlah data ulangan anak, misalkan 40 anak. Jika untuk menyimpan data itu salah satu alternatifnya adalah memberikan variabel Nilai1, Nilai2, dan seterusnya, hingga Nilai40. Bagaimna jika 100 anak? Maka cara ini sangatlah tidak efisien. Data seperti ini dapat disimpan dalam satu wadah yang disebut dengan Array. Untuk lebih jelasnya perhatikan ilustrasi berikut :
Berikut deklarasi variabel dengan tipe data array pada Pascal.
Typenama_array : Array[nilai array] of tipe_data;
Contoh :
Typenilai : Array[1..40] of integer;
b)   Record
Jika Array hanya mampu menyimpan sejumlah data yang bertipe sama, record, bias menampung datat-data dengan tipe yang berbeda. Sebagai contoh data seorang siswa, bias terdiri dari Nama, Nomor Induk Siswa, Alamat, Tempat Lahir, Jenis Kelamin, Kelas Umur. Agar data tersebut menjadi satu kesatuan informasi maka perlu suatu wadah untuk menampung tipe data seperti itu, yaitu RECORD. Berikut deklarasi tipe data record dalam pascal :
Typenama_record = record
variabel_1 : tipe_data_1;
variabel_2 : tipe_data_2;
….
variabel_n : tipe_data_n;
end;
Contoh:
Typebuku = record
judul :string[30];
tahun_terbit = integer;
pengarang = string[30];
end;

c)    File
Dalam pemrograman pascal terdapat tipe data file, dimana data input dan output dari suatu program dapat disimpan dalam bentuk file.txt. Selain menyimpan pascal daoat juga membaca dan mengedit file.txt tersebut. Sebagai contoh kita ingin memproses suatu nilai ulangan dari 20 anak yan telah tersimpan dengan format text. Tentunya sangat tidak efisien jika data harus diinput satu persatu. Agar data yang sudah ada dapa terbaca dalam pascal maka kita perlu tipe data file. Penjelasan mengenai penggunaan tipe data ini dibahasa pada Buku Pemrograman DasarKelas XI.

Berikut ini contoh bagaimana menentukan variabel dan tipe data dalam suatu permasalahan.
Contoh 1.
Budi seorang programmer di SMP Nusantara akan membuat program untuk menampilkan data nilai siswa, dimana data yang akan ditampilkan meliputi : nomor induk siswa, nama siswa, nilai matematika, nilai bahasa Indonesia, nilai bahasa inggris dan rata-rata nilai. Dimana data yang diinputkan mempunyai peraturan yaitu
1)   nomor induk siswa terdiri dari 6 karakter,
2)   nama siswa maksimal 30 karakter,
3)   nilai matematika, nilai bahasa Indonesia dan nilai bahasa inggris merupakan bilangan bulat skala 1 – 100,
4)   rata – rata nilai berupa bilangan desimal dengan dua digit angka di belakang koma, yang diperoleh dari penjumlahan nilai matematika, bahasa Indonesia dan bahasa inggris dibagi tiga.
Contoh data yang akan diinputkan adalah sebagai berikut :
Nomor induk siswa : A45789
Nama Siswa : Slamet Sentosa
Nilai Matematika : 80
Nilai Bahasa Indonesia : 76
Nilai Bahasa Inggris : 70
Rata – rata nilai : 75.33
Bantulah budi untuk menentukan variabel dan tipe data yang tepat dagian deklarasinya dalam
Program!
Jawab:
Untuk menentukan variabel dan tipe data yang tepat, kita harus memperhatikan data apa saja yang akan diinputkan ke dalam program. Pada contoh diatas data yang diinputkan meliputi : nomor induk siswa, nama siswa, nilai matematika, nilai bahasa Indonesia, nilai bahasa inggris dan ratarata nilai. Kemudian kita perhatikan contoh data yang akan diinputkan. Dengan demikian dapat ditentukan variabel dan tipe data sebagai berikut.
1)   Coba perhatikan data nomor induk siswa pada contoh di atas. Jika kita perhatikan, data nomor induk siswa terdiri dari 1 huruf dan 5 angka, maka tipe data yang tepat adalah string. Karena string dapat menyimpan data berupa huruf atau karakter dan angka. Sehingga dapat ditentukan nama variabel NIS sebagai string dengan panjang maksimal 6 karakter.
2)   Kemudian perhatikan data nama siswa pada contoh diatas. Data nama siswa terdiri dari huruf, maka tipe data yang tepat adalah string. Karena string dapat menyimpan data berupa huruf atau karakter.Sehingga dapat ditentukan nama variabel Nama sebagai string. Panjangnya dapat diperkirakan maksimal 30.
3)   Selanjutnya, perhatikan data nilai matematika. Data tersebut berupa bilangan bulat maka tipe data yang tepat adalah integer. Jika kita perhatikan, data nilai bahasa Indonesia dan data nilai bahasa inggris mempunyai data yang sama dengan nilai matematika. Maka tipe data yang tepat adalah integer. Karena tipe data integer dapat menyimpan bilangan bulat. Sehingga dapat ditentukan nama variabel Nilai_Mat, Nilai_BInd, Nilai_Inggris sebagai integer.
4)   Berikutnya, perhatikan data rata-rata nilai. Data tersebut di dapat dari penjumlahan nilai matematika, bahasa Indonesia dan bahasa inggris dibagi tiga. Karena ada operasi pembagian, maka tipe data yang tepat adalah real.
Deklarasi variabel dan tipe data
Var NIS : string[6];
Nama: string[30];
Nilai_Mat : integer;
Nilai_BInd : integer;
Nilai_Inggris : integer;
Rerata : real;
Pada nomor induk siswa akan menyimpan data dengan maksimal 6 karakter, sedangkan pada nama siswa maksimal 30 karakter. Sehingga, walaupun user menginputkan data lebih dari 30 karakter, maka data yang tersimpan tetap 30 karakter.

EKSPRESI
Ekspresi yaitu sesuatu yang jika dievaluasi/diproses menghasilkan suatu nilai. Sebagai contoh dimasukkan nilai a adalah 30 dan b adalah 5.
a*b memberikan nilai 150
a/b memberikan nilai 6.00
a mod b mememberikan nilai 0
(a mod b)=0 memberikan nilai TRUE.
Selanjutnya simbol-simbol *, /, mod dan = dsiebut sebagai operator dan nilai yang dioperasikan disebut operan. Ketika nilai dari ekspresi diberikan kepada variabel lain maka disebut sebagai assignment.
d:=a*b;
e:=a/b;
c:=(a mod b =0)
Dalam Pascal assignment ditandai dengan := (titik dua sama dengan). Selain ituperlu diperhatikan bahwa operasi yang dilakukan menentukan tipe data dari variabel yang diberi nilai. Variabel d tetap integer, e bertipe real, sedangkan c menjadi boolean.

OPERATOR
Operator adalah sebuah symbol yang memberitahukan compiler pascal untuk melakukan sebuah operasi matematika maupun operasi logika. Ada beberapa jenis operator dalam pemrograman pascal diantaranya perator aritmatika, operator relasional, operator Boolean
1.    Operator aritmatika
Operator aritmatika adalah operasi hitung dari bilangan-bilangan. Terdapat dua macam tipe data bilangan yaitu integer dan bilangan real. Operator-operator yang berlaku keduanya hampir sama,  kecuali untuk bagian pembagian. Berikut ini adalah operator-operator untuk tipe data integer dan bilangan real.Operator Aritmatika pada Bilangan Integer

2.    Operator relasional
Operator relasional adalah operator yang menghubungkan nilai dari variabel. Hasil ekspresi dengan operator ini adalah nilai kebenaran True atau False. Berikut operator relasional dalam Pascal.
Operator relasional tidak hanya berlaku pada tipe data bilangan (integer dan real) namun berlaku pula untuk tipe data lain seperti karakter, string maupun boolean.
Sebagai contoh:
‘a’ < ‘c’ memberikan nilai true
if (Nama)=’Dwi’ then ....
If (StatusLulus=True) then ....
While (n>100) do ....
.
Operasi relasional seringkali muncul pada kondisi bersyarat, yaitu pemenuhan suatu syarat untuk melakukan proses lanjutan. Meskipun pembahasan kondisi bersyarat masih pada Bab selanjutnya, tak ada salahnya kita mengenal bentuknya terlebih dahulu untuk memahami pentingnya operasi relasional.

3.    Operator Boolean
Operator Boolean adalah operator yang digunakan pada sebuah statement. Berikut beberapa operator Boolean pada pascal :



BAB VI
STRUKTUR PERCABANGAN

1.    Percabangan 1 Kondisi
Struktur percabangan dengan satu kondisi pada Bahasa Pascal mempunyai sintaks
sebagai berikut.
if (kondisi) then
Pernyataan;
Jika pernyataan lebih dari satu maka dituliskan
if (kondisi) then
Begin
Pernyataan1;
Pernyataan2;
dst;
end;
Perhatikan permasalahan berikut.
a)    Sebuah Toko Baju memberlakukan diskon akhir tahun sebesar 20% untuk semua koleksi yang dijual. Namun diskon akan dinaikkan menjadi 25% jika total belanjaan lebih dari 200ribu rupiah. Untuk itu toko tersebut membutuhkansebuah program untuk menghitung jumlah uang yang harus dibayarkan oleh pelanggan untuk baju-baju yang telah dibeli.
b)   Di sebuah perusahaan gaji pegawai teridri dari gaji pokok, tunjangan keluarga dan dikurangi 30 ribu untuk asuransi kesehatan pekerja. Gaji pokok tiap pekerja berbeda-beda sehingga perlu diinputkan oleh operator, sedangkan tunjangan keluarga dihitung sama untuk semua karyawan, sebesar 10% dari gaji pokok. Khusus bagi karyawan dengan masa kerja lebih dari 20 tahun maka total gajinya akan ditambahkan dengan tunjangan pengabdian sebesar 500 ribu. Untuk itu persahaan tersebut membutuhkan program perhitungan gaji para karyawannya.
Jika dilihat pada permasalahan di atas, pada kasus 1, setiap pembelanjaan dapat diskon sebesar 20% dari harga normal. Namun jika total belanjaan lebih dari 200 ribu maka diskonnya menjadi 25%, maka hal ini dapat dinyatakan dalam algoritma sebagai berikut.
Pertama tentukan semua variabel terlebih, dahulu. Ada hargaTotalBelanja, prosentase diskon (skala 1-100), besar diskon, dan TotalBayar. Selanjutnya dibuat algoritma berikut.
Algoritma DiskonBaju
Variabel hargaNormal, ProsenDiskon,:integer
BesarDiskon, hargaAkhir:bilangan real
1) READ TotalBelanja
2) ProsenDiskon=20
3) IF (TotalBelanja>=200000) THEN
4) ProsenDiskon=25
5) BesarDiskon=(ProsenDiskon/100)*TotalBelanja
6) TotalBayar=TotalBelanja-BesarDiskon
7) WRITE TotalBayar
8) END

Mengapa data harga normal, prosen diskon dengan besar diskon dan harga akhir mempunyai tipe data yang berbeda? Hal ini dikarenakan, dalam perhitungan besar diskon melibatkan operasi / yang akan menghasilkan bilangan real, sedangkan harga akhir hasil mengurangkan harga normal (integer) dengan harga diskon (real) sehingga menghasilkan bilangan real juga. Selanjutnya algoritma di atas akan dikonveris ke dalam bahasa pemrograman Pascal.
Karena pseudocode yang kita bahas adalah pseudocode berbasis Pascal, maka tidak ada perubahan yang berarti. Dalam bahasa pascal, struktur percabangan dengan 1 kondisi dituliskan,
if (kondisi) then
Pernyataan;
Jika pernyataan lebih dari satu maka dituliskan
if (kondisi) then
Begin
Pernyataan1;
Pernyataan2;
dst;
end;
Sekarang kita lihat bagaimana menyajikan algoritma di atas dalam bahasa Pascal.
Program DiskonBaju;
Uses crt;
var hargaNormal, ProsenDiskon:integer;
BesarDiskon, hargaAkhir: real;
Begin
Clrscr;
write(‘Masukkan total harga pembelian: ‘ );
readln( TotalBelanja);
ProsenDiskon:=20;
if (TotalBelanja>=200000) then
ProsenDiskon:=25;
BesarDiskon=(ProsenDiskon/100)*TotalBelanja;
TotalBayar=TotalBelanja-BesarDiskon;
writeln(‘Total harga yang harus dibayar ad alah : ‘, TotalBayar:6:2);
end.

2.    Percabangan Dengan 2 Kondisi
Bentuk umum struktur percabnagan dengan dua kondisi menggunakan bahasa Pascal adalah
sebagai berikut
If (syarat) then
Pernyataan1
else
Pernyataan2;
untuk pernyataan tunggal pada tiap syarat, atau
If (syarat1) then
begin
Pernyataan1;
Pernyataan2;
end
else
begin
Pernyataan3;
Pernyataan4;
End;
Untuk pernyataan lebih dari satu untuk tiap syarat.
Program DiskonBaju;
var hargaNormal, ProsenDiskon:integer;
BesarDiskon, hargaAkhir: real;
Begin
write(‘Masukkan total harga pembelian: ‘ );
readln( TotalBelanja);
if (TotalBelanja>=200000) then
ProsenDiskon:=25
Else
ProsenDiskon:=25;
BesarDiskon=(ProsenDiskon/100)*TotalBelanja;
TotalBayar=TotalBelanja-BesarDiskon;
writeln(‘Total harga yang harus dibayar adalah : ‘, TotalBayar:6:2);
end.

Pada dasarnya program di atas adalah program untuk menyelesaikan permasalahan yang sama, hanya beda dalam penyajian saja. Hal ini sebagaimna pembahasan pada semester 1, bahwa ada percabngan dengan 1 kondisi, 2 kondisi atau lebih.
Pada percabangan 1 kondisi, ketika kondisi dipenuhi maka proses tertentu akan dijalankan, jika tidak maka tidak dilakukan apa-apa. Padahal dalam kehidupann nyata, permasalahan seringkali terjadi melibatkan dua kondisi. Misalkan “Jika nilai lebih besar 60 maka lulus, jiak tidak, maka tidak lulus”; “Jika rajin belajar maka naik kelas, jika tidak maka tinggal kelas”; “Jika bobot truk>=100 ton maka tidak boleh lewat, jika kurang dari itu boleh lewat”. Kenyatannya seperti itu dalam kehidupan sehari-hari sehingga percabangan dengan dua kondisi lebih banyak digunakan.
Seperti halnya pada contoh di atas, sebenarnya mempunyai dua kondisi, jika total belanja <200 ribu maka diskonnya 20% jika lebih besar atau sama dengan 200 ribu maka diskonnya menjadi 25%. Oleh karena itu pada percabangan dengan 1 kondisi pernyataan Prosendiskon:=20 diletakkan sebelum struktur if then, karena digunakan sebagai nilai default dari prosen diskon.
Hal ini dapat disjajikan dalam bentuk yang lebih cocok menggunakan struktur if then else sebagai bentuk percabangan dengan dua kondisi. Dalam percabangan 2 kondisi ini digunakan struktur if then else

3.    Percabangan Lebih Dari Dua Kondisi
Struktur if then else if
Dalam pseudocode, percabangan dengan lebih dari dua kondisi dituliskan sebagai berikut:
IF (kondisi1) THEN
Pernyataan1
ELSEIF (kondisi2) THEN
Pernytaan2
ELSE
Pernyataan3
Sehingga dapat dibuat flowchartnya dalam bentuk sebagai berikut:
Perhatikan masalah berikut :
1.    Perhitungan Gaji
Misalkan di sebuah perusahaan yang bergerak di bidang pemasaran, gaji pegawai dihitung berdasarkan gaji pokok dan bonus dari omset penjualan
Jika Omset>100 juta maka bonusnya adalah 1.5%*Omset Penjualan
Jika Omset antara 50-100 juta, bonusny adalah 1% *OmsetPenjualan
Jika kurang dari 50 juta maka ia tidak mendapatkan bonus.
Bagaimana mengimplementasikan aturan tersebut dalam program komputer?
2.    Persewaan Mobil
Sebuah persewaan mobil mempunyai 4 jenis koleksi mobil, Avanza, Xenia, Innova dan Alphard.
Biaya persewaan mobil terdiri dari dua komponen, yaitu Biaya Sewa dan Biaya Asuransi.
Berikut ini adalah Tabel biaya sewa mobil dan asuransi
Akan dirancang sebuah program untuk menghitung biaya persewan mobil. Algoritma akan meminta inputan berupa Jenis Mobil yang disewa, dan lama hari menyewa. Asuransi dihitung
sekali bayar untuk berapappun lama peminjaman. Biaya peersewaan dihitung dengan menjumlahkan total biaya sewa untuk n hari ditambah dengan biaya asuransi.

Dalam hal ini untuk kasus diatas dapat dituliskan flowchart percabangannya dalam bentuk berikut:
Demikian juga pada bahasa Pascal, kita bisa menyajikan permasalahan di atas dalam sitantks
sebagai berikut.
if (kondisi1) then
pernyataan1
else if (kondisi2) then
pernyataan2
else
pernyataan3;
sehingga untuk permasalahan 1, dapat dituliskan bagian percabngannya adalah
if (Omset_Jual>100000000) then
bonus:=(1.5/100)*Omset_Jual
else if (Omset_Jual>=50000000) then
bonus:=(1/100)*Omset_Jual
else
bonus:=0;
Bagaimana dengan permasalahan kedua? Pada permasalahan kedua ini, kondisi jauh lebih banyak, dalam hal ini ada 5 cabang atau kondisi sesuai dengan banyaknya jenis mobil. Selain itu dalam setiap cabang ada lebih dari satu pernyataan sehingga sehingga dapat dituliskan kode dalam Pascalnya adalah sebagai berikut.
If (jenis_Mobil=’Avanza’) then
Begin
                   Pernyataan1;
                   Pernyataan2;
End
                   Else if (jenis_Mobil=’Avanza’) then
Begin
                   Pernyataan1;
                   Pernyataan2;
End
          Else if (jenis_mobil=’’Innova’) then
Begin
                   Pernyataan1;
                   Pernyataan2;
End
Else
                   Pernyataan1;
                   Pernyataan2;
Sehingga dapat dituliskan bentuk flowchartnya adalah sebagai berikut.

Struktur case of
Perhatikan permasalahan kedua, dengan 5 kondisi (percabngan) maka penyajian algoritma menjadi memanjang ke kanan. Dan ini akan menjadi kurang menarik dan efektif dalam penulisan meskipun hasilnya tetap sama. Alternatifnya adalah dengan menggunakan struktur case of sebagai mana pada pembahasan algoritma.
Secara umum, sintaks struktur case of adalah sebagai berikut.
Case (variabelpilihan) of
Nilai1: pernyataan1;
Nilai2:pernytaan2;
Nilai3:pernyataan3;
...
Else
PernyataanElse;
end;

Pada struktur case of, seluruh kemungkinan nilai didaftar dan diberikan pernyataan yang
sesuai dengan nilai yang dimilki variabel. Ini tentu akan lebih efektif dibandingkan menggunakan if
then else if secara berulang-ulang. Kekuranganya bahwa struktur ini hanya bekerja pada variabel
dengan tipe data ordinal, yaitu tipe data yang dapat dihitung, dlam hal ini adalah integer, karakter
atau tipe data set (tipe data terstruktur). Jika variabel yang akan diubah dalam bentuk case of
belum menjadi salah satu bentuk ini maka perlu diubah ke salah satu bentuk tipe data. Caranya?
Sudah kalian pelajari di pembahasan semester lalu.
Lihat kembali permasalah kedua, yaitu persewaan mobil. Kita bisa membuatkan menu
pilihan untuk mewakili setiap jenis mobil. Misalkan ditampilkan di awal program keterangan berikut.
Mobil yang disewakan:
1. Avanza
2. Xenia
3. Innova
4. Alphard
Masukkan nomor pilihan mobil: ..............{baca sebagai variabel var_pilih}
Selanjutnya kita bisa menggantikan setiap jenis dengan nilai var_pilih dari 1, 2, 3, atau 4 untuk
masing-masing kategori mobil. Dengan ini maka var_pilih bertipe ordinal, sehingga dapat
diterapkan struktur case sabagai berikut.
case (var_pilih) of
1: begin
          Pernyataan1a;
          Pernyataan1b;
end;
2: begin
Pernyataan2a;
Pernyataan2b;
end;
3:begin
Pernyataan 3a;
Pernyataan 3b;
End;
Else
Begin
PernyataanElse1;
PernyataanElse2;
End;
End;
Selain kondisi berupa data tunggal, struktur case of juga dapat diterapkan pada interval data ordinal, emisalkan sebagai berikut. Dalam algoritma penghitungan bonus karyawan berdasarkan omset jual di atas. Agar dapat diterapkan struktur case of, maka besar omset jual dituliskan sebagai variabel dengan tipe integer (pembulatan) di mana nilainya dalam satuan juta.
Shingga jika variabel omset_jual= 125 artinya 125 juta, sehingga bonusnya dihitung (1.5/100)*omset_jual*1000000. Sekali lagi, ini adalah salah satu bentuk strategi untuk memecahkan masalah. Dengan demikian kita bisa memberikan alternatif solusi kondisi percabangan adalah sebagai berikut:
readln(omset_jual); {dalam juta}
case (omset_jual) of
0..49 : bonus:=0;
50..100 :bonus:=(1/100)*omset_jual*1000000;
else
bonus:=(1.5/100)*omset_jual*1000000;
end;
Struktur di atas meberikan gambaran bahwa struktur case of dapat diterapkan pada rentang nilai
dari suatu data ordinal. Bisa juga dengan mengggunakan tipe data karakter seperti berikut.
case (karakter) of
'a'..'j' : pernyataan1;
'k'..'p' :pernyataan2;
‘q’..'u' : pernyataan3
else
PernyataanElse;
end;

BAB VII
STRUKTUR PERULANGAN
program whiledo
var i : integer;
begin
I           := 1;
while i <= 5 do
begin
writeln(‘Pascal’);
i:=i+1;
end;
end.
Program FORDO
Var i : integer;
Begin
For i := 1 to 5 Do
Writeln(‘Pascal’);
End.

Program NestedLoops; {* contoh aplikasi mencari nilai prima *}
var
i, j:integer;
begin
for i := 2 to 50 do
begin
for j := 2 to i do
if (i mod j)=0 then
break; {* if faktor ketemu, berarti bukan prima *}
if(j = i) then
writeln(i , ' adalah nilai prima' );
end;
end.
Ketiga kode program di atas adalah contoh dari perulangan dengan kondisi diawal
Jika kita lihat sekilas, maka kita bisa menyimpulkan bahwa kode program pertama dan kedua memiliki struktur yang hampir sama, yang membedakan hanya yang pertama menggunakan pernyataan WHILE-DO, sedangkan yang kedua menggunakan pernyataan FOR-DO. Bagaimana dengan yang ketiga? Yang ketiga menunjukkan sebuah contoh penggunaan dari sebuah nested loops (perulangan bersarang/ perulangan di dalam perulangan). Bagaimana cara kerja, hasil, dan kapan ketiga kode program (pernyataan perulangan) tersebut di gunakan? Akan kita bahas pada pembahasan berikut ini.
Sebagaimana yang pernah dijelaskan pada semster lalu bahwa struktur perulangan merupakan struktur yang tidak terpisahkan dengan algoritma dan pemrograman. Struktur perulangan memungkinkan program untuk melakukan serangkaian perintah secara berulang-ulang. Dan untuk memenuhi syarat bahwa algoritma harus finite (terbatas) maka dalam perulangan pasti ada titik pemberhentian. Jika ternyata dalam sebuah kasus perulangan tidak mencapai titik berhenti maka dapat dikatakan algoritma tersebut salah.
Titik pemberhentian dapat diberikan dengan beberapa cara, sebagai berikut.
1.    Pemberhentian dengan syarat
Pemberhentian dengan syarat artinya ada sebuah kondisi yang akan menyebabkan perulangan berhenti. Pemberian syarat ini juga dapat dilakukan dengan dua cara, yaitu
a.    Syarat diberikan di awal, di mana selama persayaratan dipenuhi maka dilakuakn serangkain perintah
b.    Syarat diberikan di akhir, di mana proses akan diulang-ulang sampai syarat dipenuhi.

Perbedaan antara a dan b adalah ketika syarat diberikan di awal, maka selama persayaratan itu dipenuhi , maka perulangan dilakukan. Jika kondisi sudah tidak dipenuhi maka berhenti. Sedangakan pada kasus syarat di akhir, dikerjakan serangkaian langkah. Setiap selesai rangkaian langkah diperiksa apakah kondisi sudah dicapai, jika belum maka proses diulangi lagi. Struktur yang sesuai dengan perulangan dengan kondisi di awal adalah struktur WHILE DO sedangkan untuk kondisi di akhir adalah dengan REPEAT UNTIL.
2.    Pemberhentian dengan pencacah
Pemberhentian dengan pencacah, artinya dari awal sudah ditentukan bahwa perulangan akan dilakukan berapa kali. Pencacah ini juga ada dua macam cara, yaitu
a.    Pencacah naik
Pemberhentian dengan pencacah naik artinya untuk suatu pencacah, misalkan i dari 1 sampai 100 lakukan rangkain langkah x. Artinya langkah tersebut akan diulangi sebanyak seratus kali. Dalam pascal untuk kasus pencacah naik digunakan struktur FOR TO DO.
b.    Pencacah turun
Pemberhentian dengan pencacah turun , artinya sebaliknya untuk suatu pencacah i dari 100 sampai 1 lakukan rangkaian langkah x, artinya langkah x akan diulangi sebanyak seratus kali. Dalam pascal untuk kasus pencacah naik digunakan struktur FOR DOWNTO DO
Penggunaan beberapa macam pemberhentian di atas tergantung dari situasi dan kondisi, untuk
lebih jelasnya akan dijelaskan seperti berikut.
Perulangan dengan struktur WHILE DO
Dalam berbagai bahasa Pascal dikenal struktur WHILE DO, yang berarti selama memenuhi kriteri/kondisi tertentu, maka dilakukan serangkaian proses. Struktur ini dapat diterapkan pada
contoh di atas sebagai berikut.
Bentuk Umum:
WHILE (kondisi) DO
Pernyataan;
Atau jika lebih dari satu pernyataan dapat dituliskan
WHILE (kondisi) DO
Begin
Pernyataan1;
Pernyataan2;
Pernyataan3;
End;

Perulangan dengan struktur FOR DO
Perulangan dengan pencacah, yaitu menggunakan struktur FOR DO dimasukkan dalam
pembahasan pada kegaiatan Belajar ini. Struktur ini digunakan untuk mengulang statement atau
satu blok statement berulang kali sejumlah yang ditentukan.
Bentuk umum :
for nama_variabel := nilai_awal to nilai_akhir do {untuk pencacah naik}
Pernyataan;
atau
for nama_variabel := nilai_awal downto nilai_akhir do {untuk pencacah turun}
Pernyataan;

Penulisan pernyataan yang akan diproses berulang kali tersebut dapat juga ditulis dalam bentuk blok pernyataan (diawali dengan BEGIN dan diakhiri dengan END), walaupun hanya berisi sebuah
statement saja,
Dalam menyelesaiakan suatu permasalahan kita bisa menggunakan salah satu bentuk perulangan, apakah While Do ataupun For Do. Manakah yang lebih baik? Keduanya mempunyai
kelebihan dan kekurangan sendiri-sendiri. Ada permasalahan yang dapat diubah dalam dua bentuk eprulangan tapi ada yang lebih mudah menggunakan bentuk For Do, tapi ada juga yang hanya bisa digunakan bentuk While Do.
Perhatikan dua contoh pertama pada bagian mengamati
Kedua program di atas mempunyai keluaran yang sama yaitu mencetak ‘Pascal’ sebanyak
5 kali, yaitu untuk i=1 sampai 5. Dalam While Do,
- pertama i diberi nilai 1,
- Periksa apakah i <= 5? Iya maka tuliskan ‘Pascal’ kemudian nilai i ditambah 1 menjadi 2
- Periksa Apakah I<=5? Iya , Maka Tuliskan Pascal, I=I+1=3
- Periksa apakah i<=5? Iya , maka tuliskan Pascal, i=i+1=4
- Periksa apakah i<=5? Iya , maka tuliskan Pascal, i=i+1=5
- Periksa apakah i<=5? Iya , maka tuliskan Pascal, i=i+1=6
- Periksa apakah i<=5?Tidak, maka STOP
Di sini i berfungsi sebagai iterator dan 5 sebagai nilai sentinel.
Dalam struktur FOR DO, iterator dan sentinel diringkas dalam bentuk for i:=1 to 5, di mana i
otomatis bertambah naik, mulai dari nilai awal 1 menjadi 5. Oleh karena itu struktur For Do disebut
perulangan dengan pencacah.

Perulangan Dengan Kondisi Di Akhir
PROGRAM REPEATUNTIL
var
digit := 1;
begin
repeat
write (digit);
digit := digit + 1
until digit > 5 ;
end.
Program REPEATUNTIL
var
a: integer;
begin
a := 10;
(* repeat until loop execution *)
repeat
writeln(‘nilai dari a adalah ', a);
a := a + 1
until a = 20;
end.
Sebagaimana yang dijelaskan sebelumnya bahwa perulangan dapat dilakukan dengan menyatakan kondisi di akhir. Berbeda dengan kondisi di awal, di mana selama syarat (kondisi) dipenuhi maka perintah dijalankan, pada kondisi di akhir, perintah dijalankan sampai memenuhi kondisi yang diinginkan. Struktur yang digunakan adalah struktur Repeat Until.
Bentuk Umum :
REPEAT
Pernyataan;
UNTIL (kondisi)

Kode Program
Var digit := 1;
begin
repeat
writeln (digit);
digit := digit + 1
until digit > 5 ;
end.
Program di atas diawali dengan nilai awal digit=1, kemudian dilakukan perintah
writeln (digit);
digit := digit + 1
hingga nilai digit>5.
Perbedaan antara struktur REPEAT-UNTIL dengan WHILE-DO adalah sebagai berikut :
1)   Paling sedikit statement-statement di dalam perulangan REPEAT-UNTIL diproses sekali, karena seleksi kondisi ada pada statement Until yang terletak dibawah. Sedang pada struktur WHILE-DO paling sedikit dikerjakan nol kali, karena seleksi kondisi ada pada statement While yang terletak diatas, sehingga kalau kondisi sudah tidak terpenuhi, maka tidak akan masuk ke dalam lingkungan perulangan.
2)   Pada REPEAT-UNTIL dapat tidak dipergunakan blok statement (tidak diperlukan Begin dan End untuk menunjukkan batas perulangannya), karena batas perulangannya sudah ditunjukkan oleh Repeat sampai dengan Until (Repeat dan Until sebagai pengganti Begin dan End).



PERULANGAN DENGAN KONDISI DIINPUTKAN USER

Aplikasi pemroograman dalam kehidupan nyata, khususnya yang terkait dengan struktur perulangan, memerlukan syarat yang diinputkan oleh pengguna. Sebagai contoh, dalam sebuah aplikasi kasir, ketika melayani pembeli, seorang kasir akan memasukkan data barang-barang yang dibeli dengan barcode reader, hingga akhirnya kasir akan mengklik sebuah tombol untuk menghitung total belanjaan. Proses memasukkan data dari barang pertama, kedua, dan ke barangbarang berikutnya, adalah suatu bentuk perulangan. Dan perulangan ini akan berhenti hingga akhrinya kasir mengeklik tombol untuk menghitung total belanjaan.
Contoh lain misalkan dalam sebuah video game dengan koin, ketika seorang anak memasukkan koin, kemudian bermain dan akhirnya terjadi game over. Berikutnya biasanya, video game akan menampilkan hitungan mundur menunggu anak untuk memasukkan koin berikutnya agar permainan dapat dilanjutkan. Bentuk hitugan mundur ini juga menggunakan perulangan, dan akan berhenti perulangan ini untuk dua kemungkinan, si anak memasukkan koin atau perhitungan mundur selesai dan akhirnya masuk ke menu awal game kembali.

Kondisi yang diinputkan dari user bisa diperoleh sebelum perulangan atau di dalam perulangan itu sendiri. Contoh di atas adalah kondisi dimasukkan oleh user di dalam perulangan itu sendiri. Contoh pengambilan kondisi sebelum perulangan adalah menentukan suku ke-n dari sebuah barisan. Misalkan menetukan suku ke n dari barisan 1,2,3,5,8, .... Nilai n diperoleh dengan menerima masukan dari user sebelum perulangan dilakukan.

Tidak ada komentar:

Posting Komentar