Bisakah Belajar Pemrograman tanpa Pengetahuan Matematika ?

Berdasarkan pantauan saya pada beberapa forum pemrograman di facebook, banyak yang bertanya “bisakah kita belajar pemrograman tanpa pengetahuan matematika ?” atau pertanyaan yang kurang lebih maknanya sama. Pertanyaan ini umumnya diajukan oleh seseorang yang baru atau akan belajar bahasa pemrograman, yang sepertinya ragu akan kemampuan matematika-nya. Hal ini saya rasa wajar. Saya juga pernah memiliki pertanyaan seperti ini, tapi saya tidak mempostingnya di forum pemrograman manapun termasuk di facebook.

Kali ini saya akan mencoba menjawab pertanyaan tersebut berdasarkan pengalaman saya dalam beberapa tahun terakhir, ketika saya menjadi programmer di beberapa software house / software consultant di Surabaya. Tulisan ini hanyalah pendapat pribadi saya, tolong sikapi dengan bijak.

Kembali pada pertanyaan diatas, bisakah kita belajar pemrograman tanpa pengetahuan matematika ? Jawabannya hanya satu.

TIDAK BISA !!!

Jika anda ingin belajar pemrograman tetapi tidak memiliki pengetahuan matematika sama sekali lebih baik menyerah saja.

Tetapi perlu kita ingat, matematika adalah pengetahuan yang telah dikembangkan oleh manusia selamba berabad-abad yang lalu, sampai sekarang. Dan tentunya akan terus berkembang di masa depan. Tentu saja matematika ini adalah suatu bidang yang sangat luas sekali.

Jika anda memiliki kemampuan untuk memahami semua pengetahuan matematika yang telah dikembangkan oleh manusia sampai saat ini, lebih baik fokus saja jadi profesor matematika, saya yakin anda akan bisa lebih kaya dan lebih terkenal. Tetapi jika anda bisa mencapai titik ini tentunya anda tidak akan memiliki pertanyaan seperti diatas, pemrograman seharusnya adalah sesuatu yang mudah bagi anda. Kecuali mungkin saat memprogram suatu perangkat keras.

Menurut pengalaman saya, pengetahuan matematika yang perlu kita miliki saat akan membuat program, tergantung pada program yang akan kita buat. Pengetahuan matematika yang perlu kita ketahui saat membuat program penjualan tentu saja berbeda dengan program game.

Misal saat anda membuat program penjualan untuk sebuah restoran pecel. Anda tidak perlu mengetahui apa itu trigonometri. Coba bayangkan apa fungsi trigonometri pada aplikasi penjualan ?

Tetapi saat anda membuat sebuah game mengenai restoran pecel, anda mungkin butuh pengetahuan tentang trigonometri, misalnya untuk mengatur rotasi suatu object.

Jadi tidak semua pengetahuan matematika perlu kita kuasai untuk menjadi seorang programmer. Tergantung kita ingin menjadi programmer apa, programmer e-commerce, game, hardware ? Anda perlu tahu dulu program apa yang akan anda buat, baru mencari tahu pengetahuan atau skill matematika apa yang diperlukan untuk menyelesaikan program tersebut.

Saya akan berbagi pada anda tentang pengetahuan matematika yang biasa saya gunakan saat saya bekerja sebagai programmer. Di akhir tulisan, saya harap anda bisa menganalisa, anda memiliki pengetahuan matematika yang sama dengan saya atau tidak ? atau malah lebih ? Jika iya tentunya anda tidak perlu ragu akan kemampuan matematika anda, anda bisa menjadi programmer seperti saya, atau malah lebih baik lagi.

Saat ini saya bekerja sebagai odoo developer. Odoo (dulunya bernama openerp) adalah sebuah aplikasi enterprise resource planning berbasis web, dimana didalamnya ada banyak sekali aplikasi yang bisa diinstall, seperti aplikasi penjualan, pembelian, akunting, e-commerce, penggajian dll. Yah intinya aplikasi untuk bisnis, bukan aplikasi untuk hiburan.

Berikut ini adalah pengetahuan matematika yang perlu anda ketahui, jika anda ingin menjadi programmer aplikasi bisnis seperti saya saat ini.

Pertama anda harus tahu tentang bilangan. Pada saat kita duduk di bangku SMP, kita diajari beberapa bilangan pada matematika. Seperti bilangan asli, bilangan cacah, bilangan bulat, bilangan riil dll.

