Senin, Juni 06, 2011

Membuat Program Pascal Mencari FPB 2 Bilangan

Pada kesempatan kali ini kita akan membuat program Pascal untuk mencari FPB dari 2 bilangan bulat. Memang tidak satu algoritma yang dapat dibuat untuk mencari FPB dari 2 bilangan, “kan tidak satu jalan ke Roma”, dan algoritma yang akan kita buat di sini kira-kira pemahamannya seperti berikut.

Misalkan kita akan mencari FPB dari a dan b, FPBnya pasti ≤ a dan juga ≤ b. Kita akan menggunakan sebuah bilangan antara a atau b (salah satu dari 2 bilangan yang akan kita cari FPBnya). Misalkan kita menggunakan bilangan a, FPB dari a dan b pasti berada antara a dengan 1. Kita misalkan bilangan tersebut dengan c, jadi c adalah bilangan yang dimulai dari a, a-1, a-2, .., 3, 2, 1. Jika didapatkan untuk pertama kalinya kondisi a habis dibagi dengan c dan b juga habis dibagi dengan c, maka bilangan c saat itu adalah FPB dari a dan b, dan kita tidak perlu mencoba lagi nilai c lainnya yang lebih kecil karena FPB dari 2 bilangan itu hanya satu.

Juga hasil yang sama yang akan didapatkan jika kita menggunakan bilangan b. FPB dari a dan b pasti berada antara b dengan 1. Kita misalkan bilangan tersebut dengan c, jadi c adalah bilangan yang dimulai dari b, b-1, b-2, ..., 3, 2, 1. Jika didapatkan untuk pertama kalinya kondisi a habis dibagi dengan c dan b juga habis dibagi dengan c, maka c saat itu adalah FPBnya dan kita tidak perlu lagi mencoba nilai c lainnya yang lebih kecil, karena FPB dari 2 bilangan itu hanya satu.

Contoh:
Misalkan kita akan mencari FPB dari 18 dan 12.
Penyelesaian:
Misalkan kita gunakan bilangan 18 untuk menentukan nilai c, maka
c:= 18, 18-1, 18-2, ..., 3, 2, 1
c:= 18, 17, 16, ..., 3, 2, 1
Kita akan mencoba satu persatu bilangan mulai dari 18 sampai dengan 1 hingga kita menemukan kondisi 18 habis dibagi dengan c dan 12 juga habis dibagi dengan c, maka bilangan c saat itu adalah FPBnya.

Baiklah akan kita coba satu persatu:
  • Untuk c = 18
    • 18 habis dibagi dengan 18
    • Tetapi 12 tidak habis dibagi dengan 18
  • Untuk c = 17
    • 18 tidak habis dibagi dengan 17
    • Karena 18 tidak habis dibagi dengan 17, maka tidak perlu diperiksa apakah 12 habis dibagi dengan 17 atau tidak
  • Untuk c = 16
    • 18 tidak habis dibagi dengan 16
    • Karena 18 tidak habis dibagi dengan 16, maka tidak perlu lagi diperiksa apakah 12 habis dibagi dengan 16 atau tidak
  • Untuk c = 15
    • 18 tidak habis dibagi dengan 15
    • Karena 18 tidak habis dibagi dengan 15, maka tidak perlu lagi diperiksa apakah 12 habis dibagi dengan 15 atau tidak
  • Untuk c = 14
    • 18 tidak habis dibagi dengan 14
    • Karena 18 tidak habis dibagi dengan 14, maka tidak perlu lagi diperiksa apakah 12 habis dibagi dengan 14 atau tidak
  • Untuk c = 13
    • 18 tidak habis dibagi dengan 13
    • Karena 18 tidak habis dibagi dengan 13, maka tidak perlu lagi diperiksa apakah 12 habis dibagi dengan 13 atau tidak
  • Untuk c =12
    • 18 tidak habis dibagi dengan 12
    • Karena 18 tidak habis dibagi dengan 12, maka tidak perlu lagi diperiksa apakah 12 habis dibagi dengan 12 atau tidak
  • Untuk c = 11
    • 18 tidak habis dibagi dengan 11
    • Karena 18 tidak habis dibagi dengan 11, maka tidak perlu lagi diperiksa apakah 12 habis dibagi dengan 11 atau tidak
  • Untuk c = 10
    • 18 tidak habis dibagi dengan 10
    • Karena 18 tidak habis dibagi dengan 10, maka tidak perlu lagi diperiksa apakah 12 habis dibagi dengan 10 atau tidak
  • Untuk c = 9
    • 18 habis dibagi dengan 9
    • Tetapi 12 tidak habis dibagi dengan 9, maka 9 bukan FPBnya
  • Untuk c = 8
    • 18 tidak habis dibagi dengan 8
    • Karena 18 tidak habis dibagi dengan 8, maka tidak perlu lagi diperiksa apakah 12 habis dibagi dengan 8 atau tidak
  • Untuk c = 7
    • 18 tidak habis dibagi dengan 7
    • Karena 18 tidak habis dibagi dengan 7, maka tidak perlu lagi diperiksa apakah 12 habis dibagi dengan 7 atau tidak
  • Untuk c = 6
    • 18 habis dibagi dengan 6
    • Dan 12 juga habis dibagi dengan 6
    • Karena 18 dan 12 habis dibagi dengan 6, maka 6 adalah FPB dari 18 dan 12
Maka didapat bahwa FPB dari 18 dan 12 adalah 6 Jika algoritma di atas kita buatkan kedalam suatu diagram alir (flow chart), maka bentuknya flow chartnya (diagram alir) adalah sebagai berikut:

Jika algoritma di atas kita buatkan ke dalam bahasa pemrograman Pascal, maka akan didapat sintaks sebagai berikut:
Program FPB_2_bilangan;
var a,b,c:integer;
label d;
begin
write('masukkan bilangan pertama! '); readln(a);
write('masukkan bilangan kedua! '); readln(b);
for c:=a downto 1 do if (a mod c = 0 ) and (b mod c = 0) then goto d;
d: writeln('FPB = ',c);
readln
end.


Atau unuk memperindah tampilan pada bagian akhir bisa kita tambahkan kalimat “FPB dari a dan b adalah c, sehingga sintaksnya (source code) menjadi seperti berikut:
Program FPB_2_bilangan;
var a,b,c:integer;
label d;
begin
write('masukkan bilangan pertama! '); readln(a);
write('masukkan bilangan kedua! '); readln(b);
for c:=a downto 1 do if (a mod c = 0 ) and (b mod c = 0) then goto d;
d: writeln('FPB dari ',a,' dan ',b,' adalah ',c);
readln
end.


Bagi yang teman-teman ingin mendownload file .exe (file aplikasi) dan file .pas (file pascal) dari program ini bisa mendownloadnya di sini dan yang ingin mendownload file ms word (.doc) dari postingan ini dapat mendownloadnya di sini
sahabat hopes this simple posting can be used for all, thank you ^_^

ingin dapat artikel program pascal lainnya? silakan Join Group facebook sahabat-informasi.com dan Like Fanpage sahabat informasi dengan dengan account facebook kamu,

Baca juga:

0 komentar: