Anda di halaman 1dari 13

BAB III

TIPE, NAMA, DAN HARGA

3.1Tujuan Instruksional Khusus (TIK)

Setelah menyelesaikan bab ini diharapkan mahasiswa akan dapat:

1. Menjelaskan tipe-tipe data dasar.


2. Menjelaskan tentang bagaimana mendefinisikan suatu nama atau pengenal atau
identifier dengan baik dan benar (absah).
3. Menjelaskan tentang bagaimana mendefinisikan suatu konstanta dengan nilai tertentu
atau bagaimana cara memberikan suatu nilai terhadap suatu pengenal.

3.2 Pendahuluan

Pemrograman merupakan aktivitas menuliskan kode-kode program yang nantinya akan


dieksekusi oleh komputer. Untuk itu kode-kode program yang disusun atau dituliskan
haruslah mengikuti kaidah atau tata aturan yang telah ada. Tentunya dalam kode-kode
program yang dituliskan terdapat pengenal atau nama yang digunakan untuk memanipulasi
data, sedangkan nama atau pengenal tersebut tentunya juga mempunyai tipe data baik tipe
data dasar ataupun tipe data bentukan.
Hal ini merupakan salah satu bagian mendasar yang harus dimengerti oleh programmer di
dalam menuangkan penyelesaian suatu masalah ke dalam komputer.

3.3.1 Tipe Dasar


Yang termasuk ke dalam tipe bilangan dasar adalah : bilangan logik (Boolean), bilangan
bulat (Integer), bilangan riil, dan karakter

3.3.1.1 Bilangan Logik (Boolean)


Tipe bilangan logik didefinisikan sebagai berikut:
Nama : boolean
Ranah : (true, false)
Tetapan : true, false
Operator : not, and, or, xor

Tipe, Nama, dan Harga 25


Operasi yang ada dalam bilangan logik dapat ditunjukkan dengan tabel kebenaran berikut:

Tabel 3.1 Tabel kebenaran operator not, and, or, dan xor

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

3.3.1.2 Bilangan Bulat (integer)


Bilangan bulat adalah bilangan yang tidak mengandung pecahan, misalnya 34, 8, 1023, 0
dsb. Dalam algoritma tipe bilangan bulat didefinisikan sebagai berikut:
Nama : integer
Ranah :I
Tetapan : 78 –14 0 5 9999
Operator : (a) operator aritmatika
( + - * div(bagi) modulus(sisa hasil bagi)
(b) Operator relasional/perbandingan
( <  >  = )

Operasi aritmatika bilangan bulat dengan operator bilangan bulat menghasilkan nilai yang
bertipe bilangan bulat juga. Obyek yang diperasikan disebut operand. Misalnya operasi a + b,
maka a dan b adalah operand, sedangkan “+” adalah operatornya.

3.3.1.3 Bilangan Riil (Real)


Ada titik mengambang. Tipe bilangan riil didefinisikan sebagai berikut:
Nama : real
Ranah :R
Tetapan : 0. 18. 23.3 0.33333 9E-6 –3.098

Tipe, Nama, dan Harga 26


Operator : (a) Operator aritmatika
(+ - * /)
(b) operator relasional/perbandingan
( <  >  )
Perhatikan bahwa operasi bilangan riil tidak mengenal operator “=”, sebab bilangan riil tidak
dapat disajikan secara tepat oleh komputer. Misalnya 1/3 tidaklah sama dengan 0.3333,
sebab 1/3=0.3333…. (dengan angka tiga yang tak pernah berhenti). Kerena lasan ini maka
operator “=” ttidak ada dalam bilangan riil.

3.3.1.4 Karakter
Tipe karakter dapat didefinisikan sebagai berikut:
Nama : char
Ranah : ( ‘0’..’9’, ‘a’..’z’, ‘A’..’Z’, ‘#’, ‘@’, ‘!’, ‘*’, dan karakter khusus lainnya.)
Tetapan : ‘h’ ‘Y’ ‘.’ ‘ ’ ‘9’ ‘$’ ‘0’ (penulisan karakter harus diapit oleh tanda
petik tunggal)
Operator : relasional
( <  >  = )
Operasi dengan operator karakter menghasilkan nilai boolean. Misalnya, bila a dan b adalah
peubah bertipe karakter, maka operasi a < b akan menghasilkan nilai benar atau salah
tergantung pada kerurutan harga a dan b pada sistem pengkodean.

3.3.2. Tipe Bentukan

Dibentuk dari kata dasar

3.3.2.1 String
String adalah deretan karakter dengan panjang tertentu. Tipe string didefinisikan sebagai
berikut:
Nama : string
Ranah : deretan karakter yang didefinisikan pada ranah karakter
Tetapan : “YOGYAKARTA” “RULLY” “TEKNIK INFORMATIKA” “……….”
(semua tetapan string harus diapit oleh tanda petik ganda)

Tipe, Nama, dan Harga 27


Operator : (a) operator penyambung (concatenation) (+)
(b) operator relational
( <  >  = )
Operator “+” di sini bukanlah penjumlahan seperti pada tipe numerik (integer atau real).
Operator “+” berarti penyambungan. Bila a dan b adalah peubah bertipe string, maka ‘a’+’b’
sama dengan ‘ab’. Operator realasional, seperti halnya pada karakter, menghasilkan nilai
boolean (true atau false)

3.3.2.2 Rekaman
Sebuah rekaman tersusun atas satu atau lebih field/Medan data. Tiap field terdiri atas tipe
data tertentu atau tipe bentukan lain yang sudah didefinisikan sebelumnya. Nama rekaman
ditentukan oleh pemrogram sebuah rekaman dengan tiga field dapat ditunjukkan seperti
gambar berikut:

field 1 field 2 field 3

Contoh 1. Didefinisikan tipe bentukan yang menyatakan data mahasiswa. Data mahasiswa
terdiri atas NIM, nama, dan usia. Misalnya tipe bentukan ini dinamakan MHS.
Type MHS : record < NIM : integer, nama : string, usia : integer >

Jika dideklarasikan M adalah peubah bertipe MHS, maka cara mengacu tipe field pada
rekaman M adalah :
M.NIM
M.nama
M.usia
Nama : MHS
Ranah : sesuai dengan ranah masing-masing field
Tetapan : <990022, ‘Adi Negara’, 20>
<990023, ‘Rohana’, 19 >
Operator : tidak operator untuk MHS, tetapi kita dapat melakukan :
 Operasi integer terhadap MHS.NIM
 Operasi string pada MHS.nama
 Operasi integer pada MHS.usia

Tipe, Nama, dan Harga 28


Contoh 2. Didefinisikan tipe bentukan yang mewakili tanggal dalam kalender masehi. Hari
dinyatakan sebagai tanggal, bulan dan tahun. Misalnya tipe bentukan tersebut diberi:
Type tanggal : integer [1..31]
Type bulan : integer [1..12]
Type tahun : integer > 0
Type TGL : record <tang:tanggal,
bul : bulan,
thn : tahun>

jika DATE adalah tipe peubah bertipe TGL, maka cara mengacu tiap field :

DATE.tang [1..31]
DATE.bul [1..12]
DATE.thn > 0

Tipe TGL didefinisikan sebagai berikut:


Nama : TGL
Ranah : sesuai ranah masing-masing field
Tetapan : <12, 7, 1998> <31, 6 1975>
Operator : tergantung tipe tiap field.

3.3.3 Nama / Pengenal ( Identifier )


Di dalam program, nama dipakai sebagai pengidentifikasi “sesuatu” dan pemrogram
mengacu sesuatu itu melalui namanya. Karena itu tiap nama harus unik, tidak boleh ada dua
buah nama yang sama. Di dalam program “sesuatu” yang diberi nama berupa:
1) peubah (variable), ialah tempat penyimpanan data/informasi di memori yang isinya
bisa diubah
2) tetapan(constant), tempat penyimpanan di memori yang isinya tetap (tidak dapat
diubah)
3) Tipe(type), seperti penjelasan sebelumnya.
4) Nama fungsi (function)
5) Nama prosedur (procedure)
Berikut ini aturan penulisan nama :
1) Nama harus dimulai dengan huruf alfabet, tidak boleh dimulai dengan angka, spasi
atau karakter khusus lainnya.

