Materi Pemrograman Dasar XI RPL & TKJ
Operasi Aritmatika dan
Logika
1. Bilangan Biner
Bilangan biner adalah bilangan yang memiliki basis
2.
Anggota bilangan biner antara lain 0 dan
1. ( r = 2 ).
Dalam penulisan biasanya ditulis seperti
berikut 1010012, 10012, 10102, dll.
a. Penjumlahan
Dasar
penujmlahan biner adalah :
0
+ 0 = 0
0
+ 1 = 1
1
+ 0 = 1
1
+ 1 = 0 ~> dengan carry of 1,
yaitu 1 + 1 = 2, karena digit terbesar ninari 1, maka harus dikurangi dengan 2
(basis), jadi 2 – 2 = 0 dengan carry of 1
contoh
:
(A) (B)
1111
+ 10100 = 100011
atau
dengan langkah :
(A) (B)
1
+
0 = 1
1
+
0 = 1
1
+
1 = 0 dengan carry of 1
1
+ 1 + 1 = 0
1
+
1 = 0 dengan carry of 1
Hasil = 100011
b. Pengurangan
Bilangan
biner dikurangkan dengan cara yang sama dengan pengurangan bilangan desimal.
Dasar pengurangan untuk masing-masing digit bilangan biner adalah :
0
- 0 = 0
1
- 0 = 1
1
- 1 = 0
0
– 1 = 1 ~> dengan borrow of 1,
(pinjam 1 dari posisi sebelah kirinya).
Contoh
:
(A) (B)
11101 - 1011 = 10010
atau
dengan langkah :
(A) (B)
1
–
1 = 0
0
–
1 = 1 dengan borrow of 1
1
– 0 – 1 = 0
1
–
1 = 0
1
–
0 = 1
Hasil = 10010
c. Perkalian
Dilakukan
sama dengan cara perkalian pada bilangan desimal. Dasar perkalian bilangan
biner adalah :
0
x 0 = 0
1
x 0 = 0
0
x 1 = 0
1
x 1 = 1
Contoh
:
Desimal
|
Biner
|
14
12 x
28
14
+
168
|
1110
1100 x
0000
0000
1110
1110 +
10101000
|
d. Pembagian
Pembagian
biner dilakukan juga dengan cara yang sama dengan bilangan desimal. Pembagian
biner 0 tidak mempunyai arti, sehingga dasar pemagian biner adalah :
0
: 1 = 0
1
: 1 = 1
Desimal
|
Biner
|
5 / 125 \ 25
10 -
25
25
-
0
|
101
/ 1111101 \ 11001
101
-
101
101
-
0101
101
-
0
|
OPERATOR ARITMATIKA, RELASI, LOGIKA
Pengertian Operator
Operator
atau tanda operasi adalah suatu tanda atau simbol yang biasa dilibatkan dalam
program untuk melakukan suatu operasi atau manipulasi. Operasi atau manipulasi
mencakup ungkapan yang dibuat dari operand dan operator.
Macam-macam operator :
1. 1. Operator
aritmatika
Operator
aritmatika digunakan untuk melakukan operasi matematika, seperti penambahan,
pengurangan, pembagian, dan modulo (atau sisa pembagian).
Contoh
penggunaan :
+
Operator penjumlahan (juga sebagai penyambung string)
-
Operator pengurangan
*
Operator perkalian
/
Operator pembagian
%
Operator sisa pembagian
Simbol
|
Nama operator
|
Contoh penggunaan
|
+
|
Operator penjumlahan
|
n = n + 1;
|
-
|
Operator pengurangan
|
n = n – 1;
|
*
|
Operator perkalian
|
n = n * 1;
|
/
|
Operator pembagian
|
n = n / 1;
|
%
|
Operator sisa pembagian
|
n = n % 1;
|
+
|
Operator penyambung string
|
n = “saya “+”tidur”;
|
1. 2. Operator
Relasi / Hubungan
Operator
relasi biasa digunakan untuk membandingkan dua buah nilai. Operator relasi
menghasilkan kondisi BENAR atauSALAH.
Contoh
penggunaan :
Sama
dengan ( = )
Tidak sama dengan ( <> )
Lebih dari ( > )
Kurang dari ( < )
Tidak sama dengan ( <> )
Lebih dari ( > )
Kurang dari ( < )
Lebih
dari sama dengan ( >= )
Kurang dari sama dengan ( <= )
Kurang dari sama dengan ( <= )
Simbol
|
Keterangan
|
=
|
Sama dengan
|
<>
|
Tidak sama dengan
|
>
|
Lebih dari
|
<
|
Kurang dari
|
>=
|
Lebih dari sama dengan
|
<=
|
Kurang dari sama dengan ( <= )
|
Pembanding
|
Hasil
|
|
1>2
|
dibaca
|
Salah
|
1<2
|
dibaca
|
Benar
|
A==1
|
dibaca
|
Benar, Jika A bernilai 1
Salah, Jika A tidak bernilai 1
|
‘A’ < ‘B’
|
dibaca
|
Benar karena kode ASCH untuk karakter ‘A’
Kurang dari kode ASCH untuk karakter ‘B’
|
Kar== ‘Y’
|
dibaca
|
Benar jika ka berisi ‘Y’
Salah, jika kar tidak berisi ‘Y’
|
3. Operator Logika
Operator
logika biasa digunakan untuk menghubungkan dua buah ungkapan kondisi menjadi
sebuah ungkapan kondisi. Operator-operator ini berupa :
Operator
|
Keterangan
|
&&
|
AND (dan)
|
||
|
OR (atau)
|
!
|
NOT (bukan)
|
Contoh
Penggunaan :
Contoh
|
Operasi
|
Hasil
|
a && b
|
and
|
benar jika a dan b adalah benar
|
a || b
|
or
|
benar jika salah satu dari a atau b adalah benar
|
!a
|
b lebih dari atau sama dengan
|
benar jika a lebih dari atau sama dengan b
|
ARRAY
Kompetensi dasar:
Mampu menggunakan tipe array untuk pemecahan masalah.
Indikator kompetensi:
1. Memahami
perlunya array
2.
Mampu
menentukan kapan harus menggunakan array.
3.
Mampu
mendeklarasikan array
4.
Mampu
membuat aplikasi lengkap yang mengandung array, dan menggunakan fungsi yang
menggunakan parameter array.
ARRAY
Digunakan untuk
menyimpan sekelompok data yang tipenya sama.
Deklarasi Array 1 Dimensi
tipe nama_var[max_data];
Contoh:
int a[5];
float x[100];
char nama[25];
.
dst.
Cara mengakses data
bertipe array
nama_variabel[alamat]
Misal : Array a
27
|
23
|
35
|
46
|
87
|
à data yang tersimpan di array
|
0
|
1
|
2
|
3
|
4
|
à alamat array (dimulai dari 0)
|
a[0] = 27
a[1] = 23
.
.
a[4] = 87
Menginputkan data ke array
Data dapat diinputkan untuk setiap emelen array. Tetapi jika jumlah elemen
array banayk, tentunya cara ini tidak efisien. Oleh karena itu dapat digunakan
bantuan instruksi perulangan untuk input datanya.
Contoh 1:
#include
<iostream.h>
#include
<conio.h>
main()
{
int a[5];
cout<<"Data ke 0 =
";cin>>a[0];
cout<<"Data ke 1 =
";cin>>a[1];
cout<<"Data ke 2 =
";cin>>a[2];
cout<<"Data ke 3 =
";cin>>a[3];
cout<<"Data ke 4 =
";cin>>a[4];
int jumlah;
jumlah=a[0]+a[1]+a[2]+a[3]+a[4];
cout<<"\n\nJumlahnya = "<<jumlah;
getch();
}
Contoh 2:
#include
<iostream.h>
#include
<conio.h>
main()
{
int a[5];
int jumlah=0;
for(int i=0;i<5;i++)
{ cout<<"Data ke
"<<i<<" = ";cin>>a[i];
jumlah+=a[i];
}
cout<<"\n\nJumlahnya =
"<<jumlah;
getch();
}
Tipe array juga dapat digabungkan dengan pointer. Untuk itu kita akan melakukan perubahan pada
contoh 3 menjadi sebagai berikut:
Contoh 3:
#include
<iostream.h>
#include
<conio.h>
main()
{
int *a=new int[5];
int jumlah=0;
for(int i=0;i<5;i++)
{ cout<<"Data ke
"<<i<<" = ";cin>>a[i];
jumlah+=a[i];
}
cout<<"\n\nJumlahnya =
"<<jumlah;
getch();
}
Perhatikan contoh 3 diatas pada pengaksesan datanya. Jika array
dideklarasikan sebagai pointer, maka untuk pengaksesan datanya cukup dituliskan
sebagai array. Tetapi kita
tetap bisa menuliskannya sebagai pointer tanpa harus menyertakan alamat
arraynya. Jika demikian maka data akan diambilkan dari data pertama, atau data
pada alamat ke 0.
Sehingga misalkan pada akhir program contoh 3 diatas kita tambahkan
instruksi :
cout<<"\nData
= "<<*a;
atau instuksi :
cout<<"\nData
= "<<a[0];
akan mempunyai arti yang sama, data akan diambil dari data pertama (alamat
0).
Selain itu untuk input data dan proses penjumlahan, dapat juga dibuat dalam
bentuk fungsi seperti pada contoh 4. Perhatikan pada saat tipe array menjadi
parameter fungsi, jumlah data yang tersimpan dalam array boleh ditulis boleh
tidak (optional). Sehingga bisa ditulis dengan : b[] saja
Contoh 4 :
#include
<iostream.h>
#include
<conio.h>
void
input_array(int b[],int n)
{
for(int i=0;i<n;i++)
{ cout<<"Data ke
"<<i<<" = ";cin>>b[i]; }
}
int
jumlah(int b[],int n)
{
int hasil=0;
for(int i=0;i<n;i++)
hasil+=b[i];
return hasil;
}
main()
{
int a[100];
int bd;
cout<<"Masukkan banyaknya data =
";cin>>bd;
input_array(a,bd);
cout<<"\n\nJumlahnya =
"<<jumlah(a,bd);
getch();
}
Penggunaan array 1D untuk sorting data
Pada proses berikut ingin akan
diurutkan n data yang tersimpan di array dengan metode Bubble Sort.
Contoh 5:
#include
<iostream.h>
#include
<conio.h>
void
masukan(int a[],int n)
{
for(int i=0;i<n;i++)
{ cout<<"Data ke
"<<i<<" = ";
cin>>a[i];
}
}
void urutkan(int a[], int n)
{
int temp;
for(int i=0;i<n;i++)
for(int j=0;j<(n-i);j++)
if (a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
void
tampil(int a[], int n)
{
for(int i=0;i<n;i++)
cout<<a[i]<<" ";
}
main()
{
int a[100];
int jml;
cout<<"Banyak data =
";cin>>jml;
masukan(a,jml);
urutkan(a,jml);
cout<<"\n\nSetelah diurutkan ";
tampil(a,jml);
getch();
}
Pada contoh program diatas ada tiga fungsi, fungsi pertama digunakan untuk
menginputkan data ke dalam array, fungsi kedua untuk mengurutkan arraynya, dan
fungsi ketiga untuk menampilkan data yang tersimpan di array ke layar.
Array 2 Dimensi
Contoh deklarasi :
int a[4][5];
0
|
1
|
2
|
3
|
||
0
|
25
|
40
|
26
|
12
|
|
1
|
6
|
8
|
12
|
5
|
|
2
|
1
|
3
|
8
|
9
|
|
3
|
15
|
22
|
13
|
19
|
|
4
|
0
|
5
|
7
|
15
|
|
Mengakses data :
a[0][0] = 25
a[0][1] = 40
.
.
dst
Penggunaan array 2D untuk
menjumlahkan dua matrik
Matrik asal adalah a dan b, dijumlahkan dan hasilnya disimpan di matrik c. Syarat
agar matrik dapat dijumlahkan adalah keduanya mempunyai ukuran yang sama.
Baris matrik 1 = Baris matrik 2
Kolom matrik 1 = Kolom matrik 2
Contoh 6:
#include
<iostream.h>
#include
<conio.h>
void
masukan(int a[10][10],int b,int k)
{
for(int i=0;i<b;i++)
for(int j=0;j<k;j++)
{cout<<"Data ke
"<<i<<j<<" = ";cin>>a[i][j]; }
}
void jumlah(int a1[][10],int a2[][10],int
a3[][10],int b1,int k1)
{ for(int i=0;i<b1;i++)
for(int j=0;j<k1;j++)
a3[i][j]=a1[i][j]+a2[i][j];
}
void
tampilkan(int a[10][10],int b,int k)
{
for(int i=0;i<b;i++)
{ for(int j=0;j<k;j++)
cout<<a[i][j]<<" ";
cout<<"\n";
}
}
main()
{
int dt1[10][10],dt2[10][10],dt3[10][10];
int b1,k1;
cout<<"Jumlah baris matrik = ";cin>>b1;
cout<<"Jumlah kolom matrik = ";cin>>k1;
cout<<"\nMatrik pertama\n";
masukan(dt1,b1,k1);
cout<<"\nMatrik kedua\n";
masukan(dt2,b1,k1);
jumlah(dt1,dt2,dt3,b1,k1);
clrscr();
cout<<"\nMatrik pertama\n";
tampilkan(dt1,b1,k1);
cout<<"\nMatrik kedua\n";
tampilkan(dt2,b1,k1);
cout<<"\nMatrik hasil
penjumlahan\n";
tampilkan(dt3,b1,k1);
getch();
}
Perhatikan pada saat array 2D menjadi parameter fungsi, jumlah baris boleh
ditulis boleh tidak, tetapi jumlah kolom harus ditulis.
Tipe array dapat dikembangkan menjadi array multidimensi. Misal 3D, 4D, dan
sebagainya.