Anda di halaman 1dari 23

Materi ke-2

Algoritma &
Pemrograman I

1
ALGORITMA & PEMROGRAMAN I
• Definisi
• Bahasa adalah alat komunikasi antara manusia dengan komputer
• Program adalah urutan instruksi yang ditulis dengan bahasa
komputer tertentu
• Algoritma adalah urutan logis pengambilan putusan untuk
pemecahan masalah
• Lima ciri penting algoritma :
1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah
terbatas
2. Setiap langkah harus didefinisikan dengan tepat
3. Algoritma memiliki nol atau lebih masukan
4. Algoritma memiliki satu atau lebih keluaran
5. Algoritma harus efektif

2
Komponen-komponen utama komputer

Piranti Unit pemroses Piranti


masukan Utama (CPU) keluaran

memori

3
Tahapan pelaksanaan program oleh komputer

algoritma

pemrograman

Program dalam bahasa tingkat tinggi

translasi

Program dlm bhs mesin

Interpretasi oleh CPU

Proses yang diinginkan

4
Langkah-langkah Proses Penyelesaian Masalah
Algorithm
Problem Analysis Coding
Design

Loader Linker Compiler Syntax


error
No Error

Execution Library
error

Result

5
Teks Algoritma
Judul
{teks atau spesifikasi teks algoritma yg memudahkan pembacaan teks algoritma}
Kamus
{Definisi nama variable, type, konstanta, prosedur, fungsi}
Algoritma
{berisi semua teks instruksi algoritma yang diawali dengan kurung kurawal buka dan diakhiri kurung kurawal
tutup.

*) Teks algoritma : sesuatu yang dipakai sebagai identifikasi :


- Modul program, algoritma, skema program
- Fungsi
- Prosedur
- Type
- Nama variable (tempat penyimpanan data)
- konstanta
6
Contoh

7
Komponen teks pemrograman prosedural
• Input/output, assignment
• Squential statement
• Analisa kasus
• pengulangan

8
TYPE
Mendefinisikan TYPE berarti :

• menentukan nama type dalam kamus


• definisi domain harga yang dapat dipunyai oleh nama tsb.
• konvensi atau perjanjian tentang penulisan konstanta bertype tsb.
• operator yang dapat dioperasikan terhadap objek bertype tsb.

Type : type dasar dan type bentukan

9
Type Dasar
• Sudah tersedia di bahasa pemroses
• Terdiri :
• Bilangan logika/Boolean
• Bilangan bulat
• Bilangan riil
• karakter

10
a b Not a a and b a or b a xor b

true True False True True False

true False False False True True

false True True False True True

BILANGAN LOJIK False False True False false False


(BOOLEAN)

• Sering dinamakan juga boolean, yg mempunyai dua nilai : benar (TRUE)


dan salah (FALSE)
• Jika a dan b adalah variabel dengan tipe boolean, maka berlaku
operator-operator berikut ini :

11
BILANGAN BULAT (INTEGER)
Bilangan bulat merupakan bilangan yg tidak mengandung pecahan desimal, misal 0,2,8,34,1019.

Operator Aritmatika : + : tambah


- : kurang
* : kali
/ : bagi
% : sisa hasil bagi (modulus)
Operator relasional / perbandingan : (hasil operasi : bilangan bertipe boolean)
< : lebih kecil dari
> : lebih dari
<= : lebih kecil atau sama dengan
>= : lebih besar atau sama dengan
= : sama dengan
<> : tidak sama dengan

12
BILANGAN RIIL (FLOAT)
Bilangan riil mengandung . (titik) dalam nilai konstanta-nya. Misal 1.4
Operator Aritmatika : +, -, *, /
Operator Relasional : <, <=, >, >=. <>

KARAKTER (CHAR)
Data dalam tipe karakter dituliskan dalam tanda petik ‘ ‘, contoh : ‘a’, ‘0’
Operator relasional : <, >, >=, =, <>,
Contoh : ‘a’ = ‘a’ (benar)
‘T’ = ‘t’ (salah)
‘m’ < ‘z’ (benar)

13
• String Type
• Berisi nol atau lebih karakter
• Dituliskan diantara tanda petik (“)
• Contoh : “Mickey” atau “ “
• Contoh : “William” panjang string 7,
• posisi ‘W’ adalah 0
• posisi ‘a’ adalah 5

14
Type Bentukan

• Type bentukan adalah suatu TYPE yang dirancang/dibentuk (dan diberi nama) dari beberapa
komponen bertype tertentu, jadi merupakan sekumpulan elemen bertype dasar atau bertype yang
sudah dikenal.
• Type bentukan dibuat/didefinisikan karena perancang program memutuskan bahwa keseluruhan
(hasil komposisi) komponen type tersebut mempunyai sebuah makna semantic
• Ada relasi yang persis antara satu elemen dengan yang lain.
• Operasi terhadap komponen (elemen) bertipe dasar dilakukan seperti yang didefinisikan pada
tipe dasar.
• Operasi terhadap keseluruhan tipe mungkin didefinisikan atau tidak.
• Type bentukan seringkali disebut sebagai type komposisi, agregat.
• Implementasinya dalam suatu bahasa sangat bervariasi satu sama lain.

Dalam notasi algoritmik, sebuah type bentukan berupa agregasi elemen dituliskan dengan notasi :
type nama type < elemen1: type1,
elemen2: type2,
elemen2: type2’ ………….>

15
Assignment
Assignment Statement
Variable = expression;
Contoh :
I = 12;
I = I + 1;

Input Statement
cin>> variable;
contoh : cin>>I;

Output Statement
cout<<variabel;
cout<<“…………”;
cout<<expression or manipulator;

16
Contoh Analisa Masalah dan Program
Tuliskan program yang dapat menerima masukan nilai panjang dalam satuan kilometer dan meter.
Program harus dapat me-konversi ke dalam nilai panjang dengan satuan centimeter !
Berarti :
input : panjang dalam satuan kilometer (km) dan meter (m)
output : panjang dalam satuan centimeter

Analisa masalah dan algoritmanya


Panjang dalam satuan km dan m dan Anda perlu mengkonversi ke dalam cm
Rumusan : 1 km = 100000 cm
1 m = 100 cm
Bisa dilakukan dengan konversi satu persatu atau atau konversi ke m dan jumlahkan m kemudian baru
dikonversi ke cm
Berdasarkan analisa tersebut maka dapat disusun urutan aksi dalam algoritma adl :
1. Ambil nilai panjang dalam km dan m
2. Konversi masing-masing ke cm
3. Jumlahkan
4. Output panjang dalam cm

17
• Variable
input program dalam dua satuan nilai yaitu km dan m, sekaligus dapat
diberi nama variabel ‘km’ dan ‘m’
• Type
variabel km dan m dapat bernilai bilangan bulat (int)
Variabel dan tipe dideklariskan sebagai berikut :
int km; // variabel untuk nilai panjang dengan satuan kilometer
int m; // variabel untuk nilai panjang dengan satuan meter
double cm; // variabel untuk menyimpan nilai hasil konversi ke centimeter

18
19
20
Contoh

Persoalan :
Dibaca dua buah harga v (kecepatan, m/detik) dan t (waktu, detik), yang
mewakili
koefisien persamaan gerak lurus beraturan. Harus dihitung dan dituliskan
hasilnya,
jarak yang ditempuh benda yang bergerak lurus beraturan dengan
kecepatan v
tersebut dalam waktu t.

Spesifikasi:
• Input : v (kecepatan, m/detik), integer dan t (waktu, detik), integer
• Proses : menghitung S = v * t
• Output : S (jarak yang ditempuh dalam meter ), intege

21
SOAL KASUS
JAM MENIT DETIK

Persoalan :
• Dibaca sebuah harga berupa bilangan bulat, positif dan lebih kecil dari 1 juta, yang mewakili besaran dalam detik. Harus dihitung ekivalensinya, berapa hari,
jam berapa menit dan berapa detik. Contoh : data 309639 akan menghasilkan 3, 14, 0, 39, yang artinya 3 hari, 14 jam, 0 menit dan 9 detik
Spesifikasi:
• Input : n (detik), integer
• Proses : menghitung hari, jam, menit, detik ekivalen dengan n
• Output : HARI, JAM, MENIT, DETIK
Analisis : nama-nama informasi yang akan dibutuhkan adalah :
• n : bilangan yang dibaca sebagai data, integer antara 0 dan 999999
• H : HARI, bilangan bulat positif, HARI
• J : JAM, bilangan bulat positif antara 0 - 23
• M : MENIT, bilangan bulat antara 0 -59
• D : DETIK, bilangan bulat antara 0 - 59
• Rumus : 1 hari = 86400 detik; 1 jam = 3600 detik dan 1 menit = 60 detik.

22
Kasus : KALKULASI TYPE TERSTRUKTUR
PECAHAN
Persoalan:
• Tuliskanlah algoritma untuk membaca dua buah besaran bertype pecahan, dan
• menuliskan hasil kali kedua pecahan tersebut. Pecahan harus direpresentasi sebagai
• dua buah bilangan integer yang menyatakan pembilang dan penyebut. Untuk
• penyederhanaan, penyebut selalu tidak pernah sama dengan nol. Pecahan negatif
• ditandai dengan pembilang berupa integer negatif

Contoh :
• Pecahan <1,2> merepresentasi 1/2
• Pecahan <-4,2> merepresentasi -4/2
• Pecahan <1,1> merepresentasi 1/1
• Pecahan <0,2> merepresentasi 0/2
• Pecahan <1,0> bukan pecahan, karena di luar definisi pecahan

23

Anda mungkin juga menyukai