Pada pemrograman aplikasi bisnis, umumnya kita hanya perlu tahu bilangan bulat dan bilangan cacah saja. Yaitu bilangan yang memiliki angka dibelakang koma atau tidak. Pada dunia pemrograman bilangan yang tidak memiliki angka dibelakang koma seperti angka 10 umumnya disebut integer. Sedangkan yang memiliki angka dibelakang koma seperti angka 10.25 biasa disebut Float atau Double. Integer, Float dan Double ini biasa disebut dengan tipe data.

Bahasa pemrograman umumnya ditulis oleh orang barat, sehingga menggunakan tanda titik (.) sebagai pemisah antara nilai satuan dan pecahan bukan tanda koma (,) seperti di negara kita.

Mengetahui tipe data pada suatu bahasa pemrograman sangatlah penting. Jadi saat anda nantinya belajar bahasa pemrograman tolong pelajari dengan sungguh-sungguh batas-batas suatu tipe data, perbedaan antara satu tipe data yang satu dengan tipe data lain, dan hubungan antar tipe data, misal saat 2 variabel dengan tipe data yang berbeda dijalankan pada satu operasi yang sama.

Saat kita melakukan operasi aritmetis, seperti penjumlahan pada bilangan yang tidak memiliki angka dibelakang koma dengan bilangan yang memiliki angka di belakang koma hasilnya bisa berbeda antara satu bahasa pemrograman dengan bahasa pemrograman lain. Hal ini tidak akan terjadi pada dunia matematika. Tetapi bisa terjadi pada dunia pemrograman. Tidak percaya ?

Misal kita memiliki 2 buah bilangan seperti ini.

a = 10
b = 10.25
c = a + b

Menurut perhitungan anda berapa nilai c sekarang ? 20.25 ? Secara matematika nilai yang benar memang segitu. Juga segitu menurut bahasa pemrograman python.

Tetapi tidak menurut bahasa pemrograman java. Jika anda menjumlahkan integer (bilangan yang tidak memiliki angka dibelakang koma) dengan double (bilangan yang memiliki angka di belakang koma) pada java hasilnya bisa jadi adalah error. Ha..ha..ha. Tidak percaya ? Silakan lihat gambar dibawah ini.

Apakah java sebegitu bodohnya ? Kok tidak bisa melakukan pemjumlahan bilangan sesederhana itu ?

Tidak. Yang bodoh (kurang pengetahuan) adalah yang menulis program diatas. Dia tidak aware bahwa python dan java menganut mahzab yang berbeda. Dia tidak tahu atau lupa bahwa python menganut mahzab dinamyc typing, sedangkan java menganut mahzab static typing.

Untuk sementara lupakan tentang dinamyc typing dan static typing diatas. Yang perlu anda ingat adalah, bahwa hasil operasi aritmetis bisa berbeda antara satu bahasa pemrograman dengan bahasa pemrograman lainnya, tergantung tipe datanya (punya angka dibelakang koma atau tidak) dan juga paradigma yang dianut bahasa pemrograman tersebut. Anda harus menyesuaikan dengan aturan bahasa pemrograman yang akan anda gunakan.

Seperti pada bahasa pemrograman java diatas, jika anda ingin menjumlahkan integer dan double anda harus memilih hasilnya disimpan sebagai integer (tanpa angka dibelakang tanda koma) atau double (dengan angka dibelakang koma). Berikut ini adalah contoh jika anda ingin menyimpannya sebagai bilangan dengan angka dibelakang koma, atau double

Dan berikut ini adalah contoh jika anda ingin menyimpannya sebagai bilangan tanpa angka dibelakang koma, atau integer

Selain itu pada dunia pemrograman jumlah digit suatu bilangan yang bisa dihitung juga terbatas. Misal pada dunia nyata tentu mudah bagi anda untuk menjumlahkan 2 buah bilangan yang memiliki 100 digit, jika anda sabar dan teliti. Tetapi hal ini tidak mudah pada dunia pemrograman, untuk menjumlahkan 2 buah bilangan dengan 17 digit saja ribet, tidak semua bahasa pemrograman secara default bisa menghitung penjumlahan bilangan dengan jumlah digit diatas 16, seperti pada javascript. Tetapi jika dibawah 16 digit mudah sekali.

Selanjutnya yang perlu anda ketahui adalah variabel dan konstanta. Variabel dan konstanta pada dunia matematika sangat mirip dengan variabel dan konstanta yang ada pada dunia pemrograman. Yang berbeda adalah nilai yang dikandungnya. Pada dunia matematika variabel dan konstanta tentunya nilanya adalah sebuah angka. Sedangkan pada dunia pemrograman nilainya bisa bervariasi, bisa angka, text dll.

Selanjutnya yang perlu anda ketahui adalah beberapa jenis operator matematika dan penggunaanya.

Operator matematika pertama yang perlu anda ketahui adalah operator aritmetis yang terdiri dari operator penjumlahan, pengurangan, perkalian, pembagian dan modulus. Anda juga perlu tahu prioritas dari operator tersebut, yaitu operasi mana yang dikerjalan terlebih dahulu, termasuk penggunaan tanda kurung, seperti pada contoh dibawah ini

a = 2 + 4 * (10-3)

Operator selanjutnya adalah operator perbandingan yang terdiri dari operator sama dengan, tidak sama dengan, lebih kecil dari, lebih besar dari dll.

Perlu anda ketahui pada dunia pemrograman operator perbandingan untuk “sama dengan” bukanlah operator dengan simbol = tetapi operator dengan simbol ==. Operator dengan simbol = digunakan untuk mengisi nilai pada suatu variabel.

Operator terakhir yang perlu anda ketahui adalah operator logika yang terdiri dari operator AND, OR dan NOT. Simbol dari operator logika ini bisa berbeda antara satu bahasa pemrograman dengan bahasa pemrograman lain. Misal pada python simbol operator OR adalah or sedangkan pada bahasa pemrograman java adalah ||.

Pengetahuan matematika selanjutnya yang perlu anda ketahui adalah logika matematika. Anda harus paham tentang pernyataan Jika … maka … dan harus bisa memprediksi hasilnya. Seperti pada pernyataan “Jika umur pengunjung lebih dari 17 tahun maka boleh masuk bioskop”. Umur Ani 15 tahun, maka Ani …. Jika ditulis dalam bahasa pemrograman python kurang lebih akan jadi seperti ini

Selanjutnya anda juga harus bisa menghitung nilai rata-rata (average), total (sum), jumlah (count), nilai terendah (min) dan nilai tertinggi (max) pada suatu kumpulan data. Misal suatu perusahaan memiliki 10 salesman, pada bulan mei perusahaan tersebut berhasil menjual 1000 unit, berapa unit rata-rata produk yang berhasil dijual perusahaan tersebut per salesman pada bulan mei ?

Anda juga harus bisa menghitung persentase dari suatu nilai. Misal salesman Adi berhasil menjual produk sebanyak 100 unit, sedangkan total penjulan pada perusahaan adalah 1000 unit, berapa persen kontribusi Adi pada total penjualan perusahaan ?

Anda juga harus bisa menghitung nilai dari suatu persentase. Misal harga sebuah produk adalah Rp. 100.000,- jika customer mendapatkan diskon sebesar 10 % dan membeli sebanyak 10 unit, berapa rupiah yang harus dibayar oleh customer tersebut ?

Saya rasa hanya ini pengetahuan matematika yang saya gunakan selama ini sebagai programmer aplikasi bisnis. Tidak banyak, seharusnya jika anda lulus SMP dengan benar anda sudah punya semua pengetahuan matematika diatas.

Tetapi perlu diingat, aplikasi bisnis yang saya kerjakan selama ini adalah aplikasi penjualan, pembelian, penggajian, manufacturing dll yang tidak atau belum membutuhkan report yang rumit, seperti aplikasi penjualan saham. Jadi pengetahuan matematika diatas saya rasa sudah cukup.

Lalu bagaimana dengan pengetahuan matematika untuk membuat game ? Kebetulan saya sudah pernah membuat 2 game kecil-kecilan untuk diupload di google play store.

Untuk membuat game anda harus tahu tentang pengetahuan matematika untuk pemrograman aplikasi bisnis diatas ditambah dengan diagram kartesius jika anda ingin membuat game 2D. Ditambah pengetahuan tentang trigonometri jika object pada game anda banyak terdapat rotasi atau gerakan yang melengkung-lengkung.

Di bagian trigonometri inilah kelemahan saya. Saat 2 game pertama saya selesai, saya ingin membuat game ketiga, di game ketiga ini banyak sekali rotasi dan gerakan object yang melengkung-lengkung. Untuk membuat gerakan seperti ini kita harus menggunakan trigonometri, tetapi saya tidak jago dalam trigonometri, akhirnya game tersebut saya tinggal sampai sekarang. Ha..ha..ha. Jadi jika ingin membuat game, belajar trigonometri dulu ya. Saya dulu waktu sekolah sepertinya jago trigonometri, tapi entah mengapa sekarang jadi tidak paham sama benda satu ini.

Demikian pengalaman yang bisa saya bagikan pada anda. Sebenarnya masih banyak bidang pemrograman yang membutuhkan pengetahuan matematika yang lebih advance, seperti pemrograman komputer grafis. Tetapi waktu kuliah saya termasuk gagal pada materi ini, jadi saya tidak bisa bercerita banyak, saya tidak menguasai bidang tersebut.

Tulisan Serupa

Leave a Reply