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

Post on 04-Feb-2016

108 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah. Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail.com 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

TEL 2112Dasar Komputer & Pemograman

Contoh Pemecahan MasalahDosen: Abdillah, S.Si, MIT

Email: abdill01@gmail.com

Website: http://abdill01.wordpress.com

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

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.

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.

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)

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)

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.

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)

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.

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

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

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)

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.

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

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)

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:

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

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.

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

top related