ALGORITMA
DAN PEMROGRAMAN
Tipe data
• Tipe sebuah objek menentukan himpunan nilai yang dapat dimiliki nya dan operasi yang dapat dilakukan pada objek tersebut
• Ada 2 macam tipe data:
1. Tipe dasar : tipe yang dapat langsung dipakai
2. Tipe bentukan : tipe yang dibentuk dari tipe dasar atau tipe bentuka n lain yang sudah didefinisikan sebelumnya
Tipe data dasar
1. Bilangan logic : boolean 2. Bilangan bulat : integer 3. Bilangan riil : real
4. Karakter : char 5. String : string
Bilangan logic (boolean)
• Hanya ada 2 nilai : benar (true) dan salah (false)
• Nilai benar bisa dinyatakan dengan nilai 1 dan nilai salah bisa din yatakan dengan nilai 0 (atau sebaliknya, bergantung pada konven si yang dibuat)
• Operasi yang dapat dilakukan pada tipe boolean disebut operasi l ogika, yang menghasilkan nilai true atau false
• Operasi yang umum digunakan: not, and, or, xor
Bilangan logic (lanjut.)
Bila a dan b adalah peubah bertipe boolean, maka hasil operasi a d an b dapat dilihat pada tabel 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
Bilangan bulat (integer)
• Bilangan bulat sudah umum digunakan dalam kehidupan sehari-h ari
• Bilangan bulat adalah bilangan yang tidak mengandung pecahan desimal
• Dalam komputer, bilangan bulat mempunyai ranah nilai yang terb atas, bergantung pada mesin komputer dan kompilator yang digu nakan
Bilangan bulat (lanjut.)
Operasi yang dilakukan terhadap bilangan bulat ada 2 macam:
1. Operasi Aritmetika : +, -, *, div, mod
2. Operasi Perbandingan, menghasilkan nilai boolean : >, ≤, <, ≥, !
Bilangan riil (real)
• Bilangan riil adalah bilangan yang mengandung pecahan desimal
• Dalam komputer, tipe real mempunyai rentang nilai yang bergantu ng pada mesin dan kompilator yang digunakan
• Dalam kompilator Pascal, tipe real dapat direpresentasikan dalam empat tipe: real, single, double dan extended.
• Dalam bahasa C, ada 2 tipe real: float (berpresisi tunggal) dan do uble (berpresisi ganda)
Bilangan riil (lanjut.)
Operasi yang dilakukan terhadap bilangan riil ada 2 macam:
1. Operasi Aritmetika : +, -, *, /
2. Operasi Perbandingan, menghasilkan nilai boolean : <, ≤, >, ≥,
≠
Karakter (char)
• Yang termasuk karakter adalah semua huruf abjad, semua tanda baca, angka ‘0’, ’1’, … , ‘9’, karakter khusus seperti: ‘’&, ‘^’, ‘%’, ‘#’
, ‘@’, dan sebagainya
• Daftar karakter baku yang lengkap dapat dilihat pada buku yang memuat tabel ASCII
• Operasi yang dapat dilakukan: operasi perbandingan, yang meng hasilkan nilai boolean: <, ≤, >, ≥, =, ≠
String (string)
• String adalah untaian karakter dengan panjang tertentu, sebenarn ya bukan tipe dasar murni, karena disusun dari elemen-elemen b ertipe karakter
• Operasi terhadap data bertipe string ada 2 macam:
1. Operasi penyambungan, dengan operator : +
2. Operasi perbandingan, yang menghasilkan nilai boolean, dengan o perator : <, ≤, >, ≥, =, ≠
• String yang disusun dari gabungan numerik dan karakter sering di namakan alfanumerik
Tipe bentukan
• Tipe bentukan adalah tipe yang didefinisikan sendiri oleh pemrogr am
• Ada 2 macam tipe bentukan:
1. Tipe dasar yang diberi nama dengan nama baru 2. Tipe terstruktur
Tipe Dasar dengan Nama baru
• Kadang pemrogram ingin memberi nama baru terhadap tipe dasar dengan alasan agar nama baru tersebut lebih akrab dan lebih mu dah diinterpretasi oleh orang yang membaca teks algoritma
• Nama baru untuk tipe dasar menggunakan kata kunci: type
• Contoh : type BilanganBulat : integer
Tipe Terstruktur
• Tipe terstruktur adalah tipe yang berbentuk rekaman (record), yan g disusun oleh satu atau lebih field
• Tiap field menyimpan data dari tipe dasar tertentu atau dari tipe b entukan lain yang sudah didefinisikan
Contoh:
1. Tipe koordinat titik:
type titik : record < x, y : real >
2. Tipe bilangan kompleks : a + b i
type Kompleks : record < a, b : real >
Contoh lain tipe terstruktur
1. Tipe tanggal :
type Tanggal : record
< dd : integer, {1 . . 31}
mm : integer, {1 . . 12}
yy : integer { > 0 }
>
2. Tipe jam :
type Jam : record
< hh : integer, { 0. . 23}
mm : integer, { 0 . . 59 } ss : integer { 0 . . 59 } >
Nama
Dalam algoritma, objek yang diberi nama berupa:
1. Peubah ( variable) DEKLARASI
X, nilai_ujian, jumlah : real k : integer
c : char
2. Konstanta (constant) DEKLARASI
const phi = 3.14 const Nmaks = 100 const sandi = ‘xyz’
Nama (lanjut.)
3. Tipe bentukan DEKLARASI
type Titik : record < x, y : real >
type Jam : record
< hh : integer, { 0. . 23}
mm : integer, { 0 . . 59 } ss : integer { 0 . . 59 } >
P : Titik
J1, J2 : Jam
4. Nama fungsi DEKLARASI
FUNCTION Maksimum (input A, B : integer) : integer
Nama (lanjut.)
4. Nama fungsi DEKLARASI
FUNCTION Maksimum (input A, B : integer) : integer { mengembalikan nilai terbesar antara A dan B }
5. Nama Prosedur DEKLARASI
PROCEDURE Tukar (input/output A, B : integer) { mempertukarkan nilai A dan B }
Nilai
Pengisian nilai ke dalam peubah dapat dilakukan dengan dua cara:
1. Pengisian nilai secara langsung (assignment)
Notasi yang digunakan :
2. Pembacaan
Diisi secara eksternal dari piranti masukan, misal dari papan ketik, dari s ebuah file, dari mouse, dan sebagainya
Notasi algoritmik untuk pembacaan nilai dari piranti masukan : read (nama_1, nama_2, …, nama_n)
Contoh pengisian nilai langsung
DEKLARASI
k : integer jarak : real
ketemu : boolean Nama kota : string
type Jam : record
< hh : integer, { 0. . 23}
mm : integer, { 0 . . 59 } ss : integer { 0 . . 59 } >
J : Jam
ALGORITMA : k 5
jarak 0.03 ketemu false
NamaKota ‘SOLO’
{ Mengisi J dengan jam 6:12:39 } J <6, 12, 39>
{ atau, kita bisa mengisi setiap field dari J:
J.hh 6 J.mm 12 J.ss 39 }
Contoh pembacaan
DEKLARASI
M, a1, a2, a3 : real nama_mhs : string NIM : integer
type Titik : record < x : real, y : real >
P : Titik
ALGORITMA : read(M)
read(a1, a2, a3)
read(nama_mhs, NIM) read(P.x, P.y)
Ekspresi
• Suatu nilai dipakai untuk proses transformasi menjadi keluaran ya ng diinginkan
• Transformasi nilai menjadi keluaran dilakukan melalui suatu perhit ungan/komputasi, yang dinyatakan dalam suatu ekspresi
• Ekspresi terdiri dari operand dan operator
• Operand adalah nilai yang dioperasikan dengan operator tertentu
Macam-macam ekspresi
1. Ekspresi Aritmetik : jenis ekspresi yang operandnya bertipe nu merik dan hasilnya juga bertipe numerik
2. Ekspresi Relasional : jenis ekspresi dengan operator <, ≤, >, ≥,
=, ≠, not, and, or, xor, dan hasil evaluasi ekspresinya berupa nil ai bertipe boolean
3. Ekspresi String : jenis ekpresi untuk tipe data karakter dan strin g dengan operator “+” (operator penyambungan)
Penulisan nilai
• Nilai konstanta, peubah, dan hasil ekspresi dapat ditampilkan ke p iranti keluaran (berupa layar peraga atau suatu file)
• Instruksi penulisan nilai dilakukan dengan notasi write
LATIHAN
1. Sebutkan tipe data untuk menyatakan hal berikut ini a. Banyaknya pengunjung perpustakaan
b. Ukuran baju (s, m, l, xl) c. Luas sebuah perkebunan
d. Nama-nama kota di Indonesia e. Jenis kelamin
LATIHAN
2. Tuliskan tipe data variabel berikut yang sesuai dengan operasiny a
a. C = A / B;
b. P = Q or R;
c. Z = A = B;
d. I = J or (X = Y);
LATIHAN
3. Tuliskan variabel input yang dibutuhkan untuk membuat algoritma penyelesaian masalah berikut ini. Sebutkan juga tipe datanya masin g-masing.
a. Menghitung luas segitiga
b. Menghitung luas permukaan balok
c. Menghitung jarak dari dua buah titik yang diketahui koordinatnya
Untuk soal diatas buat juga algoritma pseudo code serta conto h prosesnya dengan menggunakan flowgorithm
LATIHAN
4. Tentukan hasil operasi matematika dan logika berikut ini yang disi mpan pada variabel X, bila diketahui A = 5, B = 2, C = 3, D = 4, E = f alse, F =true
a. X = ( A + B ) * C b. X = A * C + B c. X = A * B + C / D d. X = A > B and E e. X = B * C > A f. X = C + D / B – A g. X = C = D or B < A
Buat contoh prosesnya dengan menggunakan flowgorithm
LATIHAN
5. Diketahui terdapat dua input yaitu dua buah pasangan tanggal, b ulan dan tahun. Tuliskan algoritma untuk menghitung berapa hari jar ak kedua tanggal tersebut.
Untuk soal diatas buat juga algoritma pseudo code serta conto h prosesnya dengan menggunakan flowgorithm