Tipe, Nama, dan Harga 29


2) Huruf kecil atau huruf besar tidak dibedakan (tergantung bahasa pemrogrman).
Pengecualian untuk bahasa c
3) Karakter penyusun nama hanya boleh huruf alfabet, angka, dan “_”(underscore).
Nama tidak boleh mengandung operator aritmatika, operator relasional, tanda baca,
dan karakter khusus lainnya.
4) Karakter-karakter di dalam nama tidak boleh dipisah dengan spasi. Hal ini mengingat
bahwa nama adalah kesatuan leksikal, maka setiap nama harus disusun secara utuh,
spasi dapat diganti dengan “_”.
5) Panjang tidak dibatas, akan tetapi nanti kalau anda terapkan dalam Pascal hanya 63
karakter terdepan yang berarti.
Satu hal yang penting untuk diperhatikan, nama sebaiknya interpretatif, yaitu mencerminkan
nilai atau fungsi yang dikandungnya.
Tabel 3.2 Contoh penamaan yang salah dan absah
Contoh penamaan yang salah : Contoh penamaan yang absah
6titik (ada angka) Titik6 atau titik_6
nilai ujian (spasi) Nilai_Ujian atau NilaiUjian
PT-2 (ada operator) PT_2 atau PT2
Hari@ (symbol khusus) Hari
A 1 (spasi) A1 atau A_1

Di dalam algoritma semua nama didefinisikan dalam kamus atau deklarasi.


KAMUS / DEKLARASI
{nama tetapan}
const phi : real = 3.14

{ nama tipe }
type titik : record < x:real, y:real> {titik di dalam koordinat
kartesian}

{ nama peubah }
luasL : real { luas lingkaran }
p : titik { koordinat titik pusat lingkaran }

{ nama prosedur }
procedure HitTitikTengah(input P1 : titik, input P2 : titik, output Pt :
titik)

Tipe, Nama, dan Harga 30


{ menghitung titik tengah garis dengan titik ujung P1 dan P2,
K.Awal : P1 dan P2 sudah terdefinisi nilainya
K.Akhir : Pt adalah titik tengah P1 dan P2 }
Penerjemahan ke dalam Pascal
(* KAMUS*)
const
{ nama tetapan }
phi = 3.14

type
{ nama type }
titik = record { titik di dalam koordinat kartesian }
x : real; y : real;
end;

Var
{ nama peubah }
LuasL : real; {luas lingkaran }
P : titik; {koordinat titik pusat lingkaran}

{ nama prosedur }
Procedure HitTitikTengah( P1 : titik, P2 : titik;
Var Pt : titik);
{ menghitung titik tengah garis dengan titik ujung P1 dan P2,
K.Awal : P1 dan P2 sudah terdefinisi nilainya
K.Akhir : Pt adalah titik tengah P1 dan P2 }

(* KAMUS LOKAL *)
( * ALGORITMA *)
Begin
{ badan prosedur HitTitikTengah }
end;

3.3.4. Harga

Harga adalah nilai besaran dari tipe yang sudah dikenal. Harga dapat berupa nilai yang
dikandung oleh nama ubah oleh nama peubah atau tetapan.

3.3.4.1 Pengisian Harga Ke Dalam Nama Peubah

Harga dapat diisikan ke dalam nama peubah dengan cara :


1) Penugasan (assignment)
2) Dibaca dari piranti masukan

Tipe, Nama, dan Harga 31


3.3.4.2 Penugasan

Penugasan adalah mengisikan sebuah harga pada peubah secara langsung. Aksi penugasan
dilambangkan dengan tanda “”. Harga yang diberikan kepada nama peubah dapat berupa
tetapan, harga nama peubah lain, atau nilai sebuah ekspresi. Harga tersebut harus bertipe
sama dengan tipe nama. Notasi algoritma untuk penugasan:
ALGORITMA
Nama  tetapan { harga tetapan diisikan ke dalam nama }
Nama1  nama2 { harga nama2 disalin ke nama1; harga nama1 sama dengan
harga nama2 }
Nama  ekpresi { hasil perhitungan diisikan ke dalam nama }
Contoh :
ALGORITMA
K5
Jarak  0.03
Ketemu  false
Namakota  ‘YOGYA’
Akibat penugasan tersebut maka kondisi memori dapat direpresentasikan seperti gambar
berikut :
.
.
.
K 5
Jarak 0.03

Ketemu False

NamaKota ‘YOGYA’
.
.

Gambar 3.1 Penggambaran kondisi data di dalam memori

Tipe, Nama, dan Harga 32


3.3.4.3 Pembacaan Harga Dari Peranti Masukan

Harga untuk nama peubah dapat diisi dari peranti masukan, misalnya “keyboard”. Dalam
algoritma, pembacaan harga untuk nama peubah dilakukan dengan perintah input. Notasi
algoritma untuk pembacaan harga dari peranti masukan :
ALGORITMA
Input (nama1, nama2, …namaN)
Dengan syarat nama1, nama2,…namaN adalah nama peubah, tidak boleh nama tetapan.
Contoh :

ALGORITMA
Input (M)
Input (a1, a2, a3)
Input (nama, kota)
Input (nama_mhs, NRP, nilai)
Input(P.x, P.y)

3.3.4.4 Ekspresi

Suatu harga dipakai untuk proses tanspormasi menjadi keluaran yang diinginkan.
Transpromasi harga menjadi keluaran dilakukan melalui suatu perhitungan (komputasi). Cara
perhitungan itu dinyatakan dengan suatu ekspresi. Suatu ekspresi terdiri dari operand dan
operator. Operand adalah harga yang dioperasikan dengan operator tertentu. Operand dapat
berupa nama peubah, nama tetapan atau tetapan. Hasil perhitungan adalah harga dengan
ranah yang sesuai dengan tipe operator yang dipakai. Ekspresi ada dua macam yaitu ekspresi
numerik dan ekspresi boolean.

3.3.4.4.1 Ekspresi Numerik

Ekspresi numerik adalah ekspresi yang baik operand-nya bertipe numerik dan hasilnya juga
bertipe numerik. Operator yg menggunakan aritmatika. Misalnya didefinisikan kamus
sebagai berikut:
KAMUS
a, b, c : real
d : integer
i, j, k : integer
contoh ekspresi numerik :

Tipe, Nama, dan Harga 33


a*c
c  a*b tidak dibenarkan jika d  a*b
k  (i+j) div 2 tidak dibenarkan jika d  (i + j) div 2

yang perlu diperhatikan dalam penulisan ekspresi numerik adalah tingkatan (hirarkhi)
operator. Operator mempunyai tingkatan lebih tinggi lebih dahulu dikerjakan daripada yang
tingkatannya lebih rendah. Misalnya :
a/b+c
akan dikerjakan dengan urutan
1) a/b
2) hasil langkah tersebut kemudian ditambah c
yang benar harus anda tuliskan ekspresinya menjadi :
a/(b+c)
tingkatan operator aritmatika adalah (dari tertinggi ke rendah):
1) / , *
2) +, -, div, mod

Jadi operator “/” dan “*” mempunyai urutan prioritas yang sama, misalnya ekspresi:
a*b/c
sama saja dengan
(a * b) / c atau a * ( b/c )

3.3.4.4.2 Ekspresi Relasional

Ekspresi relasional adalah ekspresi dengan operator <, >, =, , , dan . Hasil ekspresinya
selalu bertipe boolean (true atau false). Misalnya ada kamus berikut :
KAMUS
Ketemu, besar : boolean
x, y : integer

dan ketemu telah berharga false, ada berharga true, x berharga 8 dan y berharga 12, maka
contoh ekspresi boolean adalah :

not ada {hasil: false}


ada and true {hasil: true}
x < 5 {hasil: false}

Tipe, Nama, dan Harga 34


ada or (x=y) {hasil: true}

