Anda di halaman 1dari 13

1.

Algoritma komputasi dan Flowchart


1.1 Pendahuluan
Misalnya diketahui suatu persamaan linier dengan dua buah bilangannya x dan y :
ax + by = c (1.1)
px + qy = r (1.2)
dengan a, b, c, p, q dan r tidak sama dengan nol.
Penyelesaian soal di atas dapat dlkakukan sebagai berikut :
Dari (1.1) diperoleh
X = (c-by)/a (1.3)
Harga x disubtitusikan ke (1.2) diperolwh
P(c – by)/a +qy = r
Atau (q-pb/a)y = r – pc/a (1.4)
Bila harga q diganti dengan harga q – pb/a, dan r dengan r – pc/a, maka diperloeh
Y = r/q
Dengan r dan q adalah harga baru dari r dan q.
Langkah-langkah di atas dapat ditulis sebagai dereta instruksi sebagai berikut :
Instruksi 1| Baca 6 buah bilangan, berturut-turut sebut sebagai
a, b, c, p, q dan r
instruksi 2 | Ganti harga q dengan q – pb/a
instruksi 3 | Ganti r dengan r – pc|a
Instruksi 4 | Bila q = 0, maka tulis “tidak ada jawaban” dan berhenti. Bila q <> 0, maka
lanjutan instruksi berikutnya
Instruksi 5 | Harga y adalah r/q
Instruksi 6 | Harga x adalah (c- by)/a
Instruksi 7| x dan y adalah jawaban
Instruksi 8 | Berhenti
Dereta instruksi lengkap sebagaimana pada contoh di atas yag digunakan untuk
menyelesaikan suatu masalah tertentu di sebut Algoritma
Sebagai contoh, kita gunakan Algoritma diatas untuk menyelesaikan persamaan linier
simultan :
2x + 3y = 4
5x + 6y + 7

Perhatikan bahwa pada saat instruksi 2 dilaksanakan, harga q yang sebelumnya 6 berubah
menjadi -1,5. Sama halnya, bila instruksi 3 dilaksanakan, harga r yang sebelumnya 7
berubah menjadi -3.
Harga awal dan akhir dari variable-variael pada contoh diatas ditunjukkan oleh table di
bawah ini

Kompoter dapat kita perintah untuk melaksanakan instruksi-instruksi dalam contoh


diatas.Untuk itu kita harus membuat Program dalam salah satu Bahasa pemograman
(Bahasa BASIC, PASCAL atau FORTAN). Membuat suatu program computer tidak lain
adalah mengubah Algoritma ke dalam salah satu Program Bahasa computer.
Untuk Algoritma pada contoh diatas dapat dibuatkan Program dalam Bahasa BASIC
sebagai berikut :
Program BASIC di atas kita turunkan dari algoritma yan gsudah dibuat sebelumny.
Berikut ini suatu Contoh Program penyelesaian masalaha diatas, dalam Bahasa Pascal.

Sebagai alternative lain, sebuah Program dapat pula dibuat berdasarka flowchart
(diagram alur). Gamvar 1.1 merupakan flowchart bagi masalah diatas.
Gambar 1.1 flowchart
1.2 Garis Besar Cata Kerja Program Komputer
Dalam mengerjakan sebuah program, ubungan yang terjadi di dalam computer
sebagai berikut :

Gambar 1.2 Diagram blok dari computer

Program dimasukkan melalui input unit, selanjutnya dari input unit di transfer ke
memori computer. Program dilaksanakan oleh Komputer setelah seluruh Program di
simpan dalam memori. Constrol Unit bertindak sebagai pengatur selama Program
berjalan

Beberapa hal penting yang perlu diketahui tentang Komputer dan, penyelesaian
Masalah mengguakan Komputer :
1. Kita perlu utuk merumuskan langkah demi langkah guna menyelesaikan sebuah
masalah dengan mengguanakn computer. Langkah-langkah tersebut berupa
Algoritma.
2. Selanjutnya Algoritma tersebut dinyatakan sebagai sedereta instrusi dalam sebuah
Bahasa pemograman computer (programming langague).
3. Komputer memiliki bagian-bagian yangb saling berkaitan, yakni input, memori
control, arithamtic dan output unit. Control Unit bertindak sebagai pengautr
selama sebuah program berja;an
4. Pertama kali program disimpan di dalam memori, semua instruksi akan tetap
tersimpan dalam memori selama program berjalan. Hal tersebut berguna, bila
instruksi tertentu akan dilaksanakan berulang-ulang.
5. Instruksi-instruksi pada sebuah program dilaksanakan sesuai dengan urutan yang
dibuat. Urutan tersebut mungkin beruah bila sampai ke instruksi dengan loncatan
bersyarat (conditional branch).
6. Sekumpulan bilangan diperlukan sebagai data, dan dengan data tersebut
komputasi dilakukan
7. Memori computer data dibayangan sebagi sel-sel yang berlabel. Nama variable
yang digunakan dalam sebuah Algoritma adalah label dari sel dalam memori,
sedangkan harga dari variable tersebut adalah isian dari sel dengan label yang
bersesuaian
1.3 Beberapa COntoh Algortima
Contoh 1.1
Barisan Fibonnaci adlaah barisan bilangan bulat : 0,1,1,2,3,5,8,13,21,34,65, …
perhatikan bahwa suku dalam barisa tersebut diperloeh dengan jalan menjumlahkan
dua buah suku sebelumnya, terlihat terdapat hubunga rekrusif pada barisa tersebut.
Jadi dapat kita buat barisa tersebut dengan langkah-langkah :
1. Suku terdahulu = 0
2. Suku kini = 1
3. Suku barus = suku kini + suku terdahulu
4. Ganti suku terdahulu dengan suku kini
5. Ganti suku kini dengan suku baru
Jika langkah 3, 4 dn 5 diulang, maka diperlohe barisan Fibonacci tersebut. Hal ini
digambarkan oleh table dibawah ini :

