Materi Pemrograman Dasar SMT 1
Materi Pemrograman Dasar SMT 1
Kompetensi dasar :
Memahami penggunaan data dalam algoritma dan konsep algoritma
pemrograman
Menggunakan algoritma pemrograman untuk memecahkan permasalahan
Indikator :
Mengetahui konsep algoritma
Mengetahui struktur algoritma
Mengenali algoritma menggunakan bahasa natural
Mengenali variabel
Mengenali tipe data
Mengenali operator
Mengetahui pseudocode dan flowchart
Tujuan:
Siswa mampu mengetaui konsep algoritma
Siswa mampu mengetahui struktur algoritma
Siswa mampu mengenali algoritma menggunakan bahasa natural
Siswa mampu memahami variabel
Siswa mampu memahami tipe data
Siswa mampu memahami operator
Siswa mampu memahami pseudocode dan flowchart
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
Jika kita membahas tentang algoritma tentu tidak akan lepas dari
pemrograman. Seperti yang kita ketahui saat ini pemrograman sudah menjadi
kegiatan yang sangat penting di era teknologi informasi saat ini. Berbagai macam
Gambar 1.2 peta pikiran ciri algoritma dan program yang baik
Karena algoritma lebih berfokus pada software maka akan dibahas lebih
detail mengenai software (program). Program adalah kumpulan instruksi
tersendiri yang biasa disebut source code. Kumpulan instruksi ini dibuat oleh
pembuat program. Jadi, program adalah kumpulan istruksi atau perintah yang
disusun sedemikian rupa sehingga mempunyai urutan nalar yang tepat untuk
menyelesaikan suatu persoalan.
1.1.2 Masalah
Sebagai manusia pada dasarnya tentu kita tidak dapat lepas dari masalah
atau persoalan. Dan umumnya sebuah masalah tentu terdapak aktivitas yang dapat
dilakukan untuk menyelesaikannya.
Tentu masih banyak lagi masalah yang ada untuk dicari solusi
permasalahannya. Dari masalah yang muncul dalam dunia nyata banyak memiliki
kemiripan substansi. Oleh karena itu, secara generic kita sering mendeskripsikan
masalah-masalah yang muncul dengan menggunakan beberapa ukuran
(parameter).
1.2.1 Pernyataan
Sebuah algoritma merupakan deskripsi langkah-langkah pelaksanaan suatu proses.
Setiap langkah di dalam algoritma dinyatakan dalam pernyataan (statement) atau
juga disebut dengan instruksi.
Sebagai contoh:
Misalkan di dalam sebuah algoritma terdapat pernyataan:
Pernyataan :
Tambahkan a dengan 5
Pernyataan :
Terdiri dari dua aksi, yaitu membandingkan nilai variabel hari dengan ‘senin’,
dan aksi menampilkan ‘masuk sekolah = 07.45’ jika perbandingan itu benar.
Contoh kasus:
Ibu susi yang hendak memasak kentang, langkah-langkah yang dilakukannya
adalah sebagai berikut:
b. Pemilihan
Di dalam sebuah algoritma kadang kala terdapat sebuah instruksi yang
dikerjakan jika pada kondisi tertentu dipenuhi atau algoritma yang digunakan
untuk memilih salah satu dari beberapa pilihan yang ada, ini disebut algoritma
pemilihan atau percabangan.
Contoh kasus:
Masih ingat dengan kasus Ibu Susi yang memasak kentang, pada kasus ini
memungkinkan terjadinya algoritma percabangan, jika langkah algoritmanya
kita tambahkan sebagai berikut:
1. Ibu Susi mengambil kantong kentang dari dalam rak
2. Ibu Susi mengambil panci dari dalam almari
3. Menurut kebiasaan Ibu Susi, pada hari biasa menggunakan baju warna
cerah sehingga dia harus menggunakan celemek. Pada hari Sabtu dan
Minggu dia menggunakan baju gelap. Maka perlu diperhatikan, sebelum
mengupas kentang, apakah Ibu Susi memakai celemek atau tidak.
4. Ibu Susi mengupas kentang
5. Ibu Susi mengembalikan sisa kentang dalam kantong ke dalam rak
6. Ibu Susi memasak kentang
c. Pengulangan
Dalam penullisan program pengulangan sangat penting, karena pemrogram
(programmer) tidak perlu menuliskan perintah berkali-kali ketika menginginkan
perintah yang sama.
Contoh kasus:
Pada kasus Ibu Susi memasak kentang, suatu ketika Ibu Susi menerima pesanan
memasak kentang, sehingga mengharuskan Ibu Susi memasak kentang yang
cukup banyak sesuai pesanan, dalam hal ini misalnya sejumlah 20 kentang.
Berdasarkan kasus baru kali ini akan diformulasikan kembali langkah-langkah
yang harus dikerjakan Ibu Susi, yaitu:
1. Ibu Susi mengambil kantong kentang dari dalam rak
2. Ibu Susi mengambil panci dari dalam almari
3. Menurut kebiasaan Ibu Susi, pada hari biasa menggunakan baju warna cerah
sehingga dia harus menggunakan celemek. Pada hari Sabtu dan Minggu dia
menggunakan baju gelap. Maka perlu diperhatikan, sebelum mengupas
kentang, apakah Ibu Susi memakai celemek atau tidak.
4. Ibu Susi mengupas kentang. Karena harus mengupas sebanyak 20 buah
kentang maka langkah ini akan diulangi sebanyak 20 kali
5. Ibu Susi mengembalikan sisa kentang dalam kantong ke dalam rak
6. Ibu Susi memasak kentang
7. Ibu Susi menghidangkan kentang yang sudah masak
Dari peta pikiran di atas dapat diketahui bahwa terdapat 3 cara penulisan
algoritma yaitu algoritma menggunakan bahasa natural, menggunakan
pseudocode, dan menggunakan flowchart.
Sebagai manusia tentu kita akan mampu mengerti dan menjalankan prosedur
dalam membuat mie instan ketika membaca prosedur pembuatannya di belakang
bungkusnya, lalu bagaimana ketika kita menginginkan komputer mengerti
langkah-langkah yang kita inginkan sehingga menghasilkan hasil yang kita mau.
Ketika kita menginginkan sebuah komputer menjalankan perintah yang kita
inginkan maka kita harus memberikan perintah dengan langkah-langkah solusi
menggunakan bahasa yang dimengerti oleh komputer yang dikemas dalam bentuk
program komputer.
Algoritma dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan
dipahami. Algoritma dapat ditulis dalam bahasa natural/bahasa sehari-hari (seperti
bahasa Indonesia, bahasa Inggris, dan lain-lain), contohnya adalah sebagai
berikut:
1.3.3 Flowchart
a. Pengertian Flowchart (diagram alir)
Sedikit mengingat tentang pengertian algoritma yang dibahas pada materi
sebelumnya, algoritma adalah suatu urutan atau alur pemikiran seseorang yang
harus dapat dituangkan secara tertulis. Salah satu caranya adalah dengan
menggunakan simbol-simbol yang memang sudah standar pada dunia
pemrograman komputer. Gambar atau simbol tersebut disebut dengan flowchart.
Dengan menggunakan flowchart (diagram alir) maka seorang programmer
dapat memberikan idenya secara tertulis sehingga dapat dipahami oleh
programmer lain, oleh klien atau oleh tim kerjanya.
b. Fungsi flowchart
Secara umum flowchart berfungsi untuk dua keperluan, yaitu:
WRITE
Merupakan perintah untuk menampilkan hasil proses
Start
Input jari-jari
(r)
Luas 3.14*r*r
Keliling2*3.14*r
Stop
Algoritma ini berusaha mencari bilangan yang paling besar dibandingkan dua
bilangan lain yang dimasukkan oleh pengguna. Caranya adalah membandingkan
masing-masing bilangan dimulai dari bilangan yang pertama dibandingkan
dengan bilangan yang kedua dan seterusnya. Pada algoritma ini juga digunakan
simbol && yang artinya adalah AND, atau kedua kondisi harus bernilai benar
(true). Pada setiap pilihan, pengguna harus memilih hasil yang nantinya akan
ditampilkan di layar monitor.
Start
yes
a>b && a>c Bilangan terbesar= a
no
yes
no yes
no
Stop
Algoritma ini sering ditemui pada kehidupan sehari-hari dimana pengguna sering
bertemu dengan pilihan/alternatif pada dunia nyata. Pada algoritma ini harus
diketahui jam pulang kantor terlebih dahulu dan kemudian dari jam tersebut baru
dapat ditentukan berdasarkan kondisi yang lain seperti cuaca dan kemacetan lalu
lintas pada jam sibuk kantor. Masing-masing alternatif bisa dipilih oleh pengguna.
Start
Cuaca cerah
Stop
start
X 1
X <= 10 no
yes
Output x
x x +1
Stop
………………………………………………………………………………
2. Flowchart perhitungan jumlah ratusan, puluhan, dan satuan dari sebuah angka
(contoh if tidak Flowchart bonus yang bisa didapatkan dari pembelian barang
tertentu (contoh if bertingkat)bertingkat)
Dari peta pikiran di atas dapat disimpulkan bahwa tipe data adalah suatu jenis
nilai yang dapat dinyatakan dalam bentuk konstanta atau variabel dan operator
yang dapat digunakan untuk mendefinisikan objek data yang akan dimanipulasi
dalam sebuah program. Serta terdapat 2 jenis tipe data yaitu tipe data dasar
(primitive data type) dan tipe data bentukan (defined data type).
Karakter atau biasa ditulis char pada pemrograman merupakan tope data untuk
menyimpan sebuah karakter atau gabungan karakter yang merepresentasikan
sebuah karakter.
Contoh karakter-karakter sebagai berikut:
Karakter Keterangan
\0 Karakter null (kosong)
\n Karakter newline (pindah baris)
\” Karakter tanda petik (“) agar tidak rancudengan pernyataan
string maka diberi tanda scape ‘\’
\’ Karakter tanda petik satu (‘) agar tidak rancu dengan
pernyataan karakter maka diberi tanda escape ‘\’
\\ Karakter backslash agar tidak rancu dengan tanda escape ‘\’
\? Karakter tanda tanya (?)
Tabel 1.8 contoh karakter
Penulisan nilai sebuah karakter dinyatakan di dalam dua buah tanda petik satu (‘)
sebagai berikut:
Bahas algoritmik Bahasa C
karakter ; char char karakter
karakter <- ‘A’ karakter = ‘A’;
karakter <- ‘?’ karakter = ‘?’;
karakter <- ‘2’ karakter = ‘2’;
Tabel 1.9 penulisan nilai sebuah karakter
Tipe data karakter tidak dapat dilakukan operasi aritmatika (tambah, kurang,
kali, bagi).
b. String
String adalah tipe data yang berupa kumpulan karakter (satu atau lebih) yang
berada di dalam dua buah tanda petik dua (“) dalam bahasa C dan tanda petik satu
(‘) dalam bahasa Pascal. Dalam aplikasinya dalam bahasa pemrograman biasanya
tipe string hanya dapat memuat karakter sebanyan 1 sampai 256 karakter.
kata[0] = ‘a’;
kata[1] = ‘+’;
kata[2] = ‘+’;
kata[3] = ‘\0’;
Isi dari representasi penyimpanan string pada gambar diatas adalah “bahasa C”
dimana pada saat compiler membaca kose tersebut, maka compiler akan berhenti
membacanya sebagai string saat ditemukan karakter null (‘\0’) [ada tabel
penyimpanan string. Jika karakter null (‘\0’) tidak ditemukan oleh compiler
sampai pada ruang tabel dengan indeks yang terakhir maka akan terjadi peringatan
kesalahan (error).
Boolean adalah sebuah tipe data untuk menyatakan pernyataan benar (true) atau
salah (false). Sehingga tipe data ini hanya dapat diisi dengan dua buah nilai yaitu
true dan false. Tipe data boolean biasanya digunakan sebagai penanda apakah
sebuah proses telah selesai dilakukan atau belum, misalnya sebagai berikut:
Contoh :
Type
Bilangan_Bulat : Integer;
Var
x : Bilangan_Bulat;
b. Tipe Terstruktur
Secara logika tipe terstruktur dapat dilogikakan sebagai sebuah kantong dari satu
kotak atau lebih, atau bahkan di dalamnya juga mengandung kantong lagi.
Atau dapat kita logikakan sebagai membuat sebuah jenis, misalkan jenis manusia,
maka memiliki tangan, kaki, kepala, dan bagian lainnya.
Lebih jelasnya lihat contoh pendeklarasian berikut, misalnya tipe data pukul yang
terdiri dari jam, menit, dan detik :
detik
Operator adalah simbol atau tanda yang jika diletakkan pada dua buah operan
dapat menghasilkan sebuah hasil. Misalkan tanda (+) jika diletakkan diantara dua
buah angka akan menghasilkan nilai dari penjumlahan kedua angka tersebut.
Operator memiliki beberapa jenis :
Dalam bab ini kita akan mempelajari operator yang dapat digunakan dalam
perograman antara lain:
(operator
untuk dua
buah operan
yang
menghasilkan
sisa
pembagian
misal 5 mod 3
hasilnya 2,
karena 5
dibagi 3
secara utuh
akan
menghasilkan
1 buah 3 dan
sisa
pembagian
adalah 2
Operator integer integer + +
penjumlahan real real Contoh: Contoh:
2+5 2+5
Operator integer integer - -
pengurangan real real Contoh: Contoh:
3-2 3-2
Tanda minus integer integer - -
real real Contoh: Contoh:
-5 -5
Tabel 1.15 macam-macam operasi aritmatika
Dan Dan
i = i + 2 i = i - 2
dapat disingkat menjadi dapat disingkat menjadi
i+ = 2 i- = 2
Operator Relasi
Operator relasi adalah operator yang biasa digunakan untuk membandingkan dua
buah nilai, misalnya : a > b
Operator logika boolean adalah operator yang biasa digunakan untuk mengaitkan
dua buah ungkapan kondisi menjadi sebuah kondisi, biasanya digunakan untuk
melogikakan dua atau lebih kondisi.
Operator atau or ||
Contoh: Contoh:
(operator logika yang (a>b)or(a<>5) (a>b)||(a!=5)
menyatakan logika atau)
Keterangan:
B: benar
S: salah
Ungkapan Ungkapan Hasil
kondisi 1 kondisi 2 operator
logika
atau
B B B
B S B
S B B
S S S
Keterangan:
B: benar
S: salah
ungkapan Hasil
kondisi 1 operator
logika bukan
B S
S B
Tabel 1.17 macam-macam logika boolean
2. Berikut ini adalah karakter yang sebaiknya tidak digunakan dalam penamaan
variabel/ konstanta, kecuali
a. ‘#’
b. ‘/’
c. ‘;’
d. ‘_’
e. ‘<’
a. Data
b. Process
c. Decision
d. Connector
e. Terminator
8. Apabila terjadi dua kondisi (benar atau salah), pada pembuatan flowchart
menggunakan simbol …
a. c.
b. d.
c. c.
d. Dfgdsdf d.
12. tipe data yang hanya mengenal kondisi true atau false pada bahasa
pemrograman C++, adalah :
a. Int
b. Bool
c. Char
d. String
e. Long int
13. Berikut ini yang bukan merupakan tipe data dasar (primitive data type) adalah
a. String
b. Karakter
c. Bilangan Riil
d. Bilangan Bulat
e. Bilangan Lojik
14. Tipe data yang cocok untuk menjelaskan data nama siswa adalah mengunakan
tipedata ….
f. Array
g. Integer
h. Varchar
i. Numeric
j. Date time
15. Tipe data yang cocok untuk menjelaskan data tanggal lahir adalah
mengunakan tipedata ….
a. Array
b. Integer
c. Varchar
d. Numeric
e. Date time
Kompetensi dasar :
Indikator :
Mengetahui percabangan satu kondisi
Mengetahui percabangan dua kondisi
Mengetahui percabangan lebih dari dua kondisi
Mengetahui percabangan bersarang
Tujuan:
Siswa mampu memhami percabangan satu kondisi
Siswa mampu memhami percabangan dua kondisi
Siswa mampu memhami percabangan lebih dari dua kondisi
Siswa mampu memhami percabangan bersarang
Dari gambar di atas terdapat sebuah contoh kasus dalam kehidupan sehari-hari
mengenai algoritma percabangan. Percabangan pada gambar di atas yaitu ketika
cuaca sedang hujan maka seorang anak memakai payung, sedangkan ketika cuaca
merah mak anak tersebut memakai topi.
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
Percabangan satu kondisi adalah jika blok program if untuk satu kondisi berarti
hanya ada sebuah blok aksi yang akan dikerjakan jika syarat kondisi terpenuhi.
If (kondisi)
Pernyataan;
Menjalankan Menjalankan
blok if blok else
If (kondisi)
pernyataan-1
else
pernyataan-2
bentuk IF bersarang atau sering disebut nesteed if . Bentuk ini digunakan untuk
pemilihan pernyataan dari sejumlah kemungkinan tindakan.
if (kondisi_1)
pernyataan_1;
else if (kondisi_2)
pernyataan_2;
else if (kondisi_3)
pernyataan_3;
….
else if (kondisi_M)
pernyataan_M;
else
pernyataan_N;
..
.
Bentuk umum :
switch (ungkapan)
{
case ungkapan1 :
pernyataan_1 ;
break ;
case ungkapan2 :
pernyataan_2 ;
break ;
…….
case ungkapanN :
pernyataan_N ;
break ;
default : //opsional
pernyataan-lain;
}
…….
Latihan
1). Buatkan program dengan menggunakan formula IF – Else untuk menentukan
nilai kelulusan beserta predikatnya yang didasarkan pada skor yang diperoleh
tertentu, seperti tabel berikut ini :
Kompetensi dasar :
Indikator :
Tujuan:
Perhatikan gambar di atas seorang anak yang dihukum menulis di papan tulis
karena tidak mengerjakan pekerjaan rumah, tentu dia akan merasa lelah
melakukan pekerjaan yang berulang-ulang. Nah! Pekerjaan yang mengulang-
ulang ini juga merupakan kondisi yang dapat terjadi pada pemrograman.
Pengulangan atau looping adalah suatu bagian yang bertugas melakukan kegiatan
mengulang suatu proses sesuai dengan yang diinginkan. Pengulangan merupakan
bagian yang penting dalam pemrograman karena dengan adanya pengulangan
pembuat program tidak perlu menulis kode program sebanyak pengulangan yang
diinginkan.
3.1 For for digunakan utuk menghasilkan pengulangan yang sudah jelas
Pengulangan
for i <- 1 to 3 do
output (i)
{end for}
Berarti proses yang ada di dalam pengulangan for dilakukan mulai dari 1 sampai 3
(pengulangan dilakukan sebanyak 3 kali). Berikut adalah ilustrasi pengulangan for
di atas:
1. Pada saat masuk pengulangan pertama kali, nilai yang ada di dalam
kotak i adalah 1 (diawali dengan 1karena nilai awal yang diberikan
adalah 1 (i<- 1) kemudian masuk ke dalam blok for, lalu
menampilkan nilai dalam kotak i ke layar yaitu 1
1
tampilkan isi kotak 1 berarti menampilkan 1
Penghitung
dari 10 turun ke 1
Penghitung
Penulisan pengulangan for hitung turun untuk kasus diatas adalah sebagai berikut:
3.2 While
Pengulangan while biasa digunakan jika jumlah pengulangan tidak diketahui atau
memiliki kemungkinan dapat dilakukan kurang dari batas pengulangan. Proses
perulangan akan terus berlanjut selama
kondisinya bernilai benar (≠0) dan akan berhenti bila kondisinya bernilai
salah (=0).
Deklarasi pengulangan while adalah sebagai berikut:
while kondisi do
aksi
endwhile
i : integer
{inisialisasi}
i <- 1
while i ≤ 5 do
{proses}
…………………
{iterasi}
i <- i + 1
{end while}
Penjelasan:
Pengulangan akan terus dilakukan selama nilai variabel i lebih kecil atau sama
dengan 5, di mana dalam pengulangan nilai i terus ditamabah dengan 1. Jika
kondisi berhenti pengulangan tidak pernah tercapai, maka pengulangan akan
dilakukan tanpa henti.
Pseudocode
Menampilkan nilai 2 sampai dengan 12
z : int
z=2
while (z <= 12)
print(z)
z++
Flowchart :
3.3 Do While
jawaban
jawaban
Tabel 3.6 penggunaan pengulangan repeat logika pemikiran manusia dan bahasa
algoritmik
repeat do{
printf (“hello world\n”);
output(“hello world”) printf(“apakahanda ingin
menampilkan lagi”);
output(“apakah anda ingin scanf(“%c”, &jawaban);
menampilkan lagi?”) while(getchar() != ‘\n’);
input(jawaban) printf(“\n”);
return 1;
}
Tabel 3.7 penggunaan pengulangan repeat bahasa algoritmik dan bahasa C
Perulangan for
Perulangan while
Perulangan repeat
Perulangan for
Eksperimen/explore: