Algoritma dan Pemprogaman 1

advertisement
Pemrograman dan Jenis Data






Mendefinisikan masalah
Menentukan solusi
Memilih algoritma
Menulis program
Menguji program
Menulis dokumentasi
Variabel adalah tempat dimana kita dapat
mengisi atau mengosongkan nilainya dan
memanggil kembali apabila dibutuhkan.
Setiap variabel akan mempunyai nama
(identifier) dan nilai. Perhatikan contoh
berikut.
• Contoh:
Username=“toni”
Nama=“kusumo_destoni”
Harga=“2500”
HargaTotal=“34000”
•
•
•
•
Konstanta adalah variabel yang nilai datanya
bersifat tetap dan tidak bisa diubah.
konstanta adalah juga variabel bedanya
adalah pada nilai yang disimpannya.
Jika nilai datanya sepanjang program berjalan
tidak berubahubah, maka sebuah varibel
lebih baik diperlakukan sebagai konstanta.
•
•
Pada sebuah kode program, biasanya nilai data
dari konstanta diberikan langsung di bagian
deklarasi konstanta.
Sebagai contoh, jika kita membuat program
perhitungan matematik yang menggunakan nilai
pi (3.14159) yang mungkin akan muncul
dibanyak tempat pada kode program, kita dapat
membuat pi sebagai konstanta. Penggunaan
konstanta pi akan lebih memudahkan penulisan
kode program dibanding harus mengetikkan nilai
3.14159 berulang-ulang.
•
•
•
•
Tipe data adalah jenis data yang dapat diolah
oleh komputer untuk memenuhi kebutuhan
dalam pemrograman komputer.
Setiap variabel atau konstanta yang ada dalam
kode program, sebaiknya kita tentukan dengan
pasti tipe datanya.
Ketepatan pemilihan tipe data pada variabel atau
konstanta akan sangat menentukan pemakaian
sumberdaya
komputer
(terutama
memori
komputer)
Salah satu tugas penting seorang programmer
adalah memilih tipe data yang sesuai untuk
menghasilkan program yang efisien dan
berkinerja tinggi.
•
•
Tipe data numeric digunakan pada variabel
atau konstanta untuk menyimpan nilai dalam
bentuk bilangan atau angka.
Semua bahasa pemrograman menyediakan
tipe data numeric, hanya berbeda dalam jenis
numeric yang diakomodasi.
•
•
•
Jenis yang termasuk dalam tipe data numeric
antara lain integer (bilangan bulat), dan float
(bilangan pecahan).
Tipe data Single adalah tipe data untuk
bilangan pecahan dengan presisi yang
terbatas.
Tipe data Double adalah tipe data untuk
bilangan pecahan dengan presisi yang lebih
akurat


Character merupakan tipe data yang
paling banyak digunakan.
Tipe data character kadang disebut
sebagai char atau string.

Tipe
data
string
hanya
dapat
digunakan menyimpan teks atau
apapun sepanjang berada dalam tanda
petik dua (“…”) atau petik tunggal
(‘…’).
•
•
•
Tipe
data
Boolean
digunakan
untuk
menyimpan nilai True/False (Benar/Salah).
Pada sebagian besar bahasa pemrograman
nilai selain 1 menunjukkan True dan 0
melambangkan False.
Tipe data ini banyak digunakan untuk
pengambilan
keputusan
pada
struktur
percabangan dengan IF … THEN atau IF …
THEN … ELSE.
If(Nilai >=86){
System.out.Println(“Nilai A”);
}
Else if(Nilai>=70){
System.out.Println(“Nilai B”);
}
Else{
System.out.Println(“Nilai C”);
}
Nama Operator
Simbol Operator
Ekspresi aljabar
Ekspresi
program
Penambahan
+
A+B
A+B
Pengurangan
-
A–B
A–B
Perkalian
*
AB
A*B
Pembagian
/
A/B
A/B
Sisa bagi
(modulo)
%
A%B
A%B
Nilai A = 8
Nilai B = 6
Penambahan = 14
Pengurangan = 2
Perkalian = 48
Pembagian = 1.333
Sisa Bagi = 2
a01Operator.java
Nama Operator
Simbol Operator
Ekspresi aljabar
Ekspresi
program
Sama dengan
=
==
X == Y
Tidak sama
dengan
≠
!=
X != Y
Operator Rasionalitas (Pembanding)
Nama Operator
Simbol Operator
Ekspresi aljabar
Ekspresi
program
lebih besar
>
>
X>Y
Lebih kecil
<
<
X<Y
Lebih besar sama
dengan
≥
>=
X >= Y
Lebih kecil sama
dengan
≤
=<
X =< Y
Comparison.java
Nama Operator
Simbol Operator
Ekspresi aljabar
Ekspresi
program
Not
!
!
!X
And
&&
&&
X && Y
Or
||
||
X || Y
xor
xor
xor
X xor Y
X
Y
Not X
Not Y
X and Y
X or Y
X xor Y
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
Hasil Operator Boolean kondisi
X
Y
Not X
Not Y
X and Y
X or Y
X xor Y
false
False
True
True
False
False
False
false
true
1
False
False
True
True
True
False
False
True
False
True
True
True
True
False
False
True
true
false
•
•
Algoritma adalah urutan langkah berhingga
untuk memecahkan masalah logika atau
matematika
Contoh algoritma: mengirimkan surat dengan
amplop
– Mempersiapkan kertas dan amplop
– Mempersiapkan alat tulis, seperti pena atau pensil
– Mulai menulis
– Memasukkan kertas kedalam amplop
– Pergi ke kantor pos untuk mengeposkan surat
tersebut
Structured English
SE merupakan alat yang cukup baik untuk
menggambarkan suatu algoritma. Dasar dari SE
adalah Bahasa Inggris, namun kita dapat
memodifikasi dengan Bahasa Indonesia sehingga
kita boleh menyebutnya sebagai Structured
Indonesian (SI).
• Pseudocode
Pseudo berarti imitasi atau tiruan atau menyerupai,
sedangkan code menunjuk pada kode program.
Sehingga pseudocode adalah kode yang mirip
dengan instruksi kode program sebenarnya.
•
•
1.
2.
3.
4.
Menghitung luas lingkaran:
Masukkan R
Pi  3.14
L  Pi * R * R
Tulis L
Maksud dari  : nilai di sebelah kanan diberikan pada
OPERAN di sebelah kiri.
Pi  3.14 = berikan nilai 3.14 ke Pi
Nama
Algoritma
Diberikan nama algoritma
Deklarasi
Berisi variabel-variabel yang digunakan
Deskripsi
Deskripsi alur program
•
Dari contoh slide sebelumnya (luas lingkaran)
Nama
Algoritma
Menghitung_luas_lingkaran
Deklarasi
R : integer;
L : float;
Pi = 3.14 : konstanta
Deskripsi
Read(R);
Pi  3.14;
L  Pi * R * R;
Write(L);
Latihan Pembuatan Flowchart


Flowchart
atau
bagan
alir
adalah
skema/bagan (chart) yang menunjukkan
aliran (flow) di dalam suatu program secara
logika.
Flowchart merupakan alat yang banyak
digunakan untuk menggambarkan algoritma
dalam bentu notasi-notasi tertentu.
•
Dari contoh algoritma menghitung luas
lingkaran, maka dapat digambarkan sebagai
berikut:
Nama
Algoritma
Menghitung_luas_lingkaran
Deklarasi
R : integer;
L : float;
Pi = 3.14 : konstanta
Deskripsi
Read(R);
Pi  3.14;
L  Pi * R * R;
Write(L);
a01MenghitungLuasLingkaran.java


Sebuah program tidak selamanya akan
berjalan
dengan
mengikuti
struktur
berurutan, kadang-kadang kita perlu
merubah urutan pelaksanaan program dan
menghendaki agar pelaksanaan program
meloncat ke baris tertentu.
Peristiwa ini kadang disebut sebagai
percabangan/pemilihan atau keputusan.

Sebuah aturan untuk menonton sebuah film
tertentu adalah sebagai berikut, jika usia
penonton lebih dari 17 tahun maka penonton
diperbolehkan dan apabila kurang dari 17
tahun maka penonton tidak diperbolehkan
nonton.
Nama
algoritma
Menonton_film
Deklarasi
Usia : real;
Psn : String;
Deskripsi
Read (Usia)
if Usia > 17
Psn “anda boleh menonton”
else
Psn “anda tidak boleh menonton”
Write(‘Pesan’, Psn)
a01MenontonFilm.java

Dalam suatu perhitungan nilai P = X + Y. Jika
P positif, maka Q = X * Y, sedangkan jika
negative maka nilai Q = X/Y. Buatlah
flowchart untuk mencari nilai P dan Q
Nama
algoritma
Hitung_bilangan
Deklarasi
X, Y : real;
P, Q : real;
Deskripsi
Read (X,Y)
PX+Y
if P > 0
QX*Y
else
QX/Y
Write(‘Nilai P’,P)
Write(‘Nilai Q’, Q)
a01MenghitungBilangan.java


