MODUL AJAR SENI RUPA KELAS 6 KURIKULUM MERDEKA.pdf
Diktat kuliah Algoritma dan Pemograman
1. DIKTAT KULIAH
ALGORITMA DAN PEMROGRAMAN
Disusun oleh
Sumarsono
Program Studi Teknik Informatika
Fakultas Sains dan Teknologi
Universitas Islam Negeri Sunan Kalijaga
Yogyakarta
2013
i
2. KATA PENGANTAR
Assalamu’alaikum wr wb
Kami panjatkan rasa syukur kepada Allah Subhanahuwata’ala yang telah
melimpahkan rahmatNya, sehingga kami mampu menyelesaikan penyusunan buku
panduan praktikum Pemrograman Terstruktur.
Buku ini ini terdiri dari 14 modul dengan asumsi setiap modul diselesaikan
dalam 1 kali praktikum. Setiap modul berisi pengantar materi yang akan dibahas,
kemudian dilanjutkan dengan latihan soal dikerjakan di kelas serta latihan soal
dikerjakan di rumah.
Adapun materi utama yang dibahas adalah pengantar bahasa c, tipe data,
operator, array, struct / class, kondisi percabangan if dan switch case, perulangan for
dan while, function, pointer, header, files hingga manajemen memori.
Diharapkan setelah mahasiswa mempelajari secara tekun dan rajin dengan
melakukan praktek berulang-ulang baik di kelas maupun di rumah, mahasiswa akan
mampu dan trampil dalam pemrograman dasar khususnya bahasa C.
Selanjutnya, kami ucapkan banyak terima kasih kepada seluruh asisten
pemrograman terstruktur yang telah banyak membantu sehingga modul pemrograman
terstruktur ini dapat diselesaikan.
Wassalamu’alaikum wr wb
Yogyakarta, Juni 2012
Dosen Pengampu
Sumarsono
ii
3. DAFTAR ISI
Halaman Judul…………………………………………………………………………….
i
Kata pengantar…………………………………………………………………………….
ii
Daftar isi…………………………………………………………………………………..
iii
BAB 1 : Pengenalan Algoritma .......................................................................................... 1
BAB 2 : Flowchart dan Pseudocode ................................................................................... 9
BAB 3 : Pengantar Pemrograman C ................................................................................... 14
Modul 4 : Algoritma Sequence ........................................................................................... 19
Modul 5 : Algoritma Percabangan 1 ................................................................................... 23
Modul 6 : Algoritma Percabangan 2 ................................................................................... 26
Modul 7 : Algoritma Perulangan 1 ..................................................................................... 28
Modul 8 : Algoritma Perulangan 2 .................................................................................... 32
Modul 9 : Array dimensi tunggal ....................................................................................... 36
Modul 10 : Array dimensi banyak ...................................................................................... 40
Modul 11 : String ................................................................................................................ 44
Modul 12 : Pengenalan Fungsi ........................................................................................... 50
Modul 13 : Fungsi Lanjut ................................................................................................. 54
Modul 14 : File Header ..................................................................................................... 55
iii
4. BAB 1
PENGANTAR ALGORITMA
A. Pengertian Algoritma
Algoritma berasal dari nama penulis buku Arab yaitu Abu Ja'far Muhammad ibnu
Musa Al- Khuwarizmi.
Algoritma Langkah-langkah yang logis dan terstruktur untuk menyelesaikan suatu
masalah
Algoritma merupakan suatu :
a. Tahapan-tahapan untuk mencapai hasil.
b. Tahapan itu bisa berarti proses.
c. Hasil itu bisa berarti produk.
Algoritma juga merupakan suatu :
1. Susunan yang terurut dan logis dalam menyelesaikan masalah.
2. Setiap masalah sangat dimungkinkan memiliki proses penyelesaian yang
berbeda.
3. Perbedaan penyelesaian terhadap suatu masalah dipengaruhi oleh kemampuan
dan pengetahuan seseorang terhadap masalah yang dihadapi
Ciri-ciri Algoritma yang baik adalah :
a. Ditulis secara berurutan
b. Tidak ada yang bermakna “ganda” (ambiguous)
c. Penyelesaiannya “Berhingga” atau ada titik akhir.
Identifikasi masalah :
Dengan disadari atau tidak disadari dalam kehidupan kita sehari-hari banyak halhal rutinitas yang dikerjakan secara terurut, misalnya bagaimana cara manusia
berpakaian, bagaimana cara manusia mandi, bagaimana cara manusia memasak
nasi, dan lain-lain. Tentu setiap orang memiliki cara pandang dan langkah urutan
yang berbeda dalam menggunakan pakaian secara lengkap. Itulah algoritma.
Banyak masalah-masalah dimasyarakat yang sebenarnya adalah suatu algoritma
tetapi tidak berhubungan sama sekali atau diselesaikan atau dikerjakan dengan
menggunakan bantuan komputer, seperti contoh yang telah disebutkan diatas.
Asalkan kita dapat menyusun dengan benar dan logis urutan-urutan menurut norma
yang ada maka kita sebenarnya telah menyusun algoritma.
Perhatikan contoh dibawah ini, bagaimana anda menyusun urutan yang logis
dalam memasak mie instan dengan berbagai variasi pelengkapnya.
1
5. Gambar 1. Mie Rebus Telor
Gambar 2. Mie Goreng Udang Sambal
Jawaban dari gambar diatas, tentu anda memiliki tata cara tersendiri untuk menghasilkan
masakan terbaik dari sisi tampilan maupun rasa. Dengan bahan dasar yang sama tetapi
menghasilkan bentuk yang berbeda tentunya dalam proses pembuatannya memiliki urutan
yang berbeda-beda. Jika anda menggunakan urutan dan tata cara yang sama tentunya anda
tidak menggunakan urutan yang logis untuk menghasilkan masakan terbaik. Itulah
algoritma.
B. Kaitan Algoritma dan Komputer
Suatu algoritma dapat diselesaikan dan diwujudkan dengan menggunakan bantuan
komputer. Lantas komputer yang seperti apa? yaitu :
a. Komputer yang bisa memahami keinginan manusia.
b. Komputer yang bisa memahami bahasa manusia.
c. Komputer yang bisa menterjemahkan bahasa manusia dengan bahasa komputer.
d. Komputer yang bisa berfungsi sebagai bahasa penterjemah.
e. Bahasa penterjemah ini dimaksudkan untuk menterjemahkan bahasa yang dibuat
oleh manusia dengan bahasa yang dipahami oleh mesin komputer.
2
6. Bahasa Penterjemah
Orang mengatakan istilah penterjemah disini dengan istilah “Compiler”. Di dunia
pemrograman komputer, istilah compiler ini sudah tidak asing lagi, hal ini karena compiler
menjadi sarana utama untuk menterjemahkan bahasa program dengan bahasa mesin.
Compiler sudah melekat kepada merk bahasa program yang telah disediakan (produksi)
oleh perusahaan besar. Contoh-contoh bahasa program yang banyak beredar dimasyarakat,
diantaranya :
C. Cara Penyelesaian Masalah dengan Komputer
Untuk menyelesaikan masalah hingga pemanfaatan komputer, dapat dilihat pada bagan
dibawah ini
Identifikasi Detail
Masalah
Algoritma
Program Komputer
Hasil / Solusi
3
7. BAB 2
NOTASI ALGORITMA
Sebelum menjelaskan tentang notasi algoritma, perlu ada penjelasan terkait dengan
algoritma, bahwa algoritma itu memiliki ciri dan sifat tertentu.
Ciri-ciri algoritma adalah :
Ada input
Ada proses
Ada output
Memiliki instruksi-instruksi yang jelas dan tidak ambigu
Sifat Algoritma adalah :
Tidak menggunakan simbol atau sintaks dari suatu bahasa pemrograman
Tidak tergantung pada suatu bahasapemrograman
Notasi-notasinya dapat digunakan untuk seluruh bahasa manapun
Algoritma lebih bersifat general.
Pada dasarnya suatu algoritma dapat ditulis menggunakan 2 cara yaitu
A. Diagram Alir ( Flowchart)
Suatu gambar dengan simbol yang spesifik menjelaskan tentang aliran logika dari suatu
masalah untuk menghasilkan solusi. Setiap simbol dihubungkan dengan suatu garis
panah. Beberapa simbol yang sering digunakan seperti tabel dibawah ini
B. Pseudo-code
Pseudo-code berarti menyerupai kode. Maksud kode adalah elemen-elemen dalam bahasa
pemrograman komputer seperti simbol aritmatika, perintah input dan output tetapi bahasa
yang digunakan adalah bahasa yang mudah dipahami secara universal dan lebih ringkas.
Kode-kode ini merupakan penjelasan cara menyelesaikan suatu masalah.
Contoh masalah 1 : Sequence
4
8. Mencari nilai Luas persegepanjang
Algoritma :
Untuk mendapatkan nilai luas persegipanjang, pertama tentukan nilai panjang dan
lebarnya. Kemudian hitunglah (kalikan) dua nilai tersebut. Hasil perkaliannya merupakan
nilai luas persegipanjang.
Penyelesaikan dengan pseudo-code :
1. Input panjang
2. Input lebar
3. Hitung luas panjang * lebar
4. Print luas
Penyelesaikan dengan Flowchart :
Mulai
Input panjang
Input lebar
Luas = panjang * lebar
Output Luas
Selesai
Contoh masalah 2 : Percabangan
Apa yang dilakukan ketika mengendarai kendaraan dalam persimpangan lampu traffic
signal ? jika Green berarti Go jika tidak Green berarti Stop.
Algoritma :
Untuk melakukan GO atau STOP sangat tergantung nilai Signalnya. Jika Signal berisi
Green maka actionnya GO. Jika bukan Green maka Actionnya STOP.
Penyelesaikan dengan pseudo-code :
1. Read Signal
2. If Signal is Green then
Set Action GO
Else
Set Action STOP
3. Print Action
Penyelesaikan dengan Flowchart :
5
9. Contoh masalah 3 : Perulangan
Mencetak angka dari sederatan angka 1 sampai dengan 99 ?
Algoritma :
Pertama lakukan inisialisasi terhadap sebuah variable dgn angka 0, kemudian tambahkan
variable tersebut dgn 1 sehingga nilai variable tersebut bertambah 1. Kemudian cetaklah
nilai variable tersebut. Lakukan pengecekan apakah nilai variable tersebut sudah mencapai
100? Jika belum maka lakukan lagi perintah penambahan nilai 1 terhadap variablenya. Jika
sudah mencapai seratus maka aliran selesai.
Penyelesaikan dengan pseudo-code :
1. Inisialisasi nilai X dengan 0
2. Tambahkan nilai X dengan 1
3. Print X
4. If X=100 then kembali ke langkah no 2
Mulai
Inisialisasi X 0
Tambahkan X X + 1
Output X
Ya
X=1
00
tidak
Selesai
6
10. BAB 3
PENGENALAN PEMROGRAMAN C
1.1 Pengantar
Program merupakan serangkaian instruksi yang dissusun untuk menyelesaikan
sebuah masalah dengan menggunakan komputer. Program juga merupakan perwujudan
atau implementasi dari penyusunan algoritma baik dalam bentuk flowchart maupun
pseudo-code kedalam bahasa pemrograman tertentu.
Bahasa C merupakan perkembangan dari bahasa BCPL yang dikembangkan oleh
Martin Richards pada tahun 1967. Selanjutnya bahasa ini memberikan ide kepada Ken
Thompson yang kemudian mengembangkan bahasa yang disebut bahasa B pada tahun
1970. Perkembangan selanjutnya dari bahasa B adalah bahasa C oleh Dennis Ricthie
sekitar tahun 1970-an di Bell Telephone Laboratories Inc. (sekarang adalah AT&T Bell
Laboratories). Bahasa C pertama kali digunakan di computer Digital Equipment
Corporation PDP-11 yang menggunakan system operasi UNIX.
Hingga saat ini penggunaan bahasa C telah merata di seluruh dunia. Hampir semua
perguruan tinggi di dunia menjadikan bahasa C sebagai salah satu mata kuliah wajib.
Selain itu, banyak bahasa pemrograman populer seperti PHP dan Java menggunakan
sintaks dasar yang mirip bahasa C. Oleh karena itu, kita juga sangat perlu mempelajarinya.
1.2 Editor Bahasa C / C++
Dipasaran tersedia berbagai produk untuk editor Bahasa C seperti : Turbo C, C Free,
Codeblock, atau Dev C++, dan lain-lain.
Contoh editor C-Free
1.3 Penulisan Program Bahasa C
Program Bahasa C tidak mengenal aturan penulisan di kolom tertentu, jadi bisa
dimulai dari kolom manapun. Namun demikian, untuk mempermudah pembacaan program
dan untuk keperluan dokumentasi, sebaiknya penulisan bahasa C diatur sedemikian rupa
sehingga mudah dibaca, mudah dalam penelusuran baris program.
Bagan inti dari Bahasa C++ adalah :
7
12. Tipe data dan Operator
Tipe data
Operator
Tipe data
Var 2
Tipe data
Var hasil
integer
Integer
float
Float
Float
Float
Float
Var 1
Integer
Integer
Float
+-*
/ sqrt
+-*
/ sqrt
+-*
/ sqrt
1.5 Variable
Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai
tertentu di dalam proses program. Berbeda dengan konstanta yang nilainya selalu tetap,
nilai dari suatu variable bisa diubah-ubah sesuai kebutuhan. Nama dari suatu variable dapat
ditentukan sendiri oleh pemrogram dengan aturan sebagai berikut:
1. Terdiri dari gabungan huruf dan angka dengan karakter pertama berupa huruf.
2. Bahasa C bersifat case-sensitive artinya huruf besar dan kecil dianggap berbeda.
Jadi antara nim, NIM dan Nim dianggap berbeda,
3. Tidak boleh mengandung spasi.
4. Tidak boleh mengandung symbol-simbol khusus, kecuali garis bawah (underscore).
Yang termasuk symbol khusus yang tidak diperbolehkan antara lain : $, ?, %, #, !,
&, *, (, ), -, +, = dsb
5. Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai.
Contoh penulisan variabel yang benar :
NIM, nim, nama_mhs, f3098, f4, nilai.
Contoh penamaan variable yang salah:
%nilai_mahasiswa, 80mahasiswa, rata-rata, nama mhs, awas!
Contoh Deklarasi Variable :
int x,y;
float a,b
char huruf
double x
long int x
Contoh Inisialisasi variabel
int jumlah = 10;
char kata = ‘a’;
float a = 10.5;
1.6 Konstanta
Konstanta merupakan suatu nilai yang tidak dapat diubah selama proses program
berlangsung. Konstanta nilainya selalu tetap. Konstanta harus didefinisikan terlebihdahulu
di awal program. Konstanta dapat bernilai integer, pecahan, karakter dan string.
Contoh konstanta : 50; 13; 3.14; 4.50005; ‘A’; ‘Bahasa C’.
9
13. Contoh Konstanta bernama
const float PHI = 3.141592;
const int MAX = 15;
Deklarasi konstanta juga bisa menggunakan preprocessor #define.
Contohnya:
#define PHI 3.14
#define nim “0111500382”
1.7 Contoh Program
#include <iostream.h>
void main(){
//deklarasi variable sesuai tipe datanya
int x; float y; char z; double w;
//Inisialisasi atau memberi nilai awal kepada variable
x = 10; y = 9.45;
z = 'C';
w = 3.45E+20;
//Menampilkan kalimat dan nilai ke layar monitor
Cout<<”Nilai dari x adalah "<< x;
Cout<<”Nilai dari y adalah "<< y;
Cout<<”Nilai dari z adalah "<< z;
Cout<<”Nilai dari w adalah "<< w;
}
10
14. BAB 4
ALGORITMA SEQUENCE (RUNTUNAN)
Dalam algoritma runtunan (sequence) bahwa setiap pernyataan dikerjakan secara berurutan
sesuai dengan urutan penulisannya. Sebuah instruksi dilaksanakan setelah instruksi
sebelumnya selesai dilaksanakan sehingga urutan instruksi menentukan keadaan akhir
algoritma.
Hal-hal yang menjadi menjadi perhatian dalam sequence adalah
Tiap aksi dikerjakan satu persatu
Tiap aksi dilakukan tepat sekali saja, tidak ada aksi atau baris perintah yang
diulang-ulang
Urutan aksi yang dilaksanakan pemrosesan sama dengan urutan aksi sebagaimana
yg tertulis di dlm algoritmanya
Akhir dari aksi, merupakan akhir algoritma.
Contoh runtunan
Diberikan 2 buah gelas, A dan B; gelas A berisi air berwarna merah, gelas B berisi air
berwarna biru. Pertukarkan isi kedua gelas itu sedemikian sehingga gelas A berisi air
berwarna biru dan gelas B
berisi air berwarna merah seperti ilustrasi tabung dibawah ini :
Tentunya anda tidak bisa melakukan seperti dibawah ini
Tuangkan air dari gelas A kedalam gelas B
Tuangkan air dari gelas B kedalam gelas A
Caranya :
Kita siapkan satu buah gelas C untuk menampung sementara air dari gelas A sebelum
dipindah ke gelas B
Algoritma yang benar adalah
Tuangkan air dari gelas A kedalam gelas C
Tuangkan air dari gelas B kedalam gelas A
Tuangkan air dari gelas C kedalam gelas B
Contoh Soal :
Soal 1
Menghitung Luas dan Keliling Lingkaran
1. Algoritma mencari nilai Akar dan nilai Pangkat dari suatu bilangan adalah
Masukkan nilai suatu bilangan X
Masukkan nilai suatu bilangan Y
Hitung akar adalah sqrt(X)
Hitung pangkat adalah pow(X, Y)
Cetak akar dan pangkat
11
15. 2. Pseudocode mencari nilai Akar dan nilai Pangkat dari suatu bilangan adalah
Deklarasi
X, Y : int
Akar, pangkat : float;
Deskripsi
Input (X)
Input (Y)
akar sqrt(X)
pangkat pow(X,Y)
Print (akar)
Print (pangkat)
3. Flowchart mencari nilai Akar dan nilai Pangkat dari suatu bilangan adalah
Mulai
Input X, Y
akar <- sqrt( X)
pangkat <- pow( X,Y)
Cetak akar, pangkat
Selesai
Soal 2
Menghitung Konversi Suhu dari Celcius menjadi Reamur dan Fahrenheit
1. Algoritma mencari nilai konversi suhu adalah
Masukkan nilai suhu Celsius
Hitung konversiFahrenheit adalah 9 * C / 5 + 32
Hitung konversiReamur adalah 4 * C / 5
Cetak konversiFahrenheit dan konversiReamur
2. Pseudocode mencari nilai Akar dan nilai Pangkat dari suatu bilangan adalah
Deklarasi
C : int
konversiFahrenheit, konversiReamur : float;
Deskripsi
Input (C)
konversiReamur 4 * C / 5
konversiFahrenheit 9 * C / 5 + 32
Print (konversiReamur)
Print (konversiFahrenheit)
12
16. 3. Flowchart mencari nilai Akar dan nilai Pangkat dari suatu bilangan adalah
Mulai
Input C
konversiReamur 4 * C /5
konversiFahrenheit 9 * C/5 +32
Cetak konversiReamur
konversifahrenheit
Selesai
Soal 3
Menghitung jarak antara dua titik
1. Algoritma nilai jarak antara dua titik adalah
Masukkan titik koordinat X1 dan Y1
Masukkan titik koordinat X2 dan Y2
Hitung jarak adalah sqrt (pow((X1- X2),2) + pow((Y1 – Y2),2))
Cetak jarak
2. Pseudocode nilai jarak antara dua titik adalah
Deklarasi
X1,X2,Y1,Y2: int
Jarak : float;
Deskripsi
Input (X1,X2, Y1, Y2)
Jarak sqrt (pow((X1- X2),2) + pow((Y1 – Y2),2))
Print (jarak)
13
17. 3. Flowchart nilai jarak antara dua titik adalah
Mulai
Input X1, X2, Y1, Y2
Jarak sqrt (pow((X1- X2),2) + pow((Y1 – Y2),2))
Cetak jarak
Selesai
Soal 4
Menghitung simpangan baku
1. Algoritma nilai simpangan baku dari 3 buah data adalah
Masukkan data pertama, kedua dan ketiga X1, X2, dan X3
Hitung Xrata 3 data tersebut (X1 + X2 + X3) / 3
Hitung SimpanganBaku adalah sqrt ((pow((X1-Xrata),2) + pow((X2-Xrata),2)
+ pow((X3-Xrata),2) ) / 3 )
Cetak SimpanganBaku
2. Pseudocode nilai simpangan baku adalah
Deklarasi
X1,X2,X3 : int
Xrata, SimpanganBaku : float;
Deskripsi
Input (X1,X2, X3)
Xrata (X1 + X2 + X3) / 3
SimpanganBaku sqrt ((pow((X1-Xrata),2) + pow((X2-Xrata),2) +
pow((X3-Xrata),2) ) / 3 )
Print (SimpanganBaku)
14
18. 3. Flowchart nilai simpangan baku adalah
Mulai
Input X1, X2, X3
Xrata (X1 + X2 + X3) / 3
SimpanganBaku sqrt ((pow((X1-Xrata),2) + pow((X2-Xrata),2) +
pow((X3-Xrata),2) ) / 3 )
Cetak SimpanganBaku
Selesai
Implementasi coding program C++
// Latihan 1
#include <math.h>
#include<iostream.h>
void main()
{
int x,y;
float akar,pangkat;
cout<<"Nilai Akar dan Pangkatn";
cout<<"=================================== n";
cout<<"Bilangan Basis ="; cin>>x;
cout<<"Bilangan Pemangkat ="; cin>>y;
akar = sqrt(x);
pangkat = pow(x,y);
cout<<"Nilai Akar dari "<<x <<" adalah "<<akar<<"n";
cout<<"Nilai pangkat dari "<<x <<" dan "<<y<<" adalah "<<pangkat<<"n";
}
15
19. // Latihan 2
#include<iostream.h>
void main()
{
int C;
float F,R;
cout<<"Bilangan Celcius =";cin>>C;
R = 4 * C / 5;
F = 9 * C / 5 + 32;
cout<<"Nilai Konversi ke Reamur adalah "<<R<<"n";
cout<<"Nilai Konversi ke Fahrenheit adalah "<<F<<"n";
}
// Latihan 3
#include<iostream.h>
#include<math.h>
void main()
{
int X1,X2,Y1,Y2;
float jarak;
cout<<"Jarak titik (X1,Y1) dengan (X2,Y2) n";
cout<<"=================================== n";
cout<<"Titik Koordinat X1 =";cin>>X1;
cout<<"Titik Koordinat Y1 =";cin>>Y1;
cout<<"Titik Koordinat X2 =";cin>>X2;
cout<<"Titik Koordinat Y2 =";cin>>Y2;
jarak = sqrt (pow((X1- X2),2) + pow((Y1 - Y2),2));
cout<<"Jarak antara titik koordinat 1 dan 2 adalah "<<jarak<<"n";
}
16
20. // Latihan 4
#include<iostream.h>
#include<math.h>
void main()
{
int X1,X2,X3;
float Xrata, SB;
cout<<"Simpangan Baku dari 3 buah data n";
cout<<"=================================== n";
cout<<"Data ke 1 =";cin>>X1;
cout<<"Data ke 2 =";cin>>X2;
cout<<"Data ke 3 =";cin>>X3;
Xrata = (X1+X2+X3) / 3;
SB= sqrt ((pow((X1-Xrata),2)+pow((X2-Xrata),2)+pow((X3-Xrata),2) ) / 3 );
cout<<"X rata-rata adalah "<<Xrata<<"n";
cout<<"Simpangan Baku adalah "<<SB<<"n";
}
17
21. BAB 5
ALGORITMA PERCABANGAN 1
Percabangan merupakan proses penyeleksian kondisi yang menyebabkan satu atau lebih
statement/perintah akan diproses atau dapat juga menyebabkan satu atau lebih
statement/perintah tidak diproses, tergantung dari hasil kondisi yang diseleksinya.
Untuk mengecek suatu ekspresi (kondisi) dapat digunakan pernyataan If ..... atau If......else
atau Nested If atau Switch
Dalam algoritma percabangan / seleksi/ pemilihan anda dituntut untuk memahami operator
relational seperti dalam tabel dibawah ini
Operator
<
<=
>
>=
==
!=
Arti
Kurang dari
Kurang dari sama dengan
Lebih dari
Lebih dari sama dengan
Sama dengan
Tidak sama dengan
Contoh
If (x < y) : Apakah x kurang dari y
If ( x <= y) : Apakah x kurang dari sama dengan y
If (x > y) : Apakah x lebih dari y
If (x >= y) : Apakah x lebih dari sama dengan y
If (x = = y) : Apakah x sama dengan y
If ( x != y) : Apakah x tidak sama dengan y
Bentuk dasar dari percabangan
Kondisi
Yes
No
Statement 1
Statement 2
Contoh :
Kondisi : kondisi yang ditest untuk menentukan apakah statemen
akan dikerjakan
Statemen : statemen-statemen yang akan dikerjakan jika kondisi
bernilai true / false
jika kondisi bernilai True maka Statement 1 di eksekusi
jika kondisi bernilai false maka Statement 2 di eksekusi
18
22. Contoh :
Menampilkan bilangan genap apabila bilangan yang di
input habis di bagi 2.
IF (bilangan % 2 == 0)
cout(“Bilangan Genap”)
IF (bilangan % 2 != 0)
cout(“Bilangan Ganjil”)
Algoritmanya :
Menginput nilai pada variabel ‘Bilangan’
Jika (Bilangan habis dibagi 2) maka kerjakanbaris 3; jika tidak kerjakan baris 4
Menampilkan/mencetak “Bilangan Genap”
selesai
Pseudo-code
input(Bilangan)
if (Bilangan % 2 == 0)
“Bilangan Genap”
Flowchart
mulai
Input bil
yes
Bil % 2 =
0
no
selesai
19
Output
“Bilangan
Genap”
23. Bagaimana algoritmanya jika flowchart diatas diubah menjadi flowchart seperti
gambar dibawah ini
mulai
Input bil
yes
Bil % 2 =
0
Output
“Bilangan
Genap”
no
output
“Bilangan
Ganjil”
selesai
Bagaimana pula jika flowchart menjadi seperti gambar dibawah ini
mulai
Input Bil
yes
Bil % 2 = 0
no
Hasil =”Bilangan ganjil”
Output Hasil
selesai
20
Hasil =”Bilangan genap”
24. Latihan
1. Dibaca dua buah bilangan yang membedakan apakah A > B, apabila lebih besar
maka berkomentar “Benar”
2. Dibaca dua buah bilangan yang membedakan apakah A < B, apabila lebih kecil
maka berkomentar “Salah”
3. Apabila tinggi seseorang > 160cm, dikategorikan “Manusia Melar”
4. Apabila yang dimasukkan angka > 5, maka Y = angka*10+100
5. Apabila nilai ujian < 60, maka “Tidak Lulus”
6. Jika Total Belanja > 5jt, maka mendapat diskon 5% dari total belanja
7. Menentukan bilangan yang dimasukkan adalah bilangan genap
8. Apabila Total Belanja < 100.000, maka “Tidak Mendapatkan Diskon”. [Total
Belanja = Quantity Barang*Harga Brg]
9. Menentukan tahun yang dimasukkan adalah tahun kabisat
21
25. BAB 5
ALGORITMA PERCABANGAN 2
Dalam percabangan yang kedua ini, akan dibahas tentang cabang-cabang dari percabangan
(Nested if) serta dibahas juga tentang switching.
A. Nested If
Nested if disebut juga dengan pernyataan bersarang. Jika didalam suatu ”pernyataan if
” memunculkan suatu ”pernyataan if” yang baru maka yang demikian itu disebut
dengan nested if.
bentuk flowchart dasar dari nested if dapat dilihat pada gambar dibawah ini. Gambar
ini menjelaskan bahwa suatu Nested if hanya dapat dieksekusi jika ”pernyataan if” nya
menghasilkan kondisi benar atau nilai kebenaran TRUE
No
yes
No
yes
No
Bentuk programnya, seperti dibawah ini :
If (employed==’y’)
{
If (recentGrad ==’y’)
{
cout<<”you are the top”;
}
else
{
cout<<”you must be recent college”;
}
}
22
yes
Nested If
26. else
{
cout<<”you must be employed to qualify ”;
}
Bentuk nested if yang lain adalah
Contoh Nested If
Problema masalah
Diketahui bahwa waktu komputer disimpan dalam format 24 jam. Anda diminta
untuk mencetak waktu dalam format AM/PM
Penyelesaian dengan algoritma :
1. Tentukan Jam
2. Tentukan Menit
3. if Jam sama dengan 0 then
Cetak 12
Else
If jam diantara 1 dan 12 then
Cetak jam
Else
Cetak jam – 12
4. Cetak tanda titik “.”
5. Cetak menit
6. if jam kurang dari 12 then
Cetak “AM”
Else
Cetak “PM”
23
27. Flowchartnya adalah
B. Switch
Perintah SWITCH merupakan pernyataan yang dirancang untuk menangani pengambilan
keputusan yang melibatkan sejumlah pilihan alternatif yang diantaranya untuk
menggantikan pernyataan IF bertingkat. Perintah yang digunakan untuk
mengimplementasikan struktur multi alternative.
Statement switch akan menyeleksi kondisi yang diberikan kemudian membandingkan
hasilnya dengan konstanta-konstanta yang ada di case. Apabila hasil dari kondisi sama
dengan nilai dari konstanta tertentu, misalnya konstanta2, maka yang akan diproses adalah
statement yang ada pada case konstanta2 sampai ditemui statement break. Jika semua
konstanta yang dibandingkan tidak ada yang sama, maka yang diproses adalah statement
yang berada di default.
Ada 2 macam switch :
Swicth tunggal
Swicth bersarang
Bentuk Flowchart Switch Tungg al :
24
28. “Untuk kasus yang lebih dari dua kasus, struktur CASE dapat menyederhanakan
kasus IF..THEN..ELSE yang bertingkat-tingkat”
Format penulisan switch tunggal:
switch (switch-expression)
{
case value1:
statement(s) 1;
break;
case value2:
statement(s) 2;
break;
…
case valueN:
statement(s) N;
break;
default:
statement(s) for default;
}
Contoh penulisan switch di program :
cin<<X;
switch (X)
{
case 1: cout>>"Nilainya 65"; break;
case 2: cout>>"Nilainya 70"; break;
case 3: cout>>"Nilainya 80"; break;
case 4: cout>>"Nilainya 90"; break;
default: cout>>"Tidak ada nilainya";
}
C. Latihan
1. Mencari jumlah hari dari suatu bulan tertentu. Sebagai catatan : bulan 4, 6, 9 11
jumlah hari 30. Bulan 2 tergantung tahunnya ( 28/29 hari)
2. Dalam acara orientasi studi, seorang peserta harus mencari tandatangan.
Tandatangan dosen dinilai 3, tandatangan mahasiswa senior yang panitia dinilai 2,
tandatangan karyawan dan mahasiswa senior lain 1. Peserta dinyatakan lulus bila
berhasil mendapatkan nilai 80 atau lebih, mendapat hukuman ringan bila < 80
tapimasih lebih dari 60, selain itu mendapat tugas berat
3. Apabila memasukkan 1 maka “Senin”, kalau tidak apabila memasukkan 2, maka
“Selasa” kalau tidak apabila memasukkan 3 maka “Rabu”, kalau tidak apabila
memasukkan 4 maka “Kamis”, kalau tidak apabila memasukkan 5 maka “Jum’at”,
kalau tidak apabila memasukkan 6 maka “Sabtu”, kalau tidak apabila memasukkan
7 maka “Minggu”, kalau tidak semuanya maka “Kode Dari Hari Tidak Ada”.
25
29. 4. Membuat menu sebagai berikut :
Menu :
A : Menghitung Kubus
1. Isi Kubus
2. Luas Kubus
B : Menghitung Luas Lingkaran
5. Pembelian yang mencapai nilai tertentu akan mendapatkan suatu potongan
pembelian yang besarnya sesuai tabel berikut :
Total Pembelian (Rp)
Potongan(Rp)
0 – 1000
100
1001 – 10.000
500
10.001 – 30.000
2.000
> 30.000
4.000
Hitung besarnya potongan dan nilai yang harus dibayar untuk masing-masing
6. Bulan februari mempunyai jumlah hari yang unik. Jumlah harinya ada yang 28 hari
dan ada yang 29 hari. Bulan februari mempunyai jumlah hari 29 bila berada pada
tahun kabisat (tahun yang habis dibagi empat). Pada tahun yang bukan kabisat
jumlah harinya 28.
Jika dibaca sebuah penanggalan pada tanggal, bulan februari dan tahunnya,
tentukan tanggal pada hari berikutnya.
Contoh :
Input : Tanggal Sekarang : 28 - 2 – 1999
Output : Tanggal Besok : 1 - 3 - 1999
=======================================
Input : Tanggal Sekarang : 28 - 2 – 1996
Output : Tanggal Besok : 29 - 2 - 1996
26
30. BAB 6
PERULANGAN 1
A. Pengertian
Perulangan/Repeatition digunakan untuk mengulang sebuah statement atau
sekumpulan statement sesuai dengan kondisi yang terjadi (diwakili oleh loop control
variabel) yang diberikan. Biasanya loop control variable ini menggunakan operator
logika atau relational. Nilai dari Loop control variable digunakan untuk mengotrol
perulangan.
Perulangan ini merupakan kontradiksi dengan runtunan / sequence. Dalam algoritma
sequence, tidak diperkenankan suatu baris program yang telah diekseksi dilakukan
eksekusi kembali. Tetapi dalam algoritma perulangan dimungkinkan terjadi
pengulangan eksekusi terhadap baris program yang telah dieksekusi sebelumnya.
Eksekusi baris program yang ada diatasnya tersebut terjadi jika kondisinya menuntut
hal tersebut.
Bentuk umum perulangan seperti gambar dibawah ini
yes
no
Ada beberapa istilah dalam sistem perulangan yaitu :
1. Loop
mengulang langkah-langkah dalam sebuah program
2. Body Of Loop
Perintah-perintah yang diulang dalam loop
3. Loop Control Variable
Variabel yang nilainya digunakan untuk mengontrol perulangan
Dua macam Loop Control Variabel
1. Counter
digunakan jika jumlah perulangan menjadi syarat perulangan.
Contoh :
mencari suku ke-n dari deret : 1+3+5+..
27
31. 2. Event
jika kejadian tertentu menjadi syarat dihentikannya perulangan
Contoh :
menampilkan suku-suku deret : 1+3+5+.. sampai yang ditampilkan >200
Syarat Loop Control Variabel
1. Diinisialisasi
dilakukan diluar Loop, dalam arti sebelum masuk Loop
2. Selalu di Test
setiap kali body loop dijalankan, nilai loop control variabel dicek apakah memenuhi
syarat perulangan. Jika ya, maka di ulang, jika tidak berhenti
3. Di Update
nilai dari loop control variabel harus diupdate agar proses perulangan dapat
berhenti. Letaknya di dalam Body Of Loop
Contoh flowchart Perulangan
mulai
Generate angka random: X
Input angka : A
Output
“kebesaran
Y
A< X
N
Y
A> X
N
Output
“well done”
selesai
28
Output
“kekecilan”
32. B. Perulangan : While
Perulangan dapat diimplementasikan dengan menggunakan kata tercadang WHILE.
Bentuk flowchart dari while seperti digambar dibawah ini
Dari gambar diatas, dapat dijelaskan sebagai berikut :
Bagian pernyataan pada while tidak akan dijalankan sama sekali, apabila
kondisi yang pertama bernilai salah.
Untuk setiap pengulangan yang dikerjakan maka kondisinya akan di cek.
Jika kondisinya masih benar, proses loop dilakukan lagi (kembali ke baris
diatasnya) dan jika salah maka proses loop berahir.
C. Contoh Perulangan
Contoh :Menampilkan nilai Z dari nilai awal Z = 2 dan pengulangan akan dihentikan
setelah variabel Z mencapai nilai 12.
Algoritmanya:
1. Z 2
2. Selama (Z <= 12) kerjakan baris 3 dan 4, kalau nilai Z sudah mencapai > 12
maka kerjakan baris 5
3. Menampilkan/mencetak nilai z
4. Z Z + 1
5. Selesai
Flowchartnya :
29
33. Manual alur logikanya sebagai berikut
nilai awal z = 2
kondisi true:
z=2 z=2+1
z=3 z=3+1
z=4 z=4+1
dst
z=12 z=12+1
kondisi false:
z=13 z=13+1
Programnya :
void main()
{
int Z = 12;
while (Z<=12)
{
cout<<Z;
Z++
// Z = Z + 1;
}
}
D. Kondisi Boolean
Contoh : Menampilkan tulisan “Mahasiswa UIN Hebat” pengulangan akan dihentikan jika
didalam perulangan terdapat status = false.
Algoritmanya:
1. status true
2. Selama (Z = true) kerjakan baris 3 dan 4, kalau nilai status sama dengan false
maka kerjakan baris 5
3. Menampilkan/mencetak “Mahasiswa UIN Hebat”
4. status false
5. Selesai
30
34. Flowchartnya :
mulai
Status true
N
Status=true
Y
Output
“mahasiswa
UIN Hebat”
Status false
selesai
E. Latihan
1. Tampilkan angka 0 sampai dengan 100 dengan step 5 (mis: 0,5,10,15,… 100)
2. Menampilkan tulisan “Mahasiswa UIN Hebat” . didalam perulangan terdapat
pertanyaan “Menampilkan tulisan kembali ?”. jika ada jawaban “Y” maka nilai Status
= true, jika bukan jawaban “Y” maka nilai status=false. Pengulangan akan dihentikan
hanya jika didalam perulangan terdapat status = false.
31
35. BAB 7
PERULANGAN 2
A. Perulangan FOR
Perulangan/Repeatition FOR juga digunakan untuk mengulang sebuah statement atau
sekumpulan statement sesuai dengan kondisi yang terjadi.
Struktur perulangan for biasa digunakan untuk mengulang suatu proses yang telah
diketahui jumlah perulangannya. Dari segi penulisannya, struktur perulangan for
tampaknya lebih efisien karena susunannya lebih simpel dan sederhana.
Sintak :
for( initialization; test-condition; increment )
{
Daftar Statement;
}
Keterangan :
Inisialisasi : pernyataan untuk menyatakan keadaan awal dari variabel kontrol.
test condition : ekspresi relasi yang menyatakan kondisi untuk keluar dari
perulangan.
increment : pengatur perubahan nilai variabel kontrol.
Contoh : Algoritma menampilkan ‘Halo’, sebanyak 10 kali”
Algoritmanya :
1. x 1
2. Selama (x <=10) kerjakan baris 3 dan 4
3. Menampilkan/mencetak “Halo”
4. x x+1
Flowchartnya :
mulai
x1
N
x<=10
Y
Output
“Hallo”
xx+
1
selesai
32
36. Programnya :
void main()
{
int x ;
for (x=1; x<=10; x++)
{
cout<<”Hallo”;
}
}
Contoh : Algoritma menghitung total nilai dan rata-rata terhadap data-data yang diinputkan
berulang-ulang
Algoritmanya :
1. Memasukkan nilai dari variabel N
2. Total 0
3. x = 1
4. Selama (x <= N) kerjakan baris 5 s.d. 7
5. Masukkan nilai dari variabel IsiData
6. Menghitung Total Total + IsiData
7. x x+1
8. Menghitung Rata2 Total / N
9. Mencetak/Menampilkan Total
10. Mencetak/Menampilkan Rata2
11. Selesai
Flowchartnya :
33
37. Programnya :
B. Perulangan For bercabang
Perulangan for bercabang adalah adanya pernyataan for didalam sekelompok blok yang
dieksekusi.
Simak potongan program dibawah ini :
void main()
{
Int i, j;
for (i=1;i<=3; i++)
{
for (j=1; j<=i; j++)
{
cout<<i , j ;
}
}
}
Bagaimana algoritma dan flowchartnya ?
34
38. C. Perulangan While dan If
Dalam perulangan while ini, terdapat pernyataan IF didalam blok pernyataannya.
Perhatikan flowchart dibawah ini
mulai
done true
N
done
Y
Input
nilaiMTK
NilaiMTK<60
Y
N
done false
selesai
Programnya :
void main() {
bool done = true;
while(done) {
cout<< Nilai Matematika = ";
cin>>x;
if(x<60){
done = false;
}
}
}
D. Latihan
Studi kasus : buatlah algoritma yang meniru pembacaan kata sandi (password) dari
pirantii masukan keyboard. Sebelumnya Kata sandi disimpan dalam dalam yang telah
ditetapkan(konstanta). Apabila kata sandi yang dibaca salah, maka pembacaan kata
sandi boleh diulang maksimum 3 kali.
35
39. BAB 8
ALGORITMA FUNCTION
A. Pengertian
Function/fungsi adalah satu blok kode yang melakukan tugas tertentu atau satu blok
instruksi yang dieksekusi ketika dipanggil dari bagian lain dalam suatu program.
Bentuk Umum deklarasi fungsi :
TipeNilaiBalik NamaFungsi (tipeparameter,....)
Fungsi harus dideklarasikan terlabih dahulu sebelum didefiniskan, hal ini agar
compiler bahasa pemrograman dapat mengetahui tentang identitas dari fungsi tersebut.
Identitas tersebut yaitu jumlah dan tipe parameter yang diterima beserta nilai balik fungsi
(bila ada). Dari bentuk definisi suatu fungsi maka akan langsung dapat diketahui tugas dan
maksud dari fungsi tersebut, hal ini karena bentuk definisi fungsi itu menspesifikasikan
tugas fungsi tersebut.
Fungsi merupakan elemen utama dalam bahasa C karena bahasa C sendiri
terbentuk dari kumpulan fungsi-fungsi. Dalam setiap program bahasa C, minimal terdapat
satu fungsi yaitu fungsi main(). Fungsi banyak diterapkan dalam program-program C yang
terstruktur. Keuntungan penggunaan fungsi dalam program yaitu program akan memiliki
struktur yang jelas (mempunyai readability yang tinggi) dan juga akan menghindari
penulisan bagian program yang sama.
Dalam bahasa C fungsi dapat dibagi menjadi 2 :
fungsi pustaka atau fungsi yang telah tersedia dalam Program C Free/C++
fungsi ini terletak dalam file header (.h)
fungsi yang didefinisikan atau dibuat oleh programmer.
B. Beberapa fungsi pustaka yang telah tersedia
Fungsi Operasi String (tersimpan dalam file header “string.h”)
strcpy()
strlen()
ari suatu string.
strcat()
strupr()
Digunakan untuk mengubah setiap huruf dari suatu string menjadi huruf capital.
36
40. strlwr()
Fungsi Operasi Karakter (tersimpan dalam header “ctype.h”)
islower()
Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan huruf kecil.
isupper()
Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan huruf
kapital.
per(char);
isdigit()
Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan sebuah digit.
Fungsi Operasi Matematik (tersimpan dalam header “math.h” dan “stdlib.h”)
sqrt()
ung akar dari sebuah bilangan.
pow()
Bentuk umum : pow(bilangan, pangkat);
C. Membuat function sendiri
Sintak
tipe_data_fungsi nama_fungsi(parameter_fungsi1, parameter_fungsi2, . . );
Bentuk selengkapnya adalah
tipe_data_fungsi nama_fungsi(parameter_fungsi, . .)
{
statement
statement
………...
}
Keterangan :
tipe_data_fungsi, adalah tipe data yang akan dikembalikan/dihasilkan oleh
function.
Misalnya : int, char, float, void
nama_fungsi, adalah nama yang memungkinkan kita memanggil function.
Misalnya : kali, bagi, kurang, hitung
parameter_fungsi(dispesifikasikan sesuai kebutuhan).
Setiap parameter terdiri dari tipe data diikuti identifier, seperti deklarasi variable
Misalnya: int x, int y, char z
statement, merupakan bagian badan suatu function. Dapat berupa instruksi tunggal
maupun satu blok instruksi yang dituliskan diantara kurung kurawal {}.
37
41. Contoh membuat function
#include <stdio.h>
int addition(int a, int b); //deklarasi function
main(){
int z;
z = addition(5,3);
cout<<z;
return 0;
}
/*pendefinisian function*/
int addition(int a, int b) {
int hasil
hasil=a+b;
return (hasil);
}
#include <stdio.h>
int subtraction(int a,int b);
int subtraction (int a, int b){
int r;
r=a-b;
return (r);
}
main (){
int x=5, y=3, z;
z = subtraction (7,2);
cout<<”The first result is "<< z;
cout<<"The second result is "<< subtraction (7,2);
cout<<"The third result is "<< subtraction (x,y);
z= 4 + subtraction (x,y);
cout<<"The fourth result is”<< z;
return 0;
}
D.Function tanpa tipe (Kegunaan void)
Deklarasi fungsi akan selalu diawali dengan tipe dari fungsi, yang menyatakan tipe data
apa yang akan dihasilkan dari fungsi tersebut. Jika tidak ada nilai yang akan dikembalikan,
maka dapat digunakan tipe void.
38
42. #include <stdio.h>
void dummyfunction (void) {
printf("I'm a function!!n");
}
main (){
dummyfunction ();
return 0;
}
E. Function Passing ( Pengiriman nilai parameter antar fungsi)
Sintak
Tipe_fungsi nama_fungsi(parameter_fungsi, parameter fungsi_2, dst…)
Secara umum pengiriman parameter antar fungsi dibagi menjadi 2 :
Passing By Value, data yang dikirimkan berupa nilai dari variable. Misalnya ada
sebuah fungsi yang mempunyai variable lokal A, kemudian dia memanggil fungsi
lain dan menaruh variable A pada parameter fungsi yang baru dipanggil tersebut.
Maka yang terjadi adalah fungsi yang baru tersebut mengcopy nilai A dan menaruh
nilainya di variable lokalnya sendiri, misalnya ditaruh di B kemudian di proses.
Passing By Reference, data yang dikirimkan berupa alamat dari suatu variable.
Misalnya ada sebuah variable lokal A dalam sebuah fungsi, kemudian alamat dari
variable lokal A disimpan dalam variable pointer A_ptr dengan pernyataan
A_ptr=&A, artinya A_ptr menunjuk ke Alamat A. Maka saat variable pointer
A_ptr ini di passing ke fungsi lain, fungsi yang dipanggil itu dapat memodifikasi
nilai dari variable A.
Passing By Value
#include <stdio.h>
int main(void)
{
float A = 6.0, B = 10.0, C;
float add_numbers (float, float);
C = add_numbers (A, B);
Cout<<" The Result is “<< C;
return(0);
}
float add_numbers (float X, float Y)
{
float D;
D = X + Y;
return(D);
}
39
43. Passing By Reference
#include <stdio.h>
int main(void)
{
float A = 6.0,B = 10.0, C;
float *A_ptr, *B_ptr;
A_ptr=&A;
B_ptr=&B;
C = add_numbers (A_ptr, B_ptr);
cout<<”The Result is "<< C;
return(0);
}
float add_numbers (float *ptr1, float *ptr2)
{
float D;
D = *ptr1 + *ptr2;
return(D);
}
40
44. BAB 9
ARRAY
Array/larik :
Maksud dari penggunaan Array dalam suatu pemrograman adalah untuk melakukan
memanipulasi banyak nilai ke sekelompok variabe
Merupakan sebuah variabel yang menyimpan sekumpulan data yang memiliki tipe sama.
Array adalah kumpulan data bertipe sama dan bernama sama.
Setiap data tersebut menempati lokasi atau alamat memori yang berbeda-beda dan biasa
disebut Elemen Array
Elemen array adalah variabel dalam array
Setiap elemen Array dapat diakses melalui indeks yang ada didalamnya
Indeks array pada C++ selalu berurutan dan dimulai dari 0
Variabel Array dideklarasikan dengan mencatumkan tipe dan nama variabel yang diikuti
dengan banyaknya lokasi memori yang ingin dibuat. (Mis.: int c[5]; )
Contoh Array : A[1], A[2], A[3]…….. A[100], secara visual digambarkan sebagai berikut
A
A
1
2
3
1 125
2 211
3 356
99
100
99 145
100 250
A = Nama Array
[1], [2]. [3]….[100]
= index
125, 211, 356, 145,250 = variable dalam array
41