Pemrograman dasar adalah pembelajaran yang memberikan dasar-dasar logika yang bersifat universal dan mengedepankan pembentukan pola pikir seseorang mengenai membuat suatu program yang efektif dan efisien. Sehingga dasar-dasar universal ini dapat diterapkan pada bahasa pemrograman apa pun, kapan pun, di mana pun.
Konsep Dasar Pemrograman
Pemrograman adalah aktivitas memberikan perintah terhadap komputer untuk melakukan tugas-tugas tertentu menggunakan bahasa pemrograman. Bahasa pemrograman sendiri merupakan instruksi-instruksi yang dimengerti oleh komputer untuk melakukan tugas tertentu. Kumpulan tugas-tugas yang dapat dilakukan oleh komputer tersebut kemudian akan menjadi program atau perangkat lunak.
Perangkat lunak adalah tuntunan instruksi yang ditulis dalam bentuk kode-kode menggunakan bahasa pemrograman tertentu dan telah dikompilasi dengan menggunakan compiler yang sesuai.
Instruksi-instruksi yang dapat diterima oleh komputer dapat memiliki perbedaan sintaks (aturan menyusun kode) dari bahasa satu ke bahasa lain. Namun demikian logika dan algoritma yang digunakan tetap sama. Oleh karena itu, penting bagi kita untuk menguasai logika, algoritma, dan struktur bahasa dari pemrograman agar apa pun bahasa pemrogramannya, kita dapat tetap memerintah komputer untuk melaksanakan tugas-tugas tertentu yang merupakan esensi dari pekerjaan seorang programmer.
Jenis Bahasa Pemrograman
Terdapat banyak sekali bahasa pemrograman yang kini beredar luas dan digunakan oleh industri pengembangan perangkat lunak. Beberapa di antaranya yang paling terkenal adalah Java, Python, C/C++, Visual Basic, PHP, dsb.
Meskipun ada ratusan jenis, secara umum bahasa pemrograman yang dapat dimengerti oleh manusia dapat dikelompokkan menjadi dua, yaitu:
- bahasa pemrograman tingkat rendah (low level programming language), dan
- bahasa pemrograman tingkat tinggi (high level programming language).
Terdapat juga bahasa mesin (machines language) yang hanya dapat dimengerti oleh mesin komputer namun tidak relevan dalam pemrograman karena bahasa ini tidak dapat dipahami oleh manusia. Pengelompokan bahasa pemrograman ini didasarkan pada tingkat kemiripan perintah/sintaks dengan bahasa manusia.
Bahasa Pemrograman Tingkat Rendah
Bahasa pemrograman tingkat rendah adalah bahasa pemrograman yang sintaksnya susah dipahami manusia secara umum. Dalam hal ini, struktur sintaksnya hanya dapat dipahami oleh orang-orang tertentu saja. Jenis bahasa pemrograman yang termasuk ke dalam kelompok ini adalah bahasa pemrograman bahasa mesin dan Assembly.
Bahasa Pemrograman Tingkat Tinggi
Adapun bahasa pemrograman tingkat tinggi, struktur perintah/sintaks sangat mirip dengan kalimat yang digunakan manusia sehari-hari, sehingga mudah dibaca dan dipelajari oleh manusia secara umum. Contoh jenis bahasa pemrograman yang termasuk di kelompok ini adalah Java, Pascal, Python, C/C++ dll.
Bahasa pemrograman inilah yang kebanyakan akan dipelajari oleh seorang programmer di industri pengembangan perangkat lunak. Saat ini beberapa bahasa yang paling banyak digunakan adalah bahasa-bahasa pemrograman yang dapat digunakan untuk membangun aplikasi berbasis website dan Mobile dalam sistem operasi Android atau iOs.
Beberapa bahasa pemrograman yang tengah banyak digunakan meliputi Java dan PHP. Namun kedua bahasa itu biasanya tidak digunakan secara langsung, melainkan menggunakan kerangka kerja atau framework yang dapat memudahkan proses coding.
Di lingkungan industri, hampir seluruh perusahaan pengembang perangkat lunak kini menggunakan framework untuk menyelesaikan proyeknya. Framework yang banyak digunakan untuk membangun perangkat lunak berbasis website adalah Laravel dan Codeigniter. Sementara itu framework Mobile yang sedang banyak digunakan meliputi React Native dan Flutter.
Logika Bahasa Pemrograman
Telah dijelaskan sebelumnya bahwa kode program yang dituliskan oleh seorang programmer berisi kumpulan instruksi yang tersusun secara teratur. Instruksi tersebut merupakan urutan langkah-langkah yang digunakan mulai dari membaca input, mengolah input, hingga menghasilkan output yang diharapkan.
Kumpulan instruksi yang tersusun tersebut haruslah benar secara logika, sehingga dalam hal ini programmer tidak bisa sembarangan ketika menyusunnya. Apabila instruksi tersusun tidak benar secara logika maka akan menghasilkan output yang salah, inilah yang disebut dengan algorithmic error atau kesalahan algoritma.
Dalam menyusun instruksi-instruksi tersebut ke dalam bahasa pemrograman, secara umum menggunakan pola berpikir yang sama dengan pola berpikir manusia secara umum ketika menyelesaikan suatu permasalahan. Dengan kata lain, pola berpikir yang digunakan dalam bahasa pemrograman mengadopsi pola berpikir manusia. Secara umum terdapat tiga jenis alur proses instruksi dalam pemrograman yaitu:
- sekuensial,
- percabangan/bersyarat (conditional), dan
- perulangan (loop).
Sekuensial
Instruksi dalam bahasa pemrograman secara umum tersusun secara sekuensial atau berurutan. Sebuah instruksi akan dijalankan apabila instruksi sebelumnya telah dilakukan. Jika dalam kehidupan nyata, hampir semua langkah penyelesaian suatu masalah tersusun secara sekuensial, misalnya adalah bagaimana cara memasak mie instan. Langkah-langkah instruksi yang bisa dilakukan untuk permasalahan ini adalah sebagai berikut:
- Siapkan panci
- Siapkan air sebanyak 2 gelas dan masukkan ke dalam panci
- Rebus air dalam panci hingga mendidih
- Masukkan mie bungkus ke dalam panci
- Aduk-aduk selama 2-3 menit
- Masukkan bumbu mie dan aduk-aduk mie sampai kira-kira 1 menit
- Mie siap dihidangkan
Terdapat tujuh langkah untuk memasak mie bungkus sampai dengan diperoleh mie siap dihidangkan. Dalam hal ini setiap langkah (instruksi) tersusun secara sekuensial atau berurutan. Bisa jadi hasil akhir mie yang siap dihidangkan tidak bisa diperoleh apabila terdapat instruksi yang tertukar posisinya atau ada langkah yang hilang.
Di dalam bahasa pemrograman, konsep sekuensial juga berlaku. Setiap instruksi tersusun secara berurutan dari atas sampai bawah (top-down). Instruksi yang letaknya di atas akan dijalankan terlebih dahulu dibandingkan yang berada di bawahnya.
Dalam bahasa pemrograman PHP, perintah atau kode yang digunakan untuk menjalankan urutan perintah sekuensial seperti contoh di atas adalah sebagai berikut.
/* baris ini menerima input dari pengguna */$nama = $_POST["nama"];/* tugas pertama yg akan dilakukan oleh komputer */print(“Halo”.$nama.“apa kabar?”);
Kode di atas akan menghasilkan ouput berupa tampilan kata sapaan kepada nama orang yang dimasukan oleh pengguna ($nama) seperti di bawah ini.
Halo Gamal apa kabar?
Dengan asumsi pengguna mengetikan “Gamal” pada form input aplikasi. Pada contoh kode perintah PHP di atas, terdapat kode:
$nama = $_POST["nama"];
Kode di atas adalah deklarasi variabel. Seperti dalam matematika, variabel adalah nilai yang dapat berubah dalam suatu cakupan soal atau himpunan operasi yang diberikan. Hanya saja dalam pemrograman variabel ini variabel dapat memiliki nilai string (teks biasa) atau int (nilai berupa angka).
Selain itu, dalam pemrograman, variabel ini dapat menampung himpunan (lebih dari satu nilai) yang disebut dengan array, atau bermacam input seperti text box, select box, hingga input hardware barcode scanner, kamera, dsb. Dalam contoh di atas, variabel $nama diberi value text input yang dapat diisi oleh pengguna.
Percabangan/Bersyarat (Conditional)
Sebuah instruksi bisa juga tidak akan dijalankan apabila suatu syarat tidak terpenuhi. Demikian pula sebaliknya, sebuah instruksi akan dijalankan ketika suatu syarat terpenuhi. Contoh dalam kehidupan sehari-hari misalnya masih terkait pada masalah merebus mie kuah.
- Siapkan panci
- Siapkan air sebanyak 2 gelas dan masukkan ke dalam panci
- Rebus air dalam panci
- Jika air sudah mendidih, maka masukkan mie bungkus ke dalam panci Jika belum, maka tunggu sampai mendidih
- Aduk-aduk selama 2-3 menit
- Masukkan bumbu mie dan aduk-aduk mie sampai kira-kira 1 menit
- Mie siap dihidangkan
Perhatikan pada langkah nomor 4 di atas. Langkah nomor 4 tersebut terdapat sebuah instruksi yang akan dijalankan yaitu ‘memasukkan mie ke dalam panci’ apabila suatu syarat terpenuhi yaitu ‘jika air sudah mendidih’. Artinya bahwa instruksi ‘memasukkan mie ke dalam panci’ tidak akan dilakukan apabila air belum mendidih, dalam hal ini instruksi yang akan dijalankan adalah ‘tunggu sampai mendidih’.
Dalam bahasa pemrograman PHP, perintah atau kode yang digunakan untuk menjalankan perintah percabangan atau conditional di atas adalah sebagai berikut.
/* deklarasi untuk menerima input suhu dari pengguna */$suhu = $_POST["suhu"];/* mengecek apakah suhu sudah masuk ada pada titik didih */$suhuAir = cekSuhu($suhu);If($suhuAir == “mendidih”) { /* jika suhu air mendidih */
masukkanMie();
}else { /* jika belum */
janganMasukkanMie();}
Pada contoh di atas kita dapat melihat bahwa terdapat kode “masukkanMie();” dan “janganMasukkanMie();”. Kode semacam itu disebut dengan fungsi atau method. Fungsi atau method adalah sekumpulan perintah yang didefinisikan untuk menyelesaikan suatu tugas tertentu, sehingga kita dapat memanggil atau menggunakannya kembali di baris mana pun, tanpa harus mendefinisikan/mengetiknya kembali.
Perulangan (Loop)
Dalam keseharian sering dijumpai suatu proses yang dilakukan secara berulang-ulang. Sebagai contoh dalam proses membuat kopi manis berikut ini:
- Siapkan cangkir atau gelas
- Masukkan 1-2 sendok teh bubuk kopi
- Tuangkan air panas ke dalam cangkir atau gelas
- Masukkan gula ke dalam cangkir atau gelas
- Aduk-aduk
- Cicipi kopinya
- Jika masih belum manis, maka ulangi langkah 4 sampai dengan 6 Jika sudah manis, maka lanjutkan langkah 8
- Kopi manis siap dinikmati
Apabila diperhatikan, maka pada proses membuat kopi tersebut terdapat beberapa instruksi yang diulang-ulang yaitu langkah nomor 4 hingga 7. Instruksi tersebut diulang sampai dengan terpenuhi syarat tertentu, dalam hal ini syaratnya yaitu sampai dengan kopi sudah terasa manis. Melalui syarat itulah proses perulangannya berhenti.
Dalam bahasa pemrograman PHP, perintah atau kode yang digunakan untuk menjalankan perintah pengulangan (loop) di atas adalah sebagai berikut.
$cekTingkatKemanisan = cekKadarGula();while($cekTingkatKemanisan != “manis”) { /* selama tidak manis, ulangi: */tambahkanGula();}
Tanda seru (!) di atas menyatakan “tidak” sehingga simbol “!=” di atas berarti “tidak sama dengan”. Tentunya, terdapat bermacam operator matematika yang dapat dimengerti oleh bahasa pemrograman, meliputi pertambahan (+), pengurangan (-), perkalian (*), pembagian (/), dsb. Kita juga dapat menggunakan sama dengan (=), tidak sama dengan (!=), lebih besar dari (>), lebih kecil dari (<), atau menggabungkannya.
Jenis Perulangan
Di dalam konsep pemrograman, terdapat beberapa jenis perulangan. Sebelum membahas lebih lanjut tentang hal ini, perhatikan tiga contoh bentuk perulangan dalam kalimat sehari-hari berikut ini:
- Saya menuangkan segelas air ke dalam ember sebanyak 10 kali
- Selama ember belum penuh, saya akan tetap menuangkan segelas air ke dalamnya
- Saya terus menuangkan segelas air ke dalam ember hingga embernya penuh
Ketiga bentuk perulangan di atas ke semuanya mengandung makna perulangan, engan kata lain ada proses yang diulang-ulang di dalamnya yaitu menuangkan segelas air ked dalam ember.
Contoh(1) bermakna bahwa proses penuangan segelas air ke dalam ember dilakukan sebanyak 10 kali. Kalimat ini dengan jelas menyatakan banyaknya perulangan yang dilakukan adalah 10 kali.
Sementara itu, pada perintah perulangan (2) dan (3), banyaknya perulangan yang dilakukan tidak diketahui. Dalam hal ini yang diketahui hanyalah syarat kapan perulangan tersebut berhenti dilakukan. Meskipun kedua kalimat ini mirip, namun ada perbedaan pada letak syaratnya.
Pada contoh (2) letak syarat berada di awal kalimat yaitu selama ember belum penuh. Jika syarat ini masih terpenuhi (bernilai TRUE) maka proses penuangan segelas air ini akan tetap terus dilakukan. Selanjutnya jika syarat sudah tidak terpenuhi (bernilai FALSE), maka perulangannya berhenti. Oleh karena itu makna syarat dalam perulangan bentuk ini adalah syarat untuk tetap dilakukannya perulangan.
Sedangkan pada contoh (3), letak syarat ada di akhir kalimat. Syarat yang ada di sini menunjukkan kapan perulangan berhenti, sehingga apabila syarat ini belum memenuhi (bernilai FALSE) maka perulangan akan dilakukan. Namun, jika syarat berhenti ini sudah memenuhi (bernilai TRUE) maka perulangan akan berhenti.
Langkah-langkah Membuat Program
Dalam membuat program, diperlukan langkah-langkah yang harus dilalui. Namun, urutan langkah-langkah ini tidaklah mutlak, artinya tidak harus dilakukan dari langkah pertama, kedua dan seterusnya secara urut. Bisa jadi seorang programmer terkadang harus mengulang-ulang salah satu atau beberapa langkah dari serangkaian langkah secara umum.
Menurut Yuana (2002) langkah-langkah yang harus dilakukan dalam menyusun program komputer adalah sebagai berikut.
1. Mendefinisikan masalah
Langkah ini sering kali tidak dilakukan oleh programmer terutama ketika bekerja secara individu. Programmer sering kali langsung membuat program begitu mendapat proyek untuk mengembangkan sebuah program/software tanpa mendefinisikan masalah terlebih dahulu. Akibat dari hal ini adalah ketidaksesuaiannya spesifisikasi program yang dibuat dengan kebutuhan yang diinginkan.
2. Merumuskan solusi
Setelah masalah didefinisikan dengan jelas, input yang diberikan sudah jelas, outputnya pun sudah jelas, langkah selanjutnya adalah mencari solusi bagaimana masalah tersebut diselesaikan. Dalam hal ini, seorang programmer dituntut harus bisa menyusun serangkaian urutan langkah untuk mengolah data input menjadi output yang diharapkan. Urutan langkah ini sering kali disebut dengan algoritma.
3. Menulis program
Setelah algoritma disusun oleh programmer, langkah berikutnya adalah mengimplementasikan algoritma tersebut ke dalam kode program. Dalam hal ini programmer bisa menggunakan bahasa pemrograman apapun yang dikuasainya. Setiap bahasa pemrograman memiliki aturan sintaks yang berbeda-beda, sehingga hendaknya seorang programmer memilih bahasa pemrograman yang paling dikuasainya atau disesuaikan dengan kebutuhan perangkat dan penggunanya.
4. Menguji program
Setelah program selesai dibuat, program tersebut harus diuji. Tujuan dari pengujian ini adalah untuk memastikan program terbebas dari kesalahan sintaks (syntax error) maupun kesalahan algoritmiknya (algorithmic error). Adanya kesalahan algoritmik dalam sebuah program akan mengakibatkan adanya celah (bug) sehingga bisa menghasilkan output yang tidak sesuai dengan harapan. Proses pengujian dengan tujuan mencari bugini dinamakan debugging.
5. Menulis dokumentasi
Dokumentasi bagi seorang programmer diperlukan terutama pada saat akan melakukan perubahan program atau membaca program yang sudah ada. Untuk melakukan dokumentasi program, seorang programmer bisa menuliskan komentar-komentar pendek untuk memberi penjelasan maksud atau kegunaan dari modul atau bagian kode program tertentu. Proses ini bisa dilakukan pada saat yang bersamaan ketika menuliskan program. Namun akan lebih baik jika dituliskan pada file terpisah untuk kemudian dicetak di atas kertas jika diperlukan.
6. Perawatan
Langkah perawatan dilakukan pascaprogram selesai dibuat dan sudah digunakan oleh pengguna. Bug-bug yang sebelumnya tidak terdeteksi ketika langkah pengujian program bisa jadi muncul setelah digunakan oleh pengguna. Bisa juga pada proses perawatan ini ada penambahan fitur baru pada program yang telah dibuat, sehingga kode program perlu dirombak oleh programmer. Oleh karena itu, biasanya dalam proses software rilis ada perubahan version, misalnya versi 1.1, versi 1.2 dst.
Prinsip Penulisan Program
Seorang programmer dituntut untuk bisa membuat program yang baik. Sebuah program dikatakan baik jika memenuhi beberapa persyaratan yaitu sebagai berikut.
- Program harus sesuai dengan spesifikasi kebutuhanSebuah program yang dibuat harus bisa menangani kebutuhan yang diinginkan penggunanya, mulai dari input sampai dengan ketepatan output yang diharapkan.
- FleksibelProgram yang baik harus fleksibel dalam pengembangan selanjutnya atau dapat dengan mudah ditambah dan dikurangi fitur-fiturnya sesuai kebutuhan.
- Tidak mengandung kesalahan (error/galat)Ini merupakan syarat mutlak bahwa sebuah program harus tidak boleh mengandung bug baik yang disebabkan oleh kesalahan syntax (syntax error) atau kesalahan algoritma (algorithmic error).
- Terdokumentasi secara baikProgram yang baik juga sebaiknya memiliki dokumentasi supaya memudahkan programmer dalam melakukan pengembangan.
- Cepat dalam waktu penggunaannyaProgram yang baik tidak hanya bisa memberikan output yang tepat saja. Meskipun outputnya tepat, namun seorang pengguna program juga menghendaki proses yang cepat dalam menghasilkan output.
- Efesien dalam penggunaan memori komputerSemakin besar memori komputer yang dibutuhkan program untuk bekerja maka akan berdampak pada semakin lamanya waktu untuk memproses input menjadi output. Oleh karena itu program yang baik adalah program yang menggunakan sejumlah kecil saja resource memorinya (RAM).