Anda di halaman 1dari 27

NAMA, TIPE, EKSPRESI, DAN NILAI

Program komputer pada dasarnya memanipulasi data yang disimpan di dalam memori.
Setiap data memiliki tipe masing-masing. Tipe data menentukan himpunan nilai yang
dapat dimilikinya dan operasi yang dapat dilakukan pada objek tersebut. Nilai-nilai
yang dicakup oleh tipe tersebut dinyatakan di dalam ranah (domain) nilai. Operasi-
operasi (beserta operator) yang dapat dilakukan terhadap tipe tersebut juga
didefinisikan.

Tipe data dapat dikelompokkan menjadi atas dua macam : tipe dasar dan tipe bentukan.
Tipe dasar adalah tipe yang dapat langsung dipakai, sedangkan tipe bentukan
diturunkan dari tipe dasar atau dari tipe bentukan lain yang sudah didefinisikan
sebelumnya.

Materi ini membahas berbagai tipe data yang bisa diprogram. Data tersebut dapat
dioperasikan dengan operator yang sesuai dengan tipenya. Operator menspesifikasikan
operasi apa yang dapat dilakukan terhadap peubah dan konstanta. Ekspresi
mengkombinasikan data untuk menghasilkan nilai baru.

1. NAMA

Di dalam algoritma dan pemrograman, penamaan adalah konsep yang penting. Karena
pada dasarnya program adalah proses memanipulasi objek objek di dalam memori,
maka objek tersebut harus diberi nama. Objek diberi nama agar ia mudah diidentifikasi,
diacu, dan dibedakan dari objek lainnya. Setiap nama haruslah unik, dalam arti tidak
tidak boleh ada dua buah nama yang sama di dalam lingkup yang sama.

Beberapa aturan mengenai penamaan di dalam pseudo-code :


1. Nama harus dimulai dengan huruf alfabet, tidak boleh dimulai dengan angka, spasi,
atau karakter khusus lainnya;
2. Huruf besar atau huruf kecil tidak dibedakan. Jadi, suatu nama yang ditulis dalam
huruf besar atau huruf kecil dianggap sama;
3. Karakter penyusun nama hanya boleh huruf alfabet, angka, dan "_" Karakter garis
bawah (underscore) dihitung sebagai sebuah huruf; karakter ini kadang-kadang
berguna untuk memudahkan membaca algoritma. Nama tidak boleh mengandung
operator aritmetika, operator relasional,
4. Tanda baca, dan karakter khusus lainnya; 5. Karakter-karakter di dalam nama tidak
boleh dipisah dengan spasi. Hal ini mengingat bahwa nama adalah kesatuan leksikal,
maka setiap nama harus ditulis secara utuh. Spasi dapat diganti dengan karakter"
6. Panjang nama tidak dibatasi.
Nama sebaiknya interpretatif yaitu mencerminkan nilai intrinsik atau fungsi yang
dikandungnya. Kita sebagai pemrogram sangat dianjurkan memberikan keterangan
pada nama yang didefinisikan. Keterangan tersebut dinyatakan sebagai komentar
yang diapit oleh sepasang tanda kurung kurawal. Di dalam buku ini, semua nama
yang dibuat oleh pemrogram ditulis dalam huruf miring (italic), sedangkan nama
yang menjadi keyword ditulis dengan cetakan huruf tebal (bold).

Contoh nama yang salah:


6titik (karena dimulai dengan angka)
nilai ujian (karena dipisahkan dengan spasi)
PT-1 (karena mengandung operator kurang)
hari! (karena mengandung karakter khusus)
A1 (karena mengandung spasi)

Contoh nama yang benar:


titik6 atau titik 6 nilai ujian atau nilaiujian
PT 1 atau PT1
hari
A1

Di dalam algoritma, objek yang diberi nama oleh pemrogram dapat berupa peubah
(variable), kontanta, nama tipe bentukan, nama fungsi, dan nama prosedur. Semua
nama yang digunakan di dalam algoritma harus dideklarasikan di dalam bagian
DEKLARASI sebelum mereka digunakan. Deklarasi menspesifikasikan nama-nama
peubah beserta tipenya, nama konstanta beserta nilainya, nama tipe bentukan, dan
nama prosedur/ fungsi Sebelum kita membicarakan nama pemberian pemrogram, kita
bahas dula mengenai tipe data.

2. TIPE DATA DASAR

Tipe data dasar sudah dikenal dalam kehidupan sehari-hari. Tipe ini sudah ada sejak
zaman dahulu (predefined data type). Kita hampir setiap hari berbicara tentang angka-
angka dan karakter. Dalam dunia pemrograman, yang termasuk ke dalam tipe dasar
adalah: bilangan bulat, bilangan riil, bilangan logika, karakter, dan string.

2.1 Bilangan Logika


Nama Tipe
Nama tipe bilangan logika adalah boolean (diambil dari nama seorang matematikawan
Inggris, George Boole).

Ranah Nilai
Bilangan logika hanya mengenal dua buah nilai : benar (true) atau salah (false). Istilah
"bilangan" pada "bilangan logika" dikarenakan kita dapat menyatakan "benar" dengan
angka 1 dan "salah" dengan angka o (atau sebaliknya, bergantung konvensi yang kita
buat).

Konstanta
Karena ranah nilai tipe boolean hanya beranggotakan dua buah nilai, maka konstanta
(constant) yang terdapat pada tipe ini adalah true dan false.

Operasi
Operasi-operasi yang dapat dilakukan terhadap tipe boolean dikenal dengan operasi
logika atau operasi boolean. Operasi logika menghasilkan nilai true atau false. Operator
logika yang umum digunakan untuk operasi

logika adalah: not, and, or, dan xor. Misalkan A dan B adalah dua peubah (variable) yang
bertipe boolean, maka cara menuliskannya di bagian DEKLARASI adalah sebagai berikut
:
DEKLARASI :
a, b: boolean

Hasil operasi A dan B dengan keempat operator boolean tersebut diberikan oleh
masing-masing tabel (yang disebut tabel kebenaran truth table) berikut:

A not a
True false
False true

a b a and b a or b a xor b
true true true true false
true false false true true
false true false true true
false false false false false

Cara mengingat hasil operasi dengan operator boolean sangat mudah. Ingatlah bahwa
operasi dengan operator and hanya akan bernilai benar bila a dan b keduanya bernilai
benar. Operasi dengan operator or hanya akan bernilai salah bila a dan b keduanya
bernilai salah. Sedangkan operasi dengan operator xor akan bernilai benar bila a dan b
saling berlawanan nilai kebenarannya.

Contoh operasi logika: misalkan X, Y, dan Z adalah peubah bertipe boolean, X bernilai
true, Y bernilai false, dan Z bernilai true, maka:

Operasi logika Hasil


(X and Y) or Z true
X and (Y or Z) true
not (X and 2) false
(Y xor Z) and Y false
2.2 Bilangan Bulat
Bilangan bulat sudah umum digunakan dalam kehidupan sehari-hari. Bilangan bulat
adalah bilangan yang tidak mengandung pecahan desimal, misalnya 34, 8, 1203, 0, -
17,34567892901, dan sebagainya.

Nama Tipe
Nama tipe bilangan bulat adalah integer.
Misalkan c dan d adalah dua peubah (variable) yang bertipe integer, maka cara
menuliskannya di bagian DEKLARASI adalah
DEKLARASI :
c, d: integer

Ranah Nilai
Secara teoritis, tipe bilangan bulat mempunyai ranah nilai yang tidak terbatas. Rentang
nilainya adalah dari minus tidak berhingga sampai plus tidak berhingga.

Tipe bilangan bulat adalah tipe yang memiliki keterurutan. Ini artinya, bila sebuah nilai
bilangan bulat diketahui, nilai sebelumnya (predecessor) dan nilai sesudahnya
(successor) dapat ditentukan. Contohnya, predecessor dari 8 adalah 7, sedangkan
succesor-nya adalah 9. Secara formal keterurutan itu didefinisikan sebagai berikut: jika
a adalah peubah bertipe bilangan bulat, maka predecessor(a)= a -1, dan successor (a) =
a + 1.

Konstanta
Konstanta nilai bertipe bilangan bulat harus ditulis tanpa mengandung titik desimal.
Contoh beberapa konstanta bertipe bilangan bulat misalnya:
78 -14 7654 5 9999

Operasi
Operasi yang dilakukan terhadap bilangan bulat ada dua macam, yaitu operasi
aritmetika dan operasi perbandingan. Operator yang digunakan pada masing-masing
operasi dinamakan operator aritmetika dan operator perbandingan (atau operator
relasional).
a. Operasi Aritmetika
Operasi aritmetika terhadap bilangan bulat dengan sembarang operator aritmetika
menghasilkan nilai yang bertipe bilangan bulat juga. Operator aritmetika yang
didefinisikan pada bilangan bulat adalah:
Operator Penjelasan Contoh
+ Penambahan a=5+2
– Pengurangan a=5–2
* Perkalian a=5*2
/ Div Pembagian (real/pecahan) a=5/2
% Mod Sisa hasil bagi (modulus) a=5%2

Operator div (div = divide) adalah operator bagi yang memberikan hasil pembagian
berupa bilangan bulat, sedangkan mod (mod = modulo) memberikan sisa hasil bagi.

Contoh-contoh operasi aritmetika bilangan bulat beserta hasil operasinya:


3+10 (hasil: 13)
87-31 (hasil: 56)
5 * 10 (hasil: 50)
10 div 3 (hasil: 3)
10 mod 3 (hasil: 1)
20 div 5 (hasil: 4)
20 mod 5 (hasil: 0)

Objek yang dioperasikan disebut operand. Misalnya pada operasi a + b. masing-masing


a dan b adalah operand, sedangkan adalah operatornya. Semua operator di atas
membutuhkan dua buah operand dalam pengoperasiannya, sehingga mereka disebut
juga operator biner. Khusus untuk operator"-", ia juga merupakan operator uner,
karena ia dapat dioperasikan dengan satu buah operand, misalnya -10, -17, dan
sebagainya.
b. Operasi Perbandingan
Operasi perbandingan terhadap bilangan bulat dengan salah satu operator relasional
menghasilkan nilai boolean (true atau false), Operator perbandingan untuk bilangan
bulat adalah:
< (lebih kecil)
≤ (lebih kecil atau sama)
> (lebih besar)
≥ (lebih besar atau sama)
= (sama dengan)
≠ (tidak sama dengan)

Contoh operasi perbandingan:


3<8 (true)
74 > 101 (false)
9≤9 (true)
9<9 (false)
17 = 17 (true)
(24 div 3) ≠ 8 (false)

