Selasa, 07 Mei 2019

Materi Pemrograman Dasar Kelas XI Semester 1 - Kurikulum 2013

BAB I
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).

Operator Aritmatika
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 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 pernyataan tersebut bernilai benar
(a = b) salah

Tidak sama dengan
<> 
Untuk mengecek nilai dari kedua operand, jika nilainya tidak sama maka pernyataan tersebut bernilai benar.
(a <> b) benar

Lebih dari
Untuk mengecek nilai dari operand kiri lebih besar daripada operand kanan. Jika nilainya lebih besar maka pernyataan tersebut bernilai benar.
(a > b) salah

Lebih dari sama dengan

>=

Untuk mengecek nilai dari operand kiri lebih besar atau sama dengan operand kanan. Jika nilainya lebih besar atau sama dengan maka pernyataan tersebut bernilai benar
(a >= b) salah

Kurang dari
Untuk mengecek nilai dari operand kanan lebih besar daripada operand kiri. Jika nilainya lebih besar maka pernyataan tersebut bernilai benar.
(a < b) benar
Kurang dari sama
dengan

<=

Untuk mengecek nilai dari operand kanan lebih besar atau sama dengan operand kiri. Jika nilainya lebih besar atau sama dengan maka pernyataan tersebut bernilai benar.
(a <= b) benar

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 :
1. Operator Aritmatika Unair
Operator aritmatika unair adalah operator aritmatika yang hanya melibatkan 1 operand saja.
2. Operator Aritmatika Biner
Operator aritmatika biner adalah operator aritmatika yang melibatkan 2 buah operand.
Berikut ini jenis operator dan kegunaannya dalam bahasa pemrograman pascal :
OPERATOR
SIMBOL
DESKRIPSI
CONTOH
Penjumlahan
+
Menambahkan suatu operand dengan operand yang lain
5 + 7 = 11
Pengurangan
-
Mengurangkan suatu operand dengan operand yang lain
5 – 7 = -2
Perkalian
*
Melakukan penjumlahan berulang pada suatu operand
5 * 7 = 35
Pembagian
/
Melakukan pembagian pada operand
10 / 2 = 5
Pembagian Bulat
Div
Membagi 2 bilangan bulat (integer) kemudian
Mengambil hasil bagi dan sisanya dibuang
7 div 2 = 3
Modulus
Mod
Membagi 2 bilangan bulat (integer) kemudian mengambil sisanya dan hasil baginya dibuang
7 mod 2 = 1

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.

Fungsi Aritmatika
Pada Kegiatan Belajar 1 kita telah belajar tentang berbagai jenis operator aritmatika beserta penggunaannya dalam sebuah program. Kita dapat melakukan berbagai operasi dasar dengan menggunakan operator aritmatika seperti penjumlahan, penguranga, pembagian dan perkalian. Namun bagaimana jika kita dihadapkan dengan ekspresi matematika di bawah ini?.
sinO
cosO
a2 + b2 = c2
A = pr2
Kita akan kesulitan mengakomodasi permasalahan di atas dalam FreePascal jika hanya menggunakan operator aritmatika yang telah dipelajari sebelumnya. Maka Freepascal mengakomodasi permasalahan tersebut dengan menyediakan berbagai bentuk fungsi matematika yang lazim digunakan dalam kehidupan sehari-hari. Berikut contoh- contoh fungsi aritmatika pada freepascal yang sering digunakan :
ABS
ABS merupakan fungsi matematika dalam pascal yang berguna untuk menghasilkan nilai mutlak dari sebuah bilangan negatif . Sintax : ABS(x)
FRAC
Merupakan fungsi matematika dalam Pascal yang berguna untuk menghasilkan nilai desimal dari bilangan real. Sintax : FRAC(x)
INT
Berguna  untuk  membulatkan  angka  pecahan  menjadi  sebuah  bilangan  bulat  positif.  Sintax  :
INT(x).
LN
Berfungsi untuk menghasilkan nilai logaritma dari sebuah bilangan. Sintax : Ln(x)
SIN
Sintaks sin berfungsi untuk menghitung nilai sinus dari sebuah bilangan yang biasanya digunakan untuk menghitung sudut tertetu dari 0 derajat samapi 360 derajat pada operasi metematika. Sintax : Sin(x).
SQR
Berfungsi untuk melakukan perhitungan kuadrat dari sebuah bilangan. Sintax : SQR(x)
SQRT
Berfungsi untuk melakukan penghitungan akar kuadrat dari sebuah bilangan. Sintax : Sqrt(x)
PRED
Perintah PRED digunakan untuk menghsilkan nilai yang lebih kecil darinya. Perintah PRED hanya dapat digunakan pada tioe data numerik, character dan boolean. Sintax : PRED(x)
SUCC
Perintah SUCC digunakan untuk menghasilkan nilai yang lebih besar darinya. Sama seperti perintah PRED, SUCC hanya dapat digunakan pada tipe data numerik, karakter dan boolean. Sintax : SUCC(x)
ODD
Digunakan untuk menentukan sebuah bilangan apakah termasuk bilangan ganjil atau bukan. Output dari operasi out adalah boolean. Sintax : ODD(x)
INC
Digunakan untuk menambah nilai bilangan numerik sebesar 1. Sintax : INC(x)
DEC
Digunakan untuk mengurangi nilai bilangan numerik sebesar 1. Sintax : DEC(x)

