Pages

Selasa, 27 April 2010

MENENTUKAN FPB DENGAN ALGORITMA EUCLID DENGAN PROGRAM VISUAL BASIC

Nama  : Esti Yuliana
NIM   : SIR200938
Dosen : Nahar Mardiyanto, M. Kom
Kuliah : Pemrograman Matematika
STMIK WIDYA UTAMA PURWOKERTO



1.Pengertian FPB :
Kepanjangan : Faktor persekutuan terbesar
Artinya : Merupakan faktor-faktor pembagi yang paling besar dari suatu bilangan.
Apa sih arti faktor pembagi itu : Angka-angka yang dapat membagi suatu bilangan.
misalnya : faktor pembagi dari angka 10 adalah (cari angka yang dapat membagi angka tersebut) 1, 2, 5, 10
Lihat : faktor pembagi angka 10 = 1, 2, 5, 10 (angka 10 dapat dibagi angka 1, angka 10 dapat dibagi angka 2, angka 10 dapat dibagi angka 5, dan angka 10 dapat dibagi oleh angka 10)

2.Contoh soal :
Tentukan FPB dari 12 dan 18
Faktor 12 = 1, 2, 3, 4, 6, 12. (setuju kan angka 12 dapat dibagi oleh angka 1, 2, 3, 4, 6, 12)
Faktor 18 = 1, 2, 3, 6, 9, 18.  (setuju kan angka 18 dapat dibagi oleh angka 1, 2, 3, 6, 9, 18)
Nah, sampai sini kita cari faktor pembagi yang sama dari kedua bilangan tersebut:
yang sama adalah 1, 2, 3, dan 6. (maksudnya faktor pembagi yang kedua bilangan 12 dan 18 sama-sama punya)
Selanjutnya, sesuai definisi awal bahwa FPB adalah Faktor Persekutuan Terbesar maka kita cari yang nilainya paling besar, yaitu : 6
Maka FPB dari 12 dan 18 adalah 6
Contoh lain :
Tentukan FPB dari 24 dan 32
Faktor 24 = 1, 2, 3, 4, 6, 8, 12, 24.
Faktor 32 = 1, 2, 4, 8, 16, 32.
Yang sama = 1, 2, 4, 8.
FPB = 8
Jadi FPB dari 24 dan 32 adalah 8
Contoh lain :
Tentukan FPB dari 9 dan 12
Faktor 9 = 1, 3, 9.
Faktor 12 = 1, 2, 3, 4, 6, 12.
Yang sama = 1, 3.
FPB = 3
Jadi FPB dari 9 dan 12 adalah 3

3.Menentukan FPB dengan program Visual Basic
a.Pengertian Algoritma Euclid
Salah satu cara mencari FPB adalah dengan algoritma Euclid. Tahun 1950, algoritma pertama kali di gunakan pada “Algoritma Euclidean (Euclid’s algorithm)“.
Euclid, matematikawan Yunani (lahir 350 SM), buku Element menuliskan langkah-langkah untuk menemukan pembagi bersama terbesar (common greatest divisor atau gcd), dari dua buah bilangan bulat, m dan n.
pembagi bersama terbesar dari dua buah bilangan bulat tak negatif adalah bilangan bulat positif terbesar yang habis membagi kedua bilangan tersebut.

Misalnya, m = 80 dan n = 12.
Semua faktor pembagi 80 adalah 1, 2, 4, 5, 8, 10, 16, 20, 40, 80
Semua faktor pembagi 12 adalah 1, 2, 3, 4, 6, 12
maka gcd(80,12) = 4
Langkah-langkah mencari gcd(80,12) dengan algoritma euclidean sbb :
1.80 di bagi 12 = 6, sisa 8 ( atau 80 = 6 * 12 + 8 )
2.12 di bagi 8 = 1, sisa 4 (atau 12 = 1 * 8 + 4)
3.8 di bagi 4 = 2, sisa 0 (atau 8 = 4 * 2 + 0)
Pembagian terkahir menghasilkan 0, maka sisa pembagian terakhir sebelum 0, yaitu 4, menjadi gcd(80,12). Jadi gcd(80,12) = gcd(12,8) = gcd(8,4) = gcd(4,0) =4.
Proses mencari gcd dari 80 dan 12 juga dapat di ilustrasikan dalam diagram berikut ini :













b. Membuat Flowchart
     Sebelum membuat program kita buat flowchartnya terlebih dahulu


C. Bentuk program

 
Private Sub Command1_Click() (perintah : PROSES)

Dim a, b, c, i, x As Integer (Definisi variable)
a = angka1.Text (persamaan variabel)
b = angka2.Text (persamaan variabel)

If Val(a) > Val(b) Then
x = a
(jika nilai a [dalam hal ini angka yang dimasukkan dalam angka1.text] lebih besar daripada nilai b [dalam hal ini angka yang dimasukkan dalam angka2.text] maka definisikanlah x (yang berfungsi sebagai variabel Bantu) adalah a.
ElseIf Val(b) > Val(a) Then
x = b
(jika nilai b [dalam hal ini angka yang dimasukkan dalam angka2.text] lebih besar daripada nilai a [dalam hal ini angka yang dimasukkan dalam angka1.text] maka definisikanlah x (yang berfungsi sebagai variabel Bantu) adalah b.
End If (penutup fungsi If)

For i = 1 To x
(untuk i [yang berfungsi sebagai variabel bantu] adalah 1 sampai dengan x lakukan perintah If dibawah ini)

If a Mod i = 0 And b Mod i = 0 Then
c = i
End If
(jika sisa hasil bagi a dengan i adalah 0 dan sisa hasil bagi b dengan i adalah 0 maka c [variabel bantu] adalah i)

Next i (lakukanlah perulangan fungsi i)
fpb.Text = c (cetaklah c kedalam fpb.text)

End Sub

Private Sub Command2_Click() (Perintah : “lagi”)
angka1.Text = ""
angka2.Text = ""
fpb.Text = ""
angka1.SetFocus
End Sub
(lihat postingan saya sebelumnya tentang visual basic untuk memahami fungsi ini)

Private Sub Command3_Click() (Perintah : “keluar”)
End
End Sub
(lihat postingan saya sebelumnya tentang visual basic untuk memahami fungsi ini)

Inilah hasil program apabila program mencari himpunan persekutuan (lihat postingan saya tentang mencari himpunan persekutuan) setelah digabung dengan program mencari fpb).




Private Sub Command1_Click() (Proses : Cari himpunan persekutuan)
vbil = Val(angka1.Text)
vbil1 = Val(angka2.Text)
For i = 1 To vbil
If vbil Mod i = 0 Then
hasil1.Text = hasil1.Text + Str(i)
End If
Next i

For n = 1 To vbil1
If vbil1 Mod n = 0 Then
hasil2.Text = hasil2.Text + Str(n)
End If
Next n

End Sub

Private Sub Command3_Click() (Proses : Cari FPB)
Dim a, b, c, i, x As Integer
a = angka1.Text
b = angka2.Text

If Val(a) > Val(b) Then
x = a
ElseIf Val(b) > Val(a) Then
x = b
End If

For i = 1 To x

If a Mod i = 0 And b Mod i = 0 Then
c = i
End If
Next i
fpb.Text = c

End Sub

Private Sub Command4_Click() (Proses : “lagi” untuk cari FPB)
angka1.Text = ""
angka2.Text = ""
hasil1.Text = ""
hasil2.Text = ""
fpb.Text = ""
angka1.SetFocus
End Sub

Private Sub Command5_Click() (Proses : “keluar”)
End
End Sub

Private Sub Command6_Click() (Proses : “Lagi” untuk proses cari himpunan persekutuan)
angka1.Text = ""
angka2.Text = ""
hasil1.Text = ""
hasil2.Text = ""
angka1.SetFocus

End Sub

Apabila anda kurang memahami program ini anda dapat membuka postingan saya sebelumnya tentang cara mencari himpunan persekutuan. Saran yang membangun selalu saya terima dengan senang hati demi kemajuan bersama. Semoga bermanfaat. Sampai jumpa pada postingan saya berikutnya ^_^. Brr… cuaca disini dingin sekali membuat saya ngantuk saja (_ _; )Zzzzz…ooOO







Jumat, 09 April 2010

MENCARI HIMPUNAN PERSEKUTAN DENGAN VISUAL BASIC


Nama   : Esti Yuliana
NIM    : SIR200938
Kuliah : Pemrograman Matematika
Dosen  : Nahar Mardiyantoro, S. Kom



Ini adalah postingan lanjutan dari pemrograman matematika sebelumnya, kali ini akan membahas tentang  bagaimana mencari himpunan factor persekutuan dalam kaitannya mencari sebuah FPB (Faktor Persekutuan Terbesar). Sebelum jauh melangkah dalam mencari sebuah FPB yang perlu kita ketahui adalah bagaimana cara menentukan himpunan factor persekutuan dari sebuah bilangan. Pengertian factor persekutuan disini adalah bilangan bulat positif yang dapat membagi habis bilangan itu.
Dalam bentuk matematika : x mod y = 0
Dengan x adalah bilangan utama dan y adalah bilangan pembagi.
Misalnya : faktor pembagi dari angka 10 adalah (cari angka yang dapat membagi angka tersebut) 1, 2, 5, 10
Lihat : faktor pembagi angka 10 = 1, 2, 5, 10 (angka 10 dapat dibagi angka 1, angka 10 dapat dibagi angka 2, angka 10 dapat dibagi angka 5, dan angka 10 dapat dibagi oleh angka 10). Faktor-faktor pembagi tersebut membagi angka 10 sampai habis,
Berikut model matematikanya :
10 mod 1   = 0
10 mod 2   = 0
10 mod 5   = 0
10 mod 10 = 0
Untuk membuat sebuah program, logika tersebut kemudian dituangkan dalam syntax coding. Berikut contoh coding program mencari himpunan factor persekutuan menggunakan visual basic :
Private Sub Command1_Click()
vbil = Val(Text1.Text)
For i = 1 To vbil
If vbil Mod i = 0 Then
Text2.Text = Text2.Text + Str(i)
End If
End Sub

Makna coding :
Vbil adalah variabel yang dimasukkan dalam textbox text 1 (inputan angka).
i disini berisi perintah kerjakan perintah dibawah ini dimulai dari angka satu sampai dengan angka yang diinputkan dalam textboxt 1 (vbil).
If vbil Mod i = 0 Then
Text2.Text = Text2.Text + Str(i)
End If

Jika sisa hasil vbil dan i adalah 0 maka cetaklah semua hasil dalam textbox 2 dalam bentuk string. Kenapa harus bentuk string? Hal ini agar kita mendapatkan deret angka-angka yang berurutan dan angka-angka tersebut tidak didefinisikan sebagai value untuk dihitung semua melainkan untuk ditampilkan berjejer.

Terima kasih atas kesediaan anda untuk melihat postingan saya semoga berguna bagi anda. Thanks for Mr. Nahar for my lecturer ^_^ please correction to make this posting better.


PEMROGRAMAN MATEMATIKA SEDERHANA MENGGUNAKAN VISUAL BASIC



Nama   : Esti Yuliana
NIM    : SIR200938
Kuliah : Pemrograman Matematika
Dosen  : Nahar Mardiyantoro, S. Kom



Dalam matematika terdapat berbagai macam rumus-rumus perhitungan, mulai dari yang sederhana maupun yang agak berbobot seperti perhitungan algoritma. Namun kita bisa membuat perhitungan-perhitungan tersebut menjadi mudah dengan bantuan program komputer. Kita dapat membuat program tersebut dengan berbagai software yang tersedia, satu diantaranya adalah dengan Microsoft Visual Basic. Tidaklah sulit untuk membuat program bahkan untuk pemula sekalipun asalkan paham proses penghitungan dan syntaxnya. Untuk pertama-tama kita coba membuat program-program sederhana seperti dibawah ini :
1.      Program menghitung luas persegi panjang
2.      Program mencari bilangan genap dan ganjil
3.      Program mencari bilangan prima
4.      Program mencari factorial

Ayo kita sama-sama ikuti petunjuk dibawah ini :
1.      Program menghitung luas persegi panjang
  1. Menentukan rumus, L = PxL
  2. Buat label dengan caption: panjang diikuti textbox dengan nama : txtpanjang dan kosongkan caption-nya. Kemudian buat label dengan caption: lebar diikuti textbox dengan nama : txtlebar dan kosongkan caption-nya.
  3. Buat command button dengan nama cmd proses dan caption : PROSES, double klik command button tersebut sehingga akan muncul :
Private sub_cmd proses click()

End sub

Pada tengah-tengah syntax tersebut akan kita isi dengan rumus luas persegi panjang.
L = P x L
Syntaxnya adalah :
Txthasil.text = txtpanjang.text * txtlebar.text
Yang bermakna tempatkanlah hasil perhitungan di kolom txthasil.text dengan rumus perhitungan angka yang dimasukkan ke dalam kolom txtpanjang.text akan dikalikan dengan angka yang dimasukkan ke dalam kolom txtlebar.text.

Jadi syntax cmdproses akan menjadi :
Private sub_cmd proses click()
Txthasil.text = txtpanjang.text * txtlebar.text
End sub

Kita juga dapat menambahkan fungsi agar user dapat melakukan penghitungan dalam program tersebut tanpa harus menutup dan membuka kembali program tadi. Buatlah command button dengan caption: “LAGI” , kemudian isi dengan syntax :
Txtpanjang.text = “”
Txtlebar.text = “”
Txt.panjang.setFocus
(“”) tanda kutip tersebut menunjukkan fungsi untuk mengosongkan textbox dan setFocus mengarahkan kursor ke textbox yang dituju dalam hal ini adalah textbox dari txtpanjang.

Anda juga dapat membuat tombol untuk fungsi keluar dari program yaitu dengan menggunakan command button, beri nama : EXIT (atau terserah anda), kemudian pada syntaxnya hanya ditambahkan kata “end”, contoh :
Privat sub cmdproses_click()
End
End Sub

2.      Program mencari bilangan genap dan ganjil

Buatlah 1 textbox (beri nama misal : txtangka) untuk menampung angka dan 1 buah label (beri nama misal : lblhasil)untuk menampung hasil.
Buat command button Proses, untuk button “LAGI” atau “EXIT” bisa ditambahkan sesuai selera dengan format seperti diatas.
Untuk syntax cmdproses kita harus mendefinisikan apa arti bilangan genap dan ganjil.
Bilangan genap : adalah bilangan yang habis dibagi 2
Bilangan ganjil : adalah bilangan yang tidak habis dibagi 2.
Bahasa pemrogramannya adalah :

If Val(Text1.Text) Mod 2 = 0 Then
    Label1.Caption = "genap"
Else
    Label1.Caption = "ganjil"

Yang berarti jika angka yang dimasukkan ke dalam textbox 1 mempunyai sisa hasil bagi (Mod) = 0 maka bilangan tersebut adalah genap jika tidak maka berarti bilangan itu ganjil.



3.      Program mencari bilangan prima
Seperti program diatas buatlah 1 textbox (beri nama misal : txtangka) untuk menampung angka dan 1 buah label (beri nama misal : lblhasil)untuk menampung hasil.
Buat command button Proses, untuk button “LAGI” atau “EXIT” bisa ditambahkan sesuai selera dengan format seperti diatas.

Untuk syntax cmdproses kita harus mendefinisikan apa arti bilangan prima dan bilangan bukan prima.
Bilangan prima adalah bilangan yang hanya bisa dibagi oleh 1 dan bilangan itu sendiri selain itu dianggap bukan prima. Khusus untuk angka 1 disebut bilangan bukan prima dan 2 disebut bilangan prima. Contoh bilangan prima : 2, 3, 5, 7, 11,…
Secara manual kita mencari bilangan itu prima atau tidak dengan cara :
Contoh masukan angka adalah 5, maka proses penghitungannya adalah sebagai berikut :
1)      5 Mod 5          = 0
2)      5 Mod 4          = 1
3)      5 Mod 3          = 2
4)      5 Mod 2          = 1
5)      5 Mod 1          = 0

Perhatikan pada sub penghitungan 2-4 tidak ada angka 0 dalam rangkaian penghitungan tersebut membuktikan bahwa angka 5 tidak habis dibagi oleh angka-angka selain 1 dan 5 (bilangan itu sendiri), lain halnya jika yang bukan prima (coba kita masukkan angka 6 misalnya)

1)      6 Mod 6          = 0
2)      6 Mod 5          = 1
3)      6 Mod 4          = 2
4)      6 Mod 3          = 0
5)      6 Mod 2          = 0
6)      6 Mod 1          = 6

Perhatikan pada sub penghitungan 2-4 ternyata angka 0 dalam rangkaian penghitungan tersebut yang membuktikan bahwa angka 6 ternyata habis oleh angka pembilang selain 1 dan angka 6 (bilangan itu sendiri) berarti 6 adalah bilangan bukan prima.

Jika perintah diatas diubah ke dalam bahasa pemrograman visual basic berbentuk demikian :

If Val(Text1.Text) = 1 Then
text2.Caption = "Bukan Prima"
ElseIf Val(Text1.Text) = 2 Then
text2.Caption = "Prima"

Else

For i = 2 To Val(Text1.Text) - 1
If Val(Text1.Text) Mod i = 0 Then
text2.Caption = "Bukan Prima"
Exit For
Else
text2.Caption = "Prima"
End If
Next
End If

Perintah tersebut berarti : khusus untuk angka 1 definisikanlah sebagai “Bukan Prima” dan khusus untuk angka 2 definisikanlah sebagai “Prima” (anda akan melihat ada if dan elseIf itu dikarenakan ada 2 fungsi if yang berlaku dalam syntax tersebut sehingga ketika ada fungsi if lain maka fungsi if berikutnya diberi syntax elseIf. Kemudian perintah perhitungan berikut dalam fungsi tersebut bermakna : lakukanlah perhitungan ke-2 sampai ke-angka yang bersangkutan dikurangi 1 (untuk melakukan fungsi perulangan gunakan fungsi Next). Kenapa hal ini dilakukan? Jawabannya adalah karena kita hanya menyoroti hasil sisa bagi (Mod) dari perhitungan ke-2 sampai angka yang bersangkutan dikurangi 1 saja, karena semua angka prima maupun bukan prima sudah jelas habis dibagi oleh angka 1 dan angka yang itu sendiri jadi yang kita fokuskan adalah perhatian pada penghitungan ke-2 sampai ke-angka dikurangi 1. Jika dalam perhitungan tersebut terdapat sisa hasil bagi (Mod) = 0 maka bilangan tersebut bukan prima.

4.      Program mencari factorial
Buatlah 1 textbox (beri nama misal : txtangka) untuk menampung angka dan 1 buah teksbox (beri nama misal : txthasil)untuk menampung hasil.

Seperti yang kita ketahui rumus factorial adalah n! = n x (n-

bil = 1
For i = 1 To txtangka.Text
bil = bil * i
Next
txthasil.Text = Str(bil)

Syntax diatas bermakna : dalam melakukan bilangan ini kita gunakan variable Bantu yaitu bil = 1, diberi harga 1 karena kalau tidak akan diberi harga 0. Kemudian untuk fungsi i maka 1 sampai angka yang dimasukkan dalam textbox txtangka.Text maka lakukanlah perintah bil (=1) dikalikan angka-angka yang disebutkan oleh fungsi i dan lakukanlah perulangan (next) sampai angka yang dimasukkan dalam textbox dan tempatkanlah hasil perhitungan tersebut dalam textbox txthasil.Text

Asalkan kita tau cara pengerjaan dari perhitungan tersebut kitapun akan mudah membuat syntaxnya. Untuk membuat sebuah program kita dapat memilih 1 dari berbagai banyak software tidak mengacu oleh satu macam saja semua terserah anda software apa yang paling mudah untuk digunakan. Karena penulis dalam hal ini baru belajar Microsoft Visual Basic maka penulis menggunakan software ini. Sampai jumpa pada postingan yang akan datang. Saran dan Komentar anda dapat anda sampaikan lewat e-mail saya (blog ini kebetulan belum saya isi shoutbox). Terima kasih kepada Ibu Maya Sasmito dan Pak Nahar selaku dosen Pemrograman Matematika saya dari STMIK Widya Utama Purwokerto.