Andaikan kita ingin menuliskan barisan Fibonnaci hingga dengan suku yang berharga
lebih kecil atau sama dengan 100. Algoritmanya adalalah sebagai berikut :

Berikut ini program utuk pembentukan Barisan Fibonacci di atas, dalam Bahasa
BASIC.
1.4 Manipulasi Bilangan Bulat
Sejak dahulu kala orang telah tertarik terhadap berbagai macam sifat dan tingkah laku
bilangan, kususnya Bilangan bulat atau integer positif. Dengan adanya computer,
banyak “keajaiban” mengenai Bilangan dapat diketahui manusia. Untuk pada sisia
bab 1 ini, kita khusu membicarakan mengenai Bilangan bulat dengan berbagai sifat
dan manipulasinya.
Bilangan genap dan ganjil
Kita telah tahu bahwa suatu Bilangan bulat positif (disebut juga Bilangan Asli atau
natural number) disebut genap bila berbentuk 2n, serta disebut ganjil bila berbentuk
2n-1, disini n adalah Bilangan Asli.
Dengan perkataan lain Bilangan genap bselalui habis dibagi 2 sedangkan Bilangan
ganjil tidak. Di dalam Bahasa BASIC kita mengenal fungsi INT (X) yang
menghasilkan bagian bulat dari x. Sebagai contoh :
Jadi untuk menentukan apakah Bilangan Asli adalah genap atau ganjil, kita buat
Program berikut

Berikut ini problem yang menyangkut Bilangan genap dan ganjil yang disebut barisan
Ullam. Ullam seorang matematikawan menduga bahwa apabila kita mengambil
sembarang Bilangan Asli, kemudian bila Bilangan tersebut genap, ia kita bagi 2,
tetapi bila ganjil ia kita kalikan 3 lalu ditambah 1, dan proses kita ulang terus
akhirnay akan tercapai hasil Bilangan 1. Sebagai contoh, jika kita ambil Bilagan 13
aka barisa Ullam yang bersangktan adalah
13,40,20,10,,16,8,4,2,1.
Berikut ini program membentuk barisan Ullam

Kalau kita mengguanakan Bahasa Pascal ataupun versi BASIC yang dilengkapi
dengan MOD, ka dapat memanfaatkan MOD tersebut untuk menetapkan apakah
bilangan genap atau ganjil.
Perhatikan sebagai contoh :
Jadi jelas Bilangan N adalah genao bila N MOD 2=0 dan ganjil bila N MOD 2=1.

Triplet Phytagoras
Kita semuan telah mengenal dalil Phyhtagoras untuk sebuah segitiga siku-siku, yakni
A2+B2=C2. Di sini C adalah panjang sisi miring, A dan panjang sisi siku-siku. Ketiga
Bilangan Asli yang memenuhi dalil phytagoras dikenal sebagai Triplet Phytagoras.
Sekarang kita akan membuat table triplet phytagoras dari Bilangan Asli antara 1
sampai 100.
Analisa : sebelumnya, untuk mencegah jawaban yang sama berulang dalam table
(misalnya (3,4,5) dan (4,3,5)), kita tetapkan A<B. Disini A tidak mungkin sama
dengan B karena C pasti bukan Bilangan Asli (segitiga siku-siku sama kaki
mempunyai perbandingan a:a:aV2). Jadi , A kita ambil dari I=1 sampai 99, sementara
B bergerak dari J=I+1 sampai 100. Dalan proses kita ini terdapat 2 buah loop
bersarang (nested atau berganda). Apablia setiap kali hitungan terdapat hasil I2+J2=K2,
dengan K merupakan Bilangan Asli, maka diperlohe (I,J,K) adalah suatu triplet
phytagoras.
Kembali disinni fungsi INT(X) kita manfaatkan untuk menetapkan apakah K
Bilangan Asli
Flowchart Triplet Phytagoras
Berikut ini prorgamnya

Bilangan Amstrong
Bilangan yang sama dengan jumlah pangkat tiga dari digitnya dikenal sebagai
Bilangan Amstrong.
Sebagai contoh, 153 adalah Bilangan Amstrong karena
153 = 13+53+33
Berikut ini kita akan membuat program untuk mengasilkan Bilangan Amstring antara
1 sampai 200.
Analisi : Kita harus memisahkan digit-digit dari Bilangan tersebut, misalnya 458 kita
pisah menjadi :
4(ratusan, 5(puluhan), 8(satuan)
Kemdian dihitung apakah 43 +53+ 83 = 458 ?
Untuk memisahkan digit 8 dapat kita lakukan sebagai berikut :

Selanjutnya untuk memisahkan digit 5 :

Dan terakhir

Nilai INT = 0 ini pertanda proses pemisahan telah selesai, dengan R3 = Q2 = 4


Flowchart Bilangan Amstrong

Anda mungkin juga menyukai