ALGORITMA DAN PEMROGRAMAN
Algoritma
input -> proses -> output
buat algoritma untuk menghitung luas persegi ?
__L = s x s
__input -> s
__proses -> L = s x s
__output -> L
variabel L dan s bertipe numerik (bulat atau pecahan)
Tipe data
_.karakter
____= 1 –> char 1 byte = 8 bit -> diapit dengan tanda kutip satu
____>= 1 –> string -> diapit dengan tanda kutip ganda
_.angka
____diskrit
____kontinyu
_.boolean 1 bit
Kondisional / Percabangan
ada keadaan tertentu (kondisi / syarat) yang harus dipenuhi
syarat bertipe —> boolean
ada dua tipe / jenis struktur percabangan
_1. if-else
_2. switch-case
deklarasi struktur ‘if-else‘
___if (kondisi) {
_____aksi…..
___} else {
_____aksi…..
___}
struktur java
/* implementasi di bahasa Pemrograman Java */
class D3MI4002 {
__public static void main (String[] alim) {
____int angka = 9;
____if (angka % 2 == 0) {
______System.out.println (“bilangan genap”);
____} else {
______System.out.println (“bilangan ganjil”);
____}
__}
}
class D3MI4002Java {
__public static void main (String[] alim) {
____int angka = 9;
____if (angka == 7) {
______System.out.println (“angka tujuh”);
____} else {
______System.out.println (“bukan angka tujuh”);
____}
__}
}
nilai dari angka == 7 adalah boolean, yakni bisa berupa ‘true’ atau ‘false‘
terkait boolean, apa saja operator yang dapat dioperasikannya ?
__AND &&
__OR ||
__XOR
__geser bit ? dan lainnya
referensi
__’Head First Java’ pdf <- silahkan download
__’Algoritma dan Pemrograman’ <- rinaldi munir, moch sjukani, antony pranata
bahasa algoritmik
Algoritma CekBilanganGenap
Kamus Data
__angka : integer
Deskripsi
__input (angka)
__if (angka mod 2 = 0) then
____output (‘bilangan genap’)
__else
____output (‘bilangan ganjil’)
__endif
operator mod -> Operator di Matematika -> modulo -> sisa bagi
Algoritma CekBilanganGenap
Kamus Data
__angka, hasil : integer
Deskripsi
__input (angka)
__hasil <- angka mod 2
__if (hasil = 0) then
____output (‘bilangan genap’)
__else
____output (‘bilangan ganjil’)
__endif
skema dengan ‘flowchart’ ?? -> di papan tulis
algoritma itu bisa disajikan dalam bentuk:
_1. pseudo-code
_2. flowchart
_3. narasi deskriptif
contoh penyajian algoritma dalam bentuk ‘narasi deskriptif‘
Algoritma CekBilanganGenap
__1. inputkan suatu bilangan bulat positif
__2. lakukan komputasi modulo bilangan tersebut terhadap angka 2
__3. periksa atau cek hasil tahapan ke-2
__4. jika hasil di tahapan ke-3 bernilai 0 maka tampilkan ‘bilangan genap’
__5. jika tidak, maka tampilkan ‘bilangan ganjil’
Hitung Keliling, Diagonal, dan Luas ‘Persegi Panjang’
/* dengan bentuk pseudo-code */
Algoritma PersegiPanjang
Kamus
__panjang, lebar, keliling, luas, diagonal: real
Deskripsi
__input (panjang, lebar)
__keliling <- (2 * panjang) + (2 * lebar)
__output (keliling)
__diagonal <- sqrt (panjang * panjang + lebar * lebar)
__output (diagonal)
__luas <- panjang * lebar
__output (luas)
/* dengan flowchart */ -> ada di papan tulis
/* dengan narasi */
Algoritma PersegiPanjang
__1. input dua bilangan bulat positif, yakni p dan l
__2. lakukan proses perhitungan, keliling <- (2 x p) + (2 x l)
__3. tampilkan hasil di tahapan nomor 2
__4. lakukan proses perhitungan, diagonal <- sqrt ( (p x p) + (l x l) )
__5. tampilkan hasil di tahapan nomor 4
__6. lakukan proses perhitungan, luas <- p x l
__7. tampilkan hasil di tahapan nomor 6
/* implementasi di bahasa Java */
class PersegiPanjang {
__public static void main (String[] alim) {
____double panjang, lebar;
____panjang = 100;
____lebar = 10;
____double keliling = (2 * panjang) + (2 * lebar);
____System.out.println (keliling);
____double diagonal = Math.sqrt (panjang * panjang + lebar * lebar);
____System.out.println (diagonal);
____double luas = panjang * lebar;
____System.out.println (luas);
__}