Komputer
Kompetensi Dasar :
3.1. Menerapkan alur logika pemrograman komputer
3.1.1. Siswa mampu menggunakanprinsip algoritma dalam menyelesaikan masalah
(C3)
3.1.2. Siswa mampu menggunakan notasi algoritmik (C3)
3.1.3. Siswa mampu menganalisis model algoritma dalam sebuah kasus (C4)
4.1. Membuat alur logika pemrograman komputer
4.1.1. Siswa mampu mengimplementasikan prinsip algoritma dalam menyelesaikan
masalah (P2)
4.1.2. Siswa mampu mendemonstrasikan alur penyelesaian masalah dengan tiga
model notasi algoritmik (P3)
4.1.3. Siswa mampu mendesain model algoritma sekuensial, percabangan, dan
perlangan(P5)
1.1. Masalah
Manusia pada dasarnya hidup dengan berbagai masalah yang
mendatanginya. Hidup pada dasarnya adalah serangkaian aktivitas
untuk menyelesaikan masalah. Dalam Bahasa Indonesia, kata
“masalah” sering disebut juga “persoalan”. Masalah itu sendiri adalah
pertanyaan atau tugas yang harus dicari jawaban atau penyelesaiannya.
Contoh masalah dalam kehidupan sehari-hari.
1. Bu Tisna yang mengajar mata pelajaran Pemrograman Dasar kelas
10 RPL melakukan penilaian praktik di kelas pada setiap siswa.
Setiap siswa mendapatkan nilai sesuai kriteria penilaian. Dari
jawaban tersebut,berapakah dengan nilai tertinggi? Jawaban dari
masalah ini adalah nilai tertinggi.
2. Pada papan pengumuman, tercantum daftar nama siswa kelas 11
Kimia Industri yang sudah tuntas pada praktikum mata pelajaran
Asas Teknik Kimia. Bagaimana cara mengetahui apakah
Rahmawati tuntas pada pelajaran tersebut? Jawaban dari masalah
ini adalah mencari nama Rahmawati pada daftar siswa. Jika
namanya tercantum pada daftar, artinya dia sudah tuntas pada
praktikum.
3. Setiap siswa baru diukur tinggi badannya. Dari pengukuran
tersebut, dihasilkan daftar tinggi badan siswa. Bagaimana urutan
tinggi badan siswa dari siswa terendah ke siswa tertinggi? Jawaban
dari masalah ini adalah daftar tinggi badan siswa yang sudah
terurut dari yang paling rendah hingga paling tinggi.
ALGORITMA
1. Masukkan panjang
2. Masukkan lebar
3. Kalikan panjang dan lebar
4. Tampilkan hasil perkalian
DEKLARASI
panjang, lebar, luas : integer
ALGORITMA
1. Baca(panjang)
2. Baca(lebar)
3. Luas panjang * lebar
4. Tampilkan(luas)
1. Algoritma Sekuensial
Algoritma ini merupakan runtutan (sequence) satu atau lebih
instruksi yang berarti bahwa:
- Tiap instruksi dikerjakan satu per satu
- Tiap instruksi dilaksanakan tepat sekali, tidak ada proses yang
diulang
- Urutan instruksi yang dijalankan processor sama dengan urutan
instruksi yang ditulis dalam algoritmanya
- Algoritma berakhir pada instruksi terakhir
Perhatikan contoh berikut:
Tulislah algoritma untuk membaca nama orang dari keyboard,
kemudian tampilkan tulisan “Hallo” yang diikuti oleh orang itu!
Kasus di atas jika dituliskan dalam notasi diagram alir menghasilkan
alur berikut:
DEKLARASI
nama: String
ALGORITMA
1. Baca(nama)
2. Tampilkan(‘Hallo’ ,nama)
2. Algoritma Percabangan
Algoritma ini cara kerjanya melakukan pemilihan statemen pada
kondisi yang diberikan. Ada dua komponen utama dalam ekspresi
percabangan yaitu kondisi dan pernyataan. Kondisi adalah syarat
dilakukannya sebuah (atau sekelompok) pernyataan, sedangkan
pernyataan dalam konteks ini adalah perintah yang berkaitan
dengan suatu kondisi.
Perhatikan contoh berikut:
Buatlah algoritma yang membaca nominal belanja seorang
pelanggan pada toko XYZ. apabila berbelanja lebih dari 500.000
maka mendapatkan diskon 20 %, jika tidak maka diskon hanya 10
%.
DEKLARASI
nominal, diskon: Real
ALGORITMA
1. Baca(nominal)
2. if (nominal>500000) {
3. diskon = 0,2 * nominal }
4. Else {
5. diskon = 0,1 * nominal }
3. Algoritma Perulangan
Di dalam algoritma ini terdapat perulangan yang dapat dilakukan
beberapa kali sampai kondisi yang ditentukan untuk menghentikan
perulangan sudah tercapai. Struktur perulangan secara umum
terdiri dari dua bagian:
- Kondisi perulangan, yaitu pernyataan yang harus dipenuhi
untuk melaksanakan perulangan
- Badan perulangan, yaitu bagian algoritma yang diulang dalam
kondisi.
PROGRAM UlangSemangat
DEKLARASI
i : integer
ALGORITMA
1. i = 1 //pemberian nilai awal kondisi perulangan
2. while (i<=100 ) {// (ulangi sebanyak 100 kali)
3. Tampilkan(‘Saya pasti bisa jadi
programmer!’)
4. i = i + 1 //menaikkan nilai kondisi perulangan
5. }
Latihan
1. Tentukan apakah pernyataan berikut sudah sesuai dengan prinsip
dalam merumuskan algoritma:
a. Langkah menjalankan sepeda motor dimulai dari
menghidupkan starter, memasukkan kunci kontak, menekan
gigi satu, perbesar gas, kemudian jalankan sepeda motor.
b. Untuk mengetahui apakah pembeli mendapatkan diskon, lihat
terlebih dahulu diskon yang tersedia, kemudian teliti apakah
4. Muncul jendela konfirmasi folder instalasi JDK. Klik next jika ingin
melanjutkan. Apabila ingin mengganti folder instalasi, klik tombol
browse.
1
2
3
5 7
2. Pada pilihan jenis Project pilih Java untuk Categories dan Java
Application pada Projects
2. Pada kotak dialog New Java Class, isikan nama Java Class, sebagai
contoh Praktikum31, kemudian klik finish.
Untuk menjalankan kode program di atas, klik kanan pada nama Java
Class, kemudian klik Run File, atau dapat langsung menggunakan
shortcut Shift + F6. Apabila penulisan kode program benar, akan
muncul tampilan pada panel output sebagai berikut:
.
Program input yang menggunakan panel output membutuhkan import
java.util.Scanner (baris 2), selanjutnya mendeklarasikan variabel
Scanner secara static untuk membaca input dari user (baris 4), dalam
contoh di atas, nama variabel Scanner static adalah masukan. Variabel
untuk menyimpan nilai yang diberikan oleh user harus dideklarasikan
sebelum proses input (baris 6), dalam contoh di atas, nilai disimpan
pada variabel String nama. Proses input dilakukan dengan
menggunakan nextLine() yang disambungkan dengan nama varabel
scanner masukan (baris 8).
Apabila kode program di atas dijalankan, akan muncul pesan pada
panel Output, ”Masukkan Nama Anda:”, selanjutnya user memasukkan
nama. Setelah nama dimasukkan, maka akan muncul pesan ”Nama
Anda adalah ” yang diikuti dengan nama yang telah dimasukkan.
Setelah nama dimasukkan pada kotak dialog, pada panel output akan
muncul pesan ”Nama Anda adalah” yang diikuti dengan nama yang
telah dimasukkan pada kotak dialog.
3. Logic Error
Logic error terjadi bila ada kesalahan logika dalam kode sehingga
program berjalan dan tidak memberikan hasil seperti yang
diinginkan. Misalnya membuat program konversi dari nilai
centimeter ke nilai milimeter, seharusnya konversi dilakukan
dengan mengalikan nilai centimeter dengan 10.
Perhatikan kode berikut:
2. Pada Java Class Bagian1, buatlah program dengan input nama dan
alamat melalui control panel, sedangkan output melalui layar dialog
seperti gambar barikut:
Input Output
4. Boolean
Boolean merupakan tipe data yang menunjukkan nilai true atau
false. Nilai boolean sering digunakan untuk mengatur alur program,
terutama dalam perulangan maupun percabangan.
Berikut keterangan jangkauan nilai yang dapat diterapkan pada tipe
data primitif di atas:
Tipe Besar
Nilai minimal Nilai maksimal
data Storage
8 bit (1
byte -128 127
byte)
16 bit (2
short -32768
byte) 32767
32 bit (4
int -2147483648 2147483647
byte)
64 bit (8
long -9223372036854775808 9223372036854775807
byte)
32 bit (4
float + 3.4E-38 + 3.4E+38
byte)
64 bit (8
double +1.7E-308 + 1.7E+308
byte)
16 bit (2
char \u0000 \uffff
byte)
4.3. Konstanta
Sebagaimana variabel, konstanta juga berfungsi menyimpan sebuah
nilai. Perbedaannya, nilai pada variabel dapat diubah oleh user,
sementara nilai pada konstanta tidak dapat diubah setelah
dideklarasikan. Contoh konstanta adalah π yang dikenal dalam
menghitung luas lingkaran, nilai π disepakati 3,14 sehingga tidak
diizinkan mengubah nilai ini dalam kondisi apapun.
Deklarasi konstanta di Java mirip dengan deklarasi variabel,
perbedaannya adalah menambahkan keyword final di depan tipe
datanya. Inisialisasi dilakukan langsung setelah proses deklarasi atau
pada baris berikutnya. Sekali konstanta diberi nilai, maka nilai tersebut
tidak dapat diganti. Perhatikan contoh berikut:
final double PI=3.14; //deklarasi konstanta PI bernilai 3,14
PI=22; //Error, karena nilai PI sudah dideklarasikan
sebelumnya
final int jumlah; //deklarasi konstanta jumlah bertipe
integer
jumlah=877; //mengisikan nilai pada konstanta jumlah dengan
877
2. Operator Numerik
Operator numerik merupakan operator yang biasa digunakan untuk
melakukan penghitungan matematika. Operator Numerik yang
dikenal dalam Java adalah sebagai berikut:
3. Operator Perbandingan
Operator perbandingan digunakan untuk membandingkan antara
satu nilai dengan nilai lainnya. Hasil dari operator perbandingan ini
adalah boolean yang bernilai true atau false. Java memiliki beberapa
operator perbandingan sebagai berikut:
String tulisan1,tulisan2,tulisan3;
tulisan1 = ”Selamat Datang ”
tulisan2 = ”di SMK Negeri 1 Tapen”
tulisan3 = tulisan1+tulisan2
Operasi aritmatika pada bilangan real secara garis besar sama dengan
operasi aritmatika, perbedaannya adalah tidak ada operasi modulus
pada bilangan real. Hal ini terjadi karena bilangan real dapat
menampilkan angka pecahan/angka setelah koma. Untuk mengujinya,
Tipe data dalam variabel yang digunakan operasi aritmatika bisa saja
berbeda pada baik pada bilangan bulat maupun bilangan real. Misalnya
variabel untuk menyimpan nilai dari user bertipe byte, sementara
variabel untuk menyimpan nilai operasi aritmatika bertipe int.
Catatan penting yang tidak boleh dilupakan, tipe data yang digunakan
untuk variabel yang menyimpan data hasil operasi aritmatika harus
lebih besar jangkauannya. Pesan kesalahan akan ditampilkan apabila
variabel yang menyimpan data hasil memiliki jangkauan yang lebih
kecil dibandingkan variabel yang akan diolah melalui operasi
aritmatika.Perhatikan urutan jangkauan tipe data dari yang besar
sampai yang kecil di bawah ini.
Penggunaan tipe data yang berbeda tidak hanya terjadi di dalam jenis
yang sama (misalnya sesama bilangan bulat saja atau sesama bilangan
real), tetapi dapat pula terjadi pada jenis yang berbeda. Misalnya
variabel yang menyimpan data masukan dari user bertipe bilangan
bulat, sementara variabel yang digunakan untuk menyimpan hasil
operasi aritmatika bertipe bilangan real.
Apabila terjadi kasus seperti di atas, maka harus dilakukan proses
konversi. Proses konversi antar tipe data bilangan bulat ke bilangan real
atau sebaliknya dapat dilakukan secara langsung maupun melalui
Latihan
1. Buatlah sebuah Java Class yang menerima input berupa 3 variabel
angka, kemudian lakukan operasi bilangan dengan output sebagai
berikut :
langkah1
langkah2
if (kondisi1){
pernyataan1
}
langkah3
Contoh kasus : Setiap pembeli pada toko Kaneta Jaya ditanyakan harga
barang dan berapa unit. Program akan menghitung total harga
pembelian. Pembeli mendapatkan informasi berupa berapa total harga
langkah1
langkah2
if (kondisi1){
pernyataan1
}
Else {
Pernyataan2
}
langkah3
Contoh kasus : Setiap pembeli pada toko Kaneta Jaya ditanyakan harga
barang dan berapa unit. Program akan menghitung dan menampilkan
total harga pembelian. Apabila total harga pembelian lebih besar dari
5000, maka ada potongan harga 1000, dan jika kurang dari 5000 akan
diberi potongan 500. Pembeli mendapatkan informasi total harga
pembelian yang telah dikurangi dengan potongan.
Untuk menguji algoritma percabangan dengan 1 kondisi seperti kasus
di atas, buatlah sebuah Java Class dengan nama Praktikum62.
Kemudian ketikkan kode program berikut:
langkah1
langkah2
if (kondisi1){
pernyataan1
}
elseif
(kondisi2){
Pernyataan2
}
elseif (kondisi
n-1){
pernyataan n-1
}
else{
Pernyataan n
}
langkah3
Pada kode di atas, terdapat dua kondisi yaitu jurusan dengan tipe data
String, dan ranking dengan tipe data integer. Pengujian nilai pada
Latihan
Tentukan jenis algoritma percabangan untuk kasus berikut, buatkan
diagram alir dan kode programnya :
1. Program membaca nilai bilangan bulat, kemudian menentukan
apakah nilai tersebut berupa bilangan ganjil atau genap.
2. Cuci motor Sekawan Jaya memberikan bonus bagi pelanggan,
apabila mencuci motor sebanyak 5 kali maka mendapatkan hadiah
gratis 1 kali cuci motor.
3. Program membaca masukan nilai integer dari 0 sampai 9. Untuk
setiap nilai yang dimasukkan, program menampilkan angka dalam
bentuk huruf. Apabila ada nilai yang lebih dari 9 muncul pesan
kesalahan ”Nilai diluar jangkauan”
4. Dalam rangka hari guru, sebuah minimarket membuat program
diskon. Pada saat pembayaran, jika pembeli menunjukkan Kartu
Identitas Guru, maka pembeli langsung mendapatkan diskon
belanja 10 %.
5. Untuk meningkatkan minat baca siswa, perpustakaan SMK Negeri 1
Tapen membuat program. Pada awalnya batas waktu peminjaman
buku adalah 1 hari, tetapi jika siswa meminjam buku lebih dari 3
judul, maka siswa mendapatkan tambahan batas waktu
peminjaman 2 hari.
6. Sebuah operator telekomunikasi selular membuat promo untuk
menarik minat pelanggan. Setiap hari, operator tersebut
menghitung nilai pulsa yang digunakan oleh pelanggan. Jika
pelanggan menghabiskan pulsa minimal 1000 rupiah, maka ia
while (kondisi){
bodi_perulangan;
}
do {
bodi_perulangan;
} while (kondisi);
for
(inisiasi;kondisi;pasca_iterasi)
{
bodi_perulangan;
}
for
(inisiasi1;kondisi1;pasca_iterasi1)
{
bodi_perulangan1;
for
(inisiasi2;kondisi2;pasca_iterasi2)
{
bodi_perulangan2;
}
}