2.3 Bilangan Pecahan


Tipe data float digunakan untuk menampung angka pecahan seperti 3.14, 62.22 atau -
0.01234. Pada bahasa pemrograman umumnya menggunakan tanda titik sebagai
pemisah angka bulat dan pecahan, bukan tanda koma seperti yang dipakai sehari-hari.
Selain float juga terdapat tipe data double yang juga bisa dipakai untuk menyimpan
angka pecahan. Perbedaan antara float dan double terletak dari jangkauan angka serta
tingkat ketelitian angka.
Berikut tabel perbedaan antara tipe data float dan double dalam bahasa C :

Jenis Tipe Data Ukuran Memory Jangkauan Ketelitian


float 4 byte 1.2E-38 hingga 3.4E+38 6 tempat desimal
double 8 byte 2.3E-308 hingga 1.7E+308 15 tempat desimal
2.4 Bilangan Riil
Bilangan riil adalah bilangan yang mengandung pecahan desimal, misalnya 3.65, 0.0003,
29.0, 2.60240000E-6, 24, dan lain-lain. Semua konstanta. bilangan riil harus
mengandung "." (titik). Konstanta "18" dianggap sebagai bilangan bulat, tetapi "18.0"
dianggap sebagai bilangan riil. Bilangan riil dapat juga dituliskan dengan notasi E yang
artinya perpangkatan sepuluh. Misalnya, 2.60240000E-6 artinya 2.60240000 x 10. Baik
tipe bilangan bulat maupun tipe bilangan riil, keduanya dinamakan juga tipe numerik
(numeric = angka).

Nama Tipe
Nama tipe bilangan bulat adalah real (beberapa literatur menyebutnya floating-point).

Misalkan e dan f adalah dua peubah (variable) yang bertipe bilangan riil. maka cara
menuliskannya di bagian DEKLARASI adalah sebagai berikut :
DEKLARASI :
e,f: real

Ranah Nilai
Sebagaimana halnya pada tipe bilangan bulat, secara teoritis tipe bilangan riil memiliki
ranah nilai yang tidak terbatas. Rentang nilainya adalah dari minus tidak hingga sampai
plus tidak hingga.

Konstanta
Setiap konstanta yang bertipe bilangan riil harus ditulis dengan tanda titik desimal.
Contoh konstanta bertipe bilangan riil misalnya:
0.78 -14.2376 7.654000+E8 0.0 99.0

Operasi
Seperti pada tipe bilangan bulat, operasi yang dilakukan terhadap bilangan riil ada dua
macam, yaitu operasi aritmetika dan operasi perbandingan. Operator yang digunakan
pada masing-masing operasi disebut operator aritmetika dan operator perbandingan.

a. Operasi Aritmetika
Operasi aritmetika terhadap bilangan riil dengan sembarang operator aritmetika
menghasilkan nilai yang bertipe bilangan riil juga. Operator aritmetika yang berlaku
pada bilangan riil adalah:
+ Tambah
– Kurang
* Kali
/ Bagi

Umumnya bahasa pemrogramanan membolehkan operasi campuran (mixed operation),


yaitu operasi aritmetika dengan salah satu operand nya bertipe bilangan riil sedangkan
operand lainnya bilangan bulat. Jika salah satu operand bertipe riil dan operand yang
lain bertipe bilangan bulat, maka operand bilangan bulat akan otomatis dikonversi ke
bilangan riil.

Contoh-contoh operasi aritmetika bilangan riil:


6.4 + 5.7 (hasil: 12.1)
8.0 -2.8 (hasil: 5.2)
10.0/3.0 (hasil: 3.333...)
10/2.5 (hasil: 4.0 → operasi bilangan campuran)
7.2*0.5 (hasil: 3.6)

b. Operasi Perbandingan
Operasi perbandingan terhadap bilangan riil dengan salah satu operator relasional
menghasilkan nilai boolean (true atau false). Operator perbandingan untuk bilangan riil
adalah:
< (lebih kecil)
≤ (lebih kecil atau sama dengan)
> (lebih besar)
≥ (lebih besar atau sama dengan)
≠ (tidak sama dengan)

Contoh-contoh operasi perbandingan:


0.3 < 0.003 (hasil : false)
8.0 ≥ 25 (hasil : true)
3.0 ≠ 3.5 (hasil : true)

Perhatikan bahwa kita tidak mengenal perbandingan dua buah bilangan riil dengan
operator "=". Hal ini dikarenakan bilangan riil tidak dapat disajikan secara eksak di
dalam komputer. Misalnya, 1/3 tidak sama dengan 0.33333. sebab 1/3 = 0.33333...
(dengan angka tiga yang tidak pernah berhenti), begitu juga 2/3 tidak sama dengan
0.666666666. Karena alasan ini maka operator "=" dianggap tidak ada untuk bilangan
riil, sehingga operasi kesamaan dua buah nilai riil tidak kita definisikan.

2.5 Karakter
Yang termasuk ke dalam karakter adalah semua huruf abjad, semua tanda. baca, angka
'o', '1', ..., '9', dan karakter-karakter khusus seperti '&', '^', '%', '#', '@', dan sebagainya.
Karakter kosong (null) adalah karakter yang panjangnya nol, dan dilambangkan dengan
".

Nama Tipe
Nama tipe untuk karakter adalah char.

