PEMBELAJARAN
Matakuliah: Algoritma dan Pemrograman
MODUL 3
Variabel, Data, Operator dan Ekspressi
Penyusun Modul
DR. SUARGA. MSc, M.Math, Ph.D
Pendahuluan
Solusi Masalah:
Algoritma
Flowchart, Algoritma, Teknik
Program C/C++ Pencarian
Flowcharting
Struktur Data
Instruksi : Prosedur
Input & Output, dan Fungsi
If/then/else
Orientasi Objek
KERANGKA TOPIK :
PRASYARAT BELAJAR:
Materi pada modul ini sangat penting karena merupakan dasar untuk merepresentasikan data dan
informasi ke dalam program komputer. Simak dengan baik bagaimana variabel dinyatakan,
bagaimana operator digunakan, dan bagaimana ekspressi dituliskan dan dianalisis.
DESKRIPSI SINGKAT:
Variabel adalah perwakilan dari data, data bisa ditemukan dalam berbagai bentuk, secara garis
besar dapat dikatakan ada data angka/numerik dan ada data bukan angka. Data dihubungkan satu
dengan lainnya menggunakan operator dan membentuk suatu pernyataan atau ekspressi.
Setiap bahasa program pasti memiliki cara untuk menyatakan variabel, data, operator, dan
ekspressi, serta cara pemberian nilai terhadap data, termasuk bahasa C++, oleh sebab itu tatacara
menyatakan-nya akan dibahas dalam modul ini.
3. Tuliskan secara lengkap variabel, tipe-data, dan nilai data setiap variabel pada data diri anda.
• Tipe data (data type) : setiap data memiliki tipe data, apakah data itu merupakan angka
bulat (integer), angka biasa (real), atau berupa karakter (char), dsb.
• Variabel (variable) : setiap data diwakili oleh suatu variable, data memerlukan wadah,
dan variable perlu identifikasi, sehingga perlu nama agar bisa dibedakan terhadap
variable lainnya, misalnya UMUR, Nama, Alamat dan sebagainya.
• Nilai (data value) : setiap data memiliki harga atau nilai, misalnya umur seseorang
diwakili oleh variabel UMUR yang bertipe bilangan, dan memiliki nilai 20 tahun. Perlu
diketahui bahwa dalam representasi nilai data dalam komputer setiap tipe data memiliki
batasan nilai masing-masing.
• Ada dua kategori dari tipe data, yaitu: tipe dasar dan tipe bentukan.
• Tipe dasar : adalah tipe data yang selalu tersedia pada setiap bahasa pemrograman,
antara lain: bilangan bulat (integer), bilangan biasa (real), bilangan tetap (const),
karakter (character atau char), logik (logic atau boolean).
• Tipe bentukan : adalah tipe data yang dibentuk dari kombinasi tipe dasar, antara lain:
larik (array), rekaman (record), string (string).
Tipe Dasar:
1. Bilangan bulat (integer)
• Bilangan atau angka yang tidak memiliki titik desimal, bukan pecahan, seperti: 10,
+255, -1024, +32767.
• Tipe dituliskan sebagai : integer atau int
• Jangkauan nilai : bergantung pada implementasi perangkat keras komputer, misalnya
dari -32768 s/d +32767, untuk algoritma tidak kita batasi.
• Operasi aritmetik : tambah + , kurang - , kali * , bagi /, sisa hasil bagi %
• Operasi pembandingan : lebih kecil < , lebih kecil atau sama < =
lebih besar > , lebih besar atau sama > =
sama = atau == , tidak sama ><, atau < > atau !=
• Bilangan atau angka yang bisa memiliki titik desimal atau pecahan, dan ditulis
sebagai: 235.45, +1023.55, -987.3456 atau dalam notasi ilmiah seperti:
1.245E+03, 7.45E-02, +2.34E-04, -5.43E+04, dsb.
• Tipe dituliskan sebagai : real atau float
• Jangkauan nilai : bergantung pada implementasi perangkat keras komputer, misalnya
dari -2.9E-39 s/d +1.7E+38, untuk algoritma tidak kita batasi.
• Operasi aritmatik dan pembandingan juga berlaku bagi bilangan biasa.
• Bilangan tetap (const) adalah tipe bilangan baik bernilai bulat maupun tidak yang
nilainya tidak berubah selama algoritma dilaksanakan.
• Tipe dituliskan sebagai : const
• Jangkauan nilai meliputi semua bilangan yang mungkin
4. Karakter (character)
• Karakter adalah data tunggal yang mewakili semua huruf, simbol baca, dan juga
simbol angka yang tidak dapat dioperasikan secara matematis, misalnya: ‘A’, ‘B’, …
, ‘Z’, ‘a’, ‘b’, …, ‘z’, ‘?’, ‘!’, ‘:’, ‘;’ dst.
• Tipe dituliskan sebagai : char
• Jangkauan nilai meliputi semua karakter dalam kode ASCII, atau yang tertera pada
setiap tombol keyboard.
• Operasi pembandingan dapat dilakukan dan dievaluasi menurut urutan kode ASCII,
sehingga huruf ‘A’ (Hex 41) sebenarnya lebih kecil dari huruf ‘a’ (Hex 61).
5. Logik (Logical)
• Tipe data logik adalah tipe data yang digunakan untuk memberi nilai pada hasil
pembandingan, atau kombinasi pembandingan.
• Tipe dituliskan sebagai : boolean
• Jangkauan nilai ada dua: true dan false
• Contoh: 45 > 56 hasilnya false, Amir < Husni hasilnya true
• Ada beberapa operasi untuk data jenis logik, antara lain: and, or, dan not
A B A and B A or B Not A
False False False False True
False True False True True
True False False True False
True True True True False
2. String
• String adalah tipe data bentukan yang merupakan deretan karakter yang membentuk
satu kata atau satu kalimat, yang biasanya diapit oleh dua tanda kutip.
• Sebagai contoh : nama, alamat, dan judul adalah tipe string.
• Cara mendefinisikannya adalah:
o String Nama, Alamat; atau
o Nama, Alamat : String;
3. Record (rekaman)
• Record adalah tipe data bentukan yang merupakan wadah untuk menampung elemen
data yang tipe-nya tidak perlu sama dengan tujuan untuk mewakili satu jenis objek.
• Sebagai contoh, mahasiswa sebagai satu jenis objek memiliki beberapa elemen data
seperti: nomer_stb, nama, umur, t4lahir, jenkel.
• Cara mendefinisikan record mahasiswa tersebut adalah sbb:
3.2 Variable
• Variable adalah nama yang mewakili suatu elemen data seperti: jenkel untuk jenis
kelamin, t4lahir untuk tempat lahir, alamat untuk alamat, dsb.
• Ada aturan tertentu yang wajib diikuti dalam pemberian nama variable antara lain:
o Harus dimulai dengan abjad, tidak boleh dengan angka atau simbol
o Tidak boleh ada spasi diantaranya
o Jangan menggunakan simbol-simbol yang bisa membingungkan seperti titik dua,
titik koma, koma, dsb.
o Sebaiknya memiliki arti yang sesuai dengan elemen data
• Ada dua cara yang dapat digunakan untuk memberi nilai pada suatu variable yaitu
melalui proses : assignment dan pembacaan.
• Pemberian nilai dengan cara assignment mempunyai bentuk umum sebagai berikut:
o Variable nilai;
o Variable1 variable2;
o Variable ekspressi;
• Contoh assignment:
o Nama “Ali bin AbuThalib”;
o Jarak 100.56;
o X Jarak;
o Rentang X + 50 – 3*Y;
Tanda panah ke-kiri berarti nilai disisi kanan diserahkan ke variabel disisi kiri. Ada
kalanya simbol panah kiri ini diganti dengan tanda sama dengan ( = ).
• Pemberian nilai dengan cara pembacaan dapat dilakukan melalui instruksi pembacaan
dengan bentuk umum sbb:
o read(variable); atau
o read( variable1, variable2, … );
Pada algoritma sering digunakan instruksi baca yang disertai perintah pindah ke baris
berikutnya setelah membaca data, yaitu:
• readln(variabel);
• Agar hasil pelaksanaan algoritma dapat dikomunikasikan atau ditayangkan maka nilai
variable yang telah diproses dalam algoritma dapat ditampilkan.
• Instruksi untuk menampilkan nilai variable adalah: write(variable, … ); atau bisa
menggunakan writeln(variabel, …); yang akan pindah ke baris barus setelah nilai
variabel ditampilkan.
• Contoh penampilan nilai adalah sbb:
o write(“nama anda : “, Nama);
o write(“nilai ujian = “, nilai);
o write(“Jumlah variable = “, X + Y + Z);
• Ekspressi adalah transformasi data dan peubah dalam bentuk persamaan yang direlasikan
oleh operator dan operand.
• Operand adalah data, tetapan, peubah/variabel, atau hasil dari suatu fungsi.
• Operator adalah simbol-simbol yang memiliki fungsi untuk menghubungkan operand
sehingga terjadi transformasi. Jenis-jenis operator adalah sbb:
o Operator aritmetika : operator untuk melakukan fungsi aritmetika seperti: +
(menjumlah), - (mengurangkan), * (mengalikan), / (membagi). Pada operator
aritmetika terdapat urutan pelaksanaan, sebagai berikut:
urutan pertama : ekspressi dalam tanda kurung
urutan kedua : perkalian atau pembagian
urutan ketiga : penjumlahan atau pengurangan
Sebagai contoh:
3 + 5 * 2 hasilnya 13 6 / 3 * 2 + 4 hasilnya 8
(3 + 5) * 2 hasilnya 16 6 / (3 * 2) + 4 hasilnya 5
o Operator relational : operator untuk menyatakan relasi atau perbandingan antara
dua operand, seperti : > (lebih besar), < (lebih kecil), >= (lebih besar atau sama),
<= (lebih kecil atau sama), == (sama), != (tidak sama) atau > <, < >.
o Operator logik : operator untuk merelasikan operand secara logis, seperti &&
(and), || (or), dan ! (not).
o Operator string : operator untuk memanipulasi string, seperti : +
(concatenation), len (panjang string), dan substr (substring, mencuplik).
• Berdasarkan pada jenis operator yang digunakan maka ada empat macam ekspressi,
yaitu: ekspressi aritmetika, ekspressi relational, eskspressi logik, dan ekspressi string.
Algoritma PPN
{ menghitung pajak pertambahan nilai 12.50% dari harga barang }
Defenisi Variabel
real harga, pajak, total;
Rincian Langkah:
• { Menetapkan harga barang }
Harga 15250;
• { Menghitung pajak }
pajak 0.125 * harga;
• { Menghitung total pembayaran }
total = harga + pajak;
• { Tampilkan hasil }
Tampilkan(“Harga = “, harga, “ pajaknya = “, pajak);
Tampilkan(“Total = “, total);
SOAL 2 : Menurut hukum Gravitasi Newton, massa akan memiliki gaya gravitasi diantara
mereka. Susun algoritma yang membaca massa tiga benda m1, m2, dan m3, kemudian jarak
diatara mereka r12, r13, dan r23. Tampilkan besarnya gravitasi diantara ketiga benda ini yang
mengikuti rumus gravitasi sebagai berikut:
݉1 ∗ ݉2 ݉1 ∗ ݉3 ݉2 ∗ ݉3
ܩ=ܨ൬ + + ൰
ݎ12 ݎ13 ݎ23
Algoritma Gravitasi
{ menghitung gaya gravitasi diantara massa }
Definisi Variabel
const G = 6.67E-11;
real m1, m2, m3;
real r12, r13, r23;
real gaya;
Rincian Langkah
{ membaca data massa dan jarak }
Tampilkan (“Masukkan massa 1 : “);
Baca(m1);
Flowchart:
Mulai
Baca Data
m1, m2, m3
• Keyword atau kata-kunci adalah kata-kata yang terdapat dalam perbendaharaan bahasa
C/C++. Setiap keyword memiliki arti dan maksud tertentu didalam bahasa C/C++, misalnya
sebagai instruksi, sehingga tidak boleh dipergunakan sebagai nama suatu variabel atau untuk
keperluan lain. Daftar nama keyword diberikan sbb:
Beberapa compiler C/C++ memberikan 10 byte untuk long-double, dengan presisi 19 digit dan
nilai e (+/-) 4932.
#define PI 3.14159
#define NEWLINE ‘\n’
atau
Karakter (char) yang di-awali backslash disebut Escape char, karakter yang
memiliki fungsi khusus, berikut ini tabel-nya.
Escape Character
Contoh:
Expressi Aritmetika:
x(y + z) x*(y + z)
ଵ
1/(z*z + z + 3)
௭ మ ା௭ାଷ
ା
(a + b) / (c – d)
(ିௗ)
Operator Relasional
Bila y = x*x – 4*x + 3, apa hasil dari y utk nilai x memenuhi ( 1 < x ) && ( x < 3)
Dan berapa hasilnya untuk x yang memenuhi ( 1 > x ) || (x > 3) ?
int main()
{
// set output to hexa
cout.setf(ios::hex, ios::basefield);
// inisialisasi dua variabel
int nArg1;
nArg1 = 0x1234;
int nArg2;
nArg2 = 0x00ff;
POST-TEST :
1. Sudah dapatkah anda menjawab soal pada pre-test?
2. Tulis algoritma sederhana untuk membaca dan menampilkan kembali data pegawai yang
sesuai dengan struktur record pada soal 1.
3. Tulis algoritma yang memintah suhu dalam skala celcius dan menampilkan suhu tersebut
dalam skala Fahrenheit. (Petunjuk: F = 9/5 * C + 32).
4.Tulis algoritma yang membaca tiga data, yaitu: nilai tugas, nilai mid, dan nilai final, kemudian
menghitung nilai akhir = 20% nilai tugas + 30% nilai mid + 50% nilai final, tampilkan nilai akhir
ini.
5.Tulis algoritma untuk membaca nilai tiga sisi sebuah segitiga, yaitu S1, S2, dan S3 kemudian
menghitung luas area dari segitiga tersebut, melalui rumus: