Pada
umumnya, program komputer memanipulasi objek (data) didalam memori. Peubah
(variabel) dan konstanta (constant) adalah objek data dasar yang dimanipulasi
didalam program. Deklarasi daftar peubah digunakan untuk menyatakan tipe peubah
. Operator mengspesifikasikan operasi apa yang dapat dilakukan terhadap peubah
dan konstanta. Ekspresi mengkombinasikan peubah-peubah dan konstanta untuk
menghasilkan nilai baru.
Tipe data dapat dikelompokkan
menjadi dua macam :
1. Tipe Dasar
Tipe
dasar adalah tipe yang dapat langsung dipakai. Yang termasuk tipe dasar adalah
bilangan lojik, bilangan bulat, karakter, bilangan riil, dan string. Untuk
bilangan lojik dan bilangan bulat disebut juga tipe ordinal karena setiap
konstanta nilainya dapat ditransformasikan ke suatu nilai integer.
Bilangan Lojik
• Nama tipe bilangan ini adalah Boolean.
• Ranah nilai boolean adalah true dan false.
• Operator yang digunakan not, and, or, dan xor.
• Ranah nilai boolean adalah true dan false.
• Operator yang digunakan not, and, or, dan xor.
Contoh :
A
|
B
|
A not B
|
A and B
|
A or B
|
A xor B
|
True
|
True
|
False
|
True
|
True
|
False
|
True
|
False
|
True
|
False
|
True
|
True
|
False
|
True
|
True
|
False
|
True
|
True
|
False
|
False
|
True
|
True
|
False
|
False
|
Bilangan Bulat
• Nama tipe Integer.
• Ranah Nilai. Secara teoritis bilangan bulat tidak mempunyai batasan untuk nilai. Tetapi pada dunia pemograman, ranah nilai bilangan bulat mempunyai batasan. Hal tersebut dimaksudkan untuk penghematan alokasi memori. Berikut rentang nilai pada Pascal dan C.
• Ranah Nilai. Secara teoritis bilangan bulat tidak mempunyai batasan untuk nilai. Tetapi pada dunia pemograman, ranah nilai bilangan bulat mempunyai batasan. Hal tersebut dimaksudkan untuk penghematan alokasi memori. Berikut rentang nilai pada Pascal dan C.
Pascal
|
Rentang
|
Nilai
|
C
|
Byte
|
0 … 255
|
Unsigned
|
Char
|
Shortint
|
-128 … 127
|
Signed
|
Char
|
Word
|
0 … 65535
|
Unsigned
|
int
|
Integer
|
-32768 … 32767
|
Int
|
shortint
|
Longint
|
-2147483648 … 2147483647
|
Longint
|
|
Setiap
bilangan bulat mempunyai keturunan, atau dengan kata lain sebuah bilangan bulat
mempunyai nilai sembarangan (predecessor) dan nilai sesudahnya (succesor).
Misalnya : Nilai 8 memiliki predecessor 7 dan successor 9.
• Konstanta untuk bilangan bulat tidak boleh mengandung titik decimal.
• Operasi :
1. Operasi Aritmatika, yaitu :
+ (tambah)
- (kurang)
* (kali)
div (bagi) (dengan hasil bilangan bulat tanpa titik desimal)
mod (sisa hasil bagi)
ket : Objek yang di operasikan disebut operand. Misalnya : a + b artinya a dan b merupakan operand sedangkan + adalah operator.
2. Operasi perbandingan. Hasil operasi perbandingan akan menghasilkan nilai boolean (true dan false)
< (lebih kecil)
≤ (lebih kecil atau sama dengan)
> (lebih besar)
≥ (lebih besar atau sama dengan)
= (Sama dengan)
≠ (Tidak sama dengan)
Bilangan Riil
Bilangan
riil adalah bilangan yang mengandung pecahan
desimal, misalnya 3.65, 0.0003, 29.0, 2.60240000E-6, .24 , dll. Semua
konstanta bilangan riil harus mengandung
titik (desimal). Misalnya “18” dianggap sebagai bilangan bulat, tetapi
“18.0” dianggap sebagai bilangan riil. Untuk bilangan riil yang ditulis dengan
notasi E berarti perpangkatan sepuluh. Contoh : 2.60240000E-6 artinya
2.60240000×10-6.
• Nama tipe bilangan riil adalah real.
• Ranah nilai bilangan riil sama dengan bilangan bulat, tetapi penerapan pada bahasa pemograman berbeda. Untuk bahasa PASCAL, penerapannya :
Tipe
|
Rentang
|
Nilai
|
Format
|
real
|
2.9×10-39 … 1.7 x 1038
|
6 Byte
|
|
Single
|
1.5 x 10-45 …. 3.4 x 1038
|
4 Byte
|
|
Double
|
5.0 x 10-324 … 1.7 x 10308
|
8 Byte
|
|
Extended
|
3.4 x 10-4932 … 1.1 x 104932
|
10 Byte
|
|
Sementara,
dalam bahasa C, hanya ada 2 tipe
untuk bilanganriil yaitu float dan
double. Float adalah bilangan
riil berpresisi tunggal (single-precision), Double adalah bilangan riil berpresisi ganda (double-precision).
Sementara untuk long double
mengspesifikasikan tipe bilangan riil yang berpresisi-extended.
• Operasi pada bilangan riil ada 2 macam, yaitu :
1. Operasi Aritmetika
+ (tambah)
- (kurang)
* (kali)
/ (bagi)
Ket : Jika dilakukan operasi campuran dengan salah satunya operandnya bertipe bilangan riil sedangkan operandnya yang lain bilangan bulat, maka otomatis operand yang bilangan bulat akan otomatis di konversi ke bilangan riil.
2. Operasi Perbandingan
< (lebih kecil)
≤ (lebih kecil atau sama dengan)
> (lebih besar)
≥ (lebih besar atau sama dengan)
≠ (Tidak sama dengan)
Ket. : Pada bilangan riil tidak dikenal operasi sama dengan “=”. Karena bilangan riil tidak dapat disajikan secara tepat oleh komputer. Misalnya 1/3 tidak sama dengan 0.33333, sebab 1/3 = 0.3333333…. (dengan angka 3 yang tidak pernah berhenti)
Karakter
Yang
termasuk karakter adalah semua huruf-huruf abjad, semua tanda baca, angka ‘0’,
‘1’, … , ‘9’. Dan karakter-karakter khusus seperti ‘&’, ‘^’, ‘%’, ‘#’, ‘@’,
dll. Karakter kosong (null) adalah karakter yang panjangnya nol dan
dilambangkan ‘ ‘.
• Nama tipe untuk karakter adalah char
• Ranah nilai untuk karakter adalah semua huruf di dalam alfabet (‘a’, … ‘z’, ‘A’ … ‘Z’) angka desimal (0 … 9), tanda baca (‘.’, ‘:’, ‘!’, ‘?’, ‘,’, dll), operator aritmetik (‘+’, ‘-‘, ‘*’, ‘/’), dan karakter-karakter khusus seperti (‘$’, ‘#’, ‘@’, ‘^’, ‘~’, dll). Daftar karakter baku yang lengkap dapat dilihat di dalam buku-buku yang memuat tabel ASCII.
• Konstanta karakter harus diapit oleh tanda petik tunggal. Ket: ingatlah bahwa ‘9’ adalah karakter, tetapi 9 adalah integer.
• Untuk operasi yang dilakukan hanya operasi perbandingan yaitu :
= (sama dengan)
≠ (tidak sama dengan)
> (lebih besar)
≥ (lebih besar atau sama dengan)
< (lebih kecil)
≤ (lebih kecil atau sama dengan)
Ket.: Tipe karakter juga mempunyai keterurutan (successor dan predecessor) yang ditentukan oleh cara pengkodeannya didalam komputer, misalnya pengkodean ASCII. Operasi perbandingan menghasilkan nilai boolean.
String
String
adalah untaian karakter dengan
panjang tertentu.
• Nama tipe string adalah string
• Ranah nilai tipe string adalah deretan karakter yang telah didefenisikan pada ranah karakter.
• Konstanta pada tipe string harus diapit oleh dua buah tanda petik tunggal.
• Nama tipe string adalah string
• Ranah nilai tipe string adalah deretan karakter yang telah didefenisikan pada ranah karakter.
• Konstanta pada tipe string harus diapit oleh dua buah tanda petik tunggal.
Contoh :
‘Makassar’
‘boby’
‘Abc1234’
‘*…*…#008*’
‘B’
Untuk string kosong (null) dilambangkan dengan ‘ ’.
• Operasi pada tipe string didefinisikan 2 macam :
a. Operasi Penyambungan (concatenation)
Operasi “+”. Operator ini bukanlah operator penjumlahan seperti pada tipe real/integer tetapi operator penyambungan. Contoh :
‘Boby’ + ‘Hermez’ = ‘Boby Hermez’
b. Operator perbandingan
Sama halnya tipe karakter akan menghasilkan nilai boolean.
=, ≠, <, ≤, >, ≥
2. Tipe Bentukan
Tipe
bentukan adalah tipe yang didefenisikan
sendiri oleh pemogram (user defined type data). Tipe bentukan di susun oleh
satu atau lebih tipe dasar. Ada 2 macam tipe bentukan :
1. Tipe dasar yang diberi dengan nama tipe baru
2. Tipe terstruktur
1. Tipe dasar yang diberi dengan nama tipe baru
2. Tipe terstruktur
Tipe
dasar yang diberi nama tipe baru (user defined type data). Penamaan tipe baru
disebabkan oleh kemungkinan untuk memudahkan interpretasi dan pembacaan program
oleh pemogram. Kita dapat memberi nama baru untuk tipe dasar tersebut dengan
kata kunci type. Untuk Nilai, Ranah nilai, konstanta, dan operasi-operasi tipe
tersebut tidak berubah dan sesuai dengan tipe dasar aslinya, misalnya : type
bilangan bulat / integer.
Ket.: Bilangan sama saya dengan tipe integer. Jadi,
misalkan variabel i bertipe bilangan bulat, sama saja jika i bertipe integer.
Contoh
:
DEKLARASI
i = integer
DEKLARASI
i = integer
Sama
Saja
DEKLARASI
Type bilangan_bulat : integer
i = bilangan_bulat
DEKLARASI
Type bilangan_bulat : integer
i = bilangan_bulat
Tipe Terstruktur.
Tipe
terstruktur adalah tipe yang berbentuk
rekaman (record). Rekaman (record) disusun oleh satu atau lebih field. Tiap
field menyimpan data dari tipe dasar tertentu atau dari tipe bentukan lain yang
sudah didefinisikan sebelumnya. Nama rekaman ditentukan sendiri oleh pemogram.
Contoh :
A. Mendefenisikan titik (type)
Titik dalam koordinat kartesian dinyatakan sebagai (x,y).
Penulisannya :
type titik : record < x:real, y:real>; atau
type titik : record < x,y : real>
Jika pendeklarasian P adalah variabel yang bertipe titik makan pendeklarasian tiap field pada P adalah :
A. Mendefenisikan titik (type)
Titik dalam koordinat kartesian dinyatakan sebagai (x,y).
Penulisannya :
type titik : record < x:real, y:real>; atau
type titik : record < x,y : real>
Jika pendeklarasian P adalah variabel yang bertipe titik makan pendeklarasian tiap field pada P adalah :
P.x
P.y
P.y
B. Mendefinisikan tipe tanggal
dd.mm.yy
Penulisannya:
tipe tanggal : record
< dd : integer, mm : integer, yy : integer >
Jika D adalah variabel bertipe tanggal, maka cara pendeklarasiannya adalah :
D.dd
D.mm
D.yy
dd.mm.yy
Penulisannya:
tipe tanggal : record
< dd : integer, mm : integer, yy : integer >
Jika D adalah variabel bertipe tanggal, maka cara pendeklarasiannya adalah :
D.dd
D.mm
D.yy
Penulisan tipe Jadwal kereta Api:
type Jadwal_KA : record < NoKA : string, KotaAsal : string, JamBerangkat : Jam, KotaTujuan : string, JamTiba : Jam >
Jika JKA adalah peubah bertipe Jadwal_KA, maka cara mendeklarasikan tiap-tiap field adalah :
JKA.NoKA
JKA.KotaAsal
JKA.JamBerangkat
JKA.JamBerangkat.hh
JKA.JamBerangkat.mm
JKA.JamBerangkat.ss
JKA.KotaTujuan
JKA.JamTiba.hh
JKA.JamTiba.mm
JKA.JamTiba.ss
Nama
Nama
dalam algoritma dipakai sebagai pengidentifikasi “sesuatu” dan pemrogram
mengacu “sesuatu” itu melalui namanya. Untuk menjaga ketaatasasan, maka
algoritma didalam buku ini memiliki aturan
penulisan nama sebagai berikut :
1. Nama harus dimulai dengan huruf alfabet, tidak boleh dengan angka, spasi atau karakter khusus lainnya
2. Huruf besar atau huruf kecil tidak dibedakan (kecuali bahasa C)
3. Karakter penyusunan nama hanya boleh huruf alfabet, angka, dan “_”. Underscore (“_”) dihitung sebagai sebuah huruf
4. Nama tidak boleh mengandung operator aritmetika, operator relasional, tanda baca, dan karakter khusus lainnya.
5. Karakter dalam nama tidak boleh dipisahkan dengan spasi.
6. Panjang nama tidak dibatasi
1. Nama harus dimulai dengan huruf alfabet, tidak boleh dengan angka, spasi atau karakter khusus lainnya
2. Huruf besar atau huruf kecil tidak dibedakan (kecuali bahasa C)
3. Karakter penyusunan nama hanya boleh huruf alfabet, angka, dan “_”. Underscore (“_”) dihitung sebagai sebuah huruf
4. Nama tidak boleh mengandung operator aritmetika, operator relasional, tanda baca, dan karakter khusus lainnya.
5. Karakter dalam nama tidak boleh dipisahkan dengan spasi.
6. Panjang nama tidak dibatasi
Nama
sebaiknya interpretatif, yaitu mencerminkan
nilai intrisik atau fungsi yang dikandungnya.
Contoh penamaan : titik6 atau titik_6, Nilai_Ujian atau NilaiUjian, PT1 atau PT_1, Hari, A1. Didalam algoritma, objek yang diberi nama dapat berupa :
1. Peubah (variabel) adalah tempat penyimpanan data/informasi di memory yang isinya dapat diubah.
2. Konstanta (Constant) : adalah tempat penyimpanan didalam memory yang isinya tetap selama pelaksanaan program dan tidak dapat diubah nilainya
3. Tipe bentukan, seperti yang telah dijelaskan, berupa tipe yang dibentuk oleh pemogram.
4. Nama Fungsi
5. Nama Prosedur
Contoh penamaan : titik6 atau titik_6, Nilai_Ujian atau NilaiUjian, PT1 atau PT_1, Hari, A1. Didalam algoritma, objek yang diberi nama dapat berupa :
1. Peubah (variabel) adalah tempat penyimpanan data/informasi di memory yang isinya dapat diubah.
2. Konstanta (Constant) : adalah tempat penyimpanan didalam memory yang isinya tetap selama pelaksanaan program dan tidak dapat diubah nilainya
3. Tipe bentukan, seperti yang telah dijelaskan, berupa tipe yang dibentuk oleh pemogram.
4. Nama Fungsi
5. Nama Prosedur
Contoh Pengidentifikasian lewat nama
:
ALGORITMA
{Nama konstanta}
const phi = 3.14
const Nmaks = 100
const sandi = ‘xyz’
{Nama konstanta}
const phi = 3.14
const Nmaks = 100
const sandi = ‘xyz’
{Nama tipe}
type MHS : record
< NIM :integer, Nama: string, Usia : string,>
type Titik : record
type Kompleks : record
type Jam : record < hh : integer, mm : integer, ss : integer>
type JadwalKA : record < NoKA : string, KotaAsal : string, JamBerangkat : Jam, KotaTujuan : string, JamTiba : Jam>
type MHS : record
< NIM :integer, Nama: string, Usia : string,>
type Titik : record
type Kompleks : record
type Jam : record < hh : integer, mm : integer, ss : integer>
type JadwalKA : record < NoKA : string, KotaAsal : string, JamBerangkat : Jam, KotaTujuan : string, JamTiba : Jam>
{Nama peubah}
LuasL : real {Luas Lingkaran}
PSW : string {Password}
Indeks : char {Indeks nilai kuliah}
Ketemu : boolean {hasil pencarian, true jika ditemukan, false jika tidak}
P : Titik {Koordinat titik pusat lingkaran}
F : Kompleks {Frekuensi, hasil transformasi Fourier}
JKA : JadwalKA {Jadwal Kereta Api}
LuasL : real {Luas Lingkaran}
PSW : string {Password}
Indeks : char {Indeks nilai kuliah}
Ketemu : boolean {hasil pencarian, true jika ditemukan, false jika tidak}
P : Titik {Koordinat titik pusat lingkaran}
F : Kompleks {Frekuensi, hasil transformasi Fourier}
JKA : JadwalKA {Jadwal Kereta Api}
{Nama fungsi dan prosedur}
PROCEDURE
HitungTitikTengah (Input P1: Titik, Input P2:Titik, Output Pt:Titik)
{ Menghitung titik tengah garis dengan titik ujung P1 dan P2 }
{ Menghitung titik tengah garis dengan titik ujung P1 dan P2 }
Function
Faktorial (Input n : integer) –> integer
{Mengembalikan nilai faktorial dari n > 0}
{Mengembalikan nilai faktorial dari n > 0}
Function
Cari (Input x:integer) –> boolean
{true bila x ditemukan, false bila sebaliknya}
{true bila x ditemukan, false bila sebaliknya}
PROCEDURE
CetakJadwalKA (Input kota : string)
{Mencetak jadwal semua kereta api yang berangkat dari kota tertentu}
{Mencetak jadwal semua kereta api yang berangkat dari kota tertentu}
Translasi ke Notasi Bahasa Pemograman PASCAL
:
(*DEKLARASI*)
{Nama Konstanta}
Const phi = 3.14;
Nmaks = 100;
Sandi = ‘xyz’;
Const phi = 3.14;
Nmaks = 100;
Sandi = ‘xyz’;
{Nama Tipe}
type
MHS = record
NIM : integer;
nama : string;
usia : integer;
end;
type
MHS = record
NIM : integer;
nama : string;
usia : integer;
end;
Titik
= record
x : real;
y : real;
end;
x : real;
y : real;
end;
Kompleks = record
a : real;
b : real;
end;
a : real;
b : real;
end;
Jam = record
hh : integer;
mm : integer;
ss : integer;
end;
hh : integer;
mm : integer;
ss : integer;
end;
JadwalKA = record
NoKA : string[5];
KotaAsal : string[15];
JamBerangkat : Jam;
KotaTujuan : string;
JamTiba : Jam;
end;
NoKA : string[5];
KotaAsal : string[15];
JamBerangkat : Jam;
KotaTujuan : string;
JamTiba : Jam;
end;
{Nama peubah / Variabel}
var
LuasL : real; {Luas Lingkaran}
PSW :string; {Password}
indeks : char; {Indeks nilai ujian}
ketemu : boolean; {Hasil pencarian, true jika ditemukan, false jika tidak}
P : Titik; {Koordinat titik pusat lingkaran}
F : Kompleks; {Frekuensi, hasil transformasi Fourier}
JKA : JadwalKA; {Jadwal kereta Api Ekspress}
var
LuasL : real; {Luas Lingkaran}
PSW :string; {Password}
indeks : char; {Indeks nilai ujian}
ketemu : boolean; {Hasil pencarian, true jika ditemukan, false jika tidak}
P : Titik; {Koordinat titik pusat lingkaran}
F : Kompleks; {Frekuensi, hasil transformasi Fourier}
JKA : JadwalKA; {Jadwal kereta Api Ekspress}
{Nama Fungsi dan Procedure}
Procedure
HitungTitikTengah (P1 : Titik, P2 : Titik, Var Pt : Titik);
{Menghitung titik tengah garis dengan titik ujung P1 dan P2}
{Menghitung titik tengah garis dengan titik ujung P1 dan P2}
Function
Faktorial (n : integer) : integer;
{ Mengembalikan nilai faktorial dari n > 0}
{ Mengembalikan nilai faktorial dari n > 0}
Function
Cari (x : integer) : boolean;
{ true bila X ditemukan, false jika tidak}
{ true bila X ditemukan, false jika tidak}
Procedure
CetakJadwalKA (kota : string[15]);
{Mencetak jadwal semua kereta api yang berangkat dari kota tertentu}
{Mencetak jadwal semua kereta api yang berangkat dari kota tertentu}
Bahasa C :
/* DEKLARASI */
/* Nama Konstanta */
const float phi = 3.14;
const int N = 100;
const char sandi[] = “xyz”;
/* Nama Konstanta */
const float phi = 3.14;
const int N = 100;
const char sandi[] = “xyz”;
/* Nama Tipe */
typedef struct { int NIM; char nama[25]; int usia;} MHS;
typedef struct { int NIM; char nama[25]; int usia;} MHS;
typedef
struct {float X; float y;} Titik;
typedef struct {float a; float b;} Kompleks;
typedef struct {int hh; int mm; int ss;} Jam;
typedef struct { char NoKA[5]; char KotaAsal[15]; Jam JamBerangkat; Char KotaTujuan[15];
Jam JamTiba; } JadwalKA;
typedef enum {false = 0, true = 1} boolean;
typedef struct {float a; float b;} Kompleks;
typedef struct {int hh; int mm; int ss;} Jam;
typedef struct { char NoKA[5]; char KotaAsal[15]; Jam JamBerangkat; Char KotaTujuan[15];
Jam JamTiba; } JadwalKA;
typedef enum {false = 0, true = 1} boolean;
/*Tipe bentukan untuk boolean dikhususkan
untuk C*/
/* Nama Peubah */
float LuasL;
char psw[255];
char indeks;
boolean ketemu;
Titik P;
Kompleks F;
JadwalKA JKA;
float LuasL;
char psw[255];
char indeks;
boolean ketemu;
Titik P;
Kompleks F;
JadwalKA JKA;
/* Nama Fungsi dan Prosedur*/
void
HitungTitikTengah (Titik P1, Titik P2, Titik *P);
int
Faktorial (int n);
boolean
Cari (int x);
void
CetakJadwalKA(char kota[15]);
Nilai
Nilai
adalah besaran dari tipe data yang sudah
didefinisikan (tipe dasar dan tipe bentukan). Nilai dapat berupa isi yang
disimpan oleh nama peubah atau nama konstanta, nilai dari hasil perhitungan,
atau nilai yang dikirim oleh fungsi. Nilai dapat dimanipulasi dengan cara
mengisikannya ke peubah lain yang bertipe sama, dipakai untuk perhitungan atau
dituliskan kepiranti keluaran.
Pengisian nilai kedalam peubah dilakukan dengan 2 cara, yaitu :
1. Pengisian nilai secara langsung
Pengisian nilai secara langsung adalah memasukkan sebuah nilai ke dalam nama peubah langsung di dalam teks algoritma dengan syarat nilai yang diisikan harus bertipe sama dengan dengan tipe peubah.
Akibat dari pengisian ini, nilai peubah akan hilang dan tergantikan dengan nilai yang baru dimasukkan.
Pengisian nilai kedalam peubah dilakukan dengan 2 cara, yaitu :
1. Pengisian nilai secara langsung
Pengisian nilai secara langsung adalah memasukkan sebuah nilai ke dalam nama peubah langsung di dalam teks algoritma dengan syarat nilai yang diisikan harus bertipe sama dengan dengan tipe peubah.
Akibat dari pengisian ini, nilai peubah akan hilang dan tergantikan dengan nilai yang baru dimasukkan.
Contoh 1 (Pengisian Nilai secara langsung) :
DEKLARASI
k : integer
jarak : real
k : integer
jarak : real
ketemu
: boolean
NamaKota : string
NamaKota : string
type Jam : record
< hh : integer
mm : integer
ss : integer>
J : Jam
< hh : integer
mm : integer
ss : integer>
J : Jam
{Contoh pengisian dengan nilai-nilai
konstanta }
ALGORITMA
k <– 5
jarak <– 0.03
ketemu <– false
NamaKota <– ‘SOLO’
{ Mengisi J dengan Jam 6 : 12 : 29 }
J <– <6, 12, 39>
{Atau dengan cara yang lebih rinci :
J.hh <– 6
J.mm <– 12
J.ss <– 39}
ALGORITMA
k <– 5
jarak <– 0.03
ketemu <– false
NamaKota <– ‘SOLO’
{ Mengisi J dengan Jam 6 : 12 : 29 }
J <– <6, 12, 39>
{Atau dengan cara yang lebih rinci :
J.hh <– 6
J.mm <– 12
J.ss <– 39}
Contoh 2 (Pengisian nilai dari
peubah yang lain)
DEKLARASI
B, awal, suhu1, suhu2, ulang : integer
ALGORITMA
B <– awal
suhu1 <– suhu2
ulang <– mulai
B, awal, suhu1, suhu2, ulang : integer
ALGORITMA
B <– awal
suhu1 <– suhu2
ulang <– mulai
Contoh 3 (Pengisian dari nilai
ekspresi). Ket. Hasil ekspresi harus bertipe sama dengan tipe peubah di ruas
kiri.
DEKLARASI
P, Q, R, nisbah, Jumlah, banyak, i, j, k : integer
a, b, c, determinan : real
h : boolean
ALGORITMA
c <– a + b
nisbah <– jumlah/banyak * 5
determinan <– 6 * 6 – 4 * a * c
k <– (i + j) div 2
h <– (i > 1) and (i < 100)
P, Q, R, nisbah, Jumlah, banyak, i, j, k : integer
a, b, c, determinan : real
h : boolean
ALGORITMA
c <– a + b
nisbah <– jumlah/banyak * 5
determinan <– 6 * 6 – 4 * a * c
k <– (i + j) div 2
h <– (i > 1) and (i < 100)
Contoh 4 (Menaikkan Nilai sebesar 1)
DEKLARASI
A : integer
ALGORITMA
A = A+1
A : integer
ALGORITMA
A = A+1
Contoh 5 {Hasil M = 132, P = 164}
DEKLARASI
M, P : integer
ALGORITMA
M <– 16
P <– M * 2
M <– P + 100
P <– P + M
M, P : integer
ALGORITMA
M <– 16
P <– M * 2
M <– P + 100
P <– P + M
2. Pengisian Nilai Lewat Pembacaan
Pengisian nilai lewat pembacaan adalah pengisian nilai dari piranti masukkan. Dalam algoritma, pernyataan pembacaan adalah dengan menggunakan notasi “read”.
Contoh 1 (Membaca nilai untuk peubah)
Pengisian nilai lewat pembacaan adalah pengisian nilai dari piranti masukkan. Dalam algoritma, pernyataan pembacaan adalah dengan menggunakan notasi “read”.
Contoh 1 (Membaca nilai untuk peubah)
DEKLARASI
M, a1, a2, a3 : real
nama_kota : string
NRP : integer
type titik : record
P : titik
ALGORITMA
read(M)
read(a1, a2, a3)
read(nama_kota)
read(nama_mhs, NRP, nilai)
read(P.x, P.y)
M, a1, a2, a3 : real
nama_kota : string
NRP : integer
type titik : record
P : titik
ALGORITMA
read(M)
read(a1, a2, a3)
read(nama_kota)
read(nama_mhs, NRP, nilai)
read(P.x, P.y)
Ekspresi
Ekspresi adalah transformasi nilai menjadi keluaran yang
dilakukan melalui suatu perhitungan (komputasi). Ekspresi terdiri atas operand
dan operator, contoh ekspresi: “a + b”. Untuk pebuah a dan b dinamakan
operand, sedangkan “+” merupakan operator.
Dalam algoritma pemograman terdapat 3 macam ekspresi :
Dalam algoritma pemograman terdapat 3 macam ekspresi :
1. Ekspresi
Aritmetik
Ekspresi Aritmetik adalah ekspresi yang
baik operandnya bertipe numerik dan hasilnya juga bertipe numerik.
Contoh
1.
DEKLARASI
a, b, c : real
i, j, k : integer
ALGORITMA
a * b = c
i + j = k
a, b, c : real
i, j, k : integer
ALGORITMA
a * b = c
i + j = k
Ket. : Operator yang
mempunyai tingkatan lebih tinggi lebih dahulu dikerjakan daripada operator yang
tingkatannya lebih rendah. Contoh : a/c + b. Yang pertama dikerjakan adalah
a/c, kemudian hasilnya ditambahkan dengan b.
Tingkatan operator aritmetika (dari
tertinggi ke terendah) :
(i). /, div, mod
(ii) *
(iii) +, -
(i). /, div, mod
(ii) *
(iii) +, -
Pada ekspresi aritmetik terdapat 2
buah operator yaitu :
- Operator biner, yaitu ekspresi yang operatornya membutuhkan 2 buah operand. Contoh a + b
- Operator Uner, yaitu “-” atau operator yang punya 1 operand contoh “-2”
- Operator biner, yaitu ekspresi yang operatornya membutuhkan 2 buah operand. Contoh a + b
- Operator Uner, yaitu “-” atau operator yang punya 1 operand contoh “-2”
Contoh 2. (Penulisan ekspresi dengan
notasi algoritma)
T = 5/9 * (c + 32)
Z = (2*x + y) / (5 * w)
Y = 5((a+b) / (c*d) + m (p + q))
T = 5/9 * (c + 32)
Z = (2*x + y) / (5 * w)
Y = 5((a+b) / (c*d) + m (p + q))
2. Ekspresi Relasional
Ekspresi
relasional adalah ekspresi dengan operator <, ≤, >, ≥, =, dan ≠, not,
and, or dan xor dengan menghasilkan nilai bertipe boolean (true atau false).
Biasanya ekspresi Relasional disebut ekspresi boolean.
Contoh:
DEKLARASI
const ketemu = false
const ada = true
const X = 8
const Y = 12
ALGORITMA
not ada = false
ada or ketemu = true
ada and true = true
X < 5 = false
ada or (X = Y) = true
const ketemu = false
const ada = true
const X = 8
const Y = 12
ALGORITMA
not ada = false
ada or ketemu = true
ada and true = true
X < 5 = false
ada or (X = Y) = true
3. Ekspresi String
Ekspresi
String adalah ekspresi dengan operator “+” (operator penyambungan /
concatenation).
Contoh
DEKLARASI
Kar : char
S : string
{ Contoh-contoh ekspresi untuk tipe string}
(S + Kar) + ‘ C ’
‘Jl.Ganesha’ + ‘No.10’
Kar : char
S : string
{ Contoh-contoh ekspresi untuk tipe string}
(S + Kar) + ‘ C ’
‘Jl.Ganesha’ + ‘No.10’
Menuliskan Nilai ke Piranti Keluaran
Nilai yang disimpan dimemori dapat
ditampilkan ke piranti keluaran (output) dengan instruksi penulisan menggunakan
notasi “write”.
write (var1, var2, var3, …, varN)
write (konstanta)
write (ekspresi)
write (nama, konstanta, ekspresi)
write (var1, var2, var3, …, varN)
write (konstanta)
write (ekspresi)
write (nama, konstanta, ekspresi)
Contoh:
DEKLARASI
A,B : integer
NRP : integer
nama_mhs : string
nilai : real
type Jam : record < hh : integer, mm : intege, ss : integer >
J : Jam
ALGORITMA
A <– 8
B <– 6
nama_mhs <– “Andi Baco”
NRP <– 10290056
nilai <– 90.8
J.hh <– 6
J.mm <– 12
J.ss <– 45write (100)
write (A)
write (‘A’)
write (‘Jurusan Teknik Informatika ITB’)
write (‘Nilai A = ’, A)
write (nama_mhs, NRP, nilai)
write (A+B)
write (‘Nilai seluruhnya adalah’, A + B / 2 * 10)
write (J.hh, ‘:’, J.mm, ‘:’, J.ss)
A,B : integer
NRP : integer
nama_mhs : string
nilai : real
type Jam : record < hh : integer, mm : intege, ss : integer >
J : Jam
ALGORITMA
A <– 8
B <– 6
nama_mhs <– “Andi Baco”
NRP <– 10290056
nilai <– 90.8
J.hh <– 6
J.mm <– 12
J.ss <– 45write (100)
write (A)
write (‘A’)
write (‘Jurusan Teknik Informatika ITB’)
write (‘Nilai A = ’, A)
write (nama_mhs, NRP, nilai)
write (A+B)
write (‘Nilai seluruhnya adalah’, A + B / 2 * 10)
write (J.hh, ‘:’, J.mm, ‘:’, J.ss)
Hasil dari Algoritma diatas :
100
8
A
Jurusan Teknik Informatika ITB
Nilai A = 8
Andi Baco, 10290056, 90.8
14
Nilai seluruhnya adalah 70
6 : 12 : 45
100
8
A
Jurusan Teknik Informatika ITB
Nilai A = 8
Andi Baco, 10290056, 90.8
14
Nilai seluruhnya adalah 70
6 : 12 : 45
Berikut adalah contoh-contoh
Algoritma dengan menggunakan teknik pseude-code kemudian ditranslasi ke bahasa
pemograman Pascal dan C.
ALGORITMIK:
DEKLARASI
type Titik : record
P : Titik
a,b : integer
nama_arsip, h : string
nilai : real
c : char
ALGORITMA
nilai <– 1200.0
read (P.x, P.y)
read (nama_arsip)
h <– nama_arsip
read (a, b)
read (c)
write (‘Nama Arsip : ’, nama_arsip)
write (‘Koordinat titik adalah :’, P.x, ‘,’, P.y)
write (b, nilai)
write (‘Karakter yang dibaca adalah ’, C )
type Titik : record
P : Titik
a,b : integer
nama_arsip, h : string
nilai : real
c : char
ALGORITMA
nilai <– 1200.0
read (P.x, P.y)
read (nama_arsip)
h <– nama_arsip
read (a, b)
read (c)
write (‘Nama Arsip : ’, nama_arsip)
write (‘Koordinat titik adalah :’, P.x, ‘,’, P.y)
write (b, nilai)
write (‘Karakter yang dibaca adalah ’, C )
PASCAL
(*DEKLARASI*)
type Titik = record
x : real;
y : real;
var
P : Titik;
a, b : integer;
nama_arsip, h : string[12];
nilai : real;
c : char;
(*ALGORITMA*)
begin
nilai := 1200.0;
readln(P.x, P.y);
readln(nama_arsip);
h := nama_arsip;
readln(a, b);
readln(c);
writeln(‘Nama Arsip : ‘, nama_arsip);
writeln(‘Koordinat titik adalah :’, P.x, ‘,’, P.y);
writeln(b, nilai);
writeln(‘Karakter yang dibaca adalah ’, C);
end.
type Titik = record
x : real;
y : real;
var
P : Titik;
a, b : integer;
nama_arsip, h : string[12];
nilai : real;
c : char;
(*ALGORITMA*)
begin
nilai := 1200.0;
readln(P.x, P.y);
readln(nama_arsip);
h := nama_arsip;
readln(a, b);
readln(c);
writeln(‘Nama Arsip : ‘, nama_arsip);
writeln(‘Koordinat titik adalah :’, P.x, ‘,’, P.y);
writeln(b, nilai);
writeln(‘Karakter yang dibaca adalah ’, C);
end.
C:
/*DEKLARASI*/
typedef struct { float x;
float y; } Titik;
Titik P;
int a, b;
char nama_arsip[12], h[12];
float nilai;
char c;
/*ALGORITMA*/
main()
{
nilai = 1200.0;
scanf(“%d %d”, &P.x, &P.y);
scanf(“%s”, nama_arsip);
strcpy(h, nama_arsip);
scanf(“%d %d”, &a, &b);
scanf(“%c”, &c);
scanf(“Nama Arsip : %s \n”, nama_arsip);
printf(“Koordinat titik adalah %d, %c, %d \n”, P.x, P.y);
printf(“%d %f \n”, b, nilai);
printf(“Karakter yang dibaca adalah %c \n, C”);
}
typedef struct { float x;
float y; } Titik;
Titik P;
int a, b;
char nama_arsip[12], h[12];
float nilai;
char c;
/*ALGORITMA*/
main()
{
nilai = 1200.0;
scanf(“%d %d”, &P.x, &P.y);
scanf(“%s”, nama_arsip);
strcpy(h, nama_arsip);
scanf(“%d %d”, &a, &b);
scanf(“%c”, &c);
scanf(“Nama Arsip : %s \n”, nama_arsip);
printf(“Koordinat titik adalah %d, %c, %d \n”, P.x, P.y);
printf(“%d %f \n”, b, nilai);
printf(“Karakter yang dibaca adalah %c \n, C”);
}
No Response to " ALGORITMA PEMROGRAMAN "
Posting Komentar
Masukan anda sangat berarti untuk postingan blogger kedepannya .