3.3.4.5 Menuliskan Harga Ke Peranti Keluaran

Harga yang disimpan di dalam memori dapat ditampilkan ke peranti keluaran (misalnya layar
monitor). Perintah untuk penulisan harga adalah dengan output:
KAMUS
Ouput (nama1, nama2, ….namaN)
Ouput (tetapan)
Output ( nama, tetapan, ekspresi)
Output (ekspresi)

Contoh:
ALGORITMA
Output (100)
Output (A)
Output (‘A’)
Output (‘Jurusan Teknik Informatika’)
Output (‘Nilai A = ‘,A)
Output (nama_mhs, nrp, nilai)
Output (A+B)
Output (‘Nilai seluruhnya adalah ‘, (A+B)/2*20)

Contoh penerjemahan algoritma ke Pascal :


Misalnya sebelumnya didefinisikan kamus berikut:

KAMUS
Type titik : record <x :integer, y:integer>
P : titik
a, b : integer
NamaArsip : string
Harga : real
C : char

ALGORITMA

harga  1200.00
input (P.x, P.y)
input (NamaArsip)
input (a, b)
input (c)
output (‘Nama arsip : ‘,NamaArsip)
output (‘Koordinat titik adalah : ‘,P.x, ‘,’, P.y)
output(b, harga)
output (‘Karakter yang dibaca adalah ‘, C)

Tipe, Nama, dan Harga 35


Translasi dalam bahasa PASCAL:
Harga := 1200.00
readln (P.x, P.y)
readln (NamaArsip)
readln (a, b)
readln (c)
writeln (‘Nama arsip : ‘,NamaArsip)
writeln (‘Koordinat titik adalah : ‘,P.x, ‘,’, P.y)
writeln (b, harga)
writeln (‘Karakter yang dibaca adalah ‘, C)

3.4 Studi Kasus


3.4.1 Contoh Kasus
Mencetak string ke layar dengan berbagai cara :
Cara 1 : string disimpan dalam suatu peubah
Algoritma cetak_halo_1
{Mencetak string ‘Hello Word’ ke peranti keluaran}
Deklarasi
Cetak:string
Deskripsi
Cetak’Hello Word’
Write(cetak)

Cara 2 : string disimpan sebagai konstanta


Algoritma cetak_halo_2
{Mencetak string ‘Hello Word’ ke peranti keluaran}
Deklarasi
Const Cetak =’Hello Word’
Deskripsi
Write(cetak)

Cara 3 : string dimasukkan melaui peranti masukan (keyboard)


Algoritma cetak_halo_3
{Mencetak string nama orang ke peranti keluaran}
Deklarasi
Namaku : string
Deskripsi
Read(namaku)
Write(‘Halo ‘,namaku)

3.4.2 Soal-Soal
1. Buatlah algoritma dan program untuk menjumlah dan mengalikan dua buah bilangan
 bertipe integer
 bertipe real

Tipe, Nama, dan Harga 36


2. Translasikanlah algoritma dalam studi kasus ke dalam bahasa pemrograman Pascal atau
bahasa C.

3.5 Kesimpulan

Kode-kode program yang digunakan untuk mengimplementasikan suatu permasalahan ke


dalam komputer melibatkan nama atau pengenal berikut tipe datanya. Nama-nama yang
didefinisikan haruslah mengikuti kaidah atau aturan yang telah baku tentang bagaimana tata
cara mendefinisikan suatu nama yang absah, sehingga kode-kode yang dituliskan dapat
dimengerti dan dijalankan oleh komputer.

Bila dalam kode-kode program tersebut terdapat suatu ekspresi maka ekspresi tersebut
haruslah dituliskan dengan benar mengenai prioritas pengerjaan bila ditemui operator yang
mempunyai kedudukan atau prioritas lebih rendah tetapi harus dikerjakan terlebih dahulu
maka harus ditulis dalam blok tanda kurang buka dan kurung tutup. Hal ini agar nilai yang
dihasilkan oleh ekspresi tersebut benar.

Tipe, Nama, dan Harga 37

Anda mungkin juga menyukai