Jumat, 29 April 2011

TUGAS KE 3 ALGORITMA BOOTH

ALGORITMA BOOTH

Perkalian Dengan metode Algoritma Booth

Sistem bilangan biner merupakan sistem bilangan yang menggunakan bilangan 0 dan 1 dengan bit-bit yang dikelompokkan berjumlah 8 bit untuk 1 Byte. Dalam operasi bilangan biner sama dengan operasi bilangan biasa, namun bedanya adalah pada operasi bilangan biner angka yang digunakan hanya 0 dan 1, tidak seperti pada operasi bilangan desimal yang menggunakan angka dari 0-9.

Untuk menjalankan operasi perkalian bilangan biner kita harus dapat terlebih dahulu mengkonversi bilangan biner ke desimal dan sebaliknya. Konversi bilangan tersebut digunakan untuk mempermudah dalam proses operasi yang dilakukan, sebab dalam operasinya bilangan biner tidak dapat diproses secara langsung dengan bilangan desimal.

Dalam operasi pengalian bilangan biner ada beberapa hal yang harus diperhatikan, diantaranya adalah :

1. Konversi bilangan biner ke desimal

Untuk mengubah angka desimal menjadi angka biner digunakan metode membagi dua angka tersebut dan mengambil hasil sisanya dan penulisannya diurutkan dari bawah ke atas.

Sebagai contoh :









2. Operasi Penjumlahan

Operasi penjumlahan ini digunakan untuk operasi 2’s komplemen yang diperoleh dari penjumlahan nilai X ditambah 1, selain itu juga operasi penjumlahan ini digunakan dalam proses akhir mencari nilai hasil perkalian yang dila

kukan dengan algoritma booth. Seperti bilangan desimal, bilangan biner juga dijumlahkan dengan cara yang sama. Pertama-tama yang harus dicermati adalah aturan pasangan digit biner berikut:








Algoritma Booth

Algoritma booth merupakan bilangan yang dikalikan dengan pengali dengan recoded digit yang telah ditentukan untuk memproses dan menjalankan operasi pengaliannya,

Referensi :

blog.beswandjarum.com/.../perkalian-bilangan-binner-dengan-metode-algoritma-booth/ -

Rekursi

Rekursi
Rekursi adalah suatu subprogram yang memanggil dirinya sendiri. Algoritma rekursif menyediakan teknik penyelesaian persoalan yang di dalamnya mengandung definisi persoalan itu sendiri.
Langkah-langkah merancang algoritma rekursif:
1. Menyatakan persoalan secara rekursif
2. Menentukan kasus yang menyebabkan pemanggilan rekursif berhenti (basis)
3. Menentukan kasus yang menyebabkan pemanggilan rekursif (rekurens).


Contoh: Menghitung nilai faktorial
Function faktorial (n :integer): longint;
Begin
If n = 0 then
Faktorial := 1
Else
Faktorial := n * faktorial (n-1);


REFERENSI :
zakarepmoe.blogspot.com/.../subrutin-prosedur-dan-fungsi.htm

SUBRUTIN

SUBRUTIN
PROSEDUR
Prosedur merupakan subprogram yang tidak selalu menghasilkan nilai, tetapi menghasilkan suatu efek netto. Efek netto diketahui dengan membandingkan keadaan awal dan keadaan akhir pada pelaksanaan sebuah prosedur.
Suatu prosedur dikenal berdasarkan nama prosedurnya, kemudian diikuti dengan parameter yang ditulis didalam tanda kurung, bila ada.
Bentuk umum penulisan prosedur:

PROCEDURE nama_prosedur (parameter_formal);
Var
……..
Begin
Pernyataan_1;
Pernyataan_2;
.
.
.
End;

Pemanggilan prosedur:
Prosedur dijalankan dengan cara memanggil namanya dari program utama.
a. Prosedur tanpa parameter
Nama_prosedur;
b. Prosedur dengan parameter
Nama_prosedur (parameter_aktual);

Contoh:
Program luas_persegi_panjang;
AAVar
P,L :Real;
Procedure Luas_pp (var panjang,lebar :real);
Var
Luas : real;
Begin
Luas:=panjang * lebar;
Writeln(‘Luas Persegi Panjang = ‘, Luas:5:2);
End;

Begin
Write(‘Masukkan panjang=); Readln(P);
Write(‘Masukkan lebar=); Readln(L);
Luas_pp (P,L);
End.

FUNGSI
Fungsi merupakan subprogram yang memberikan/ mengembalikan sebuah nilai tertentu (return value). Nilai hasil dikembalikan ke dalam nama fungsi, oleh karena itu nama fungsi juga sebagai variabel yang memiliki tipe data tertentu.

Bentuk umum penulisan fungsi:
FUNCTION nama_fungsi (parameter_formal) : tipe_data;
Var
……..
Begin
Pernyataan_1;
Pernyataan_2;
.
.
.
{return value}
End;

Pemanggilan fungsi:
Fungsi dijalankan dengan cara memanggil namanya dari program utama. Fungsi pada program utama diperlakukan seperti sebuah variabel yang menampung sebuah nilai hasil fungsi.
a. Fungsi tanpa parameter
Var := Nama_fungsi;
Atau
Writeln (nama_fungsi);
b. Fungsi dengan parameter
Var := Nama_ fungsi (parameter_aktual);
Atau
Writeln (nama_fungsi(parameter_aktual));

Contoh:
Program luas_persegi_panjang;
Var
P,L,Lp :Real;
Function Luas_pp (var panjang,lebar :real):Real;
Var
Luas : real;
Begin
Luas:=panjang * lebar;
Luas_pp := Luas;
End;

Begin
Write(‘Masukkan panjang=); Readln(P);
Write(‘Masukkan lebar=); Readln(L);
Lp := Luas_pp (P,L);
Writeln (‘Luas Persegi Panjang = ‘, Lp:5:2);
End.

REFERENSI:
zakarepmoe.blogspot.com/.../subrutin-prosedur-dan-fungsi.htm

STRUKTUR PENGULANGAN

STRUKTUR PENGULANGAN

Secara umum terdiri atas dua bagian :

• kondisi pengulangan, yaitu ekspresi Boolean yang harus dipenuhi untuk melaksanakan pengulangan yang dinyatakan secara eksplisit oleh pemrogram atau implisit oleh komputer.

• badan pengulangan, yaitu bagian algoritma yang diulang.

Struktur umum :

awal pengulangan

badan pengulangan

akhir pengulangan

1. Inisialisasi, aksi yang dilakukan sebelum pengulangan dilakukan pertama kali

2. terminasi, aksi yang dilakukan setelah pengulangan selesai dilakukan inisialisasi dan terminasi tidak harus selalu ada, namun pada berbagai kasus inisialisasi umumnya diperlukan.

· PERNYATAAN FOR

Digunakan untuk menghasilkan pengulangan sejumlah yang telah ditentukan sebelumnya. Jumlah pengulangan diketahui atau dapat ditentukan sebelum eksekusi.

1. FOR menaik

For peubah nilai_awal to nilai_akhir do

Aksi

Endfor

Keterangan :

• peubah harus bertipe data sederhana kecuali real

• aksi adalah satu atau lebih instruksi yangdiulang.

• nilai-awal harus ≤ nilai-akhir, jika tidak maka badan pengulangan tidak dimasuki

Contoh

Algoritma Cetak_Angka

{mencetak 1, 2, .., 8 ke piranti

keluaran}

Deklarasi :

K: integer

Deskripsi :

for k 1 to 8 do

write (k)

endfor

2. FOR menurun

For peubah nilai_akhir downto nilai_awal do

Aksi

Endfor

Keterangan :

peubah harus bertipe data sederhana kecuali real aksi adalah satu atau lebih instruksi yang diulang.

nilai-awal harus ≥ nilai-akhir, jika tidak maka badan pengulangan tidak dimasuki.

nilai pencacah diinisialisasi dengan nilai_akhir kemudian secara otomatis berkurang satu sampai nilai_awal tercapai.

banyak pengulangan yaitu (nilai_awal – nilai_akhir +1).

Contoh :

Algoritma Peluncuran_Roket

{hitung mundur peluncuran roket}

Deklarasi :

k: integer

Deskripsi :

for k 100 down to 0 do

write (k)

endfor

write (‘GO’) {roket meluncur}

· PERNYATAAN FOR BERSARANG

Perulangan yang berada didalam perulangan yang lainnya. Perulangan yang lebih dalam akan diproses lebih dulu sampai habis, kemudian perulangan yang lebih luar baru akan bertambah, mengerjakan perulangan yang lebih dalam lagi mulai dari nilai awalnya dan seterusnya.

Contoh program :


Var

I, J : integer ;

Begin

For I : = 1 to 5 do

Begin

For J : = 1 to 3 do

Write ( I : 8, J : 3);

Writeln ;

End ;

End.

· PERNYATAAN WHILE

Notasi algoritmik :

while kondisi do

Aksi

Endwhile

Keterangan :

Aksi ( atau runtunan aksi) akan dilaksanakan berulang kali selama kondisi bernilai true, jika false maka badan pengulangan tidak akan dilaksanakan yang berarti pengulangan selesai.

Algoritma Cetak_Angka

{mencetak 1, 2, .., 8 ke piranti keluaran}

Deklarasi :

K: integer

Deskripsi :

K 1 {inisialisasi}

while k <= 8 do

write (k)

k k + 1

endwhile

· PERNYATAAN REPEAT UNTIL

Notasi algoritmik :

repeat

Aksi

Until kondisi

Keterangan :

Aksi ( atau runtunan aksi) akan dilaksanakan berulang kali sampai kondisi bernilai true, jika kondisi bernilai false maka pengulangan masih terus dilakukan.

Contoh

Algoritma Cetak_Angka

{mencetak 1, 2, .., 8 ke piranti keluaran}

Deklarasi :

K: integer

Deskripsi :

K 1 {inisialisasi}

repeat

write (k)

k k + 1

until k > 8

REFERENSI :

staff.unud.ac.id/~agungcahyawan/wp-content/uploads/.../pengulangan.pdf

detty.staff.gunadarma.ac.id/.../files/.../STRUKTUR+PERULANGAN.pdf

STRUKTUR PERCABANGAN

STRUKTUR PERCABANGAN

Pada algoritma runtunan telah kita lihat bahwa setiap pernyataan selalu dilakukan bila telah sampai gilirannya. Namun demikian ada kalanya suatu pernyataan atau perintah hanya bisa dilakukan bila memenuhi suatu kondisi atau persyaratan tertentu. Algoritma ini kita sebut dengan algoritma seleksi kondisi atau juga percabangan.

· PERNYATAAN IF ………. ELSE

Bentuk umumnya adalah:

If then

if then

Pernyataan1

else

Pernyataan2

else

If

Pernyataan3

else

Pernyataan4

Contohnya adalah

Deklarasi

Bil : integer

Ket : string

Deskripsi

read (bil)

if bil mod 2 = 0 then

if bil mod 5 = 0 then

Ket ß ‘ Kelipatan 2 dan Kelipatan 5’

else

Ket ß ‘ Kelipatan 2 tapi Bukan Kelipatan 5’

else

if bil mod 5 = 0 then

Ket ß ‘Bukan Kelipatan 2 tapi Kelipatan 5’

else

Ket ß ‘Bukan Kelipatan 2 atau 5’)

Write(Ket)

· PERNYATAAN IF ………. ELSE IF

Percabangan dengan tiga kondisi atau lebih adalah bentuk pengembangan dari dua bentuk percabangan percabangan yang telah kita bahas sebelumnya. Akan ada banyak sekali variasinya tetapi secara umum ekspresi percabangannya dapat kita tuliskan sebagai berikut.

Bentuk umunya adalah :

If then

Pernyataan1

else if then

Pernyataan2

...

else if then

Pernyataan(n)

else

Pernyataan(n)

Contohnya adalah :

Algoritma pembelian

Deklarasi

Hrg,Disk,Ttr : real

Jum : integer

Deskripsi

Read(hrg,jum)

if jum >= 100 then

Diskß0.4

else if jum>=50 then

Diskß0.25

else

Diskß0

Ttrßhrg*(1-disk)

Write(Ttr)

· PERNYATAAN CASE

Statement SELECT CASE dapat digunakan untuk memilih satu diantara sejumlah

alternatif.

Perbedaan SELECT CASE dan IF…THEN…ELSE :

SELECT CASE kondisi yang ditest hanya sebuah, jika memenuhi proses eksekusi

akan diteruskan ke bagian tertentu dari suatu program berdasarkan nilai kondisi yang

ditest. Jika tidak akan berlanjut ke kondisi berikutnya.

IF…THEN…ELSE banyak baris dapat mentest lebih dari sebuah kondisi yang satu

sama lain saling berbeda.

Bentuk Umum :

SELECT CASE ungkapan

CASE nilai1

[ statement1 ]

[ CASE nilai2

[ statement2 ] ]

.

.

[ CASE ELSE

[ statementn ] ]

END SELECT

dengan parameter-parameternya :

ungkapan : sembarang ungkapan (numeris atau untai)

nilai1,

nilai2, … : nilai-nilai dari parameter ungkapan

statement1,

statement2, …: statement-statement yang akan dikerjakan.

Untuk menentukan ungkapan yang mempunyai jangkauan tertentu bisa digunakan

bentuk umum sebagai berikut :

1. CASE ungkapan TO ungkapan

Jika menggunakan kata baku TO tulislah ungkapan yang mempunyai nilai yang

paling kecil terlebih dahulu.

Contoh :

CLS

PRINT “Ketik sebuah karakter” ;

Kar$ = INPUT(1)

PRINT kar$

SELECT CASE Kar$

CASE “A” TO “Z”

PRINT “Merupakan huruf kapital”

CASE “a” TO “z”

PRINT “Merupakan huruf kecil”

CASE “0” TO “9”

PRINT “Merupakan digit”

CASE “ “

PRINT “Spasi yang Anda tekan”

CASE “!”, “@”, “#”, “$”, “%”, “^”, “&”, “*”

PRINT “Anda menekan suatu tombol”

CASE ELSE

PRINT “Bukan angka, huruf, spasi ataupun”

PRINT “Simbol !, @, #, $, %, ^, &, *”

END SELECT

END

2. CASE IS oprelasi ungkapan

Oprelasi : sembarang ungkapan relasi ( <, <=, =, >=, >, <>)

Contoh :

CLS

INPUT “Tahun : “, Tahun%

SELECT CASE Tahun%

CASE IS < 1945

PRINT “Tahun sebelum kemerdekaan”

CASE IS = 1945

PRINT “Tahun kemerdekaan”

CASE IS > 1945

PRINT “Masa pasca kemerdekaan”

END SELECT

END

REFERENSI :

elib.unikom.ac.id/download.php?id=45721