BAHAN AJAR
TAHUN PELAJARAN 2019/ 2020
S E K O L AH M E N E N G A H K E J U R U A N ( SM K ) “ N A W A B H AK T I ”
Jl. Mangkusari No. 73 Kutosari Telp (0287)382779 PO. BOX 110 Kebum en 54317
We bs it e: w w w .na w a bh a kt i. s ch. i d e ma i l: na w a bha kt i@ na w a b ha kti. s c h.i d
BAHAN AJAR
A. Kompetensi Dasar
Menerapkan Penggunaan Tipe Data, Variabel, Konstanta, Operator dan Ekspresi
B. Indikator
Defenisi Tipe data, variabel, Konstanta, Operator dan Ekspresi
Pertemuan 1
Tipe Data
Adalah adalah jenis data yang dapat diolah oleh komputer untuk memenuhi kebutuhan dalam
pemrograman komputer. Setiap variabel atau konstanta yang ada dalam kode program, sebaiknya kita
tentukan dengan pasti tipe datanya. Ketepatan pemilihan tipe data pada variabel atau konstanta akan
sangat menentukan pemakaian sumberdaya komputer (terutama memori komputer). Salah satu tugas
penting seorang programmer adalah memilih tipe data yang sesuai untuk menghasilkan program yang
efisien dan berkinerja tinggi
Konstanta
Adalah variabel yang nilai datanya bersifat tetap dan tidak bisa diubah. Jadi konstanta adalah
juga variabel bedanya adalah pada nilai yang disimpannya. Jika nilai datanya sepanjang program
berjalan tidak berubah-ubah, Maka sebuah varibel lebih baik diperlakukan sebagai konstanta. Pada
sebuah kode program, biasanya nilai data dari konstanta diberikan langsung dibagian deklarasi
konstanta. Sedangkan untuk variabel biasanya hanya ditentukan nama variabel dan tipe datanya tanpa
isian nilai data. Aturanpena maan variabel juga berlaku untuk penamaan konstanta. Demikian juga
aturan penetapan tipe data.
Variabel
adalah tempat dimana kita dapat mengisi atau mengosongkan nilainya dan memanggil kembali
apabila dibutuhkan.
Pada sebagian besar bahasa pemrograman, variabel harus dideklarasikan lebih dulu untuk
mempermudah compiler bekerja. Apabila variabel tidak dideklarasikan maka setiap kali compiler
bertemu dengan variabel baru pada kode program akan terjadi waktu tunda karena compiler harus
membuat variabel baru. Hal ini memperlambat proses kerja compiler. Bahkan pada beberapa bahasa
pemrograman, compiler akan menolak untuk melanjutkan proses kompilasi. Pemberian nama variabel
harus mengikuti aturan yang ditetapkan oleh bahasa pemrograman yang kita gunakan. Namun secara
umum ada aturan yang berlaku untuk hampir semua bahasa pemrograman.
Aturan-aturan tersebut yaitu:
Nama variabel harus diawali dengan huruf.
Tidak boleh menggunakan spasi pada satu nama variabel. Spasi bisa diganti dengan karakter
underscore (_).
Nama variabel tidak boleh mengandung karakter-karakter khusus, seperti : .,+, -, *, /, <, >, &,
(, ) dan lain-lain.
Nama variabel tidak boleh menggunakan kata-kata kunci d bahasa Pemrograman.
Contoh penamaan variabel.
Penamaan yang Penamaan yang Keterangan
benar salah
namasiswa nama siswa (salah karena menggunakan spasi)
XY12 12XY (salah karena dimulai dengan angka)
harga_total harga.total (salah karena menggunakan karakter)
JenisMotor Jenis Motor (salah karena menggunakan spasi)
Pertemuan 2
Tipe Data
Tipe data adalah jenis data yang dapat diolah oleh komputer untuk memenuhi kebutuhan dalam
pemrograman komputer. Setiap variabel atau konstanta yang ada dalam kode program, sebaiknya kita
tentukan dengan pasti tipe datanya. Ketepatan pemilihan tipe data pada variabel atau konstanta akan
sangat menentukan pemakaian sumberdaya komputer (terutama memori komputer). Salah satu tugas
penting seorang programmer adalah memilih tipe data yang sesuai untuk menghasilkan program yang
efisien dan berkinerja tinggi. Ada banyak tipe data yang tersedia tergantung jenis bahasa pemrograman
yang dipakai.
Pertemuan 3
Array
Array atau sering disebut sebagai larik adalah tipe data yang sudah terstruktur dengan baik,
meskipun masih sederhana. Array mampu menyimpan sejumlah data dengan tipe yang sama (homogen)
dalam sebuah variabel. Setiap lokasi data array diberi nomor indeks yang berfungsi sebagai alamat dari
data tersebut. Penjelasan tentang array akan disampaikan lebih detil pada bagian lain dari bab ini.
Ket :
Image atau gambar atau citra merupakan tipe data grafik. Misalnya grafik perkembangan jumlah siswa
SMK, foto keluarga kita, video perjalanan dan lain-lain. Pada bahasa-bahasa pemrograman modern
terutama yang berbasis visual tipe data ini telah didukung dengan sangat baik.
Date Time
Nilai data untuk tanggal (Date) dan waktu (Time) secara internal disimpan dalam format yang
pesifik. Variabel atau konstanta yang dideklarasikan dengan tipe data Date dapat digunakan untuk
menyimpan baik tanggal maupun jam. Tipe data ini masuk dalam kelompok tipe data composite karena
merupakan bentukan dari beberapa tipe data.
Berikut ini contoh tipe data dalam Visual Basic.
Dim WaktuLahir As Date
WaktuLahir = “01/01/1997”
WaktuLahir = “13:03:05 AM”
WaktuLahir = “02/23/1998 13:13:40 AM”
WaktuLahir = #02/23/1998 13:13:40 AM#
Tipe data lain
Subrange
Tipe data subrange merupakan tipe data bilangan yang mempunyai jangkauan nilai tertentu sesuai
dengan yang ditetapkan programmer. Biasanya tipe data ini mempunyai nilai batas minimum dan nilai
batas maksimum. Tipe data ini didukung dengan sangat baik dalam Delphi. Berikut ini contoh deklarasi
tipe data subrange dalam Delphi.
Contoh 5.7.
Deklarasi tipe data subrange pada Delphi.
Type
BatasIndeks = 1..20
RentangTahun = 1950..2030
Var
Indeks : BatasIndeks
Tahun : RentangTahun
Enumerasi
Tipe data ini merupakan tipe data yang mempunyai elemen-elemen yang harus disebut satu
persatu dan bernilai konstanta integer sesuai dengan urutannya. Nilai konstanta integer elemen ini
diwakili oleh suatu nama variable yang ditulis di dalam kurung. Tipe data ini juga dijumpai pada Delphi
dan bahasa pemrograman deklaratif seperti SQL.
Berikut ini contoh deklarasi tipe data enumerasi dalam Delphi.
Contoh 5.8. Penggunaan tipe data enumerasi.
Type Hari_dlm_Minggu = (Nol, Senin, Selasa, Rabu,Kamis, Jumat, Sabtu, Minggu)
Nama_Bulan = (Nol, Januari, Pebruari, Maret, April, Mei, Juni, Juli, Agustus,
September, Oktober, Nopember, Desember)
Var No_Hari : Hari_dlm_MingguNo_Bulan : Nama_Bulan
Pada contoh di atas tipe data Hari_dlm_Minggu termasuk enumerasi dengan rentang nilai Nol,
Senin sampai dengan Minggu dan nilai data dari 0, 1, sampai dengan 7. Sedangkan tipe data
Nama_Bulan termasuk enumerasi dengan rentang nilai Nol, Januari sampai dengan Desember
dan nilai data dari 0, 1, sampai dengan 12
Object
Tipe data object digunakan untuk menyimpan nilai yang berhubungan dengan obyek-obyek yang
disediakan oleh Visual Basic, Delphi dan dan bahasa pemrograman lain yang berbasis GUI. Sebagai
contoh, apabila kita mempunyai form yang memiliki control Command button yang kita beri nama
Command1, kita dapat mendeklarasikan variabel sebagai berikut :
Contoh 5.9. Penggunaan tipe data object.
Dim A As CommandButton
Set A = Command1
A.Caption = “HEY!!!”
A.FontBold = True
Pada contoh ini variabel A dideklarasikan bertipe data Object yaitu CommandButton.
Kemudian kita set variabel A dengan control Command button yang ada pada form (Command1).
Dengan cara ini kita dapat mengakses seluruh property, method dan event obyek Command1 dengan
menggunakan variabel A.
Variant
Tipe data hanya ada di Visual Basic. Tipe ini adalah tipe data yang paling fleksibel di antara
tipe data yang lain, karena dapat mengakomodasi semua tipe data yang lain seperti telah dijelaskan.
Pertemuan 4
Contoh-contoh program di dalam menggunakan variabel, konstanta.
a. Mencari Luas segitiga
Perhatikan algoritma sederhana berikut
Mulai
Baca data alas dan tinggi.
Luas adalah alas kali tinggi kali 0.5
Tampilkan Luas
Stop
Keterangan :
Algoritma di atas adalah algoritma yang sangat sederhana, hanya ada lima langkah. Pada algoritma
ini tidak dijumpai perulangan ataupun pemilihan. Semua langkah dilakukan hanya satu kali. Sekilas
algoritma di atas benar, namun apabila dicermati maka algoritma ini mengandung kesalahan yang
mendasar, yaitu tidak ada pembatasan pada nilai data untuk alas dan tinggi. Bagaimana jika nilai data
alas atau tinggi adalah bilangan 0 atau bilangan negatif ? Tentunya hasil yang keluar menjadi tidak
sesuai dengan yang diharapkan. Dalam kasus seperti ini kita perlu menambahkan langkah untuk
memastikan nilai alas dan tinggi memenuhi syarat, misalnya dengan melakukan pengecekan pada
input yang masuk. Apabila input nilai alas dan tinggi kurang dari 0 maka program tidak akan
dijalankan. Sehingga algoritma di atas dapat dirubah menjadi seperti contoh berikut.
A. Kompetensi Dasar
Menerapkan Penggunaan Tipe Data, Variabel, Konstanta, Operator dan Ekspresi
B. Indikator
Defenisi Tipe data, variabel, Konstanta, Operator dan Ekspresi
a. Soal
1. Tuliskan pengertian Tipe Data
2. Tuliskan pengertian Variabel !
3. Tuliskan pengertian Konstanta
4. Gambarkan macam-macam Tipe Data !
5. Buat sebuah program sederhana dengan menggunakan variabel !
b. Kunci Jawaban
1. Tipe data adalah jenis data yang dapat diolah oleh komputer untuk memenuhi
kebutuhan dalam pemrograman komputer. Setiap variabel atau konstanta yang ada
dalam kode program, sebaiknya kita tentukan dengan pasti tipe datanya. Ketepatan
pemilihan tipe data pada variabel atau konstanta akan sangat menentukan pemakaian
sumberdaya komputer (terutama memori komputer). Salah satu tugas penting seorang
programmer adalah memilih tipe data yang sesuai untuk menghasilkan program yang
efisien dan berkinerja tinggi
2. Variabel adalah tempat dimana kita dapat mengisi atau mengosongkan nilainya dan
memanggil kembali apabila dibutuhkan.
3. Konstanta adalah variabel yang nilai datanya bersifat tetap dan tidak bisa diubah. Jadi
konstanta adalah juga variabel bedanya adalah pada nilai yang disimpannya. Jika nilai
datanya sepanjang program berjalan tidak berubah-ubah, Maka sebuah varibel lebih baik
diperlakukan sebagai konstanta. Pada sebuah kode program, biasanya nilai data dari
konstanta diberikan langsung dibagian deklarasi konstanta. Sedangkan untuk variabel
biasanya hanya ditentukan nama variabel dan tipe datanya tanpa isian nilai data.
Hasil Eksekusi
X =12
Y =2.15
Z =25
c. Penskoran
Pedoman Penilaian :
Konversi Nilai = Jumlah Skor x 20,
Jumlah Skor maksimal 20, maka 5 x 20 = 100
BAHAN AJAR
Kompetensi : Bahan Ajar
Satuan Pendidikan : SMK Nawa Bhakti Kebumen
Kelas/Semester : X/I
Mata Pelajaran : Pemrograman Dasar
Pertemuan ke : 5 - 10
Alokasi waktu : 12 x 45
A. Kompetensi Dasar
a. Menerapkan Struktur kontrol percabangan dalam bahasa pemrograman
B. Indikator
1. Membuat Struktur kontrol percabangan,
2. Membuat Percabangan 1 kondisi
3. Membuat Percabangan 2 kondisi
4. Membuat Percabangan lebih dari 2 kondisi
PERTEMUAN 5
Struktur Algoritma Pemrograman
Sebelum memasuki materi tentang percabangan, terlebih dahulu kita harus mengetahui apa itu
algoritma?
Pengertian Algoritma
Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara
sistematis. Masalah dapat berupa apa saja, dengan catatan untuk setiap masalah, ada syarat kondisi awal
yang harus dipenuhi sebelum menjalankan algoritma. Konsep algoritma sering kali disetarakan dengan
sebuah resep. Sebuah resep biasanya memiliki daftar bahan atau bumbu yang akan digunakan, urutan
pengerjaan dan bagaimana hasil dari urutan pengerjaan tersebut. Apabila bahan yang digunakan tidak
tertera (tidak tersedia) maka resep tersebut tidak akan dapat dikerjakan. Demikian juga jika urutan
pengerjaannya tidak beraturan, maka hasil yang diharapkan tidak akan dapat diperoleh. Algoritma yang
berbeda dapat diterapkan pada suatu masalah dengan syarat yang sama. Tingkat kerumitan dari suatu
algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk
menyelesaikan masalah. Umumnya, algoritma yang dapat menyelesaikan suatu permasalahan dalam
waktu yang singkat memiliki tingkat kerumitan yang rendah, sementara algoritma yang membutuhkan
waktu lama untuk menyelesaikan suatu masalah membutuhkan tingkat kerumitan yang tinggi.
Perhatikan algoritma sederhana berikut:
Mulai
2. Baca data alas dan tinggi.
3. Luas adalah alas kali tinggi kali 0.5
4. Tampilkan Luas
5. Stop
Keterangan :
Algoritma di atas adalah algoritma yang sangat sederhana, hanya ada lima langkah. Pada
algoritma ini tidak dijumpai perulangan ataupun pemilihan. Semua langkah dilakukan hanya satu kali.
Sekilas algoritma di atas benar, namun apabila dicermati maka algoritma ini mengandung kesalahan
yang mendasar, yaitu tidak ada pembatasan pada nilai data untuk alas dan tinggi.
Bagaimana jika nilai data alas atau tinggi adalah bilangan 0 atau bilangan negatif ? Tentunya
hasil yang keluar menjadi tidak sesuai dengan yang diharapkan. Dalam kasus seperti ini kita perlu
menambahkan langkah untuk memastikan nilai alas dan tinggi memenuhi syarat, misalnya dengan
melakukan pengecekan pada input yang masuk. Apabila input nilai alas dan tinggi kurang dari 0 maka
program tidak akan dijalankan.
PERTEMUAN 6
Pencarian Data dalam Array
Salah satu permasalahan yang sering dijumpai dalam array adalah bagaimana mencari elemen
tertentu dari array. Misalnya pada kasus loker pada Gambar 5.21 di atas tersedia 100 kotak. Kemudian
kita diminta untuk mencari nomor kotak keberapa yang dimiliki oleh seorang siswa bernama “Rudi”.
Contoh yang lain, misalkan ada banyak siswa dalam satu sekolah dan kita diminta mencari data seorang
siswa dengan nama tertentu atau alamat tertentu.
Perhatikan contoh berikut.
Contoh 5.24. Pencarian pada array.
Pada contoh ini kita diminta mencari elemen yang berisi angka 12 dari sekumpulan elemen
dalam array. Ada 6 elemen pada array tersebut. Menurut kalian bagaimanakah algoritma
penyelesaiannya?
Cara yang paling umum dan paling mudah dilakukan adalah dengan cara pencarian berurutan
(linear search). Pada masa lalu cara ini dianggap tidak efisien karena membutuhkan waktu lama. Namun
dengan perkembangan komputer yang sangat cepat, waktu eksekusi algoritma ini tidak terlalu
dipermasalahkan. Cara ini dilakukan dengan cara membandingkan isi dari elemen dengan apa yang kita
cari. Satu per satu dimulai dari elemen yang paling awal. Apabila kita terapkan pada Contoh 5.24, maka
eksekusi program akan berlangsung berurutan sebagai berikut :
Tetapkan bilangan yang ingin kita cari (yaitu 12)
Ambil elemen paling awal (yaitu A[0]), bandingkan isi elemen tersebut (yaitu 23) dengan
bilangan yang kita cari. Jika sama maka stop.
Jika tidak maka lanjutkan dengan elemen berikutnya (yaitu A[1]), bandingkan isi elemen
tersebut dengan bilangan yang kita cari. Jika sama maka stop.
Jika tidak maka lanjutkan dengan elemen berikutnya. Dan seterusnya sampai dijumpai
elemen yang berisi sama dengan bilangan yang kita cari.
Deklarasi Array
Array adalah struktur data yang statik, yaitu jumlah elemen array harus sudah
diketaui sebelum program dieksekusi.
Macam-macam array terdiri atas :
a. Array 1 dimensi dituliskan :
Variabel [ indeks ]
b. Array 2 dimensi dituliskan :
Variabel [ indeks1, indeks2 ]
c. Array 3 dimensi dituliskan :
Variabel [ indeks1, indeks2, indeks3 ]
Syntax :
Variabel [ indeks ]
Variabel [ indeks1, indeks2 ]
Variabel [ indeks1, indeks2, indeks3 ]
Deklarasi
Var
< Nama Array = array [indeks] of tipe data;
< Nama Array = array [indeks1, indeks2] of tipe data;
tipe data;
< Nama Array = array [indeks1, indeks2, indeks3] of tipe data;
of tipe data;
Contoh :
1. Bentuk Pertama sebagai variabel
Deklarasi
Nilai : Array [ 1..15] of integer
Nama : Array [ ‘A’..’Z’] of string
3. Bentuk Ketiga dengan ukuran maksimum elemen larik sebagai sebuah konstanta
Deklarasi
Const max : 100
Type
Nilai : Array [ 1..max ] of real
Var
X : Nilai
Atau
X : Array [1..100 ] of real
PERTEMUAN 7
PERCABANGAN 1 KONDISI
Penggunaan Larik dengan percabangan 1 kondisi
Array (larik) dibutuhkan apabila suatu proses memerlukan penyimpanan sementara
data yang bertipe sama dalam memori, untuk selanjutnyauntuk selanjutnya data
tersebut dimanipulasi, dihitung, atau diterapkan proses lainnya. Dengan array dapat
menghemat penggunaan nama-nama variabel yang banyak. Variabel dapat dibagi
menjadi 2 yaitu :
a. Variabel tunggal
Keseluruhan data yang di input akan disimpan pada satu tempat saja sehingga
nantinya yang tersimpan data yang paling akhir.
Contoh dalam bahas Pemrograman Pascal :
Uses Crt;
Var
I,n,x : integer;
Procedure Inputan ( var x,n : integer);
Begin
For i := 1 to n do
Begin
Write (’masukkan suku ke-’,i,’=’);
Readln(x);
End;
End;
Procedure Keluaran ( var x,n : integer);
Begin
For i := 1 to n do
Write (‘x[’,i,’]=’,x);
End;
Begin
Clrscr;
Write(’Masukkan N (mak 100) :’);
Readln(n);
Inputan(x,n);
Writeln; Writeln;
Keluaran(x,n);
Readln;
End.
b. Variabel berindeks
Data akan disimpan berdasarkan alamat dari suatu indeksnya.
Contoh dalam Program Pascal :
Uses Crt;
Type
Latih = array [ 1..max ] of real;
Var
X : latih;
I,n : integer;
Procedure Inputan (masuk : latih; n : integer);
Begin
For i := 1 to n do
Begin
Write (’Masukkan suku ke-’,i, ’= ’);
Readln(x [ i ]);
End;
End;
Procedure Keluaran (cetak : latih; n : integer);
Begin
For i := 1 to n do
Write (’x [‘,I,’ ] = x [ i ] :6:1);
End;
Begin
Clrscr;
Write (‘Masukkan N (mak 100) : ‘);
Readln(n);
Inputan(x,n);
Writeln; Writeln;
Keluaran(x,n)
Readln;
End.
Jika Dijalankan maka hasilnya :
Masukkan N (mak 100) : ketikkan 5
Masukkan suku ke-1 = 10
Masukkan suku ke-2 = 15
Masukkan suku ke-3 = 20
Masukkan suku ke-4 = 25
Masukkan suku ke-5 = 30
Hasilnya :
X[1] =10
X[2] = 15
X[3] = 20
X[4] = 25
X[5] = 30
PERTEMUAN 7
Larik 2 Dimensi
Misalkkan Matrik C ukuran 3x4 yang merupakan hasil penjumlahan dari Matrik A ukuran 3x4
dan Matrik B ukuran 3x4.
a c d
b m n o p
A e g h dan B q r s
f t
i k l u v w x
j
a m b n c o d p
C eq f r g s ht
iu j v k w l x
Maka algoritma dari permasalahan tersebut dapat dituliskan :
Deklarasi
Type larik : Array [1..Indeks, 1..indeks2] of integer
X : Larik
N : Integer
Operasi File
File seringkali digunakan untuk menyimpan data agar data tidak hilang. Data atau yang ada dan
dihasilkan pada program akan hilang ketika program diakhiri, sehingga file digunakan untuk
menyimpan data tersebut. Ada dua jenis file yaitu file program dan file data. File program berisi kode-
kode program sedangkan file data hanya berisi data. File data terdiri dari dua jenis yaitu file data
berurutan (sequential data file) dan file data acak (random-access data file).
PERTEMUAN 8
Algoritma Penulisan Data pada File
Algoritma yang digunakan untuk penulisan data untuk file data berurutan maupun acak secara
rinsip sama, hanya modusnya yang berbeda.
Berikut ini adalah algoritma penulisan data.
Open “modus”, <buffer number>, “nama file data” Write <record number>,
field 1, field 2, .. field n
Close buffer number Modus O menunjukkan file ini dibuka untuk ditulisi.
Contoh 5.25.
Contoh Penerapan algoritma penulisan data.Misalkan kita punya file data dengan nama
“siswa.dat” yang field-nya adalah nama siswa, alamat, nomor telepon. Maka untuk menuliskan data
adalah sebagai berikut :
Open “O”, #1, “siswa.dat”
Write #1, <nama>, <alamat>, <no.telepon>
Close #1
Notasi #1 menunjukkan siswa.dat akan ditempatkan dalam buffer no 1.
Notasi ini harus sama digunakan di seluruh progam di atas.
Artinya kalau kita menempatkan suatu file dengan nomor buffer #1 maka ketika membuka,
menulis, membaca dan menutup harus menggunakan notasi tersebut. Demikian juga bila kita
menempatkan pada buffer no #2.
Pernyataan While Not EOF digunakan untuk memeriksa apakah sudah ada pada baris terakhir
dari data. Jika belum maka baris-baris data akan dibaca dan dicetak sampai baris terakhir. Pernyataan
input digunakan untuk mengambil data dari file untuk dimuat ke dalam program. Sedangkan
Pernyataan print digunakan untuk mencetak data ke layar komputer. Contoh 5.26.
Contoh penerapan algoritma penulisan data. File data dengan nama “siswa.dat” seperti pada
contoh 5.25 yang field-nya adalah nama siswa, alamat, nomor telepon. Maka untuk membaca data
adalahsebagai berikut.
Open “I”, #2, “siswa.dat”
While not EOF:
Input #2, <nama>, <alamat>, <no.telepon>
Print <nama>, <alamat>, <no.telepon>
End while
Close buffer number
PERTEMUAN 9
Percabangan dengan 2 kondisi
Struktur satu kondisi (perintah if)
Struktur ini merupakan struktur yang paling sederhana karena hanya melibatkan satu buah
ekspresi akan diperiksa. Pada konstruksi perintah if, C++ tidak memiliki kata kunci (keyword) then.
Bentuk umum:
if (kondisi)
pernyataan;
atau
if (kondisi)
{
statemen1;
statemen2;
…
}
Contoh:
if (detik == 60)
menit = menit + 1;
if (Angka %2 == 0)
cout<<”Bilangan genap”;
if (sisi > 0)
{
Luas = panjang * lebar;
Isi = Luas*tinggi;
}
Keterangan :
Kondisi digunakan untuk menentukan pengambilan keputusan, operator yang digunakan adalah
relational dan logical operators.
Contoh program:
#include <iostream.h>
int main()
{
int nilai;
//memasukkan bilangan bulat
cout<<”Masukkan sebuah bilangan bulat: “;
cin>>nilai;
//menampilkan teks jika nilai yang tersimpan lebih besar dari 0
if (nilai > 0)
cout<<“Nilai yang Anda masukkan adalah bilangan positif“;
return 0; }
Hasil eksekusi program di atas bersifat dinamis artinya tidak setiap proses eksekusi program akan
menghasilkan hasil yang sama. Jika user memasukkan angka lebih besar dari 0 maka program ini akan
menampilkan teks “Nilai yang Anda masukkan adalah bilangan positif”.
Selain itu kita juga 17omp nenggunakan operator || dan && dalam menentukan sebuah ekspresi. Contoh
program:
#include <iostream.h>
int main()
{
int bilangan;
char huruf;
//memasukkan bilangan bulat
cout<<”Masukkan sebuah bilangan bulat: “;
cin>>bilangan;
if ((bilangan > 0) && (bilangan < 10))
cout<<bilangan<<” lebih besar dari nol dan lebih kecil dari sepuluh”;
//memasukkan huruf
cout<<“\n“;
cout<<”Masukkan sebuah huruf: “;
cin>>huruf;
if ((huruf == ‘A’) || (huruf == ‘a’) || (huruf == ‘I’) ||
(huruf == ‘i’) || (huruf == ‘U’) || (huruf == ‘u’) ||
(huruf == ‘E’) || (huruf == ‘e’) || (huruf == ‘O’) ||
(huruf == ‘o’))
{
cout<<huruf<<” adalah huruf 17ompu”;
}
return 0;
}
PERTEMUAN 10
Penggunaan If Majemuk
Struktur dua kondisi (perintah if – else)
Struktur percabangan jenis ini sedikit lebih kompleks bila dibandingkan dengan struktur yang
hanya memiliki satu kondisi. Konsep ini sangat sederhana yaitu pada struktur jenis ini terdapat sebuah
statemen khusus yang berguna untuk mengatasi kejadian apabila kondisi yang didefinisikan tersebut
tidak terpenuhi (bernilai salah). Perintah ini memberikan satu 17omputer1717e dari dua kemungkinan.
Bentuk umum:
if (kondisi)
{
statement_jika_kondisi_terpenuhi;
}
else
{
statement_jika_kondisi_tidak_terpenuhi;
}
Contoh:
#include <iostream.h>
int main()
{
int nilai;
//memasukkan bilangan bulat
cout<<”Masukkan sebuah bilangan bulat: “;
cin>>nilai;
//pengecek bilangan apakah habis dibagi dua atau tidak
if (nilai %2 == 0)
{
cout<<nilai<<“adalah bilangan genap“;
}
else
{
cout<<nilai<<“adalah bilangan ganjil“;
}
return 0;
}
Contoh program:
#include <iostream.h>
int main()
{
int nilai;
//memasukkan bilangan bulat
cout<<”Masukkan sebuah bilangan yang akan diperiksa: “;
cin>>nilai;
//pengecek bilangan apakah habis dibagi dua atau tidak
if (nilai > 0)
{
cout<<nilai<<“ adalah bilangan positif“;
}
else if (nilai < 0)
{
cout<<nilai<<“ adalah bilangan 18omputer“;
}
else
{
cout<<“Anda memasukkan bilangan NOL“;
}
return 0;
}
Contoh Program :
Implementasinya dalam bahasa Pemrograman Pascal :
Uses Crt;
Type
Latih = array [ 1..10, 1..10] of integer;
Var
I,j,n,m : Integer;
A,B,C : latih;
Procedure InputA(var x : latih; m,n : integer);
Begin
For I := 1 to m do
Begin
For J := 1 to n do
Begin
Write(‘Masukkan suku A[‘,I,’] = ‘);
Raedln(A[I,j](;
End;
End;
End;
Procedure InputB(var x : latih; m,n : integer);
Begin
For I := 1 to m do
Begin
For J := 1 to n do
Begin
Write(‘Masukkan suku B[‘,I,’] = ‘);
Raedln(B[I,j](;
End;
End;
End;
Procedure Keluaran(var x : latih; m,n : integer);
Begin
For I := 1 to m do
Begin
For J := 1 to n do
Begin
C[I,j]:=A[I,j]+ B[I,j]
Writeln(‘C[‘,I,’]=’, C[I,j]);
End;
End;
End;
Begin
Write(‘Masukkan m (mak 10) :’);
Readln(m);
Write(‘Masukkan n (mak 10) :’);
Readln(n);
InputA(a,m,n);
InputB(a,m,n);
Writeln; Writeln;
Keluaran(c,m,n);
Readln;
End.
INSTRUMEN TES URAIAN
Kompetensi : Pengetahuan
Satuan Pendidikan : SMK Nawa Bhakti Kebumen
Kelas/Semester : X/I
Mata Pelajaran : Pemrograman Dasar
Pertemuan ke : 5 – 10
Alokasi waktu : 12 x 45
C. Kompetensi Dasar
a. Menerapkan Struktur kontrol percabangan dalam bahasa pemrograman
D. Indikator
1. Membuat Struktur kontrol percabangan,
2. Membuat Percabangan 1 kondisi
3. Membuat Percabangan 2 kondisi
4. Membuat Percabangan lebih dari 2 kondisi
a. Soal
1. Buatlah sebuah program sederhana !
2. Tuliskan macam-macam array !
3. Tuliskan struktur percabangan !
4. Perhatikan gambar berikut : Tuliskan eksekusi dari skema tersebut.
b. Kunci jawaban
1. Contoh Program sederhana:
#include <iostream.h>
int main()
{
int nilai;
//memasukkan bilangan bulat
cout<<”Masukkan sebuah bilangan yang akan diperiksa: “;
cin>>nilai;
//pengecek bilangan apakah habis dibagi dua atau tidak
if (nilai > 0)
{
cout<<nilai<<“ adalah bilangan positif“;
}
else if (nilai < 0)
{
cout<<nilai<<“ adalah bilangan 20omputer“;
}
else
{
cout<<“Anda memasukkan bilangan NOL“;
}
return 0;
}
3. Struktur Percabangan :
Pada struktur percabangan, program akan berpindah urutan pelaksanaan jika suatu
kondisi yang disyaratkan dipenuhi. Pada proses seperti ini 21omput flowchart Decision
harus digunakan. Simbol decision akan berisi pernyataan yang akan diuji kebenarannya.
Nilai hasil pengujian akan menentukan cabang mana yang akan ditempuh.
4. Maka eksekusi program akan berlangsung berurutan sebagai berikut :
1. Tetapkan bilangan yang ingin kita cari (yaitu 12)
2. Ambil elemen paling awal (yaitu A[0]), bandingkan isi elemen tersebut (yaitu 23)
dengan bilangan yang kita cari. Jika sama maka stop.
3. Jika tidak maka lanjutkan dengan elemen berikutnya (yaitu A[1]), bandingkan isi
elemen tersebut dengan bilangan yang kita cari. Jika sama maka stop.
4. Jika tidak maka lanjutkan dengan elemen berikutnya. Dan seterusnya sampai
dijumpai elemen yang berisi sama dengan bilangan yang kita cari.
c. Pedoman Penilaian :
Konversi Nilai = Jumlah Skor x 25,
Jumlah Skor maksimal 25, maka 4 x 25 = 100
BAHAN AJAR
Kompetensi : Bahan Ajar
Satuan Pendidikan : SMK Nawa Bhakti Kebumen
Kelas/Semester : X/I
Mata Pelajaran : Pemrograman dasar
Pertemuan ke : 11 – 14
Alokasi waktu : 8 x 45
A. Kompetensi Dasar
1. Menerapkan struktur kontrol perulangan dalam bahasa pemrograman
B. Indikator
1. Mengetahui Struktur kontrol perulangan
2. Mengetahui Perulangan dengan kondisi awal
3. Perulangan dengan kondisi akhir
Pertemuan 11
Struktur kontrol perulangan
Dalam banyak kasus seringkali kita dihadapkan pada sejumlah pekerjaanyang harus diulang
berkali. Salah satu contoh yang gampang kita jumpai adalah balapan mobil seperti tampak pada Mobil-
mobil peserta harus mengelilingi lintasan sirkuit berkali-kali sesuai yang ditetapkan dalam aturan
lomba. Siapa yang mencapai garis akhir paling cepat, dialah yang menang. Pada pembuatan program
22omputer, kita juga kadang-kadang harus mengulang satu atau sekelompok perintah berkali-kali agar
memperoleh hasil yang diinginkan.
Dengan menggunakan 22omputer, eksekusi pengulangan mudah dilakukan. Hal ini karena salah
satu kelebihan 22omputer dibandingkan dengan manusia adalah kemampuannya untuk mengerjakan
tugas atau suatu instruksi berulangkali tanpa merasa lelah, bosan, atau malas. Bandingkan dengan
pengendara mobil balap, suatu ketika pasti dia merasa lelah dan bosan untuk berputar-putar
mengendarai mobil balapnya. Struktur pengulangan terdiri dari dua bagian yaitu :
1. Kondisi pengulangan,
Yaitu syarat yang harus dipenuhi untuk melaksanakan pengulangan. Syarat ini biasanya dinyatakan
dalam ekspresi Boolean yang harus diuji apakah bernilai benar (true) atau salah (false)
2. Badan pengulangan (loop body), yaitu satu atau lebih instruksi yang akan diulang Pada
struktur pengulangan, biasanya juga disertai bagian inisialisasi dan bagian terminasi.
Inisialisasi adalah instruksi yang dilakukan sebelum pengulangan dilakukan pertama kali.
Bagian insialisasi umumnya digunakan untuk memberi nilai awal sebuah variable.
Sedangkan terminasi adalah instruksi yang dilakukan setelah pengulangan selesai
dilaksanakan.
Ada beberapa bentuk pengulangan yang dapat digunakan, masing-masing dengan syarat dan
karakteristik tersendiri. Beberapa bentuk dapat dipakai untuk kasus yang sama, namun ada
bentuk yang hanya cocok untuk kasus tertentu saja. Pemilihan bentuk pengulangan untuk
masalah tertentu dapat mempengaruhi kebenaran algoritma. Pemilihan bentuk pengulangan yang
tepat bergantung pada masalah yang akan 22omputer22.
Dalam mengeksekusi sebuah pengulangan dengan For, urutan langkah-langkah adalah sebagai
berikut :
a. Menetapkan nilai counter sama dengan awal.
b. Memeriksa apakah nilai counter lebih besar daripada nilai akhir. Jika benar maka keluar
dari proses pengulangan. Apabila kenaikan bernilai 23omputer, maka proses akan
memeriksa apakah nilai counter lebih kecil daripada nilai akhir. Jika benar maka keluar
dari proses pengulangan.
c. Mengeksekusi pernyataan yang ada di badan loop
d. Menaikkan/menurunkan nilai counter sesuai dengan jumlah yang ditentukan pada
argument increment. Apabila argument increment tidak ditetapkan maka secara default
nilai counter akan dinaikkan 1.
e. Ulang kembali mulai langkah no 2.
b. Satu hal yang penting yang harus kita perhatikan adalah nilai counter selalu ditetapkan
diawal dari pengulangan. Apabila kita mencoba merubah nilai akhir pada badan loop,
maka tidak akan berdampak pada berapa banyak pengulangan akan dilakukan.
Shorting
Pertimbangan akan melakukan shorting.
Hal-hal yang akan dipertimbangkan adalah :
1. Perlu tidaknya data disorting
2. Besarnya atau banyaknya data yang akan dishorting
3. Kemampuan atau kapasitas komputer atau penyimpanan datanya
4. Metode shorting
Tehnik-tehnik shorting.
Pada garis besarnya ada 3 tehnik sorting :
1. Insortion Sort (Sorting penyisipan)
Tehnik ini adalah dengan membandingkan elemen n ( n mulai dari 2 hingga elemen terakhir)
dengan elemen-elemen sebelumnya.
Contoh : 8, 3, 7, 4
8, 7, 8, 4 (awal) → 4 banding 8 → Tukar
Hasil : 3, 4, 7, 8 → 4 banding 7 → Tukar
Hasil : 3, 4, 7, 8 → 4 banding 3 → Tetap
Hasil : 3, 4, 7, 8 (akhir)
2. Selection Sort (Sorting Pemilihan)
Tehnik ini adalah mencari elemen terkecil kemudian letakkan dan tukar dengan posisi ke n (n
mulai dari 1 hingga elemen terakhir –n)
Contoh : 8, 3, 7, 4
Pada langkah pertama hasil sortirnya : 3, 8, 7, 4 (mulai dari elemen pertama, elemen
terkecil = 3, letakkan dan tukar dengan elemen pertama)
Pada langkah kedua hasil sortirnya : 3, 4, 7, 8 (mulai dari elemen ke 2 elemen terkecil =
4, letakkan dan tukar dengan elemen ke 2
Pada langkah ke 3 hasil sortirnya : 3, 4, 7, 8 (mulai dari elemen ke 3 elemen terkecil = 7,
letakkan dan tukar dengan elemen ke 3)
3. Exchange Sort (Shorting Penukaran)
Contoh sotir umumnya yang menggambarkan exchange sort adalah Bubble short. Algoritma
dari tehnik ini adalah dengan melakukan proses perbandingan sebanyak n elemen dari n = 1
(selanjutnya dimulai = 1) bandingkan seluruh elemen dimulai dari elemen sebelah kanan ke n.
Bila elemen tersebut lebih kecil dari, maka lakukan dari, maka lakukan penukaran tempat.
Lakukan elemen mulai +1 seperti proses sebelumnya hingga nilai mulai +1 = n
Contoh : 8, 7, 6, 5, 4
Proses 1 :
- Bandingkan 8 (elemen pertama) dengan 7 (elemen kedua) hasilnya : 7, 8, 6, 5, 4
- Bandingkan 7 (elemen pertama) dengan 6 (elemen ketiga) hasilnay : 6, 8, 7, 5, 4
- Bandingkan 6 (elemen pertama) dengan 5 (elemen ketiga) hasilnay : 5, 8, 7, 6, 4
- Bandingkan 5 ( elemen pertama) dengan 4 (elemen keempat) hasilnya : 4, 8, 7, 6, 5 (urutan 1
telah diperoleh)
Pertemuan 13
a. MERGE SHORT
Shorter ini biasanya digunakan untuk jumlah data yang besar dengan membagi-bagi menjadi sub-
sub bagian dimulai dari sedikit elemen hingga keseluruhan elemen tersebut menjadi data yang sudah
diurut. Shorter ini digunakan bila kapasitas memory tidak sanggup untuk menampung seluruh data yang
diakan disortir.
Soal :
78, 63, 50, 70, 60, 35, 12, 14, 18, 23, 50, 40, 51, 34, 30, 25, 45, 20
Penyelesaian :
- 63, 78, 50, 70, 35, 60, 12, 14, 18, 227, 40, 50, 34, 51, 25, 30, 20, 45
- 50, 63, 70, 78, 12, 14, 35, 60, 18, 23, 40, 90, 25, 30, 34, 40, 51, 90, 20, 45
- 12, 14, 35, 50, 60, 63, 70, 78, 18, 23, 25, 30, 34, 40, 51, 90, 20, 45
- 12, 14, 18, 23, 25, 30, 34, 35, 40, 50, 51, 60, 63, 70, 78, 90, 20, 45
- 12, 14, 18, 20, 23, 25, 30, 34, 35, 40, 45, 50, 51, 60, 63, 70, 78, 90 (hasil akhir)
d. Loop While
Pada loop ini sebelum masuk kedalam blok loop, nilai awal harus didefenisikan diluar
blok loop, yang kemudian akan dikomparasi dengan batas loop, jika proses komparasi
bernilai true maka proses akan masuk kedalam blok loop.
Bentuk umum :
Parameter := awal
While (parameter <= akhir) do
Blok loop
Parameter := parameter + step
Endwhile.
e. Loop Repeat
Pada loop repeat pengontrol loop ada pada akhir blok loop sehingga loop ini minimal
sekali pasti dikerjakan dalam prosesnya. Pada loop repeat proses akan terus diulang
selama komparasi bernilai false.
Bentuk umum :
Parameter := awal
Repeat
Blok loop
Parameter := parameter + step
Until parameter > akhir
Kompetensi : Pengetahuan
Satuan Pendidikan : SMK Nawa Bhakti Kebumen
Kelas/Semester : X/I
Mata Pelajaran : Pemrograman dasar
Pertemuan ke : 11 – 14
Alokasi waktu : 8 x 45
A. Kompetensi Dasar
3. Menerapkan struktur kontrol perulangan dalam bahasa pemrograman
B. Indikator
1. Mengetahui Struktur kontrol perulangan
2. Mengetahui Perulangan dengan kondisi awal
3. Perulangan dengan kondisi akhir
a. Soal
1. Tuliskan Keuntungan dari pembuatan algoritma !
2. Tuliskan Beberapa hal yang perlu diperhatikan dalam membuat algoritma!
3. Buatlah flowchart untuk menghitung volume balok !
4. Buatlah flowchart untuk menghitung Luas Lingkaran !
b. Kunci Jawaban
1. Keuntungan algoritma adalah:
a. Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman
manapun, artinya penulisan algoritma independen dari bahasa pemrograman dan
28omputer yang melaksanakannya.
b. Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
c. Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena
algoritmanya sama.
c. Pedoman Penilaian :
Konversi Nilai = Jumlah Skor x 25,
Jumlah Skor maksimal 25, maka 4 x 25 = 100
BAHAN AJAR
Kompetensi : Bahan Ajar
Satuan Pendidikan : SMK Nawa Bhakti Kebumen
Kelas/Semester : X/I
Mata Pelajaran : Pemrograman dasar
Pertemuan ke : 15 – 17
Alokasi waktu : 6 x 45
A. Kompetensi Dasar
1. Menerapkan keseluruhan konsep algoritma dalam penyelesaian masalah kompleks
B. Indikator
1. Analisa pemecahan masalah
2. Debugging dan error dalam program
Pertemuan 15
Penyajian Algoritma
Penyajian algoritma secara garis besar bisa dalam 2 bentuk penyajian yaitu tulisan dan gambar.
Algoritma yang disajikan dengan tulisan yaitu dengan struktur bahasa tertentu (misalnya bahasa
Indonesia atau bahasa Inggris) dan pseudocode. Pseudocode adalah kode yang mirip dengan kode
pemrograman yang sebenarnya seperti Pascal, atau C, sehingga lebih tepat digunakan untuk
menggambarkan algoritma yang akan dikomunikasikan kepada pemrogram.
Sedangkan algoritma disajikan dengan gambar, misalnya dengan flowchart. Secara umum,
pseudocode mengekspresikan ide-ide secara informal dalam proses penyusunan algoritma. Salah satu
cara untuk menghasilkan kode pseudo adalah dengan meregangkan aturan-aturan bahasa formal yang
dengannya versi akhir dari algoritma akan diekspresikan. Pendekatan ini umumnya digunakan ketika
bahasa pemrograman yang akan digunakan telah diketahui sejak awal.
Definisi Pseudo-code
Kode atau tanda yang menyerupai (pseudo) atau merupakan penjelasan cara menyelesaikan suatu
masalah. Pseudo-code sering digunakan oleh manusia untuk menuliskan algoritma.
Contoh kasus : mencari bilangan terbesar dari dua bilangan yang diinputkan
Solusi Pseudo-code :
1. Masukkan bilangan pertama
2. Masukkan bilangan kedua
3. Jika bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak, kerjakan langkah 5.
4. Tampilkan bilangan pertama
5. Tampilkan bilangan kedua
Solusi Algoritma :
1. Masukkan bilangan pertama (a)
2. Masukkan bilangan kedua (b)
3. if a > b then kerjakan langkah 4
4. print a
5. print b
Contoh Lain Algortima dan Pseudo-code :
Pertemuan 16
Flowchart
Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar
proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol
menggambarkan proses tertentu. Sedangkan antara proses digambarkan dengan garis penghubung.
Dengan menggunakan flowchart akan memudahkan kita untuk melakukan pengecekan bagian-bagian
yang terlupakan dalam analisis masalah. Disamping itu flowchart juga berguna sebagai fasilitas untuk
berkomunikasi antara pemrogram yang bekerja dalam tim suatu proyek.
Ada dua macam flowchart yang menggambarkan proses dengan komputer, yaitu :
1. Flowchart sistem yaitu bagan dengan simbol-simbol tertentu yang menggambarkan urutan
prosedur dan proses suatu file dalam suatu media menjadi file di dalam media lain, dalam
suatu sistem pengolahan data.
Beberapa contoh Flowchart sistem:
Pertemuan 17
Pemecahan masalah dalam sebuah Program
Untuk pengolahan data dengan komputer, urutan dasar pemecahan suatu masalah:
START, berisi pernyataan untuk persiapan peralatan yang diperlukan sebelum menangani
pemecahan persoalan.
READ, berisi pernyataan kegiatan untuk membaca data dari suatu peralatan input.
PROSES, berisi kegiatan yang berkaitan dengan pemecahan persoalan sesuai dengan data
yang dibaca.
WRITE, berisi pernyataan untuk merekam hasil kegiatan ke peralatan output.
END, mengakhiri kegiatan pengolahan.
Walaupun tidak ada kaidah-kaidah yang baku dalam penyusunan flowchart, namun ada beberapa
anjuran :
1. Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya proses
menjadi singkat.
2. Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas.
3. Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.
Berikut merupakan beberapa contoh simbol flowchart yang disepakati oleh dunia pemrograman :
Untuk memahami lebih dalam mengenai flowchart ini, akan diambil sebuah kasus sederhana.
Kasus : Buatlah sebuah rancangan program dengan menggunakan flowchart, mencari luas persegi
panjang.
Solusi : Perumusan untuk mencari luas persegi panjang adalah : L = p . l
di mana, L adalah Luas persegi panjang, p adalah panjang persegi, dan l adalah lebar persegi.
Keterangan gambar :
1. Simbol pertama menunjukkan dimulainya sebuah program.
2. Simbol kedua menunjukkan bahwa input data dari p dan l.
3. Data dari p dan l akan diproses pada simbol ketiga dengan menggunakan perumusan L = p. l.
4. Simbol keempat menunjukkan hasil output dari proses dari simbol ketiga.
5. Simbol kelima atau terakhir menunjukkan berakhirnya program dengan tanda End.
INSTRUMEN TES URAIAN
A. Kompetensi Dasar
1. Menerapkan keseluruhan konsep algoritma dalam penyelesaian masalah kompleks
B. Indikator
1. Analisa pemecahan masalah
2. Debugging dan error dalam program
a. Soal
1. Tuliska pengertian pseudocode !
2. Tuliskan solusi pseudocode !
3. Tuliskan 3 bagian utama dalam sebuah proses flowchart !
4. Gambarkan flowchart untuk mencari sebauh Luas persegi panjang !
b. Kunci Jawaban
1. Pseudocode adalah kode yang mirip dengan kode pemrograman yang sebenarnya seperti
Pascal, atau C, sehingga lebih tepat digunakan untuk menggambarkan algoritma yang
akan dikomunikasikan kepada pemrogram.
2. Solusi Pseudo-code :
a. Masukkan bilangan pertama
b. Masukkan bilangan kedua
c. Jika bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak,
kerjakan langkah 5.
d. Tampilkan bilangan pertama
e. Tampilkan bilangan kedua
c. Pedoman Penilaian :
Konversi Nilai = Jumlah Skor x 25,
Jumlah Skor maksimal 25, maka 4 x 25 = 100