program AritFunct2; 
uses crt;
var a,b,c : real; 
begin
clrscr;
writeln('============================================='); 
writeln('Program Hitung Sisi Miring Segitiga Siku-Siku');
writeln; writeln('misalkan :');
writeln('a = sisi tegak pertama'); writeln('b = sisi tegak kedua'); writeln('c = sisi miring segitiga');
writeln('=============================================');
writeln;
writeln('Masukkan nilai a = ');readln(a); writeln('Masukkan nilai b = ');readln(b); writeln;
writeln('=============================================');
c:=sqrt(sqr(a)+sqr(b));
writeln('c= ',c:4:2); writeln;
writeln('Maka panjang sisi miring segitiga : ',c:4:2);
readln;
end.

program AritFunct3; 
uses crt;
var x : integer; //deklarasi 25ariable x
begin
clrscr;
x:=1;
writeln(‘Perintah Increment dengan while’);
while x<=10 do //25selama x = 10
 begin
write(x,’ ‘);
INC(x); //pengenaan fungsi increment pada x
end;
writeln;
writeln(‘Perintah Decrement dengan while’);
while x>=1 do //25selama x = 1 
begin
write(x,’ ‘);
DEC(x); //pengenaan fungsi increment pada x
end;
readln;
end.

Pemanfaatan Fungsi Aritmatika
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.
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.

program Segitiga; //judul program
uses crt;
var a,b : integer; //deklarasi variabel 
c : real;
begin
clrscr; 
writeln('========================================='); 
writeln('Hitung sisi miring segitiga siku-siku'); writeln('========================================='); writeln;
a:=3; //pemberian nilai variabel a 
writeln('AB = ',a); //menampilkan isi variabel a 
b:=4 ;  //pemberian nilai variabel b 
writeln('BC = ',b); writeln(''); //menampilkan isi variabel b 
writeln('==========================================');
c:=sqrt(sqr(a)+sqr(b)); //operasi phytagoras 
writeln('AC = ',c:1:0); //menampilkan AC 
writeln('===========================================');
readln;
end.
contoh
Dua titik A (x1,y1) dan B (x2,y2). Kedua titik A dan B akan dihubungkan dengan sebuah garis sehingga membentuk ruas garis AB. Tentukan panjang ruas garis AB.

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.

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

Operator Operasi Tipe Operand Tipe Hasil
not Negasi Boolean Boolean
and Konjungsi Boolean Boolean
or Disjungsi Boolean Boolean
xor Disjungsi Eksklusif Boolean Boolean

Operator Bitwise

Operasi bit digunakan untuk melakukan manipulasi bit pada bilangan bertipe data Byte dan word. Operator bitwise mirip dengan operator aljabar yang mengolah data bertipe byte dan word sehingga menghasilkan nilai output berupa bilangan juga. Terdapat lima jenis operator bitwise yang dikenal dalam Pascal yaitu AND, OR, XOR, SHR, SHL.

Operator Simbol Operasi
Not ~ Bit not
and & Bit Konjungsi
or | Bit Disjungsi
Xor ! Bit Eksklusif Disjungsi
Shl << Bit shift left
Shr >> Bit shift right
   
program Logika4;
uses crt;
var   a,b,c,d,e,f,g:integer;
begin
clrscr;
a:=9;
b:=10;
writeln('a = ',a);
writeln('b = ',b);
writeln('==================');
writeln(‘melakukan operasi bitwise AND’);
c:=a And b;
writeln('a and b = ',c);
writeln('==================');
writeln('melakukan operasi bitwise OR’);
d:=a or b;
writeln('a or b = ',d);
writeln('==================');
writeln('melakukan operasi bitwise XOR’);
e:=a xor b;
writeln('a xor b = ',e);
writeln('==================');
writeln('melakukan operasi bitwise shr’)
f:=a shr 2;
writeln('a shr 2 = ',f);
writeln('==================');
writeln('melakukan operasi bitwise shl’)
g:=b shl 2;
writeln('b shl 2 = ',g);
writeln('==================');
readln;
end.

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.