Bagaimana Cara Membuktikan Kebenaran Sebuah Algoritma?

Algoritma adalah suatu urutan dari beberapa langkah yang logis guna menyelesaikan masalah. Pada saat kita memiliki masalah, maka kita harus dapat untuk menyelesaikan masalah tersebut dengan menggunakan langkah-langkah yang logis.

Dalam ilmu matematika dan komputer, pengertian algoritma merupakan prosedur dari beberapa langkah demi langkah untuk penghitungan. Algoritma dipakai untuk penghitungan, penalaran otomatis, dan pemrosesan data.

Pengertian algoritma ialah suatu metode yang efektif diekspresikan sebagai rangkaian yang terbatas dari beberapa instruksi yang telah dijelaskan dengan baik guna menghitung sebuah fungsi.

Bagaimana Cara Membuktikan Kebenaran Sebuah Algoritma?

Tentunya efisiensi dan kemudahan implementasi sebuah algoritma menjadi tidak penting jika algoritma tersebut tidak dapat memberikan hasil yang benar. Sebuah algoritma dikatakan telah benar jika algoritma tersebut dapat memberikan keluaran yang benar jika menerima masukan sesuai dengan definisi algoritma tersebut, dan algoritma tersebut terbukti akan selalu dapat diterminasi (berakhir). Pembuktian kebenaran sebuah algoritma sendiri dapat dilakukan dengan beberapa cara, misalnya:

  1. Induksi Matematika
    Induksi matematika merupakan alat pembuktian matematis yang digunakan untuk membuktikan pernyataan atau proses yang melibatkan perhitungan bilangan asli yang berulang. Contoh dari rumus matematis yang dapat dibuktikan dengan menggunakan induksi matematika yaitu perhitungan deret aritmatika, deret geometris, ataupun sigma bilangan.

  2. Pembuktian kontradiktif
    Kontradiksi adalah salah satu cara pembuktian matematis secara tidak langsung. Yaitu dengan cara kita asumsikan suatu kesimpulan dahulu, dan bila menemui hasil yang janggal (kontradiktif) maka asumsi tersebut dapat dinyatakan salah, serta secara otomatis ingkarannya benar.

  3. Pembuktian kontrapositif
    Pembuktian dengan kontrapositif adalah salah satu metode pembuktian tidak langsung selain pembuktian dengan kontradiksi. Pembuktian dengan kontrapositif ini didasarkan pada nilai kebenaran pernyataan “jika P maka Q” ekivalen dengan “jika bukan Q maka bukan P”. Jadi, yang perlu kita lakukan untuk membuktikan suatu implikasi dengan kontrapositif adalah dengan menegasikan konklusinya, kemudian tunjukkan bahwa negasi dari konklusi mengakibatkan negasi dari antisedennya.

  4. Metode Formal
    Metode formal adalah istilah yang diterapkan pada analisis perangkat lunak (dan perangkat keras komputer) yang hasilnya diperoleh murni melalui penggunaan metode matematika ketat. Teknik-teknik matematika yang digunakan meliputi semantik denotational, semantik aksiomatik, semantik operasional, dan interpretasi abstrak.

Masing-masing alat pembuktian yang disebutkan memiliki kelebihan dan kekurangan masing-masing, serta kasus pengunaan yang berbeda-beda. Perlu diingat juga bahwa masih terdapat sangat banyak alat-alat pembuktikan lainnya yang dapat digunakan.

Pembuktian kebenaran sebuah algoritma dapat dilakukan dengan :

Induksi Matematika

Induksi adalah suatu cara untuk membuktikan suatu masalah menggunakan metode-metode matematika yang terstruktur. Pembuktian menggunakan induksi dilakukan dengan 2 langkah :

  • Melakukan pembuktian kasus dasar (base case), yaitu membuktikan bahwa sebuah pernyataan (fungsi) matematika atau algoritma bernilai benar jika diaplikasikan pada bilangan pertama yang sah sesuai dengan spesifikasi fungsi atau algoritma tersebut.

  • Melakukan induksi, yaitu membuktikan bahwa kebenaran dari fungsi P(k+1) jika kebenaran fungsi P(k)diketahui.

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).

Pembuktian Kontradiktif

Pembuktian kontradiktif adalah argumen logika yang dimulai dengan suatu asumsi, lalu dari asumsi tersebut diturunkan suatu hasil yang absurd, tidak masuk akal, atau kontradiktif, sehingga dapat diambil kesimpulan bahwa asumsi tadi adalah salah (dan ingkarannya benar). Dalam disiplin matematika dan logika, pembuktian melalui kontradiksi merujuk secara khusus kepada argumen dimana sebuah kontradiksi dihasilkan dari suatu asumsi (sehingga membuktikan asumsi tadi salah).

Dalam disiplin logika formal, pembuktian melalui kontradiksi digunakan ketika sebuah kontradiksi (formal) dapat dihasilkan dari suatu premis, sehingga dapat disimpulkan bahwa premis tersebut salah. Jika kontradiksi tersebut dihasilkan dari beberapa (lebih dari satu) premis, kesimpulannya adalah satu atau lebih dari premis tersebut adalah salah. Dalam kasus terakhir, metode lain harus digunakan untuk membuktikan premis mana saja yang salah.

Suatu pernyataan matematis kadang-kadang dibuktikan dengan cara pembuktian melalui kontradiksi, dengan cara mengasumsikan ingkaran (negasi) dari pernyataan yang hendak dibuktikan, lalu dari asumsi ini diturunkan sebuah kontradiksi. Ketika kontradiksi dapat dicapai secara logika, asumsi tadi telah terbukti salah, sehingga pernyataan tersebut benar.

Pembuktian Kontrapositif

Pembuktian kontrapositif adalah metode pembuktian algoritma menggunakan pernyataan majemuk yang bernilai benar dengan menegasikan konvers suatu pernyataan implikasi. Contohnya, pernyataan “jika P maka Q” ekivaken dengan pernyataan “jika bukan Q maka bukan P”. Membuktikan sebuah algoritma atau sebuah implikasi dengan metode pembuktian kontrapositif artinya kita harus menegasikan konklusi atau kesimpulan. Setelah dinegasikan, maka kita harus menunjukkan konlusi tersebut akan mengakibakan negasi antesedennya.

Metode Formal

Metode formal (formal methods) merupakan sebuah teknik berbasis logika matematika untuk membuat spesifikasi sebuah sistem komputer (software maupun hardware) secara tidak ambigu, rancu, dan dapat diverifikasi. Pemakaian metode formal dimotivasi oleh penerapan analisis logika dan matematika yang mampu menjamin kebenaran dari sebuah desain. Kebenaran implementasi desain tersebut dijamin dengan kebenaran bukti matematis dari satu atau beberapa formula.

Metode Formal menggunakan konsep matematika diskrit sebagai mekanisme representasi dengan demikian pembuktian logis dapat diterapkan pada masing-masing fungsi yang dimiliki sistem sehingga dapat diketahui bahwa spesifikasi dari tiap fungsi tersebut benar dan logis. Teknik-teknik matematika yang digunakan meliputi semantik denotational, semantik aksiomatik, semantik operasional, dan interpretasi abstrak.

Algoritma
Kita telah mengetahui bahwa sebuah algoritma yang baik adalah algoritma yang benar, efisien, dan mudah diimplementasikan. Pertanyaan berikutnya tentunya adalah, bagaimana kita mengetahui bahwa sebuah algoritma telah benar? Algoritma yang efisien itu seperti apa? Bagaimana kita mengukur kemudahan implementasi sebuah algoritma?

Bagian ini akan membahas mengenai pertanyaan pertama, yaitu bagaimana kita dapat mengetahui kebenaran sebuah algoritma. Tentunya efisiensi dan kemudahan implementasi sebuah algoritma menjadi tidak penting jika algoritma tersebut tidak dapat memberikan hasil yang benar.

Sebuah algoritma dikatakan telah benar jika algoritma tersebut dapat memberikan keluaran yang benar jika menerima masukan sesuai dengan definisi algoritma tersebut dan algoritma tersebut terbukti akan selalu dapat diterminasi (berakhir). Pembuktian kebenaran sebuah algoritma sendiri dapat dilakukan dengan beberapa cara, misalnya:

  1. Induksi Matematika
  2. Pembuktian kontradiktif
  3. Pembuktian kontrapositif, dan
  4. Metode Formal

