Senin, Juni 06, 2011

Membuat Program Pascal Mencari FPB 3 bilangan

Pada kesempatan kali ini kita akan membuat program Pascal untuk mencari FPB dari 3 bilangan bulat. Sahabat sarankan teman2 terlebih dahulu membaca postingan tentang program Pascal mencari FPB dari 2 bilangan di sini, sehingga akan lebih mudah memahaminya, atau bagi yang sedang malas langsung saja baca pembahasan berikut ini. Memang tidak satu algoritma yang dapat dibuat untuk mencari FPB dari 3 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, b dan c, FPBnya pasti ≤ a, ≤ b dan juga ≤ c. Kita akan menggunakan sebuah bilangan antara a, b atau c (salah satu dari 3 bilangan yang akan kita cari FPBnya). Misalkan kita menggunakan bilangan a, FPB dari a, b dan c pasti berada antara a dengan 1. Kita misalkan bilangan tersebut dengan d, jadi d adalah bilangan yang dimulai dari a, a-1, a-2, ..., 3, 2, 1. Jika didapatkan untuk pertama kalinya kondisi a habis dibagi dengan d, b habis dibagi dengan d, dan c juga habis dibagi dengan d maka bilangan d saat itu adalah FPB dari a, b dan c, dan kita tidak perlu mencoba lagi nilai d lainnya yang lebih kecil karena FPB dari 3 bilangan itu hanya satu.

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

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

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

Baiklah akan kita coba satu persatu:
  • Untuk c = 18
    • 12 tidak habis dibagi dengan 18
    • Karena 12 tidak habis dibagi dengan 18, maka tidak perlu diperiksa apakah 18 dan 30 habis dibagi dengan 18 atau tidak
  • Untuk c = 17
    • 12 tidak habis dibagi dengan 17
    • Karena 12 tidak habis dibagi dengan 17, maka tidak perlu diperiksa apakah 18 dan 30 habis dibagi dengan 17 atau tidak
  • Untuk c = 16
    • 12 tidak habis dibagi dengan 16
    • Karena 12 tidak habis dibagi dengan 16, maka tidak perlu lagi diperiksa apakah 18 dan 30 habis dibagi dengan 16 atau tidak
  • Untuk c = 15
    • 12 tidak habis dibagi dengan 15
    • Karena 12 tidak habis dibagi dengan 15, maka tidak perlu lagi diperiksa apakah 18 dan 30 habis dibagi dengan 15 atau tidak
  • Untuk c = 14
    • 12 tidak habis dibagi dengan 14
    • Karena 12 tidak habis dibagi dengan 14, maka tidak perlu lagi diperiksa apakah 18 dan 30 habis dibagi dengan 14 atau tidak
  • Untuk c = 13
    • 12 tidak habis dibagi dengan 13
    • Karena 12 tidak habis dibagi dengan 13, maka tidak perlu lagi diperiksa apakah 18 dan 30 habis dibagi dengan 13 atau tidak
  • Untuk c =12
    • 12 habis dibagi dengan 12
    • 18 tidak habis dibagi dengan 12
    • Karena 18 tidak habis dibagi dengan 12, maka tidak perlu lagi diperiksa apakah 30 habis dibagi dengan 12 atau tidak
  • Untuk c = 11
    • 12 tidak habis dibagi dengan 11
    • Karena 12 tidak habis dibagi dengan 11, maka tidak perlu lagi diperiksa apakah 18 dan 30 habis dibagi dengan 11 atau tidak
  • Untuk c = 10
    • 12 tidak habis dibagi dengan 10
    • Karena 12 tidak habis dibagi dengan 10, maka tidak perlu lagi diperiksa apakah 18 dan 30 habis dibagi dengan 10 atau tidak
  • Untuk c = 9
    • 12 tidak habis dibagi dengan 9
    • Karena 12 tidak habis dibagi dengan 9, maka tidak perlu lagi diperiksa apakah 18 dan 30 habis dibagi dengan 9 atau tidak
  • Untuk c = 8
    • 18 tidak habis dibagi dengan 8
    • Karena 18 tidak habis dibagi dengan 8, maka tidak perlu lagi diperiksa apakah 30 habis dibagi dengan 8 atau tidak
  • Untuk c = 7
    • 12 tidak habis dibagi dengan 7
    • Karena 12 tidak habis dibagi dengan 7, maka tidak perlu lagi diperiksa apakah 18 dan 30 habis dibagi dengan 7 atau tidak
  • Untuk c = 6
    • 12 habis dibagi dengan 6
    • 18 habis dibagi dengan 6
    • Dan 30 juga habis dibagi dengan 6
    • Karena 12, 18 dan 30 habis dibagi dengan 6, maka 6 adalah FPB dari 12, 18 dan 30
Maka didapat bahwa FPB dari 12, 18 dan 30 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 Mencari_FPB_3_bilangan;
var a,b,c,d:longint;
label e;
begin
write('masukkan bilangan pertama! '); readln(a);
write('masukkan bilangan kedua! '); readln(b);
write('masukkan bilangan ketiga! '); readln(c);
for d:=a downto 1 do
if (a mod d = 0) and (b mod d = 0) and (c mod d = 0) then goto e;
e:
writeln('FPB dari ',a,', ',b,' dan ',c,' adalah = ',d);
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 update dari program pascal lainnya? silakan Join Group facebook sahabat-informasi.com dan Like Fanpage sahabat informasi dengan dengan account facebook kamu,

Baca juga:

0 komentar: