PROSES PEMROGRAMAN
BERPIKIR KOMPUTASIONAL
Tujuan Pembelajaran
Adapun tujuan pembelajaran yang dipenuhi dari materi ini adalah :
1. Peserta didik dapat memahami alur proses pengembangan
program atau produk teknologi digital
Apa itu Pemrograman ?
“ Seluruh aktivitas teknis yang dilakukan untuk menghasilkan suatu
program, termasuk analisis kebutuhan dan seluruh langkah desain
dan implementasi suatu program ”
- Oxford Dictionary of Computer Science -
Proses Pemrograman
Program dapat menjadi solusi dari suatu permasalahan. Untuk menghasilkan
program yang benar dan dapat membantu manusia dalam melakukan tugasnya,
ada empat langkah yang dilakukan pada saat melakukan pemrograman, yaitu :
Menganalisis Permasalahan Mendesain Solusi
(Analyzing) (Problem Sloving)
Menguji Program Implementasi Solusi Menjadi Program
(Testing) (Coding)
Silahkan buat kelompok
(berpasangan), kemudian cari
tahu penjelasan dan maksud dari
Mari Bereksplorasi keempat tahap dalam proses
pemrograman !
Buat dalam Buku Latihan / Tugas
secara individu !
Menganalisis Permasalahan ( Analyzing )
Menganalisis suatu kebutuhan atau keadaan saat ini untuk menghasilkan
definisi permasalahan yang perlu diselesaikan dengan program.
Kemampuan berpikir komputasional digunakan untuk :
● mencari abstraksi dari permasalahan yang akan diselesaikan
● permasalahan yang kompleks dapat didekomposisi ke beberapa
masalah yang lebih kecil, namun saling berkaitan
● mengenali pola permasalahan tersebut sebagai sebuah variasi dari
problem generik
Menganalisis Permasalahan ( Analyzing )
Pada tahap ini pemrogram akan mendapatkan pernyataan masalah (problem
statement) yang menjelaskan masukan (input), keluaran (output), serta
batasan-batasan (constraint) dari program yang akan dibuat
Mendesain Solusi ( Problem Solving )
Dari pernyataan masalah (problem statement) yang sudah didapatkan
sebelumnya, pemrogram merencanakan strategi untuk menghasilkan
keluaran (output) berdasarkan masukan (input) yang diterima.
Solusi tidak harus dibuat dari awal, namun bisa menggunakan solusi atau
potongan solusi yang sudah ada dari permasalahan yang telah diselesaikan
sebelumnya.
Proses ini akan menghasilkan algoritma berupa narasi, pseudocode, atau
diagram alir
Mendesain Solusi ( Problem Solving )
Pada tahap ini, pemrogram juga akan mengevaluasi algoritma yang dibuat
untuk memenuhi batasan dari permasalahan.
Misalnya, apakah program dapat bekerja dengan cepat (kurang dari 1 detik)
saat diberikan masukan (input) yang berukuran besar, karena menunggu
membuat pengguna tidak nyaman.
Implementasi Solusi Menjadi Program ( Coding )
Pada tahap ini, pemrogram akan menulis kode program untuk menjalankan
solusi yang telah direncanakan sebelumnya dengan menggunakan suatu
bahasa pemrograman.
Memilih bahasa pemrograman menjadi pertimbangan di tahap ini. Selain itu,
mengubah algoritma menjadi kode program juga melibatkan banyak
pertimbangan teknis (misalnya: tipe data, struktur kontrol yang digunakan,
dan lain-lain).
Menguji Program ( Testing )
Setelah program dapat dijalankan, program tersebut harus diuji untuk
memastikan program berjalan dengan benar, sesuai dengan batasan -
batasan yang diberikan.
Pengujian dapat dilakukan dengan menggunakan berbagai strategi pengujian.
Salah satunya adalah menguji program menggunakan kasus uji (test case)
yang dibuat sedemikan rupa sehingga mewakili seluruh kemungkinan
masukan dari program.
Siklus Pemrograman
Keempat tahap tersebut seringkali tidak
dilakukan satu kali, tapi berkali-kali sehingga
membentuk suatu siklus pemrograman
Siklus Pemrograman
Pendekatan siklus ini juga bermanfaat jika ingin membuat sebuah program
yang kompleks. Menetapkan suatu bentuk akhir dari program yang akan
dibuat dan mendekomposisinya ke dalam program - program yang lebih
sederhana.
Misalnya, kita ingin membuat program yang mampu memprediksi kondisi
hutan Indonesia di masa depan. Untuk membuat program yang kompleks
tadi, kita dapat mulai dengan membuat program yang dapat membaca dan
mengolah data hutan dalam bentuk tabel terlebih dahulu, kemudian
menambahkan analisis data sederhana dalam bentuk grafik batang,
kemudian mengubahnya menjadi visualisasi berbentuk peta, baru akhirnya
menambah kemampuan prediksi keadaan hutan
Siklus Pemrograman
Mari kita coba lakukan keempat
Ayo Berlatih langkah tersebut untuk membuat
sebuah program untuk
menyelesaikan sebuah
permasalahan !
Contoh Kasus Siklus Pemrograman
Seseorang ingin mengidentifikasi jenis segitiga berdasarkan panjang ketiga
sisinya. Seperti kita ketahui, ada beberapa jenis segitiga berdasarkan kondisi
panjang masing-masing sisinya, misalnya segitiga sama sisi, segitiga sama
kaki, atau pun segitiga sembarang. Bayangkan sebuah program yang dapat
menentukan apakah sebuah segitiga termasuk segitiga sama kaki, sama sisi,
atau bukan keduanya, jika diberikan data berupa ketiga panjang sisi-sisi dari
segitiga yang dimaksud.
Misalnya jika diberikan masukan (input) berupa panjang sisi-sisi: 2, 2 dan 3,
maka program tersebut tentunya harus menghasilkan keluaran (output)
“segitiga sama kaki”.
1. Menganalisis Permasalahan ( Analyzing )
Deskripsi di atas sangat abstrak dan luas. Oleh karena itu, sebagai pemrogram
kita perlu mendefinisikan ruang lingkup dari permasalahan yang diberikan.
Pada pengembangan perangkat lunak, ruang lingkup tersebut disebut sebagai
kebutuhan (requirement).
Definisi ini perlu dibuat dengan baik karena pengecekan kebenaran program
yang kita buat akan bergantung pada definisi permasalahan yang telah dibuat.
Untuk menggali kebutuhan (requirement), kita dapat bertanya kepada
pembuat soal, kepada guru, atau kepada orang-orang yang nantinya akan
menggunakan program kalian.
1. Menganalisis Permasalahan ( Analyzing )
Misalnya pada deskripsi mengidentifikasi jenis segitiga, kita perlu mencari
jawaban dari beberapa pertanyaan berikut :
(a) Bagaimana caranya mengidentifikasi apakah data panjang sisi - sisi
tersebut menunjukkan sisi sebuah segitiga ?
(b) Bagaimana menentukan jenis segitiga dari panjang sisi-sisinya ?
(c) Jenis segitiga apa saja yang harus kita identifikasi ? ( misalnya: apakah kita
harus bisa mengidentifikasi segitiga siku-siku ? )
(d) Batasan seperti apa yang harus dipenuhi oleh data masukan (input) ?
(e) Keluaran (output) seperti apa yang harus diberikan oleh program ?
(f) dst…
1. Menganalisis Permasalahan ( Analyzing )
Deskripsi :
Diberikan tiga buah bilangan bulat yang berada pada rentang [1, 1000] yang
merupakan panjang sisi dari sebuah segitiga. Identifikasi apakah ketiga sisi
tersebut membentuk segitiga sama sisi, atau segitiga sama kaki, segitiga
sembarang, atau tidak bisa membentuk segitiga !
Masukan (input) :
Masukan terdiri atas tiga bilangan bulat a, b, dan c yang merupakan panjang
masing-masing sisi segitiga pada rentang [1, 1000]
1. Menganalisis Permasalahan ( Analyzing )
Proses :
Dari masukan (input) yang diberikan, kita harus menentukan terlebih dahulu,
apakah ada segitiga dengan panjang sisi-sisi a, b dan c. Jika tidak ada, maka
program dapat berhenti dan menginformasikan bahwa data masukan (input)
tidak menunjukkan sisi-sisi sebuah segitiga. Jika ternyata a, b dan c
merupakan sisi-sisi sebuah segitiga, maka program harus menentukan jenis
segitiga apakah yang memiliki panjang sisi-sisi a, b dan c tersebut.
1. Menganalisis Permasalahan ( Analyzing )
Keluaran (output) :
Keluaran berupa teks sebagai berikut ini :
● “Segitiga Sama Sisi” jika masukan berupa segitiga sama sisi.
● “Segitiga Sama Kaki” jika masukan berupa segitiga sama kaki.
● “Segitiga Sembarang” jika masukan berupa segitiga sembarang.
● “Bukan Segitiga” jika masukan bukan berupa segitiga.
2. Mendesain Solusi ( Problem Solving )
Setelah membuat definisi persoalan (masukan, proses, keluaran). Selanjutnya
kita akan mencoba menyusun algoritma untuk menyelesaikan permasalahan
tersebut.
Apakah ada segitiga dengan panjang sisi-sisi a, b dan c ?
Untuk menyelesaikan ini, maka nilai-nilai tersebut haruslah memenuhi aturan
“Teorema Pertidaksamaan Segitiga” yaitu :
“Untuk semua segitiga dengan panjang a, b dan c, maka haruslah berlaku : a
+ b > c, a + c > b, b + c > a”
2. Mendesain Solusi ( Problem Solving )
Jika salah satu kondisi tersebut tidak dipenuhi, maka ketiga sisi tersebut tidak
bisa membentuk segitiga. Jika hal ini terjadi, program dapat menghasilkan
keluaran (output) berupa teks “Bukan Segitiga” dan kemudian langsung
berhenti.
Jika semua kondisi memenuhi, berarti a, b dan c memang benar merupakan
sisi - sisi sebuah segitiga, dan program akan mengidentifikasi jenis segitiga
yang sesuai.
2. Mendesain Solusi ( Problem Solving )
Selanjutnya, untuk mengidentifikasi jenis segitiga, kita dapat merancang
aturan-aturan sebagai berikut :
● Jika tiga panjang sisi sama ( a = b = c ), maka segitiga tersebut adalah
sama sisi;
● Jika hanya dua panjang sisi sama ( a = b atau a = c atau b = c ), maka
segitiga tersebut sama kaki;
● Jika ketiga panjang sisi berbeda, maka segitiga tersebut adalah segitiga
sembarang.
Pada tahap ini, kita juga perlu membuat algoritma dalam bentuk diagram alir
(flowchart) dan pseudocode
3. Implementasi Solusi Menjadi Program ( Coding )
Tahap selanjutnya yaitu mengimplementasikan algoritma ke dalam suatu
program komputer. Misalnya, kita dapat mencoba implementasikan dalam
bahasa pemrograman C.
Tentunya, kalian juga dapat menuliskan algoritma dalam bahasa
pemrograman lainnya yang telah dipelajari sebelumnya seperti Python
3. Implementasi Solusi Menjadi Program ( Coding )
4. Menguji Program ( Testing )
Setelah program selesai, kita perlu menguji kebenaran program tersebut. Ada
banyak metode formal untuk menguji suatu program, namun yang akan
dicontohkan adalah menguji program menggunakan kasus uji (test case).
4. Menguji Program ( Testing )
Apabila terdapat kasus uji yang tidak dapat menghasilkan keluaran yang
benar oleh program, maka lakukan analisis kembali untuk mengidentifikasi
kesalahan tersebut dan memperbaiki program kita hingga benar.