Diketahui pegawai dengan masa kerja lebih
dari 3 tahun mendapat tunjangan sebesar
20% gaji pokok sedang yang kurang dari itu
mendapat tunjangan 10%. Input program
adalah masa kerja dan gaji pokok. Buatlah
algoritmanya (30)
Untuk lebih jelasnya, perhatikan penjelasan
berikut ini:
Mula-mula dimasukkan data (mk) dan (gapok). Misalnya, masingmasing diberi nilai 2 dan 1000. Karena (mk>3) bernilai salah, maka
perintah yang dikerjakan adalah (tjg0.1*gapok). Kemudian gapok
dan tjg dijumlahkan yang hasilnya disimpan sebagai gatot. Dengan
demikian output yang keluar adalah 1100.
Nama
Algoritma
Gaji_pegawai
Deklarasi
Tjg, mk, gapok, gatot : double
Deskripsi
Read (mk, gapok )
If(mk>3) then
tjg  0.2 * gapok
Else
tjg  0.1 * gapok
Gatot  gapok + tjg
Write(‘gaji total’,gatot )

Buatlah algoritma dan flowchart untuk
menghitung umur anda dengan memasukkan
tahun sekarang. Hasil penghitungan adalah
◦ apakah tahun sekarang tahun kabisat atau tidak
◦ Umur anda dalam hitungan jam
Nama
Algoritma
Tahun_kabisat
Deklarasi
Tahun_sekarang : int;
Tahun_lahir : int;
Hitung_umur_tahun : int
Hitung_umur_jam : int
Kata : String
Deskripsi
Read (tahun_sekarang,tahun_lahir)
Hitung_umur_tahun  tahun_sekarang – tahun_lahir
Hitung_umur_jam  hitung_umur_tahun * 8760
If((tahun_sekarang % 400 ==0) ||((tahun_sekarang % 4
== 0) && (tahun_sekarang %100 != 0)) )
kata  tahun kabisat
Else
kata  tidak tahun kabisat
Write (hitung_umur_jam, kata)
a01TahunKabisatSimple.j
ava

Jika beli produk >=3, maka diskon 5%
Nama
program
Deklarasi
Deskripsi
Pembelian_barang
Kodebarang, jml_beli : int;
Hargasatuan,jml_harga,pot,bayar : double;
read (kodebarang,hargasatuan,jml_beli)
Jml_harga = hargasatuan * jml_beli;
If jml_beli >=3
Pot = 0.5;
Else
Pot = 0;
Bayar = (Jml_harga) – (Jml_harga* pot);
Write(‘Jumlah Harga’, Jml_harga )
Write(‘Potongan’,pot)
Write (‘bayar’, bayar);
•
Sebuah usaha fotokopi mempunyai aturan
sebagai berikut :
 jika
yang fotokopi statusnya adalah
langganan, maka berapa lembar pun dia
fotokopi, harga perlembarnya Rp. 75, jika yang fotokopi bukan langganan, maka
jika dia fotokopi kurang dari 100 lembar
harga perlembarnya Rp. 100,-. Sedangkan
jika lebih atau sama dengan 100 lembar
maka harga perlembarnya Rp. 85,-.
Nama
algoritma
Biaya_fotokopi
Deklarasi
Status : String;
JLF : int;
HPP, TH : real;
Deskripsi
Read (Status,JLF)
if Status==“langganan”
HPP  75
else
if JLF < 100
HPP  100
else
HPP  85
TH  JLF * HPP
Write (‘Total Harga’, TH)
a01MenghitungBiayaFotokopi.java
•
Aturan kelulusan siswa pada mata pelajaran
Pemrograman
Web
diterapkan
sebagai
berikut :
 Jika nilai ujian tengah semester (UTS) lebih
besar dari 70 maka siswa dinyatakan lulus
dan Nilai Akhir sama dengan nilai UTS.
 Jika nilai UTS kurang atau sama dengan 70
maka siswa dinyatakan lulus jika Nilai Akhir
lebih besar atau sama dengan 60 dimana
Nilai Akhir = (nilai UTS x 40%) + (nilai UAS x
60%).
Nama algoritma
Kelulusan_siswa
Deklarasi
nim,nama,status : String;
NUTS,NUAS,NA : real;
Deskripsi
Read (nim,nama,status,NUTS,NUAS)
if NUTS > 70
NA  NUTS;
status  “lulus”
else
NA  (NUTS * 0.4) + (NUAS * 0.6)
if NA >= 60
status  “lulus”
else
status  “tidak lulus”
Write (‘Nim, Nama, NA, Status’)
Download