Minggu 02 sekuen 2012

Download Report

Transcript Minggu 02 sekuen 2012

SEKUEN
Minggu II -- (40 menit)
Wahyu Pujiyono
[email protected]
Tehnik Informatika
Universitas Ahmad Dahlan
Overview
Tantowi Yahya :
“urutkan kegiatan menggosok gigi dengan
urutan yang benar : “
A. Ambil sikat gigi
B. Berkumur
C. Menyikat gigi
D. Ambil odol

Jawaban yang benar :
Tantowi Yahya :
“urutkan kegiatan menggosok gigi dengan
urutan yang benar : “
A. Ambil sikat gigi
B. Ambil odol
C. Menyikat gigi
D. Berkumur


Apa akibatnya apabila urutan langkah tadi
terbalik tidak sesuai dengan urutan yang
benar ?
Kegiatan Sarapan
A.
B.
C.
D.
E.
F.
G.
Ambil piring
Ambil nasi
Ambil lauk
Ambil sayur
Makan
Minum
Selesai

Apa perbedaan dari kasus 1 dan kasus 2 ?
SEKUEN


sederetan pernyataan-pernyataan
yang urutan dan pelaksanaan
eksekusinya runtut, yang lebih
dahulu ditemukan (dibaca) akan
dikerjakan (dieksekusi) lebih dulu
Bila urutan pernyataan dibalik,
akan mempunyai makna yang
berbeda
Operator Aritmetika
+
*
/
^
%
Addition
Subtraction
Multiplication
Division
Exponentiation
Modulus
2+3
7–3
5*4
12 / 3
2^3
14 % 3
=
=
=
=
=
=
5
4
20
4
8
2
Hirarki Operasi
1: melakukan operasi di dalam tanda kurung
(dari dalam ke luar jika lebih dari satu)
2: melakukan exponentiation
3: perkalian, pembagian, dan modulus dari
kiri ke kanan (jika ada lebih dari satu)
4: penambahan dan pengurangan yang dari
kiri ke kanan (jika ada lebih dari satu)
Hirarki Operasi (Contoh)
3 * (6 + 2) / 12 – (7 – 5) ^ 2 * 3 = ?
( ) first:
^ next:
Leftmost * next:
Division next:
Multiply next:
Subtract last:
= 3 * 8 / 12 – 2 ^ 2 * 3
= 3 * 8 / 12 – 4 * 3
= 24 / 12 – 4 * 3
=2–4*3
= 2 – 12
= -10
Pemrograman
Pernyataan
A lgoritm ik
Bahasa Pascal
Bahasa C++
Input
R ead
read atau readln
cin >>
O utput
W rite

w rite atau w riteln
cout <<
penugasan
akhir pernyataan
F ungsi
:=
=
;
;
A rti
Pascal
C ++
sqr
pow
k uad rat
sqrt
sqrt
ak ar k uad rat
ln
log
logaritm a alam i
exp
ex p
ek sponensial
Kasus 2.1.


Hitunglah jumlah dari 3 buah bilangan
bulat!
Analisis :



Input : misalkan a, b, c semua integer
Proses : jumlah  a + b + c
Output : tulis (jumlah)
Algoritma 2.1
A lgo ritm a m e nca ri jum la h 3 b ila nga n b ula t
{m e ngh itung jum la h 3 b ila nga n b ula t, a lgo ritm a m e ne rim a m a suka n 3 b ua h
b ila nga n b ula t, m e njum la h ka n, la lu m e nce ta k h a sil pe njum la h a nnya }
D e kla ra si
a , b , c : inte ge r {input}
jum la h
: inte ge r {o utput}
D e skripsi
re a d (a , b , c)
jum la h  a + b + c
w rite (jum la h )
Flowchart 2.1
Start
Input
A, B, C
Jumlah = A+B+C
Cetak
Jumlah
End
Translasi 2.1
Bahasa C++
#include <iostream.h>
class Hitung {
friend ostream& operator<<(ostream&, const Hitung&);
friend istream& operator>>(istream&, Hitung&);
public:
Hitung();
void hitung_jumlahnya(){ jumlah = (a + b + c); }
private:
int a,b,c;
int jumlah;
};
Hitung::Hitung() {
cout << "Program menghitung jumlah 3 integer\n";
}
istream& operator>>(istream& in, Hitung& masukan) {
cout << "Masukkan nilai a : "; in >> masukan.a;
cout << "Masukkan nilai b : "; in >> masukan.b;
cout << "Masukkan nilai c : "; in >> masukan.c;
return in;
}
ostream& operator<<(ostream& out, const Hitung& keluaran) {
out << "Jumlah 3 integer di atas : " << keluaran.jumlah << endl;
return out;
Kasus 2.2.


Buat algoritma dan program untuk mencari
hasil kali dari dua buah bilangan !
Analisis :



Input : misalkan a, b semua integer
Proses : hasil  a * b
Output : tulis (hasil)
Algoritma 2.2
A lgo ritm a h a sil_ k a li
{m e nca ri h a sil k a li d a ri d ua b ua h b ila nga n b ula t, a lgo ritm a m e ne rim a m a suk a n
nila i b ila nga n1 d a n b ila nga n2 , la lu m e nga lik a n k e d ua b ila nga n te rse b ut, d a n
m e nce ta k h a sil k a linya }
D e k la ra si
a ,b
: inte ge r ( input )
h a sil : inte ge r ( o utput )
D e sk ripsi
re a d (a ,b )
h a sil  a *b
w rite (h a sil)
Translasi 2.2
Bahasa C++
class Perkalian {
friend ostream& operator<<(ostream&, const Perkalian&);
friend istream& operator>>(istream&, Perkalian&);
public:
Perkalian();
void hitung_perkaliannya(){ hasil = (a * b); }
private:
int a,b;
int hasil;
};
Kasus 2.3.


Buat algoritma dan program untuk
menghitung konversi dari m ke cm dan
inchi !
Analisis :






Input : misalkan m (mewakili meter)
Proses : 1 meter = 100 cm
1 inci = 2.54 cm
cm = m *100
inci = m*100/ 2.54
Output : tulis (cm, inci)
Algoritma 2.3
A lgoritm a konversi ja ra k
{m engkonversi m ula i ja ra k d a ri m eter ke cm d a ri inch i,
m a suka n m ke cm , la lu m a sukka n ke inch i}
D ekla ra si
m
: rea l(input)
cm
: rea l(output)
inci : rea l(output)
D eskripsi
rea d (m )
cm  m *1 0 0
inci  m *1 0 0 / 2 .5 4
w rite(cm )
w rite(inci)
Translasi 2.3
Bahasa C++
class Konversi {
public:
Konversi();
void konversi_ke_cm(){ cm = (m * 100); }
void konversi_ke_inci(){ inci = cm/2.54; }
private:
float m;
float cm, inci;
};
istream& operator>>(istream& in, Konversi& masukan) {
cout << "Masukkan nilai m : ";
in >> masukan.m;
masukan.konversi_ke_cm();
masukan.konversi_ke_inci();
return in;
}
Kasus 2.6
Setiap bilangan bulat selalu bisa ditulis dalam
bentuk :
m = q.n + r
 dengan n < m, q adalah kuosen dan r adalah
residu (sisa).
 Buatlah algoritma untuk merepresentasikan
m dan dalam bentuk m = q.n + r. Sebagai
contoh :
 integer m = 73 dan n = 7 dapat ditulis
sebagai 73 = 10x7 + 3, yaitu r = 3.
Analisis




Ingat ! Bila perlu buatlah contoh bilangan
tertentu sehingga kita memperoleh
gambaran bagaimana cara kerja (proses)
yang akan dilakukan algoritma.
Input : n dan m (n < m),
Proses : Kuosen q menggunakan / (asal
kedua operan integer), sedangkan r dapat
diperoleh dengan menggunakan operator %.
Output : q dan r (disusun seperti yang
diminta)
Algoritma 2.6
A lgoritm a A lja b a r
{m em b a ca m a suka n nila i n d a n m d en ga n n< m kem ud ia n
m enuliska n outputnya b erb entuk m = q.n + r}
D ekla ra si
m, n
: integer
{input}
q, r
: integer
{output}
D eskripsi
rea d (m , n)
(n < m )
q  m d iv n
{m end a pa tka n nila i q}
r
{m end a pa tka n nila i r}
 m m od n
w rite (q, r)
Translasi 2.6
Bahasa C++
class Aljabar {
friend ostream& operator<<(ostream&, const Aljabar&);
friend istream& operator>>(istream&, Aljabar&);
public:
Aljabar();
void hitung(){
q = m / n;
// mendapatkan nilai q
r = m % n;
// mendapatkan nilai r
}
private:
int m,n;
// input
int q,r;
// output
};
Karakter dan String



Semua karakter yang Anda dapat mengetik
di keyboard (lengkapnya ada pada daftar
ASCII)
String adalah sederatan karakter.
Karakter adalah string dengan panjang 1
Gabungan String (Concatenation)



Mengambil dua string dan menggabungkannya untuk
membuat string yang baru (hasil gabungan)
Operator Gabungan dilambangkan, dalam pseudocode,
dengan tanda +
Contoh:





String1 = “Algoritma" dan string2 = “ Pemrograman"
maka pernyataan:
Set Gabungan = string1 + string2
hasilnya:
Gabungan = “Algoritma Pemrograman"
Ringkasan

Untuk membuat pernyataan penugasan
yang benar, perhatikan urutan pengerjaan
operator (presedensi operator)
Jenis O perator
Presedensi
O perator
Perkalian
Lebih tinggi
* / %
Penjum lahan
Lebih rendah
+ -
Latihan (individu)



Buatlah algoritma dan program untuk mencari titik
tengah sebuah garis yang ujung titiknya adalah
A(x1,y1) dan B(x2,y2).
Buatlah algoritma dan program untuk memisahkan
bilangan integer yang kurang dari 1000 menjadi
komponen- komponennya. Sebagai contoh :
127 = 1 ratusan + 2 puluhan + 7 satuan
Buatlah algoritma dan program untuk menghitung
determinan matriks berordo 2x2
Bahan Diskusi

Periksa buku tabungan salah satu anggota
kelompok. Lakukan detail transaksi pengambilan
uang tabungan termasuk detail isian dalam
formulir transaksi. Pisahkan algoritma penulisan
angka menjadi ejaan :


Misal anda mengambil uang sebesar 300.000 akan
tertulis sebagai ‘Tiga ratus ribu rupiah”
Tulislah menggunakan huruf miring (italic) bila
pernyataan tertentu boleh berada pada deretan
lain. Sementara urutan yang HARUS berada pada
urutan tertentu tulis dalam huruf tegak (biasa)
Raptor


Kajilah buku 2, algoritma 2.1, hal. 64
tentang memindah nilai 2 variabel. Buatlah
tahapan-tahapan dari mengerti masalah
sampai dengan membuat program C++
Untuk algoritma, buatlah menggunakan
Raptor
Minggu III : KONTROL PROGRAM

Pernyataan kondisional :
if (ekspresi) aksi;
if (ekspresi) aksi1; else aksi2;



Operator Relasional
Tabel Kebenaran Operator Or dan AND
Gambar Flowchart terkait (Raptor)
Setelah mengikuti kuliah mahasiswa bisa :





Menyusun algoritma
Menulis standar algoritma
Membuat flowchart
Mengimplementasikannya dalam C++
Buatlah refleksi tentang pemahaman materi
sekuen dalam blog anda