Dengan membuktikan kedua hal tersebut, kita dapat mengambil kesimpulan bahwa sebuah
fungsi matematika atau algoritma bernilai benar untuk semua bilangan asli. Jika
diimplementasikan dengan tepat, induksi matematika dapat juga digunakan untuk
membuktikan kebenaran algoritma rekursif seperti penelusuran pohon (tree).
1. Basis
Kondisi sebelum kalang berarti bahwa I(0) benar sebelum iterasi pertama dalam kalang.
2. Induksi
Jika syarat kondisi S dan kalang invarian I(k) benar untuk suatu bilangan bulat k 0 sebelum
iterasi kalang, maka I(k + 1) juga benar setelah iterasi kalang.
3. Kondisi Penghentian
Setelah sejumlah iterasi kalang yang berhingga, maka syarat kondisi S menjadi salah.
Contoh :
Perkalian m (bilangan bulat tak negatif) dengan x didefinisikan sebagai berikut :
Program untuk menghitung m.x sebagai berikut :
[kondisi sebelum kalang :
m := bilangan bulat tak negatif
x := bilangan riil
i := 0
kali := 0
]
While (i m)
kali := kali + x
i := i + 1
End While
[kondisi setelah kalang
kali := m * x]
Misalkan kalang invarian I(n) adalah “i = m dan kali = m.x”
Gunakan kalang invarian tersebut untuk membuktikan bahwa kalang WHILE benar terhadap
kondisi sebelum dansetelah kalang.
Penyelesaian :
1. Basis
Akan dibuktikan I (0) benar sebelum iterasi kalang yang pertama.
I (0) : “i = 0 dan kali = 0.x = 0”
Kondisi sebelum kalang : i = 0 dan kali = 0
Karena I (0) sama dengan kondisi sebelum kalang, maka basis benar.
2. Induksi
Akan dibuktikan bahwa jika syarat kondisi S (dalam hal ini i m) dan I (k) benar sebelum
iterasi kalang (k 0), maka I (k + 1) benar setelah iterasi kalang.
I (k + 1) berarti : “i = k + 1 dan kali = (k + 1).x”
Misal k adalah bilangan bulat tak negatif sedemikian hingga S dan I (k) benar sebelum iterasi
kalang.
Di awal kalang, i m, i = k dan kali = k.x
Karena i m, maka kalang dieksekusi dan statemen – statemen di dalam kalang dieksekusi.
Didapat :
(kali)baru = (kali)lama + x = k.x + x = (k + 1).x
(i)baru = (i)lama + 1 = k + 1
Sehingga setelah eksekusi kalang, I(k + 1) benar.
3. Kondisi Penghentian
Akan dibuktikan bahwa setelah sejumlah iterasi kalang (berhingga), maka kondisi S menjadi
salah sehingga iterasi berhenti.
Setelah kalang diiterasi sebanyak m kali, maka i = m dan kali = m.x
Pada keadaan ini, syarat kondisi S salah sehingga iterasi berhenti.
D. PembuktianInduksiMatematika
Contoh 1 :
Buktikan bahwa :
1 + 2 + 3 + … + n = ½ n(n+1)
untuk setiap n bilangan integer positif
Jawab :
Basis : Untuk n = 1 akan diperoleh :
1 = ½ 1 = 11 . (1+1)
Induksi : misalkan untuk n = k asumsikan
1 + 2 + 3 + …+ k = ½ k (k+1)
adib. Untuk n = k+1 berlaku
1 + 2 + 3 + …+ (k+1) = ½ (k+1) (k+2)
Jawab :
1 + 2 + 3 + …+ (k+1) = (k+1) (k+2) / 2
1 + 2 + 3 + …+ k + (k+1) = (k+1) (k+2) / 2
k 2 + (2K + 1) = (k + 1)2
k 2 + 2K + 1 = k 2 + 2K + 1
Kesimpulan : 1 + 3 + 5 + … + n = (2n - 1) = n2
Untuk setiap bilangan bulat positif n
Contoh 3 :
Buktikan bahwa :
N 3 + 2n adalah kelipatan 3
untuk setiap n bilangan bulat positif
Jawab :
Basis : Untuk n = 1 akan diperoleh :
1 = 13 + 2(1) 1 = 3 , kelipatan 3
Induksi : misalkan untuk n = k asumsikan k 3 + 2k = 3x
adib. Untuk n = k + 1 berlaku
(k + 1)3 + 2(k + 1) adalah kelipatan 3
(k 3 + 3k 2 + 3 k+1) + 2k + 2
(k 3 + 2k) + (3k 2 + 3k + 3)
(k 3 + 2k) + 3 (k 2 + k + 1)
Induksi
3x + 3 (k 2 + k + 1)
3 (x + k 2 + k + 1)
Kesimpulan : N 3 + 2n adalah kelipatan 3
Untuk setiap bilangan bulat positif n
E. Induksi Pembuktian untuk Pembuktian Algoritma
Seperti yang dapat dilihat dari apa yang telah kita pelajari pada bagian sebelumnya, induksi
matematika jelas sangat berguna untuk membuktikan kebenaran sebuah teorema atau fungsi
yang melibatkan perhitungan bilangan bulat yang berulang. Tetapi apa guna induksi
matematika untuk membuktikan kebenaran sebuah algoritma?
Sebuah algoritma kerap kali akan memiliki bagian yang melakukan perhitungan bilangan
atau data secara berulang. Kita dapat menggunakan konsep perulangan pada pemrograman
untuk menerapkan perhitungan bilangan ataupun data secara berulang. Misalnya, algoritma
berikut menghitung hasil kali dari dua buah bilangan bulat:
Defkali(m, n):
if m <0:
return-1# error
else:
i =0
result =0
while(m != i):
result = result + n
i = i +1
return result
dan secara otomatis tentunya pernyataan matematis tersebut dapat kita buktikan dengan
menggunakan induksi matematika. Pembuktian perulangan yang lebih kompleks sendiri
dapat dilakukan dengan teknik yang dikenal dengan namaloop invariant.
Daftar pustaka
http://rachmadaniii.blogspot.co.id/2015/03/induksi-matematika.html