Pemrograman Dasar
Pemrograman Dasar
TIM PENGAMPU :
Belajar memprogram adalah belajar tentang strategi pemecahan masalah, metodologi dan
sistematika pemecahan masalah tersebut kemudian menuangkannya dalam suatu notasi yang
disepakati bersama, “lebih bersifat pemahaman persoalan, analisis, sintesis”
Belajar bahasa pemrograman adalah belajar memakai suatu bahasa, aturan sintaks
(tatabahasa), setiap instruksi yang ada dan tata cara pengoperasian kompilator atau interpreter
bahasa yang bersangkutan pada mesin tertentu, Jadi :
“BELAJAR MEMPROGRAM TIDAK SAMA DENGAN BELAJAR BAHASA PEMROGRAMAN”
Perangko dari Rusia pada Gambar di samping ini bergambar seorang pria
dengan nama Muhammad bin Musa al-Khwarizmi. Bagi kalian yang sedang
berkecimpung dalam dunia komputer maka seharusnya mengetahui siapa
orang di samping ini. Dia adalah seorang ilmuwan Islam yang karya karyanya
dalam bidang matematika, astronomi, astrologi dan geografi banyak menjadi
dasar perkembangan ilmu modern. Dan dari namanya istilah yang akan kita
pelajari dalam bab ini muncul.
Dari Al-Khawarizmi kemudian berubah menjadi algorithm dalam Bahasa Inggris dan
diterjemahkan menjadi algoritma dalam bahasa Indonesia.
Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara
sistematis.
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.
2
Pembuatan algoritma mempunyai banyak keuntungan di antaranya:
1. Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun,
artinya penulisan algoritma independen dari bahasa pemrograman dan komputer yang
melaksanakannya.
2. Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
3. Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya
sama.
Penjelasan :
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.
Dari penjelasan di atas dapat diambil kesimpulan pokok tentang algoritma. Pertama, algoritma
harus benar. Kedua algoritma harus berhenti, dan setelah berhenti, algoritma memberikan hasil
yang benar.
Compiler adalah suatu program yang menterjemahkan bahasa program (Source code) ke
dalam bahasa obyek (object code) secara keseluruhan program.
Interpreter berbeda dengan Compiler, interpreter menganalisis dan mengeksekusi setiap baris
dari program secara keseluruhan. Keuntungan dari interpreter adalah dalam eksekusi yang bisa
dilakukan dengan segera. Tanpa melalui tahap kompilasi, untuk alas an ini interpreter
digunakan pada saat pembuatan program berskala besar.
”SE atau SI lebih tepat untuk menggambarkan suatu algoritma yang akan dikomunikasikan
kepada pemakai perangkat
lunak”
2. Pseudocode
Pseudocode adalah kode yang mirip dengan instruksi kode program sebenarnya.
Pseudocode didasarkan pada bahasa pemrograman yang sesungguhnya seperti BASIC
FORTRAN atau PASCAL. Pseudocode yang berbasis bahasa PASCAL merupakan
pseudocode yang sering digunakan.
“Pseudo berarti imitasi atau tiruan atau menyerupai, sedangkan code menunjuk pada kode
program”
Contoh Pseudocode :
1. Start
2. READ alas, tinggi
3. Luas = 0.5 * alas * tinggi
4. PRINT Luas
5. Stop
Pada Contoh diatas tampak bahwa algoritma sudah sangat mirip dengan bahasa BASIC.
Pernyataan seperti READ dan PRINT merupakan keyword yang ada pada bahasa BASIC yang
masing-masing menggantikan kata “baca data” dan “tampilkan”. Dengan menggunakan
pseudocode seperti di atas maka proses penterjemahan dari algoritma ke kode program menjadi
lebih mudah.
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, yaitu
dengan Flowchart
5
B. Flowchart (Diagram Alir)
Flowchart atau bagan alir adalah skema/bagan (chart) yang menunjukkan aliran (flow) di
dalam suatu program secara logika.
Flowchart merupakan alat yang banyak digunakan untuk menggambarkan algoritma dalam
bentuk notasi-notasi tertentu. 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. Di samping itu flowchart juga berguna sebagai
fasilitas untuk berkomunikasi antara pemrogram yang bekerja dalam tim suatu proyek.
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:
6
Penjelasan lebih lanjut :
Simbol-simbol bagan alir program (Flowchart)
Notasi ini disebut Data yang digunakan untuk mewakili data input
atau output atau menyatakan operasi pemasukan data dan pencetakan hasil
Notasi ini disebut Process dimana di notasi ini digunakan untuk mewakili
suatu proses.
Notasi ini disebut Connector yang digunakan untuk menunjukkan sambungan dari
flowchart yang terputus di halaman yang sama.
Notasi ini disebut Connector yang digunakan untuk menunjukkan sambungan dari
flowchart yang terputus ke halaman berikutnya.
Notasi ini disebut Arrow yang digunakan untuk menunjukkan arus data atau aliran data
dari proses satu ke proses lainnya.
7
Contoh program Flowchart
Urutan instruksi yang dilaksanakan pemroses sama dengan urutan aksi sebagaimana yang
tertulis di dalam algoritmanya. Akhir dari instruksi terakhir merupakan akhir algoritma.
Pada struktur percabangan, program akan berpindah urutan pelaksanaan jika suatu kondisi yang
disyaratkan dipenuhi. Pada proses seperti ini simbol flowchart Decision harus digunakan.
Simbol decision akan berisi pernyataan yang akan diuji kebenarannya. Nilai hasil pengujian
akan menentukan cabang mana yang akan ditempuh.
9
Penyelesaian:
Permasalahan diatas merupakan ciri permasalahan yang menggunakan struktur percabangan.
Hal ini ditandai dengan adanya pernyataan jika…. maka... (atau If ... Then dalam Bahasa
Inggris).
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 diprogram.
10
Bagan alir logika (flowchart) untuk mencetak pernyataan sebanyak 100 kali
Penyelesaian:
Pada contoh ini, kita mencoba menentukan hasil dari sebuah flowchart . Bagaimana
menurut kalian jawabannya? Marilah kita uraikan jalannya fowchart tersebut. Pada flowchart,
setelah Start, kita meletakkan satu proses yang berisi pernyataan A = 1. Bagian inilah yang
disebut inisialisasi . Kita memberi nilai awal untuk A = 1. Variabel counter -nya adalah X
dengan nilai awal 1 dan nilai akhir 10, tanpa increment (atau secara default increment-nya
adalah 1). Ketika masuk ke badan loop untuk pertama kali maka akan dicetak langsung nilai
variabel A. Nilai variabel A masih sama dengan 1. Kemudian proses berikutnya adalah
pernyataan A = A + 2. Pernyataan ini mungkin agak aneh, tap i ini adalah sesuatu yang
pemrograman. Arti dari pernyataan ini adalah gantilah nilai A yang lama dengan hasil
penjumlah nilai A lama ditambah 2. Sehingga A akan bernilai 3. Kemudian dilakukan
pengulangan yang ke-dua. Pada kondisi ini nilai A adalah 3, sehingga yang tercetak oleh
perintah print adalah 3. Baru kemudian nilai A kita ganti dengan penjumlahan A + 2. Nilai A
baru adalah 5. Demikian seterusnya. Sehingga output dari flowchart ini adalah 1,3, 5, 7, ..19.
Star
A=1, B= 0
T
A<10?
A=A+2 Print B
B=A*A
Stop
Pada flowchart ini ada dua variabel yang kita gunakan yaitu A dan B. Kedua variabel tersebut
kita inisialisasi nilai awalnya (A = 1 dan B = 0) sebelum proses loop terjadi. Variabel A adalah
variabel counter.
Pada simbol decision, nilai A akan diperiksa apakah memenuhi kondisi (<b10). Jika Ya maka
perintah berikutnya dieksekusi, jika tidak maka program akan berhenti. Pada awal eksekusi
ini kondisi akan terpenuhi karena nilai A= 1. Jalankan perintah Print B.Nilai variabel A
kemudian diganti dengan nilai A lama (1) ditambah 2. Sehingga nilai variabel A baru adalah
3. Sedangkan nilai variabel B = 9 (hasil perkalian A = 3). Program akan berputar kembali
untuk memeriksa apakah nilai variabel A masih lebih kecil dari 10. Pada kondisi ini nilai A =
3, sehingga kondisi masih terpenuhi. Kemudian langkah berulang ke langkah ke 3. Begitu
seterusnya sampai nilai variabel A tidak lagi memenuhi syarat kurang dari 10.
LATIHAN
1. Buatkan Flowchart untuk mencari Luas persegi empat ?
2. Buatlah Algoritma dan Flowchart untuk menentukan kelulusan siswa ?
Dengan ketentuan :
Jika Nilai >= 70 maka Lulus
Jika Nilai <= 70 maka Tidak Lulus
13
BAB II BAHASA PEMOGRAMAN
14
2. Membuat File Editor
Penjelasan
File Editor merupakan File Program yang dapat dikompile, dan dijalankan untuk menampilkan
hasilnya serta mempunyai ekstensi .CPP. Cara mengaktifkannya : Klik Menu File Gambar
1.3 Klik New, Source File
15
Selanjutnya tampil jendela Save File As, seperti dibawah ini :
4. Menterjemahkan Program
Penjelasan
Proses Compile merupakan suatu proses menterjemahkan program dari bahasa manusia
kedalam bahasa yang dimengerti oleh komputer yaitu bahasa mesin. Caranya adalah :
1. Kik Menu Project Compile
2. Menekan HotKey Ctrl + F9
Selanjutnya tampil kotak dialog Compile, seperti dibawah ini :
16
5. Menjalankan Program
Penjelasan
Proses Run merupakan suatu proses menterjemahkan program, melakukan proses linking,
membuat file eksekusi ( .exe ) dan sekaligus menjalankan program. Caranya adalah :
a. Kik Menu Debug Run
b. Menekan HotKey Ctrl + F10
Selanjutnya tampil kotak dialog Run, seperti dibawah ini :
Jika program yang dijalankan tidak muncul, untuk melihat hasil compile dapat dijalankan di
command prompt
#include <file-include>
main()
{
pernyataan;
}
Contoh-1
#include <stdio.h>
#include <conio.h>
int main()
{
printf("Bahasa C\n");
}
17
Output yang akan dihasilkan, dari program 1 diatas adalah :
Bahasa C
7. Model Memori
Penjelasan
C++, mempunyai enam model memori untuk program dan data. Model-model memori
tersebut adalah :
Model Tiny
Model Small
Model Medium
Model Compact
Model Large
Model Huge
a. Model Tiny
Penjelasan
Model memori yang menyediakan jumlah memori untuk program dan data tidak lebih dari
64 Kb.
b. Model Small
Penjelasan
Model memori yang menyediakan jumlah memori untuk masing-masing program dan data
tidak lebih dari 64 Kb.
c. Model Medium
Penjelasan
Model memori yang menyediakan jumlah memori untuk program tidak lebih dari 64 Kb dan
data tidak lebih dari 64 K.
d. Model Compact
Penjelasan
Model memori yang menyediakan jumlah memori untuk program lebih dari 64 Kb dan data
tidak lebih dari 64 K.
e. Model Large
Penjelasan
Model memori yang menyediakan jumlah memori untuk program dan data lebih dari 64 K.
f. Model Huge
Penjelasan
Model memori yang menyediakan jumlah memori untuk menyimpan satu jenis data.
18
BAB III VARIABEL DAN TYPE DATA
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 dipaka i.
Namun secara umum dapat dikelompokkan seperti pada Gambar dibawah ini
Tipe data numeric digunakan pada variabel atau konstanta untuk menyimpan nilai dalam
bentuk bilangan atau angka. Semua bahasa pemrograman menyediakan tipe data numeric,
hanya berbeda dalam jenis numeric yang diakomodasi.
19
Jenis yang termasuk dalam tipe data numeric antara lain :
1. integer (bilangan bulat)
2. float (bilangan pecahan).
3. tipe data Single adalah tipe data untuk bilangan pecahan dengan presisi yang terbatas
4. Tipe data Double adalah tipe data untuk bilangan pecahan dengan presisi yang lebih
akurat.
Penentuan tipe data numeric untuk suatu variabel/konstanta harus sangat berhati-hati. Manual
dan petunjuk pada masing-masing bahasa pemrograman pada bagian tipe data harus
diperhatikan dengan seksama.
Tipe Data Tambahan, yang dimiliki oleh Bahasa C++, adalah : Unsigned digunakan bila data
yang digunakan hanya data yang positif saja.
Tipe Data Tambahan
Tipe Data Jumlah Memori Jangkauan Nilai
Unsigned Integer 2 Byte 0 – 65535
Unsigned Character 1 Byte 0 – 255
Unsigned Long Integer 4 Byte 0 – 4,294,967,295
x = 10;
y = 9.45;
z = 'C';
w = 3.45E+20;
printf("Nilai dari x adalah : %i\n", x);
printf("Nilai dari y adalah : %f\n", y);
printf("Nilai dari z adalah : %c\n", z);
printf("Nilai dari w adalah : %lf\n", w);
getch();
}
20
Dalam bahasa C++ terdapat lima tipe data dasar, yaitu :
1. char format penulisan : %c
2. int format penulisan : %i, %d
3. float format penulisan : %f
4. double format penulisan : %lf
5. void tidak bertipe
1.2. Variabel
Variabel adalah tempat dimana kita dapat mengisi atau mengosongkan nilainya dan
memanggil kembali apabila dibutuhkan. Setiap variabel akan mempunyai nama (identifier)
dan nilai.
Contoh Nama variabel dan nilai.
username = “joni”
Nama = “Udin”
Harga = 2500
HargaTotal = 34000
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 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 :
1. Nama variabel harus diawali dengan huruf.
2. Tidak boleh menggunakan spasi pada satu nama variabel. Spasi bisa diganti dengan
karakter underscore (_).
3. Nama variabel tidak boleh mengandung karakter-karakter khusus,seperti : .,+, -, *, /, <, >,
&, (, ) dan lain-lain.
4. Nama variabel tidak boleh menggunakan kata-kata kunci d bahasa pemrograman
21
1.2.2. Deklarasi Variabel
Penjelasan
Adalah proses memperkenalkan variabel kepada bahasa C/C++ dan pendeklarasian tersebut
bersifat mutlak karena jika tidak diperkenalkan terlebih dulu maka bahasa C/C++ tidak
menerima variabel tersebut. Deklarasi Variabel ini meliputi tipe variabel, seperti : integer atau
character dan nama variabel itu sendiri. Setiap kali pendeklarasian variabel harus diakhiri oleh
tanda titik koma ( ; ).
Bentuk penulisannya:
Tipe data nama variabel;
Contoh Deklarasi
char nama_siswa;
char grade;
float rata_rata ;
int nilai;
1.3. Konstanta
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 berubahubah, maka sebuah varibel lebih baik
diperlakukan sebagai konstanta.
Sebagai contoh, jika kita membuat program perhitungan matematik yang menggunakan
nilai pi (3.14159) yang mungkin akan muncul dibanyak tempat pada kode program, kita
dapat membuat pi sebagai konstanta. Penggunaan konstanta pi akan lebih memudahkan
penulisan kode program dibanding harus mengetikkan nilai 3.14159 berulang-ulang.
Selain itu, bahasa C++ juga menyediakan beberapa karakter khusus yang disebut karakter
escape, antara lain :
\a : untuk bunyi bell (alert)
\b : mundur satu spasi (backspace)
\f : ganti halaman (form feed)
\n : ganti baris baru (new line)
\r : ke kolom pertama, baris yang sama (carriage return)
\v : tabulasi vertical
\0 : nilai kosong (null)
\’ : karakter petik tunggal
\” : karakter petik ganda
\\ : karakter garis miring
1.3.1. Character
Bersama dengan tipe data numeric, character merupakan tipe data yang paling banyak
digunakan. Tipe data character kadang disebut sebagai char atau string. Tipe data string hanya
dapat digunakan menyimpan teks atau apapun sepanjang berada dalam tanda petik dua (“…”)
atau petik tunggal (‘…’). Perhatikan contoh berikut.
23
1.3.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.
Contoh:
Penggunaan Array
Var
X: array[1..100] of integer;
Cara mengisi data pada elemen larik dalam pemrograman adalah seperti
contoh berikut :
X[1]:= 4;
X[2]:= 3;
X[3]:= 2;
X[4]:= 1;
1.4. Operator
Operator merupakan simbol atau karakter yang biasa dilibatkan dalam program untuk
melakukan sesuatu operasi atau manipulasi, seperti penjumlahan, pengurangan dan lain
lain.
Operator mempunyai sifat sebagai berikut :
Unary
Sifat Unary pada operator adalah hanya melibatkan sebuah operand pada suatu operasi
aritmatik
Contoh : -5
Binary
Sifat Binary pada operator adalah melibatkan dua buah operand pada suatu operasi
aritmatik
Contoh : 4 + 8
Ternary
Sifat Tenary pada operator adalah melibatkan tiga buah operand pada suatu operasi
aritmatik
Contoh : (10 % 3) + 4 + 2
24
//Contoh penggunaan Operator Aritmatika
//Nama programmer :.......
#include "stdio.h"
#include "conio.h"
int main()
{
printf("Nilai dari 9 + 4 = %i\n", 9 + 4);
printf("Nilai dari 9 - 4 = %i\n", 9 - 4);
printf("Nilai dari 9 * 4 = %i\n", 9 * 4);
printf("Nilai dari 9 / 4 = %i\n", 9 / 4);
printf("Nilai dari 9 % 4 = %i\n", 9 %
4); getch();
}
Output :
Nilai A = 10
Nilai ++A = 11
Nilai A = 11
Nilai B =5
Nilai –B =4
Nilai B =4
Ouputnya :
nilai = 14, b= 14
nilai = 14, b=13
1. 5. Komentar Program
Komentar program hanya diperlukan untuk memudahkan pembacaan dan pemahaman
suatu program (untuk keperluan dokumentasi program). Dengan kata lain, komentar
program hanya merupakan keterangan atau penjelasan program. Untuk memberikan
komentar atau penjelasan dalam bahasa C++ digunakan pembatas /* dan */ atau
menggunakan tanda // untuk komentar yang hanya terdiri dari satu baris. Komentar
program tidak akan ikut diproses dalam program (akan diabaikan).
LATIHAN
1. Sebutkan tipe data yang kamu ketahui ?
2. Buatlah algoritma menggunakan tipe data char/string ?
3. Buatkan program C++ untuk mencari bilangan ganjil?
27
BAB IV INPUT DAN OUTPUT
1. Memasukkan Data
Dalam bahasa C proses memasukkan suatu data bisa menggunakan beberapa fungsi pustaka
yang telah tersedia. Beberapa fungsi pustaka yang bisa digunakan adalah :
a. scanf()
Fungsi pustaka scanf() digunakan untuk menginput data berupa data numerik, karakter
dan string secara terformat.
Hal-hal yang perlu diperhatikan dalam pemakaian fungsi scanf() :
Fungsi scanf() memakai penentu format
Fungsi scanf() memberi pergantian baris secara otomatis
Fungsi scanf() tidak memerlukan penentu lebar field
Variabelnya harus menggunakan operator alamat &
Contoh Program :
/* Program memasukan inputan dengan beberapa tipe data */
//Nama programmer :....
#include <stdio.h>
#include <conio.h>
int main()
{
int jumlah;
char huruf, nis[10];
float nilai;
printf("Masukkan sebuah bilangan bulat :");
scanf("%d", &jumlah );
printf("Masukkan sebuah karakter : ");
scanf("%c", &huruf );
printf("Masukkan nis Anda : ");
scanf("%s", &nis );
printf("Masukkan sebuah bil pecahan : ");
scanf("%f", &nilai );
printf("\nNilai variable yang Anda masukkan adalah :\n");
printf("jumlah = %d \n", jumlah );
printf("huruf = %c \n", huruf );
printf("nis = %s \n", nis );
printf("nilai = %f \n", nilai );
getch();
}
28
b. gets()
Fungsi gets() digunakan untuk memasukkan data bertipe karakter dan tidak dapat digunakan
untuk memasukkan data numerik.
Harus diakhiri dengan penekanan tombol enter
Cursor secara otomatis akan pindah baris
Tidak memerlukan penentu format
Contoh Program :
/* Program inputan tipe data karakter string dengan fungsi gets*/
//Nama programmer :....
#include "stdio.h"
#include "conio.h"
int main()
{
char nama[40];
char alamat[40];
printf("Masukkan nama Anda : "); gets(nama);
printf("Masukan alamat anda :"); gets(alamat);
printf("Nama Anda adalah %s \n", nama);
printf("Alamat Anda adalah %s \n", alamat);
getch();
}
c. getchar()
Fungsi getchar() digunakan untuk membaca data yang bertipe karakter
Harus diakhiri dengan penekanan tombol enter
Karakter yang dimasukkan terlihat pada layar
Pergantian baris secara otomatis
Contoh Program :
//contoh penggunaan getch dan getche
//Nama programmer:....
#include "stdio.h"
#include "conio.h"
int main(){
char a1, a2;
printf("Masukkan sebuah karakter : ");
a1 = getche();
printf("\nKarakter yang Anda masukkan adalah %c\n", a1);
printf("\nMasukkan sebuah karakter lagi: ");
a2 = getch();
printf("\nKarakter yang Anda masukkan adalah : %c", a2);
getch();
}
29
CATATAN :
Jika terdapat beberapa proses input (memasukkan data) sekaligus, maka sebaiknya
ditambahkan fungsi fflush(stdin); setelah fungsi scanf(). Fungsi fflush(stdin) berfungsi
menghapus buffer di dalam alat I/O.
2. Menampilkan Data
Contoh :
printf(“%5.2f”, nilai);
artinya variable nilai akan ditampilkan sebanyak 5 digit dengan 2 digit di belakang koma.
Contoh Program 1 :
/* Program untuk menampilkan data berupa bilangan pecahan */
//Nama programmer:.....
#include "stdio.h"
#include "conio.h"
int main()
{
float nilai;
puts("Masukkan nilai Anda :" ); scanf("%f", &nilai);
printf("\n Anda memperoleh nilai %5.2f", nilai);
printf("\n Apakah Anda telah puas mendapat nilai %6.4f ", nilai);
getch();
}
Contoh Program 2 :
/* Program untuk menampilkan data berupa bilangan integer dan string */
//Nama programmer:.....
#include "stdio.h"
#include "conio.h"
int main()
{
int umur;
char nama[30];
puts("Masukkan nama Anda : ");
gets(nama);
puts("Masukkan umur Anda : ");
30
scanf("%d", &umur);
printf("Nama Anda : %s \n", nama);
printf("Umur Anda : %d \n", umur);
getch();
}
LATIHAN
Dari contoh program diatas tambahkan untuk memasukkan dan mencetak data masukan
berupa :
1. Alamat
2. No telepon
3. Hoby
4. Kelas
5. Jurusan
Contoh Program :
#include “stdio.h”
#include “conio.h”
int main()
{
fprintf(stdprn, “Hallo, Saya akan tercetak di printer”);
fputs(stdprn, “Saya juga akan tercetak di printer”);
}
31
BAB V STRUKTUR KONTROL PERCABANGAN
Contoh Program 1 :
/* Program struktur kondisi if tunggal untuk memeriksa suatu kondisi */
//Nama programmer :........
#include "stdio.h"
#include "conio.h"
int main()
{
float nilai;
printf("Masukan nilai yang didapat :");
scanf("%f", &nilai);
if(nilai > 65)
printf("\n ANDA LULUS !!!!\n");
getch();
}
INFO
Bila program tersebut dijalankan dan kita memasukan nilai 80, maka perintah mencetak
perkataan LULUS !!!! akan dilaksanakan, namun sebaliknya bila kita memasukan sebuah nilai
yang kurang dari 65 maka program akan berhenti dan tidak dihasilkan apa-apa.
Contoh Program 2 :
/* Program contoh penerapan struktur kondisi if tunggal*/
//Nama programmer :........
#include "stdio.h"
#include "conio.h"
int main()
{
int a,b,c,max;
printf("Masukan bil 1 : ");fflush(stdin);
scanf("%i",&a);
printf("Masukan bil 2 : ");fflush(stdin);
scanf("%i",&b);
printf("Masukan bil 3 : ");fflush(stdin);
scanf("%i",&c);
if((a>b)&&(a>c))
max=a;
if((b>a)&&(b>c))
max=b;
if((c>a)&&(c>b))
max=c;
32
printf("Bil terbesar : %i \n",max);
if(max>0)
printf("Bil tsb adalah bil positif \n");
if(max<0)
printf("Bil tsb adalah bil negatif \n");
getch();
}
2. Percabangan Ganda
Percabangan ganda apabila terdapat 2 alternatif instruksi yang dijalankan. Logika ini
memungkinkan kompiler menjalankan salah satu dari 2 alternatif instruksi yang ada, dan salah
satu instruksi pasti dijalankan.
Dibawah ini akan diberikan contoh seleksi menggunakan kondisi lebih dari 2.
Contoh :
Program untuk menentukan grade dari sebuah nilai ujian, dengan aturan grade A untuk rentang
nilai 80 – 100, grade B untuk nilai 70 – 80 dan grade C untuk nilai 50 – 70 dan grade D untuk
nilai dibawah itu.
33
#include <stdio.h>
void main();
{
int nilai;
scanf(“%d”,&nilai);
if (nilai >= 80 && nilai <= 100)
print(“Grade A”);
else if (nilai >= 70 && nilai <= 80)
printf(“Grade B”);
else if (nilai >= 50 && nilai <= 70)
printf(“Grade C”);
else
printf(“Grade D”);
}
Untuk menggunakan program If-Else ini, dibuat contoh kasus pada suatu perusahaan percetakan
foto-copy, dengan biaya perlembar adalah Rp. 200, jika pembayaran lebih besar dari Rp. 60.000
dan kurang dari sama dengan Rp. 100.000 maka akan diberikan diskon 10%. Kemudian jika
pembayaran lebih besar dari Rp. 100.000, maka akan diberikan diskon 15%. Program yang
dibuat adalah sebagai berikut
#include <stdio.h>
#include <conio.h>
Void main()
{
int bayar,lbr, total1,total2;
float diskn1, diskn2;
printf ("\t\t\t Aplikasi Foto Copy\n");
printf ("input data : \n");
printf ("Banyak lembar : "); scanf("%d",&lbr);
printf ("Hasil perhitungan \n");
printf ("=====================================\n");
bayar=lbr*200;
diskn1=0.1*bayar;
diskn2=0.15*bayar;
total1=bayar-diskn1;
total2=bayar-diskn2;
if (bayar<=60000){
printf ("biaya FC :Rp. %d ",bayar);
printf ("\n");
printf ("potongan :Rp. 0 ");
printf ("\n"); }
else if (bayar>60000&&bayar<=100000){
printf ("biaya FC :Rp. %d ",bayar);
printf ("\n");
printf ("potongan :Rp. %0.1f",diskn1);
printf ("\n");
printf ("total bayar :Rp. %d ",total1); }
else if (bayar>100000){
printf ("biaya FC :Rp. %d ",bayar);
printf ("\n");
34
printf ("potongan :Rp. %0.1f",diskn2);
printf ("\n"); printf ("total bayar :Rp. %d ",total2);
printf ("\n"); }
getch();
}
Pembahasan Program
- /t merupakan perintah untuk tab.
- Rumus yang digunakan adalah banyak lembar * 200 (untuk menghitung jumlah bayar),
0.1*bayar (untuk diskon 10%), dan 0.15*bayar (untuk diskon 15%). Kemudian untuk
hasilnya adalah jumlah bayar - diskon.
- Ketika terdapat 2 nominal yang sama dan dijadikan bandingan, maka pembanding salah satu
atau keduanya harus ditambahkan sama dengan (=), penulisan pembandingnya harus >= atau
<= , tidak boleh > atau < dua-duanya. seperti pada program ini, kondisi pertama menyatakan
jika bayar<=60000 , kemudian kondisi kedua menyatakan ketika bayar>60000 .
- &&, merupakan operasi untuk logika AND, contoh penulisannya adalah if
(bayar>60000&&bayar<=100000)
35
3. Percabangan Bersarang Struktur switch case
Struktur case sebenarnya memiliki fungsi yang sama dengan struktur if yang telah kita pelajari
diatas. Struktur case ini dapat meringkaskan alur logika yang terjadi apabila diaplikasikan
pada pada alur seleksi yang memiliki lebih dari 2 kondisi.
Berikut adalah notasi algoritmanya :
switch (kondisi)
{
case kondisi1 :
break;
case kondisi2 :
break;
default :
}
Struktur logika seleksi menggunakan struktur case ini jauh lebih ringkas apabila diaplikasikan
pada struktur seleksi yang memiliki kondisi lebih dari 2. Kompiler program akan menjalankan
instruksi dari struktur case dan memeriksa setiap kondisi yang ada, apabila belum ada kondisi
yang bernilai benar maka kompiler akan terus menjalankan instruksi dibawahnya sampai
ditemukan kondisi yang bernilai benar. Namun apabila hingga kondisi terakhir diperiksa dan
tidak ditemukan kondisi yang bernilai benar maka kondisi default yang akan dijalankan.
Contoh :
Program untuk menentukan apakah karakter „%‟, spasi, „&‟ atau „$‟ yang
ditekan oleh pengguna melalui keyboard.
#include <stdio.h>
void main()
{
int tombol;
scanf(“%d”,&tombol);
swicth(tombol);
{
case “32‟:printf(“Anda menekan tombol spasi”);
break;
case ‟36”:printf(“Anda menekan tombol $”);
break;
case “37‟:printf(“Anda menekan tombol %”);
break;
case “38‟:printf(“Anda menekan tombol &”);
break;
default : printf(“Anda tidak mematahui aturan.”);
}}
Perbedaan yang paling jelas antara stukrut if dengan struktur case adalah :
a. Struktur if dapat menerima kondisi yang berupa operasi logika. Sedangkan stuktur case
tidak.
b. Struktur case lebih efektif apabila digunakan untuk logika seleksi lebih dari 2 kondisi.
c. Struktur case dan sktuktur if dapat dikombinasikan kedalam satu bagian, dengan catatan
tata cara penulisan notasi tidak terdapat kesalahan.
d. Struktur case tidak dapat melakukan pengecekan terhadap tipe data string / kalimat.
Sebenarnya switch-case hampir sama dengan If-else, hanya saja penggunaan Switch-case lebih
sederhana jika dibandingkan If-Else. Biasanya Switch-case digunakan untuk menu.
Berikut adalah contoh program penggunaan Switch-Case sederhana
36
#include<stdio.h>
#include<conio.h>
void main()
{
int angka;
printf("masukan angka : "); scanf("%d",&angka);
switch(angka){
case 1:
printf("anda memasukkan angka satu");break;
case 2:
printf("anda memasukkan angka dua");break;
case 3:
printf("anda memasukkan angka tiga");break;
case 4:
printf("anda memasukkan angka empat");break;
default: printf ("angka yang bisa diinput hanya 1 sampai 4"); }}
setelah program dijalankan, maka hasilnya adalah sebagai berikut:
Pembahasan program:
- Bentuk penulisan Switch secara umum adalah s w it c h ( n a m a v a r i a b l e i n p u t ) , pada
program diatas, nama variable inputnya adalah angka.
- Case, merupakan nilai yang dibaca, contohnya seperti program diatas, case 1 berarti ketika nilai
yang diinputkan adalah 1 (satu). Begitu juga dengan yang lainnya,
- Break, merupakan pemisah antara case, untuk menghindari error dalam pembacaan case.
- Default, hampir sama dengan else. Ketika nilai yang diinputkan tidak sama dengan nilai case.
Misalnya program diatas, case yang tersedia adalah 1,2,3,dan 4. Ketika diinputkan selain
angka tersebut, mialnya 5. Maka yang akan ditampilkan adalah default yaitu “angka yang bisa
diinput hanya 1 sampai 4” .
37
BAB V STRUKTUR KONTROL PERULANGAN
1. Perulangan
Salah satu bagian yang paling membedakan antara manusia dengan komputer adalah :
Komputer mampu mengerjakan instruksi dalam hitungan ribuan bahkan jutaan kali
tanpa mengenal lelah. Dalam mempelajari algoritma pemrograman, struktur perulangan
menjadi bagian yang sangat penting untuk dipelajari.
Struktur Perulangan
Struktur perulangan terdiri dari 2 bagian, yaitu :
1. Kondisi perulangan, yaitu ekspresi yang dilakukan sebelum pengulangan dilakukan
pertama kali.
2. Body atau tubuh pengulangan, yaitu satu atau lebih instruksi yang diulang.
Selain itu biasanya di perulangan juga terdapat 2 hal dibawah ini, antara lain :
Inisialisasi : aksi yang dilakukan sebelum pengulangan dilakukan pertama kali.
Terminasi : aksi yang dilakukan untuk membuat perulangan berakhir. Biasanya
berupa sebuah kondisi.
Dalam setiap bahasa pemrograman pada umumnya biasanya terdapat 3 jenis
perulangan, antara lain :
1. Struktur WHILE – DO
2. Struktur Do – WHILE / REPEAT – UNTIL
3. Struktur FOR.
Ketiga jenis diatas hanyalah sebuah metode dan pada implementasinya, notasi penulisannya
(sintaks) sangat tergantung dari setiap bahasa pemrograman yang digunakan.
while (KONDISI){
tubuh perulangan yang berisi instruksi untuk dijalankan.
}
Contoh :
Progam membuat tulisan di angka 1 .. 100.
# include <stdio.h>
void main(){
int nilai_awal = 1; // inisialisasi awal. Sangat penting.
While (nilai_awal <= 100){
Printf(“/n%d”,nilai_awal);
Nilai_awal ++; // memanipulasi variabel awal agar tercapai kondisi terminasi.
}}
Dalam struktur perulangan ini, ada 2 hal yang harus diperhatikan untuk menghindari
terjadinya kesalahan logika pada program.
38
a. Inisialisasi variabel awal.
Ini dimaksudkan agar ketika kompiler program melakukan pemeriksaan terhadap kondisi
awal, ditemukan kondisi yang benar. Pada beberapa bahasa pemrograman tertentu, apabila
sebuah variabel tidak diinisialisasikan maka nilainya bisa berupa random ataupun nol.
(lihat contoh dibawah)
b. Manipulasi variabel awal.
Banyak terjadi kesalahan pada programmer ketika mereka membuat program perulangan,
memanipulasi variabel kondisi sangat penting untuk menjaga program tetap sesuai
dengan yang diinginkan. Ketika kita lupa memanipulasi variabel awal, ada kemungkinan
program mengulang terus menerus (looping forever) karena kondisi yang diinginkan
tercapat terus tanpa ada perubahan. (lihat contoh dbawah)
Contoh 1 :
Program menulis angka dari 1 .. 100.
# include <stdio.h>
void main(){
int nilai_awal ; // tidak dilakukan inisialisasi awal.
While (nilai_awal <= 100){
printf(“/n%d”,nilai_awal);
Nilai_awal ++; // memanipulasi variabel awal agar tercapai kondisi terminasi.
}}
Program diatas tidak melakukan inisialisasi awal terhadap variabel nilai_awal, sehingga ada
kemungkinan nilai_awal berisni nilai random. Misalkan nilai_awal berisi -1200, dan secara
logika -1200 memang kurang dari 100. Maka program bukan mencetak 1 – 100, melainkan
mencetak -1200 – 100.
Contoh 2 :
Program menulis angka dari 1 .. 100.
# include <stdio.h>
void main(){
int nilai_awal = 1; // inisialisasi awal dilakukan
While (nilai_awal <= 100){
Printf(“/n%d”,nilai_awal);
}}
Program diatas tidak melakukan manipulasi terhadap nilai_awal , sehingga nilainya selalu 1.
Program bukannya mencetak 1 – 100, melainkan mencetak angka 1 terus menerus dan tidak
pernah berhenti karena kondisi perulangan selalu benar.
39
Perbedaan paling mendasar sebenarnya terletak pada pengecekan kondisi perulangan, struktur
ini melakukan pengecekan kondisi perulangan di akhir tubuh perulangan (bukan di awal
seperti struktur WHILE – DO) sehingga mengakibatkan instruksi dijalankan minimal 1 kali.
Pada impelemntasinya notasi penulisan struktur perulangan ini juga bergantung pada bahasa
pemgoraman yang digunakan. Pembahasan ini menggunakan bahasa pemrograman Turbo C
dan leih ditekankan kepada konsep – konsep perulangannya.
Contoh :
Program menulis angka dari 1 .. 100.
# include <stdio.h>
void main(){
int nilai_awal = 1; // inisialisasi awal dilakukan
do{
Printf(“/n%d”,nilai_awal);
Nilai_awal += 1;// tambahkan nilai_awal sebanyak 1.
}while(nilai_awal <= 100);
}
Program untuk meminta inputan dari keyboard, apabila pengguna menekan tombol esc maka
program akan berhenti.
#include <stdio.h>
#include <conio.h>
void main(){
char tombol;
do{
tombol = getch(); // peminta penekanan tombol dari keyboard.
// selama tombol yang ditekan tidak memiliki ASCII = 27 (tombol esc) maka
//program akan tetap berjalan.
}while (tombol != 27);
// program berhenti, karena pengguna telah menekan tombol escape.
}
Kapan menggunakan WHILE – DO atau Do – WHILE ?
Pemilihan antara kedua struktur ini sangat tergantung pada permasalahan yang
dihadapi. Apabila sebuah program memerlukan instruksi dijalankan dahulu dan baru diperiksa
kondisinya maka strukltur DO – WHILE harus digunakan namun apabila sebuha program
harus memeriksa kondisi perulangan terlebih dahulu dan baru menjalankan tubuh perulangan,
maka kondisi WHILE – DO harus digunakan.
#include <stdio.h>
void main(){
int nilai_genap = 2; // inisialisasi awal.
for (nilai_genap =2; nilai_genap <= 100; nilai_genap+=2)
printf(“%d”,&nilai_genap);}
Program diatas akan melakukan inisialisasi nilai_genap sebanyak 2, dan setelah itu akan
dilakukan pemeriksaan apakan kondisi terpenuhi / memberikan nilai benar. Apabila kondisi
terpenuhi maka tubuh perulangna akan dijalankan ( mencetak nilai dari nilai_genap) dan
kemudian menaikkan nilai_genap sebanyak 2. Setlah itu akan dilakukan pemeriksaan
kondisi sekali lagi, dan apabila kondisi tersebut terpenuhi maka tubuh perulangan akan
dijalankan lagi sedangkan apabila kondisi perulangan tidak terpenuhi maka struktur
perulangan akan berakhir.
Penggunaan For untuk Program yang akan membuat nilai factorial dari angka yang
diinputkan. Pertama pengguna harus menginputkan nilai yang akan di-factorial kan,
kemudian akan diproses oleh program, dan program akan menampilkan perkalian dari 1
sampai nilai yang diinputkan.
#include<stdio.h>
#include<conio.h>
void main()
{
int input,a,b,c;
printf("\t\t\t ngopinih.blogspot.com \n");
printf("\nMasukkan angka =\n");
scanf("%d",&input);
printf("factorial dari %d",input); printf(" adalah= ");
for (a=1;a<=input;a++)
printf("%dx",a);
b=1;
for(c=1;c<=input;c++)
b=b*c;
printf(" = %d",b);
getch();
}
41
Ketika program dijalankan, tampilannya adalah sebagai berikut
Pembahasan program
- Pertama program akan membaca angka yang diinputkan oleh pengguna, dengan perintah
scanf(“%d”,&input)
- Kemudian akan dilakukan perulangan dari 1 sampai angka yang diinputkan oleh
pengguna, dengan menggunakan perintah for (a=1;a<=input;a++)
- Kemudian untuk proses perkalian factorial dilakukan dengan memberikan nilai variable
b=1, dan akan dikalikan dengan perulangan for(c=1;c<=input;c++) .
Perulangan c akan menampilkan 1,2,3,4,5. Ketika dikalikan dengan variable b, maka
hasilnya bx1=1, 1x2=2, 2x3=6, 6x4=24, 24x5=120.
42