Misalkan g dan h adalah dua peubah (variable) yang bertipe karakter, maka cara
menuliskannya di bagian DEKLARASI adalah
DEKLARASI :
g,h: char

Ranah Nilai
Ranah karakter adalah semua huruf di dalam alfabet ('a'..'z', 'A'..Z), angka desimal (0..9),
tanda baca (., , !, "?", , dan lain-lain), operator aritmetik (+/), dan karakter-karakter
khusus seperti ('S','#', '@'.,-', dan lain-lain). Daftar karakter baku yang lengkap dapat
dilihat di dalam buku buku yang memuat tabel ASCII.

Konstanta
Konstanta karakter harus diapit oleh tanda petik tunggal. Contoh konstanta karakter
misalnya:
‘h’ ‘Y’ ‘.’ ‘‘ ‘p’ ‘+’ ‘9’ ‘0’ ‘$’
Hati-hati menuliskan bahwa '9' adalah karakter, tetapi 9 adalah integer!

Operasi
Operasi yang dapat dilakukan pada tipe karakter adalah operasi perbandingan.
Operator perbandingan yang berlaku untuk tipe karakter adalah:
= (sama)
≠ (tidak sama)
< (lebih kecil)
≤ (lebih kecil atau sama)
> (lebih besar)
≥ (lebih besar atau sama)
Seperti halnya pada tipe bilangan bulat, tipe karakter juga mempunyai keterurutan
(successor dan predecessor) yang ditentukan oleh cara pengkodeannya di dalam
komputer, misalnya pengodean ASCII. Karena adanya keterurutan tersebutlah maka
kita dapat mendefinisikan operator <, <, >, dan > pada tipe karakter. Operasi dengan
operator perbandingan menghasilkan nilai boolean. Misalnya, bila a dan b adalah
peubah bertipe karakter, maka operasi a < b akan menghasilkan nilai benar atau salah
bergantung pada keterurutan harga a dan b pada sistem pengodeannya.

Contoh-contoh lainnya:
'a' = 'a' (hasil: true)
‘T’='t’ (hasil: false)
'y'≠'Y' (hasil: true)
'm' < '2' (hasil: true)
‘Q’ > ‘Z’ (hasil: false)
'1'<'2' (hasil: true)

2.6 String
String adalah untaian karakter dengan panjang tertentu. String sebenarnya bukan tipe
dasar murni karena ia disusun dari elemen-elemen bertipe karakter, Namun, karena
tipe string sering dipakai dalam pemrograman, maka string dapat diperlakukan sebagai
tipe dasar.
Nama Tipe
Nama tipe adalah string.
Misalkan i dan j adalah dua peubah (variable) yang bertipe string, maka cara
menuliskannya di bagian DEKLARASI adalah
DEKLARASI:
i,j: string

Ranah Nilai
Ranah nilai untuk tipe string adalah deretan karakter yang telah didefinisikan pada
ranah karakter.

Konstanta
Semua konstanta string harus diapit oleh tanda petik tunggal. Contoh contoh konstanta
string misalnya:
‘PADANG’
‘Jl. Adinegoro No.1’
‘………………………’
‘Program Studi Bisnis Digital’
‘ABCD765’
‘K7602’
‘Semua konstanta string harus diapit oleh tanda petik tunggal'

String kosong (null) adalah string yang panjangnya nol, dan dilambangkan dengan ".
Dengan kata lain, string kosong sama dengan karakter kosong.

Operasi
Operasi terhadap data bertipe string didefinisikan dua macam:

a. Operasi Penyambungan (Concatenation)


Operator : +
Operator "+" yang dimaksudkan di sini berarti penyambungan. Bila a dan b adalah
peubah bertipe string, maka a + b sama dengan ab.
Contoh:
‘Bisnis’ + ‘DIGITAL’ = ‘Bisnis DIGITAL’
‘Bisnis’ + ‘ DIGITAL’ = ‘Bisnis DIGITAL’
'aaa'+’ bbb' + 'cc' = 'aaa bbbcc‘
‘1’+’2’= '12' dan '2' + '1' = '21' (namun 1+2= 3. mengapa? )

b. Operasi Perbandingan
Operator :
= (sama)
≠ (tidak sama)
< (lebih kecil)
≤ (lebih kecil atau sama)
> (lebih besar)
≥ (lebih besar atau sama)
Operasi perbandingan, seperti halnya pada karakter, menghasilkan nilai boolean
(true atau false). Bila dua string dibandingkan, maka yang terjadi adalah
perbandingan elemen-elemen karakter dari kedua string pada posisi yang sama.

Contoh:
'abed' = 'abe' (hasil: false)
'aku' < 'AKU' (hasil: true)

String yang disusun oleh gabungan numerik dan karakter sering dinamakan
alfanumerik. Misalnya 'K7685302', 'D5432AB, dan sebagainya.

3. TIPE BENTUKAN
Tipe bentukan adalah tipe yang didefinisikan sendiri oleh pemrogram (user defined
data type). Tipe bentukan disusun oleh satu atau lebih tipe dasar. Ada dua macam tipe
bentukan:
1. tipe dasar yang diberi nama dengan nama tipe baru,
2. tipe terstruktur.
3.1 Tipe Dasar yang Diberi Nama Tipe Baru
Kadang-kadang pemrogram ingin memberi nama baru terhadap tipe dasar yang sudah
dikenal. Alasan pemberian nama baru mungkin agar nama baru tersebut lebih "akrab"
dan lebih mudah diinterpretasi oleh orang yang membaca teks algoritma.

Kita dapat memberi nama baru untuk tipe dasar tersebut dengan kata kunci type. Ranah
nilai, cara menulis konstanta, dan operasi-operasi terhadap tipe baru tersebut tidak
berubah, tetap sama dengan tipe dasar aslinya.
Contoh:
DEKLARASI:
type BilanganBulat: integer
P: Bilangan Bulat
BilanganBulat adalah tipe bilangan bulat yang sama saja dengan tipe integer. Apabila
kita mempunyai sebuah peubah (variable) yang bernama P dan bertipe Bilangan Bulat,
peubah P tersebut sama saja bertipe integer.

3.2 Tipe Terstruktur


Tipe terstruktur adalah tipe yang berupa rekaman (record). Rekaman disusun oleh satu
atau lebih field (Gambar 3.1). Tiap field menyimpan data dari tipe dasar tertentu atau
dari tipe bentukan lain yang sudah didefinisikan sebelumnya. Nama rekaman
ditentukan sendiri oleh pemrogram,

selanjutnya nama rekaman tersebut menjadi nama tipe baru..


fields field 2 field 3 … fieldN
Tipe terstruktur dengan N Buah Field

Contoh-contoh di bawah ini memperlihatkan bagaimana mendefenisikan tipe


terstruktur.

1) Titik dalam koordinat kartesian dinyatakan sebagai (x, y), dengan x adalah nilai absis
dalam arah sumbu-X dan y adalah nilai ordinat dalam arah sumbu-Y. Kita dapat
mendefinisikan titik sebagai tipe bentukan baru dengan x dan y sebagai nama field-
nya.
x y

Cara menuliskan tipe Titik di dalam bagian deklarasi:


type Titik: record <x: real, y : real>

Contoh konstantanya: <2.7.13.2>, <-1.4,-6.5>, <3.034,-10.12> Operasi yang dapat


dilakukan adalah operasi aritmetik bilangan riil terhadap x dan y operasi
perbandingan terhadap x dan y Kata record menyatakan bahwa Titik adalah tipe
terstruktur. Nama tipe bentukan baru adalah Titik. Jika dideklarasikan P adalah
peubah (variable) bertipe Titik dengan penulisan sebagai berikut:

DEKLARASI:
type Titik: record <x: real, y: real>
P: Titik

maka cara mengacu tiap field pada P adalah :


P.x
P.y

2) Bilangan kompleks adalah bilangan yang dapat dinyatakan sebagai a + bi dengan a


dan b riil sedangkan i V-1. Misalnya 4.0 +3.8i, 9.4-2.5i, dan sebagainya. Kita dapat
menyatakan sebuah bilangan kompleks sebagai tipe rekaman dengan a dan b sebagai
nama field-nya.
a b
Cara menuliskan tipe Kompleks di dalam bagain deklarasi:
type Kompleks: record <a: real, b: real>

Contoh konstantanya: <4.0.3.8>, <9.4.2.5>, <23.034, -100.0>


Operasi:
- operasi aritmetik bilangan riil terhadap a dan b
- operasi perbandingan terhadap masing-masing field
Jika dideklarasikan K adalah peubah bertipe Kompleks sebagai berikut:
DEKLARASI:
type Kompleks: record <a: real, b: real>
K: Kompleks

maka cara mengacu tiap field di dalam K adalah:


K.a
K.b
3) Didefinisikan tipe terstruktur yang mewakili tanggal dalam kalender Masehi. Hari
dinyatakan sebagai tanggal (dd), bulan (mm), dan tahun (yy), misalnya 10-8:1999.
Misalkan tipe bentukan tersebut diberi nama Tanggal:
dd mm yyyy

Cara mendeklarasikan tipe Tanggal:


DEKLARASI:
type Tanggal : record <dd: integer,
mm: integer,
yyyy: integer
>

Contoh konstanta : <12,7,1997>, <31,12,1980>, <29,2.1980>


Operasi : - operasi aritmetik bilangan bulat terhadap tiap field
- operasi perbandingan terhadap masing-masing field

Jika D adalah peubah bertipe Tanggal dengan deklarasi sebagai berikut :


DEKLARASI:
type Tanggal : record <dd: integer,
mm: integer,
yyyy: integer
>
D : Tanggal

Maka cara mengacu tiap field di dalam D adalah :


D.dd
D.mm
D.yyyy

4) NilMhs adalah nama tipe terstruktur yang menyatakan nilai ujian seorang mahasiswa
untuk suatu mata kuliah (MK) yang ia ambil. Data setiap mahasiswa adalah NIM
(Nomor Induk Mahasiswa), nama mahasiswa, kode mata kuliah yang ia ambil, dan
nilai mata kuliah tersebut.
NIM NamaMHS KodeMK Nilai

Cara mendeklarasikan tipe NilMhs:


DEKLARASI :
type Nilai : record < NIM : integer,
NamaMhs: string,
KodeMK : string,
Nilai : char
>
Contoh Konstanta : <2020101,’Ali Syaputra’,'FI324','A'>
<2020102,’Ani Syaputri’, 'MA211’,'B'>

Operasi :
- operasi aritmetik bilangan bulat terhadap NIM
- operasi string terhadap NamaMhs, KodeMK, Nilai

Jika dideklarasikan M adalah peubah bertipe NilMhs, maka cara mengacu tiap field di
dalam M adalah :
M.NIM
M.NamaMhs
M.KodeMK
M.Nilai

4. PEUBAH
Peubah (variable) adalah objek yang nilainya dapat diubah-ubah oleh instruksi di dalam
algoritma. Nama peubah harus didefinisikan tipenya di dalam bagian DEKLARASI

Contoh:
DEKLARASI:
X, nilai_ujian, jumlah : real
k: integer
c: char

Penjelasan : X. nilai ujian, jumlah, k, dan c adalah nama-nama peubah, sedangkan


tipenya didefinisikan setelah tanda ":". Peubah X, nilai ujian, dan jumlah bertipe real,
peubah k bertipe integer, sedangkan peubah c bertipe char. Nilai-nilai peubah ini dapat
dimanipulasi melalui instruksi di dalam algoritma.

Untuk peubah bertipe bentukan, tipe bentukannya harus didefinisikan sebelum


pendeklarasian peubah. Contohnya seperti di bawah ini:

DEKLARASI:
type Titik: record <r: real, y: real>
type Jam : record < hh: integer,
mm: integer,
ss: integer
>
P: Titik
J1, J2: Jam

Penjelasan : Titik dan Jam adalah nama tipe bentukan, sedangkan P adalah peubah yang
bertipe Titik, sedangkan J1 dan J2 adalah peubah yang bertipe Jam.

5. KONSTANTA

Konstanta adalah objek yang nilainya tetap selama pelaksanaan program dan tidak
boleh diubah. Notasi untuk menyatakan konstanta adalah const.
Contoh:
DEKLARASI:
const phi =3.14
const Nmaks = 100
const sundi = 'abc123'

Penjelasan phi, Nmaks, dan sandi adalah nama konstanta dengan nilai masing-masing
adalah 3.14, 100, dan string 'xyz123'. Nilai konstanta yang sudah diisi ke dalam nama
konstanta tidak dapat diubah oleh instruksi di dalam algoritma.

6. EKSPRESI

Transformasi nilai menjadi keluaran dilakukan melalui suatu perhitungan (komputasi).


Cara perhitungan itu dinyatakan dalam suatu ekspresi. Ekspresi terdiri atas operand
dan operator. Operand adalah nilai yang dioperasikan dengan operator tertentu.
Operand dapat berupa konstanta, nama prubah, nama konstanta, atau hasil dari suatu
fungsi. Hasil evaluasi dari sebuah ekspresi adalah nilai di dalam ranah yang sesuai
dengan tipe operand yang dipakai. Dikenal tiga macam ekspresi: ekspresi aritmetik,
ekspresi relasional, dan ekspresi string.

6.1 Ekspresi Aritmetik


Ekspresi numerik adalah ekspresi yang baik operand-nya bertipe numeric dan hasilnya
juga bertipe numerik.

Contoh ekspresi numerik misalnya,


a*c
Pada ekspresi ini, operand-nya adalah a dan b, sedangkan operatornya
adalah “*”.

Contoh ekspresi numerik lainnya:


a/2+c*b
i+(j*k)- 10*(d+k)
100.0/(a+c)-2.5
(i+j) div 2
p^3 + 2*a - b

Keterangan : ^ adalah operator perpangkatan, div adalah operator pembagian yang


menghasilkan hasil integer, dan mod adalah sisa hasil pembagian integer.

Yang harus diperhatikan dalam penulisan ekspresi numerik adalah tingkatan (hirarkhi)
operator. Operator yang mempunyai tingkatan lebih tinggi lebih dahulu dikerjakan
daripada operator yang tingkatannya lebih rendah. Misalnya ekspresi
a/c+b
akan dikerjakan dengan urutan a/c lebih dahulu, lalu hasilnya ditambah dengan b.

Urutan evaluasi ekspresi dapat berubah karena penggunaan tanda kurung. Misalnya
eskpresi
a/(c + b)
akan dikerjakan sebagai c + b lebih dahulu, baru kemudian a dibagi dengan hasil dari
c + b.

Tingkatan operator aritmetika adalah (dari tertinggi ke terendah);


1. ^
2. div, mod
3. /,*
4. +,-

Operator "/" dan "*" dapat saja mempunyai urutan prioritas yang sama, misalnya
a*b/c
sama saja dengan
(a*b)/c
atau
a* (b/c)

Tetapi, a/b*c bila diinterpretasikan sebagai (a/b)*c hasilnya tidak sama dengan a/(b*c).
Penggunaan tanda kurung dapat menghilangkan kesalahan interpretasi.
Operator +, - mempunyai urutan perioritas yang sama. Apabila ada bagian ekspresi yang
diapit oleh pasangan tanda kurung, maka ekspresi di dalam tanda kurung mempunyai
prioritas tertinggi untuk dievaluasi terlebih dahulu.

Contoh-contoh ekspresi yang sudah kita kemukakan merupakan eskpresi biner, yaitu
ekspresi yang operator-nya membutuhkan dua buah operand (sehingga operator-nya
disebut juga operator biner). Di samping eskpresi biner, terdapat juga ekspresi uner,
yaitu ekspresi dengan satu buah operand, misalnya
-a
-a* (b+c)
(-a adalah ekspresi uner). Operator "-", selain merupakan operator biner, juga adalah
satu-satunya operator uner dari seluruh operator arimetika.

