dosen: abdillah, s.si, mit email: abdill01@gmail website: abdill 01 . wordpress

18
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah Dosen: Abdillah, S.Si, MIT Email: [email protected] Website: http://abdill01.wordpress.com

Upload: amos

Post on 04-Feb-2016

108 views

Category:

Documents


0 download

DESCRIPTION

TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah. Dosen: Abdillah, S.Si, MIT Email: [email protected] Website: http://abdill 01 . wordpress.com. Tujuan. Mahasiswa mampu menyelesaikan masalah berdasar contoh-contoh algoritma penyelesaian masalah. 1. Menentukan Data Terkecil. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

TEL 2112Dasar Komputer & Pemograman

Contoh Pemecahan MasalahDosen: Abdillah, S.Si, MIT

Email: [email protected]

Website: http://abdill01.wordpress.com

Page 2: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

TujuanMahasiswa mampu menyelesaikan masalah berdasar contoh-contoh algoritma penyelesaian masalah.

Page 3: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

1. Menentukan Data Terkecil

Tulislah algoritma untuk menentukan bilangan terkecil dari N buah data integer yang dibaca dari papan ketik. Nilai N dibaca terlebih dahulu (N > 0).

PenyelesaianBaca data terlebih dahulu. Asumsikan data pertama ini sebagai data terkecil (min) sementara. Kemudian baca data berikutnya. Jika data tersebut lebih kecil daripada min, maka ia menjadi min yang baru. Ulangi untuk data masukan yang lain. Pada akhir pengulangan min menjadi nilai terkecil dari seluruh data.

Page 4: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

Penjelasan

Karena banyaknya data diketahui, maka jumlah pengulangan dapat ditentukan. Pada masalah ini, struktur FOR dan WHILE dapat kita gunakan, yang dalam hal ini kita pilih struktur for. Tapi penggunaan REPEAT dapat menghasilkan algoritma yang salah.

Page 5: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

AlgoritmaPROGRAM Cari_Minimum{Menentukan bilangan terkecil dari N buah data integer}

DEKLARASIN, x, min, i : integer

ALGORITMA:read (N, x)min xfor i 2 to N do

read (x)if x < min then

min x endifendforwrite (min)

Page 6: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

Algoritma PROGRAM Cari_Minimum{Menentukan bilangan terkecil dari N buah data integer}

DEKLARASIN, x, min, i : integer

ALGORITMA:read (N, x)min x i 2 repeat

read (x)if x < min then

min x endif

i i + 1until i > Nwrite (min)

Page 7: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

2. Menentukan Perpangkatan

Tulislah algoritma untuk membaca bilangan bulat a dan n lalu menghitung perpangkatan an. (n 0).

PenyelesaianMisalkan nilai perkalian disimpan di dalam peubah bernama p. Peubah p ini diinisialisasi dengan 1, karena ia akan selalu dikalikan a. Kemudian lakukan perkalian p dengan a sebanyak n kali.

Page 8: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

AlgoritmaPROGRAM Perpangkatan{Menghitung perpangkatan an, a bilangan bulat dan n 0}

DEKLARASIa, n, p, i : integer

ALGORITMA:read (a, n)p 1for i 1 to n do

p p * aendforwrite (p)

Page 9: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

3. Menentukan Perpangkatan

Tulislah algoritma untuk membaca bilangan bulat a dan n sebarang lalu menghitung perpangkatan an.

PenyelesaianJika n < 0, maka n diubah terlebih dahulu ke positif dan disimpan ke dalam peubah m. Setelah perpangkatan dihitung, hasilnya dinyatakan dalam bentuk 1/hasil.

Page 10: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

AlgoritmaPROGRAM Perpangkatan{Menghitung an, a dan n bilangan bulat sembarang}

DEKLARASIa, n, m, p, i : integer

ALGORITMA:read (a, n)if n < 0 then m -nelse m nendifp 1 for i 1 to m do

p p * aendforif n < 0 then write (1/p)else write (p)endif

Page 11: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

4. Menentukan FaktorialTulislah algoritma untuk membaca bilangan bulat n lalu menghitung n faktorial.

PenyelesaianFaktorial sebuah bilangan bulat positif n didefinisikan sebagai: n! = 1 * 2 * 3 * ... * ndan khusus untuk n =0, maka 0! = 1.Misalkan nilai faktorial disimpan dalam peubah fak. Inisialisasi fak dengan 1: fak 1Kalikan fak dengan i, mulai dari 1 sampai n:fak fak * i

Page 12: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

AlgoritmaPROGRAM Faktorial{Menghitung n faktorial, n > 0}

DEKLARASIn, fak, i : integer

ALGORITMA:read (n)fak 1for i 1 to n do

fak fak * iendforwrite (fak)

Page 13: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

5. Konversi Desimal-BinerTulislah algoritma yang mengkonversi bilangan bulat positif ke dalam bilangan biner.

PenyelesaianUntuk mendapatkan bentuk biner dari sebuah bilangan desimal, bagi bilangan desimal tersebut dengan 2 terus menerus sampai hasil pembagian = 0. Deretan sisa hasil pembagian menyatakan bilangan biner dari bilangan desimal tersebut. Contoh: Konversi bilangan desimal 18 18/2 = 9 sisa 0 9/2 = 4 sisa 1 4/2 = 2 sisa 0 2/2 = 1 sisa 0 1/2 = 0 sisa 1Urutan bilangan biner sesuai arah panah: 10010.

Page 14: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

PenjelasanMisalkan bilangan yang akan dikonversikan ke biner adalah x. Algoritma pengkonversiannya adalah membagi x dengan 2 secara berulang-ulang sampai hasil pembagiannya = 0. Urutan pembagian- nya adalah menghitung sisa pembagian terlebih dahulu:

sisa x mod 2.

Baru kemudian menghitung hasil pembagian:

x x div 2.

Bit biner yang merupakan sisa pembagian ditampung dalam sebuah peubah string yang bernama biner. Inisialisasi biner dengan karakter kosong ‘ ‘. Setiap kali diperoleh sisa pembagian, sambungkan dengan operator + sisa pembagian tersebut dengan biner:

biner ‘0’ + biner. Jika sisa = 0

biner ‘1’ + biner. Jika sisa = 1

Page 15: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

AlgoritmaPROGRAM Desimal_Biner{Mengkonversi bilangan bulat positif ke bilangan biner}

DEKLARASIx, sisa : integerbiner : string

ALGORITMA:read (x)biner ‘ ‘repeat

sisa x mod 2 x x div 2

case sisa 0 : biner ‘0’ + biner 1 : biner ‘1’ + biner

endcaseuntil x = 0write (biner)

Page 16: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

6. Mencetak Segitiga BintangTulislah algoritma yang mencetak segitiga bintang berikut, jika diberikan tinggi segitiga adalah N (N > 0). Contohnya, jika N = 5, maka segitiga yang dihasilkan adalah:

*************************

Page 17: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

PenyelesaianPerhatikan gambar segitiga uktuk N = 5. Baris ke-1 terdiri atas satu bintang, baris ke-2 dua bintang, dan seterusnya baris ke-5 lima bintang. Secara umum baris ke i terdiri atas i bintang. Setelah baris ke-N, baris berikutnya merupakan pencerminan dari baris N – 1 sampai baris ke-1.

Page 18: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

AlgoritmaPROGRAM Cetak_Segitiga_Bintang{Mencetak segitiga bintang dengan tinggi N }

DEKLARASIN, i, j : integer

ALGORITMA:read (N)for i 1 to N do

for j 1 to i do write ( * )endfor

endforfor i N-1 to 1 do

for j 1 to i do

write ( * ) endforendfor