Masing-masing alat pembuktian yang disebutkan memiliki kelebihan dan kekurangan masing-masing, serta kasus pengunaan yang berbeda-beda.

1. Induksi Matematika

Induksi


Induksi matematika merupakan alat pembuktian matematis yang digunakan untuk membuktikan pernyataan atau proses yang melibatkan perhitungan bilangan asli yang berulang. Contoh dari rumus matematis yang dapat dibuktikan dengan menggunakan induksi matematika yaitu perhitungan deret aritmatika, deret geometris, ataupun sigma bilangan.

Pembuktian menggunakan induksi matematika dilakukan dengan dua langkah, yaitu:

  1. Melakukan pembuktian kasus dasar (base case), yaitu membuktikan bahwa sebuah pernyataan (fungsi) matematika atau algoritma bernilai benar jika diaplikasikan pada bilangan pertama yang sah sesuai dengan spesifikasi fungsi atau algoritma tersebut.

  2. Melakukan induksi, yaitu membuktikan bahwa kebenaran dari fungsi suatu algoritma jika kebenaran fungsi algoritma tersebut diketahui.

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).

2.Pembuktian Kontradiktif

Arah


Pembuktian melalui kontradiksi adalah argumen logika yang dimulai dengan suatu asumsi, lalu dari asumsi tersebut diturunkan suatu hasil yang absurd, tidak masuk akal, atau kontradiktif, sehingga dapat diambil kesimpulan bahwa asumsi tadi adalah salah (dan ingkarannya benar).

Dalam disiplin matematika dan logika, pembuktian melalui kontradiktif merujuk secara khusus kepada argumen dimana sebuah kontradiktif dihasilkan dari suatu asumsi (sehingga membuktikan asumsi tadi salah). Argumen ini menggunakan hukum non-kontradiktif yaitu suatu pernyataan tidak mungkin benar dan salah sekaligus. Dalam disiplin logika formal, pembuktian melalui kontradiksi digunakan ketika sebuah kontradiksi (formal) dapat dihasilkan dari suatu premis, sehingga dapat disimpulkan bahwa premis tersebut salah. Jika kontradiksi tersebut dihasilkan dari beberapa (lebih dari satu) premis, kesimpulannya adalah satu atau lebih dari premis tersebut adalah salah. Dalam kasus terakhir, metode lain harus digunakan untuk membuktikan premis mana saja yang salah.

Suatu pernyataan matematis kadang-kadang dibuktikan dengan cara pembuktian melalui kontradiksi, dengan cara mengasumsikan ingkaran (negasi) dari pernyataan yang hendak dibuktikan, lalu dari asumsi ini diturunkan sebuah kontradiksi. Ketika kontradiksi dapat dicapai secara logika, asumsi tadi telah terbukti salah, sehingga pernyataan tersebut benar.

3. Pembuktian Kontrapositif

Kontrapositif


Logikanya, yang kontrapositif dari pernyataan kondisional dibentuk dengan meniadakan kedua istilah dan membalikkan arah inferensi. Secara eksplisit, yang kontrapositif dari pernyataan “jika A , maka B” adalah “jika tidak B, maka tidak A”. Sebuah pernyataan yang kontrapositif yang secara logis setara jika pernyataan itu benar , maka kontrapositifnya adalah benar dan sebaliknya.

Dalam matematika, bukti dengan kontraposisi adalah aturan inferensi yang digunakan dalam bukti. Aturan ini menyimpulkan pernyataan bersyarat dari kontrapositif-nya. Dengan kata lain, kesimpulan “jika A , maka B” diambil dari premis tunggal “ jika tidak B, maka tidak A”

4. Metode Formal

Formal


Metode formal adalah sebuah teknik dimana menggunakan basis logika matematika untuk membuat spesifikasi pada sistem komputer secara jelas dan terverifikasi. Kebenaran implementasi dari sebuah metode tersebut dijamin dengan kebenaran bukti matematis dari satu atau beberapa formula. Metode Formal menggunakan konsep matematika diskrit sebagai mekanisme representasi dengan demikian pembuktian logis dapat diterapkan pada masing-masing fungsi yang dimiliki sistem sehingga dapat diketahui bahwa spesifikasi dari tiap fungsi tersebut benar dan logis.

Sumber:

Metode and Correctness Algoritma
Pembuktian Kebenaran Algoritma