Ekpresi biner pada seluruh contoh di atas ditulis dalam notasi infix, yaitu notasi yang
kita gunakan dalam kehidupan sehari-hari. Notasi infix adalah notasi dengan susunan:
operand1 operator operand2
Selain notasi infix, ekspresi biner juga dapat ditulis dalam notasi prefix:
operator operand1 operand2
atau dalam notasi postfix (suffix atau polish):
operand1 operand2 operator

Contoh ekspresi infix, prefix, dan postfix:


infix : 6*8
a+b/c*d-e f
prefix : *68
*+a/be-d*ef
postfix : 68*
abc/+def*-*

Umumnya bahasa pemrograman mengevaluasi ekspresi dalam notasi infix, namun ada
beberapa bahasa pemrograman tertentu yang dapat menghitung ekspresi dalam notasi
postfix dan prefix.
6.2 Ekspresi Relasional
Ekspresi relasional adalah ekspresi dengan operator <, ≤, >, ≥, =, dan #, not, and, or, dan
xor. Hasil evaluasi ekspresinya adalah nilai bertipe boolean (true atau false), sehingga
ekspresi relasional kadang-kadang disebut juga ekspresi boolean. Misalkan
dideklarasikan nama-nama peubah sebagai berikut ini:

DEKLARASI:
ada, ketemu, besar : boolean
x,y : integer

Misalkan ketemu berisi nilai false, ada bernilai true, x bernilai 8 dan y bernilai 12, maka.
Contoh-contoh ekspresi boolean adalah:
not ada {hasil: false}
ada or ketemu {hasil: true}
ada and true {hasil: true}
x<5 {hasil: false}
ada or (x = y) {hasil: true}

6.3 Ekspresi String


Ekspresi string adalah ekspresi dengan operator "+" (operator penyambungan atau
concatenation).
Contoh:
‘Jl Ganesha' + 'No 10' {hasil: J1. Ganesha No 10}
‘AA ’ + '123' {hasil: AA 123}

7. NILAI

Nilai adalah besaran dari tipe data yang terdefinisi (tipe dasar atau tipe bentukan). Nilai
dapat berupa data yang disimpan di dalam peubah atau konstanta, nilai dari hasil
perhitungan, atau nilai yang dikirim oleh fungsi. Algoritma pada dasarnya
memanipulasi nilai yang disimpan di dalam peubah. Memanipulasi nilai di dalam
peubah misalnya: mengisikannya ke peubah lain yang bertipe sama, dipakai untuk
perhitungan, atau dituliskan ke piranti keluaran. Masing-masing cara manipulasi
dibahas di bawah ini.

7.1 Mengisi Nilai ke dalam Peubah


Sebuah peubah menyimpan nilai yang bertipe sama dengan tipe peubah. Jadi, kalau
sebuah peubah bertipe integer, maka ia hanya dapat diisi dengan nilai bertipe integer.

Sebuah nilai dapat dimasukkan ke dalam nama peubah dengan dua cara :
1. pengisian nilai secara langsung (assignment),
2. pembacaan.

Pengisian nilai secara langsung dibahas berikut ini, sedangkan untuk pembacaan
dibahas dalam upa-bab tersendiri.

Pengisian nilai secara langsung (assignment) adalah memasukkan sebuah nilai ke dalam
peubah secara langsung di dalam kode program dengan notasi tanda panah "←". Di ruas
kiri tanda panah harus berupa peubah, sedangkan di ruas kanannya dapat berupa
kontanta, peubah lain, atau ekspresi aritmetika. Arti notasi "←" adalah nilai di ruas
kanan tanda panah diisi ke dalam peubah di ruas kirinya.

(a) Nilai yang diisi ke dalam peubah dapat berupa konstanta,


peubah ← konstanta
Contoh : A ← 10
Arti dari pseudo-code di atas: Nilai 10 diisi ke dalam peubah A, akibatnya A
sekarang berisi nilai 10.

(b) Peubah diisi dengan nilai dari peubah lain:


peubah ← peubah2
Contoh : B ← A
Arti dari pseudo-code di atas: Nilai A disalin (copy) ke dalam B, akibatnya B berisi
nilai yang sama dengan nilai di dalam A. Misalnya jika A bernilai 10, maka B juga
bernilai 10. Perhatikan bahwa penyalinan nilai peubah2 ke dalam peubahı tidak
menyebabkan nilai peubah2 hilang. Nilai peubah2 tetap sama seperti semula.
(c) Peubah diisi dengan hasil evaluasi dari sebuah ekspresi:
peubah ← ekspresi
Contoh : C ← (A + B)/2 {A berisi hasil evaluasi (A+B)/2}
Arti dari pseudo-code di atas: A berisi hasil evaluasi ekspresi (A + B)/2. Misalkan A
= 10, B = 12, maka (A + B)/2 = 11. Nilai 11 ini dimasukkan ke dalam peubah C,
akibatnya C berisi nilai 11.

Setiap peubah berasosiasi dengan sebuah lokasi di memori komputer. Sifat memori
adalah jika ia diisi dengan nilai baru, maka nilai yang disimpan sebelumnya hilang. Jadi,
jika suatu peubah diisi dengan nilai baru, maka nilai lama yang disimpan oleh peubah
tersebut "ditimpa" dengan nilai yang baru. Prinsip yang dipakai adalah: nilai yang
dikandung oleh sebuah peubah adalah nilai yang terakhir kali diisikan ke dalamnya.

Misalkan peubah k dideklarasikan bertipe integer, jarak bertipe real, ketemu bertipe
boolean, NamaKota bertipe string, dan J bertipe Jam. (lihat tipe bentukan untuk Jam).
Maka, contoh pengisian peubah-peubah tersebut dengan nilai-nilai konstanta adalah
sebagai berikut:
k←5
jarak ← 0.03
ketemu ← false
NamaKota ← ‘PADANG’
J ← <6,12,39> {Mengisi J dengan jam 6:12:39}
{atau, kita bisa mengisi setiap field dari J:
J.hh ← 6
J.mm ← 12
J.ss ← 39
}

Tetapi, pengisian langsung nilai di bawah ini salah:


k ← 0.5
karena k yang bertipe integer diisi dengan nilai bertipe real.
Misalkan B, awal, suhu, suhu2, ulang, dan mulai adalah peubah yang didefinisikan
bertipe integer. Contoh di bawah ini adalah mengisi sebuah peubah dengan nilai dari
peubah lain.

B ← awal
suhut ← suhu2
ulang ← mulai
Peubah di ruas kanan harus sudah berisi nilai terlebih dahulu. Misalkan suhuz berisi 70
dan suhu2 sudah berisi nilai 80, maka pengisian nilai
suhu ← suhu2
menyebabkan peubah suhui sekarang berisi nilai 80. Nilai yang dikandung suhur
sebelumnya (70) hilang digantikan 80.

Contoh berikut ini adalah pengisian peubah dengan ekspresi. Hasil ekspresi harus
bertipe sama dengan tipe peubah di ruas kiri.
C ← A+B
nisbah ← jumlah/banyak * 5
determinan ← b*b-4*a*c
k ← (i+j) div 2
h ← (i > 1) and (i ≤ 100)
Bila A didefinisikan dideklarasikan bertipe integer, maka instruksi:
A ← A+1
artinya nilai A yang baru adalah nilai A yang lama ditambah satu, atau dengan kata lain:
Abaru = Alama +1
Misalkan A bernilai 8, maka setelah pernyataan A+A+1, nilai A sekarang adalah 9 (yaitu
8 + 1).

Berapa nilai M dan P setelah runtunan penugasan di bawah ini dikerjakan?


M ← 16
P ← M*2
M ← P+100
P ← P+M
Jawabannya adalah : di akhir instruksi diperoleh M=132 dan P-164. Silakan diperiksa
kebenarannya.

7.2 Membaca Nilai dari Piranti Masukan

Selain dengan pengisian secara langsung di dalam kode program, nilai peubah juga
dapat diisi dari luar dari piranti masukan (misalnya dari papan ketik atau keyboard).
Memasukkan nilai dari dari piranti masukan dinamakan operasi pembacaan data,
karena komputer seolah-olah. membaca apa yang kita masukkan.

Notasi algoritma untuk pembacaan nilai dari piranti masukan adalah:


read (nama1, nama2, ..., namaN)
dengan syarat bahwa nama1, nama2, ..., namaN adalah nama-nama peubah yang sudah
dideklarasikan tipenya terlebih dahulu.
Sebagai contoh,
read(N)
Instruksi di atas artinya meminta pengguna (user) memasukkan (misalnya dengan
mengetikkan dari keyboard) nilai untuk peubah N. Jika pengguna mengetikkan angka:
25 <enter>
maka N sekarang berisi nilai 25.

Misalkan M, a, b, c, bertipe real, nama_kota dan nama_mhs bertipe string, NIM dan nilai
bertipe integer, dan P adalah rekaman bertipe Titik (lihat tipe bentukan Titik). Cara
membaca nilai untuk semua peubah tersebut adalah:
read(M)
read(a, b, c)
read(nama_mhs, NIM)
read(P.x, P.y)

7.3 Mecetak Nilai ke Piranti Keluaran


Nilai konstanta, peubah, dan hasil ekspresi dapat ditampilkan ke piranti luaran
(umumnya layar peraga). Instruksi pencetakan nilai dilakukan dengan notasi write:
write(nama1, nama2, ..., namaN)
write(konstanta)
write(ekspresi)
write(nama, konstanta, ekspresi)
nama1, nama2, ..., namaN dapat berupa nama peubah atau nama konstanta.
Menampilkan nilai ke piranti keluaran diistilahkan dengan mencetak nilai tersebut.
Contoh pertama : write(‘Padang’)

Instruksi di atas artinya mencetak tulisan "Padang" ke piranti layar. Di layar komputer
muncul tulisan : Padang

Contoh kedua: write(N)

Instruksi di atas artinya mencetak nilai peubah N ke piranti layar. Jika Ni sudah
terdefinisi nilainya, misalkan N berisi nilai 25, maka di layar komputer muncul tulisan :
25

Contoh lainnya:
write('A') {mencetak karakter 'A'}
write(A) { mencetak nilai yang disimpan peubah A}
write(A + 2) { mencetak ekspresi, yaitu nilai A ditambah 2}
write('Hello', A) {mencetak 'Hello' dan nilai peubah A}
Perhatikanlah bahwa write(A) tidak sama dengan write(‘A’). Yang pertama. menuliskan
nilai A, sedangkan yang kedua menuliskan karakter 'A'.

Anda mungkin juga menyukai