Anda di halaman 1dari 120

Sekilas Tentang Materi Semester 2

Materi Pokok Bagian 1

Setelah mempelajari berbagai konsep


di materi semester 1, kini saatnya
mematangkan konsep dengan berbagai
latihan dan praktikum.
“practice makes perfect” 

Kompetensi dasar :
 Menerapkan bahasa pemrograman
 Mengolah algoritma ke dalam bentuk kode program komputer
 Menerapkan penggunaan tipe data, variabel, konstanta, operator dan ekspresi
 Mengolah data menggunakan konsep tipe data, variabel, konstanta, operator dan
ekspresi.

Indikator :
 Mengenal bahasa pemrograman
 Mengenal tools/framework pengembangan program
 Dapat mengetahui instalasi tools bahasa pemrograman
 Mengetahui standar output dalam bahasa pemrograman
 Mengetahui standar input dalam bahasa pemrograman
 Mengetahui standar input dalam bahasa pemrograman
 Mengetahui kompilasi dan eksekusi program
 Mengetahui perbaikan kesalahan
 Mengetahui tipe data, variabel dan konstanta
 Mengetahui operator dan ekspresi

Tujuan:
 Siswa mampu memahami bahasa pemrograman
 Siswa mampu memahami tools/framework pengembangan program
 Siswa mampu mengetahui instalasi tools bahasa pemrograman
 Siswa mampu mengetahui standar output dalam bahasa pemrograman
 Siswa mampu mengetahui standar input dalam bahasa pemrograman
 Siswa mampu mengetahui standar input dalam bahasa pemrograman
 Siswa mengetahui kompilasi dan eksekusi program
 Siswa mampu memahami perbaikan kesalahan
 Siswa mampu memahami tipe data, variabel dan konstanta
 Siswa mampu memahami operator dan ekspresi

I. Bahasa Pemrograman

1.1 Pengenalan bahasa pemrograman

Bahasa adalah suatu sistem untuk berkomunikasi. Bahasa tertulis menggunakan


simbol (yaitu huruf) untuk membentuk kata. Dalam ilmu komputer,bahasa manusia
disebut bahasa alamiah (natural languages), dimana komputer tidak bisa
memahaminya, sehingga diperlukan suatu bahasa komputer.

Gambar 1.1 analogi komunikasi manusia dengan komputer

Setiap hari kita berkomunikasi menggunakan bahasa yang dapat


saling dimengerti, lalu menurut kalian apa bahasa pemrograman
itu?

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………
Komputer mengerjakan transformasi data berdasarkan kumpulan perintah program
yang telah dibuat oleh pemrogram. Kumpulan perintah ini harus dimengerti oleh
komputer, berstruktur tertentu (syntax) dan bermakna. Bahasa pemrograman
merupakan notasi untuk memberikan secara tepat program komputer. Berbeda
dengan bahasa alamiah, misalnya Bahasa Indonesia, Inggris dan sebagainya yang
merupakan bahasa alamiah (natural language), sintaks dan semantik bahasa
pemrograman (komputer) ditentukan secara kaku, sehingga bahasa pemrograman
juga disebut sebagai bahasa formal (formal language).

1.1.1 Generasi Bahasa Pemrograman

Gambar 1.2 generasi bahasa pemrograman


1.1.2 Bahasa Pemrograman untuk tujuan tertentu
Jenis Program Bahasa Terbaik Bahasa Tidak Relevan
Data terstruktur ADA, C/C++,PASCAL Assembler, BASIC
Proyek cepat BASIC PASCAL, ADA,
Assembler
Eksekusi cepat Assembler, C BASIC, Interpreter
Language
Kalkulasi matematika FORTRAN PASCAL
Menggunakan memori PASCAL, C BASIC
dinamis
Lingkungan bermemori BASIC, Assembler, C FORTRAN
terbatas
Program real-time ADA, Assembler, C BASIC, FORTRAN
Manipulasi string BASIC, PASCAL C
Program mudah dikelola PASCAL, ADA C, FORTRAN
Tabel 1.1 Bahasa Pemrograman untuk tujuan tertentu

1.1.3 Penerjemah Bahasa Pemrograman


Untuk menterjemahkan bahasa pemrograman yang kita tulis maka diperlukan Compiler
& Interpreter.

a. Compiler dan Intepreter


Pengertian Compiler dan Interpterer

Gambar 1.3 compiler dan interpreter

Dari pengertian interpreter dan compiler di atas maka dapat dibedakan antara interpreter
dan compiler, sebagai berikut :
Gambar 1.3 perbedaan compiler dan interpreter
1.2 Pengenalan tools/framework pengembangan program

Gambar 1.4 peta pikiran pengenalan borland C++

Jadi dari peta pikiran di atas IDE dari Borland C++, dapat digunakan untuk :
• Menulis Naskah Program.
• Mengkompilasi Program ( Compile )
• Melakukan Pengujian Program ( Debugging )
• Mengaitkan Object dan Library ke Program ( Linking )
• Menjalankan Program ( Running )
Gambar 1.5 layar pembuka borland C++

Gambar 1.6 IDE Borland C++ 5.02

IDE pada Borland C++, terbagi menjadi 4 (empat) bagian, yaitu :


a. Menu Utama ( Menubar )
Menu utama terdiri dari ; File, Edit, Search Run Compile Debug Project, Options,
Window dan Help
b. Jendela Text Edit
Tempat untuk mengetikan program dan membuat program. Jika pertama kali anda
membuat program, nama file jendela editor adalah NONAME00.CPP
c. Jendela Message
Tempat untuk menampilkan pesan-pesan pada proses kompilasi dan link program.
d. Baris Status
Baris dimana menampilkan keterangan-keterangan pada saat anda mengaktifkan menu
bar dan sub menu.
1.3 Struktur Bahasa Pemrograman

Struktur Program Bahasa C++ :

<preprocessor directive> <preprocessor directive>


void main(){ void main(){
<statement>; <statement>;
<statement>; <statement>;
<statement>; <statement>;
} return 0;
}

Statement adalah suatu baris instruksi/perintah tertentu.


Statement menyebabkan suatu tindakan dilakukan oleh
komputer. Sedangkan preprocessor directive adalah
bagian berisi pengikutsertaan file atau berkas berkas
fungsi maupun pendefinisian konstanta atau fungsi makro
tertentu

Berikut adalah peta pikiran macam-macam file header yang dapat digunakan pada
pemrograman C++ , serta fugsi apa saja yang digunakan untuk file header tertentu :
Gambar 1.7 peta pikiran file header

Struktur program C++, sama seperti struktur program C


yang terdahulu. Struktur program C++ terdiri sejumlah
blok fungsi, setiap fungsi terdiri dari satu atau beberapa
pernyataan yang melaksanakan tugas tertentu.

Disaat membuat program pasti berhubungan dengan statement (ungkapan).


Program sebenarnya adalah kumpulan statement yang dijalankan secara sekuensial.

Gambar 1.8 peta pikiran statement


a. Statement kosong

Gambar 1.9 peta pikiran statement kosong

b. Statement ungkapan

Gambar 1.10 peta pikiran statement ungkapan


c. Statement kendali

Gambar 1.11 peta pikiran statement kendali

d. Statement jamak

Gambar 1.12 peta pikiran statement jamak

Kali ini akan dibahas struktur dasar mengenai bahasa pemrograman yang akan kita
pelajari. Perhatikan kode program dan penjelasannya berikut :

#include <stdio.h>
int main()
{
printf(“selamat belajar pemrograman dasar”);
getch();
}
Penjelasan struktur dasar dari kode C++ di atas:

Gambar 1.13 peta pikiran penjelasan program sederhana


1.4 Standar Input dan Output dalam Bahasa Pemrograman

1.4.1 Standar Input (Perintah Masukan)


Dalam melakukan pemrograman tentu programmer akan melakukan input dan output
program. Input berarti programmer memasukkan data ke dalam program atau melakukan
inisialisasi. Ouput berarti program akan menghasilkan keluaran berupa data yang
ditampilkan ke layar atau keluaran lainnya.

Perintah standar input yang disediakan oleh Borland C++, diantaranya


adalah :

Gambar 1.14 peta pikiran standar input

a. Scanf()
dalam struktur input terformat, programmer dapat memasukkan data ke dalam program
dalam bentuk tertentu yang telah didefinisikan oleh bahasa C.
dengan menggunakan bentuk ini maka programmer dapat memasukkan data dengan lebih
baik dan rapi.
Struktur input terformat sedikit lebih kompleks dibanding struktur input tidak terformat.
Memasukkan data terformat artinya data yang diterima akan diatur bentuk dan lebarnya
dengan kode-kode format mengunakan fungsi scanf().
Bentuk umum dari fungsi ini adalah :

scanf("penentu format", &nama-variabel);

Untuk mengetahui penentu format yang dapat digunakan untuk fungsi


scanf()perhatikan tabel berikut :
Tipe Data Penentu format
Integer %d
Floating Point
Bentuk desimal %e atau %f
Bentuk berpangkat %e atau %f
Double precision %lf
Character %c
String %s
Unsigned integer %u
Long integer %ld
Long unsigned integer %lu
Unsigned hexadecimal integer %x
Unsigned char integer %o
Tabel 1.2 penentu format fungsi scanf()

Fungsi scanf() menggunakan pengiriman


nilai secara acuan, yang dalam bahasa C
dilakukan dengan pointer. Oleh karena itu
variabel-variabel yang dipakai harus berupa
variabel pointer (diawali dengan “&”)

1. Memasukkan nilai karakter


Nilai karakter juga dapat dimasukkan dengan fungsi scanf() menggunakan kode
format “%c”.

Contoh:

#include <stdio.h>
#include <conio.h>

int main ()
{
char c1,c2,c3;
printf("masukkan 3 nilai karakter : ");
scanf("%c%c%c", &c1,&c2,&c3);
printf("\n Anda memasukkan : %c %c %c\n" ,c1,c2,c3);
}
Hasilnya :

Masukkan 3 nilai karakter : abcde


Anda memasukkan : a b c

2. Memasukkan nilai string


Nilai string juga dapat dimasukkan dengan fungsi scanf(), menggunakan kode format
“%s”. khusus untuk nilai string, variabel yang digunakan tidak memerlukan operator
pointer “&”, karena pengenal ini sudah berbentuk pointer.

Contoh:

#include <stdio.h>
#include <conio.h>

int main ()
{
char kata [10];
printf("masukkan suatu nilai string : ");
scanf("%s", kata);
printf("\n Anda memasukkan : %s\n" ,kata);
}

Hasilnya :

Masukkan suatu nilai string : algoritma


Nilai string yang dimasukkan : algoritma

Contoh 2 :

#include <stdio.h>
#include <conio.h>

int main ()
{
char kata [10];
printf("masukkan suatu nilai string : ");
scanf("%[^\n]", kata);
printf("\n Anda memasukkan : %s\n" ,kata);
}

Hasilnya :

Masukkan suatu nilai string : algo ritma


Nilai string yang dimasukkan : algo ritma

Kode format "%[^\n]" pada contoh 2


diatasberarti bahwa karakter nilai string akan
dibaca terus sampai ditemui penekanan tombol
Enter (bentuk ‘^’ menunjukkan maksud ‘tidak’ dan
karakter ‘\n’ berarti Enter). Dengan demikian
semua karakter, termasuk spasi dan tabulasi akan
dibaca sampai ditemukan penekanan tombol Enter

3. Memasukkan nilai numerik


Untuk nilai numerik, beberapa versi bahasa C juga menggunakan pengubah “I” dan “L”
yang dikombinasikan dengan kode format data numerik.

Pengubah ditulis di depan huruf konversi dari kode formatnya sebagai berikut:
“%li” atau “%ld” long int
“%le”, “%lf” atau “%lg” double
“%Le”, “%Lf” atau “%Lg” long double

Nilai numerik integer dalam bentuk


heksadesimal dapat dimasukkan sebagai data
dengan menggunakan kode format “%x”.
Contoh :

#include <stdio.h>
#include <conio.h>

int main ()
{
int I;
printf("masukkan nilai heksadesimal: ");
scanf("%x",&I);
printf("heksadesimal %x adalah %i desimal
\n",I,I);
}

Hasilnya :

masukkan nilai heksadesimal: fe


heksadesimal fe adalah 254 desimal

b. Gets
String adalah kumpulan dari karakter. Jadi jika sebuah karakter adalah satu huruf saja
maka string adalah kumpulan huruf.
Untuk memasukkan nilai string dapat digunakan fungsi gets()/. Cara memakai fungsi ini
berbeda dengan fungsi-fungsi sebelumnya, karena memerlukan sebuah
argumen/parameter yang berupa identifier string yang akan menerima data.

Parameter adalah variabel yang ditempatkan dalam judul function


Kegunaan parameter : menerima nilai ketikasuatu function dipanggil

Argumen adalah nilai yang dikirim ke dalam sebuah function ketika fungsi tersebut
dipanggil

Bentuk umum dari fungsi Gets :

gets(nama-variabel-array);
Contoh:

#include <stdio.h>
#include <conio.h>

int main ()
{
char kata[10];
printf("masukkan suatu nilai string : ");
gets(kata);
printf("\n Nilai string yang dimasukkan : %s\n",kata);
}

Hasilnya :

Masukkan suatu nilai string : algoritma


Nilai string yang dimasukkan : algoritma

Kode format "%[]" juga dapat digunakan sebagai


pemetaan dari karakter-karakter yang akan
dimasukkan. Misalnya, kode format "%[abc]"
hanya akan menerima karakter ‘a’,’b’,’c’ saja,
maka jika ada karakter yang dimasukkan karakter
yang akan diterima hanya ‘a’,’b’,’c’ selain itu akan
diabaikan.

Gambar 1.15 peta pikiran perbedaan scanf() dan gets()


c. Cin
Fungsi cin() merupakan sebuah objeck didalam C++ digunakan untuk memasukkan suatu
data. Untuk menggunakan fungsi cin() ini, harus
menyertakan file header iostream.h .

Contoh :

# include <stdio.h>
# include <conio.h>
# include <iostream.h>
main()
{
float a, b, c;
clrscr();
cout<<"Masukan Nilai A : ";
cin>>a;
cout<<"Masukan Nilai B : ";
cin>>b;
c = a + b;
cout<<"Nilai C : "<<c<<endl;
}

Hasil :

Masukkan Nilai A : 7
Masukkan Nilai B : 4
Nilai C : 11

d. Getch ()
Fungsi getch() (get character and echo) dipakai untuk membaca sebuah karakter dengan
sifat karakter yang dimasukkan tidak perlu diakhiri dengan menekan tombol ENTER, dan
karakter yang dimasukan tidak akan ditampilkan di layar. File header yang harus
disertakan adalah conio.h.
Contoh:

# include <stdio.h>
# include <conio.h>
main()
{
char kar;
clrscr();
printf("Masukkan Sebuah Karakter Bebas = ");
kar = getch();
printf("\nTadi Anda Memasukan karakter %c", kar);
getch();
}
Hasil :

Masukkan Sebuah Karakter Bebas =


Tadi Anda Memasukkan Karakter A

e. Getche ()
Fungsi getche()dipakai untuk membaca sebuah karakter dengan sifat karakter yang
dimasukkan tidak perlu diakhiri dengan menekan tombol ENTER, dan karakter yang
dimasukan ditampilkan di layar. File header yang harus disertakan adalah conio.h.
Contoh :

# include <stdio.h>
# include <conio.h>
main()
{
char kar;
clrscr();
printf("Masukan Sebuah Karakter Bebas = ");
kar = getche();
printf("\nTadi Anda Memasukan karakter %c", kar);
getch ();
}

Hasil :

Masukkan Sebuah Karakter Bebas = Y


Tadi Anda Memasukkan Karakter Y

Selain itu kedua fungsi ini dapat digunakan untuk menahan agar tidak langsung balik
kembali kedalam listing program dan hasil dari program yang di eksekusi langsung dapat
dilihat. Karena fungsi getch() merupakan fungsi masukkan, jadi sebelum program keluar
harus memasukan satu buah karakter.
1.4.2 Standar Output (Perintah Keluaran)

Gambar 1.16 peta pikiran standar output


a. Printf()
Bentuk Penulisan :

printf("string-kontrol", argumen-1, argumen-2, …);

String-Kontrol dapat berupa keterangan yang akan ditampilkan pada layar beserta
penentu format. Penentu format dipakai untuk memberi tahu kompiler mengenai jenis
data yang dipakai dan akan ditampilkan. Argumen ini dapat berupa variabel, konstanta
dan ungkapan.
Untuk mengetahui penentu format yang dapat digunakan untuk fungsi printf()
perhatikan tabel berikut :
Tipe Data Penentu format
Integer %d
Floating Point
Bentuk desimal %f
Bentuk berpangkat %e
Bentuk desimal dan pangkat %g
Double precision %lf
Character %c
String %s
Unsigned integer %u
Long integer %ld
Long unsigned integer %lu
Unsigned hexadecimal integer %x
Unsigned octal integer %o
Tabel 1.3 penentu format fungsi printf()
Contoh1:

#include <stdio.h>
#include <conio.h>
main()
{
int a = 7;
char b = 'G';
clrscr();
printf("%c Merupakan Abjad Yang Ke - %d", b, a);
getch();
}

Hasil output dari program di atas :

G Merupakan Abjad Yang ke - 7

1. Penggunaan Penentu Lebar Field

Bila ingin mencetak atau menampilkan data yang bertipe data float atau pecahan,
tampilan yang tampak biasanya kurang bagus. Hal tersebut dapat diatur lebar field-nya
dan jumlah desimal yang ingin dicetak. Berikut bentuk penulisannya :

%a.bf

Lebar field Jumlah desimal

Contoh :

#include <stdio.h>
#include <conio.h>
main()
{
float a = 7.50, b = 243.21;
clrscr();
printf("Bilangan A = %f \n", a);
printf("Bilangan B = %f", b);
}
Output yang akan dihasilkan, jika tidak menggunakan penentu lebar field adalah
Bilangan A = 7.500000
Bilangan A = 243.210007

#include <stdio.h>
#include <conio.h>
main()
{
float a = 7.50, b = 243.21;
clrscr();
printf("Bilangan A = %4.1f \n", a);
printf("Bilangan B = %4.1f", b);
}

Output yang akan dihasilkan, jika menggunakan panentu lebar field adalah :
Bilangan A = 7.5
Bilangan A = 243.2

2. Penggunaan Escape Sequences

Escape Sequences merupakan suatu karakter khusus yang menggunakan notasi “ \ ” (back
slash) jika karakter terdapat notasi “\” ini sebagai karakter “escape” ( menghindar).

Beberapa Escape Sequences lainnya antara lain :

ESCAPE SEQUENCES PENGERTIAN


\b Backspace
\f formfeed (pindah halaman)
\n newline (baris baru)
\r carriage return
\t tab (default = 7 karakter)
\' tanda kutip tunggal (‘)
\” tanda kuti ganda (“)
\\ backslash
\xaa Kode ASCII dalam hexadecimal.
( aa menunjukkan angka ASCII ybs )
\aaa Kode ASCII dalam octal. (aaa menunjukkan
angka ASCII ybs )
Tabel 1.4 tabel Escape Sequences
Contoh :

#include <stdio.h>
#include <conio.h>
main()
{
float a = 7.50, b = 43.21, c = 3.21;
float d = 17.50, e = 47.41, f = 3.1;
clrscr();
printf("%8.2f\t %8.2f\t %8.2f ", a, b, c);
printf("\n%8.2f\t%8.2f\t%8.2f ", d, e, f);
}

7.50 43.21 3.21


17.50 47.41 3.10

b. Puts ()
Perintah puts() sebenarnya sama dengan printf(), yaitu digunakan untuk mencetak string
ke layar. puts() berasal dari kata PUT STRING.

Perbedaan antara printf() dengan puts() adalah :

Gambar 1.17 peta pikiran perbedaan antara printf() dengan puts()


Contoh :

#include <stdio.h>
#include <conio.h>
main()
{
char a[4] = "SMK 1 Boyolangu";
clrscr();
puts("Saya Sekolah di. ");
puts(a);
}

Saya Sekolah di SMK 1 Boyolangu

c. putchar()
Perintah putchar() digunakan untuk menampilkan sebuah karakter ke layar. Penampilan
karakter tidak diakhiri dengan pindah baris.
Contoh Program :

#include <stdio.h>
#include <conio.h>
main()
{
clrscr();
putchar('E');
putchar('S');
putchar('E');
putchar('M');
putchar('K');
putchar('I');
putchar('T');
putchar('A');
}

Hasil Eksekusi :
ESEMKITA
d. cout()
Fungsi cout() merupakan sebuah objeck didalam C++ digunakan untuk menampilkan
suatu data kelayar. Untuk menggunakan fungsi cout() ini, harus menyertakan file header
iostream.h .
Contoh program :
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
main()
{
float a, b, c;
a=7.5; b=8.4; c=0;
clrscr();
cout<<"Masukan Nilai A : "<<a;
cout<<" Masukan Nilai B : "<<b;
c = a + b;
cout<<" Masukan Nilai C : "<<c;
getch();
}

Hasil eksekusi :

Masukan Nilai A : 7.5 Masukan Nilai B : 8.4 Masukan Nilai C : 15.9

1.4.3 Fungsi Manipulator


Manipulator pada umumnya digunakan untuk mengatur tampilan layar, untuk
mengguakan manipulator ini file header yang harus disertakan file header iomanip.h .

Gambar 1.18 peta pikiran fungsi manipulator


a. Endl
endl merupakan suatu fungsi manipulator yang digunakan untuk menyisipkan karakter
NewLine atau mengatur pindah baris. Fungsi ini sangat berguna untuk piranti keluaran
berupa file di disk. File header yang harus disertakan file header iostream.h .
Contoh :
# include <conio.h>
# include <iostream.h>
main()
{
float a, b, c;
a=7.5; b=8.4; c=0
clrscr();
cout<<"Masukan Nilai A : "<<a<<endl;
cout<<"Masukan Nilai B : "<<b<<endl;
c = a + b;
cout<<"Masukan Nilai C : "<<c<<endl;
getch();
}

Hasil eksekusi :

Masukan Nilai A : 7.5


Masukan Nilai B : 8.4
Masukan Nilai C : 15.9

b. Ends
ends merupakan suatu fungsi manipulator yang digunakan untuk menambah karakter null
( nilai ASCII NOL ) kederetan suatu karakter. Fungsi ini akan berguna untuk mengirim
sejumlah karakter kefile didisk atau modem dan mengakhirinya dengan karakter NULL..
File header yang harus disertakan file header iostream.h .
Contoh:
# include <stdio.h>
# include <conio.h>
# include <iostream.h>
main()
{
int a, b, c, d;
clrscr();
a = 6;
b = 5;
c = a % b;
d = a * b;
cout<<"Hasil dari C = A % B adalah "<<c<<ends;
cout<<"Hasil dari D = A * B adalah "<<d<<ends;
getch();
}
Hasil eksekusi :

Masukan Nilai C = A % B adalah 1 Hasil dari D = A * B adalah 30

c. dec, oct dan hex


dec, oct dan hex merupakan suatu fungsi manipulator yang digunakan untuk konversi
data dalam bentuk desimal, oktal dan hexadesimal. File header yang harus disertakan file
header iomanip.h .
Contoh :
# include <stdio.h>
# include <conio.h>
# include <iostream.h>
# include <iomanip.h>
void main()
{
int nilai = 10;
clrscr();
cout<<"Nilai = "<<nilai<<endl;
cout<<"Nilai ke Octal = "<<oct<<nilai<<endl;
cout<<"Nilai ke Hexadesimal = "<<hex<<nilai<<endl;
cout<<"Nilai ke Desimal = "<<dec<<nilai<<endl;
getch();
}

Hasil eksekusi :

Nilai = 10
Nilai ke Octal = 12
Nilai ke Hexadesimal = a
Nilai ke Desimal = 10

d. setprecision ()
setprecision() merupakan suatu fungsi manipulator yang digunakan
untuk mengatur jumlah digit desimal yang ingin ditampilkan. File header
yang harus disertakan file header iomanip.h .

# include <stdio.h>
# include <conio.h>
# include <iostream.h>
# include <iomanip.h>
void main()
{
float a, b, c;
a = 25.77;
b = 23.45;
clrscr();
c = a * b;
cout<<setiosflags(ios::fixed);
cout<<setprecision(1)<<c<<endl;
cout<<setprecision(2)<<c<<endl;
cout<<setprecision(3)<<c<<endl;
cout<<setprecision(4)<<c<<endl;
cout<<setprecision(5)<<c<<endl;
getch();
}

Hasil eksekusi :

604.3
604.31
604.307
604.3065
604.30652

e. setbase()
setbase() merupakan suatu fungsi manipulator yang digunakan untuk konversi bilangan
Octal, Decimal dan Hexadecimal. File header yang harus disertakan file header iomanip.h

Bentuk penulisannya :

setbase(base bilangan);

Base bilangan merupakan base dari masing-masing bilangan, yaitu :


• Octal = basis 8
• Decimal = basis 10
• Hexadecimal = basis 16

//Penggunaan Manipulator setbase()


# include <stdio.h>
# include <conio.h>
# include <iostream.h>
# include <iomanip.h>
main()
{
int a = 250;
clrscr();
cout<<"Penggunan Manipulator setbase()"<<"\n\n";
cout<<"Decimal Octal Hexadecimal"<<endl;
cout<<"----------------------------"<<"\n";
for(a=250;a<=260;a++)
{
cout<<setbase(10)<<a<<" ";
cout<<setbase(8)<<a<<" ";
cout<<setbase(16)<<a<<endl;
}
getche();
}
Penggunaan Fungsi Manipulator setbase ()

Desimal Octal Hexadecimal


---------------------------------
250 372 fa
251 373 fb
252 374 fc
253 375 fd
254 376 fe
255 377 ff
256 400 100
257 401 101
258 402 102
259 403 103
260 404 104

f. setw()
setw() merupakan suatu fungsi manipulator yang digunakan untuk mengatur lebar
tampilan dilayar dari suatu nilai variabel. File header yang harus disertakan file header
iomanip.h .
Bentuk penulisannya :

setw(int n);

n = merupakan nilai lebar tampilan data, integer.

Contoh Program :

// Penggunaan Manipulator setw()


# include <stdio.h>
# include <conio.h>
# include <iostream.h>
# include <iomanip.h>
main()
{
int a;
clrscr();
cout<<"Penggunan Manipulator setw()"<<"\n\n";
cout<<"-------------------------------"<<"\n";
for(a=1;a<=15;a++)
{
cout<<setw(a)<<a<<endl;
}
cout<<"-------------------------------"<<"\n";
getche();
}
Hasil eksekusi :

Penggunaan Manipulator setw ()


---------------------------------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
---------------------------------

g. setfill()
setfill() merupakan suatu fungsi manipulator yang digunakan untuk manampilkan suatu
karakter yang ditelakan didepan nilai yang diatur oleh fungsi setw(). File header yang
harus disertakan file header iomanip.h .
Bentuk penulisannya :

setfill(charakter);

Contoh Program :

//--> penggunaan setfill dan setw()


# include <stdio.h>
# include <conio.h>
# include <iostream.h>
# include <iomanip.h>
main()
{
int a;
clrscr();
cout<<"Penggunan Manipulator setfill()"<<"\n\n";
cout<<"-------------------------------"<<"\n";
for(a=1;a<=15;a++)
{
cout<<setfill('-');
cout<<setw(a)<<a<<endl;
}
getche();
}
Hasil eksekusi :

Penggunaan Manipulator setfill ()


---------------------------------
1
-2
--3
---4
----5
-----6
------7
-------8
--------9
---------10
----------11
-----------12
------------13
-------------14
--------------15

h. setiosflags ()

Fungsi setiosflags() merupakan suatu fungsi manipulator yang digunakan untuk mengatur
sejumlah format keluaran data.
Fungsi ini biasa pada fungsi cout(), file header yang harus disertakan file header
iomanip.h .

Ada beberapa format keluaran untuk fungsi setiosflags(), antara lain.

1. Tanda Format Perataan Kiri dan Kanan

Tedapat dua buah tanda format yang digunakan untuk perataan kiri dan kanan,
pengaturan terhadap lebar variabel untuk perataan kiri dan kanan ini melalui fungsi
setw().

ios::left digunakan untuk mengatur perataan sebelah kirii


ios::right digunakan untuk mengatur perataan sebelah kanan
Contoh program :

//tanda format ios::left dan ios::right


# include <stdio.h>
# include <conio.h>
# include <iostream.h>
# include <iomanip.h>
main()
{
int a = 75, b = 56;
clrscr();
cout<<"Penggunaan ios::left dan ios::right\n\n";
cout<<"Rata Sebelah Kiri = ";
cout<<setiosflags(ios::left)<<setw(10)<<a;
cout<<setiosflags(ios::left)<<setw(10)<<b;
cout<<endl;
cout<<"Rata Sebelah Kanan = ";
cout<<setiosflags(ios::right)<<setw(10)<<a;
cout<<setiosflags(ios::right)<<setw(10)<<b;
getche();
}

Hasil eksekusi

Penggunaan ios::left dan ios::right

Rata Sebelah Kiri = 75 56


Rata Sebelah kanan = 75 56

2. Tanda Format Keluaran Notasi Konversi


Tanda format yang digunakan untuk keluaran Notasi, yaitu :

ios::scientific digunakan untuk mengatur keluaran


dalam bentuk notasi eksponensial.
ios::fixed digunakan untuk mengatur keluaran dalam
bentuk notasi desimal
Contoh program :

//tanda format ios::scientific dan ios::fixed


# include <stdio.h>
# include <conio.h>
# include <iostream.h>
# include <iomanip.h>
main()
{
clrscr();
cout<<"Penggunaan ios::scientific dan ios::fixed\n";
cout<<"\nHasil ios::scientific dari 75.45 adalah ";
cout<<setiosflags(ios::scientific)<<75.45<<endl;
cout<<"Hasil ios::fixed dari 56.65 adalah ";
cout<<setiosflags(ios::fixed)<<56.65;
getche();
}

Hasil eksekusi

Penggunaan ios::scientific dan ios::fixed

Hasil ios::scientific dari 75.45 adalah 7.545000e+01


Hasil ios::fixed dari 56.65 adalah 56.650000

3. Tanda Format Konversi Dec, Oct dan Hex

Terdapat tiga macam tanda format yang digunakan untuk konversi keluaran dalam basis
Decimal, Octal dan Hexadecimal, yaitu :

ios::dec digunakan untuk mengatur keluaran dalam konversi basis


desimal
ios::oct digunakan untuk mengatur keluaran dalam bentuk notasi
desimal
ios::hex digunakan untuk mengatur keluaran dalam konversi basis
heksadesimal
Contoh program :

//tanda format ios::dec, ios::oct, ios::hex


# include <stdio.h>
# include <conio.h>
# include <iostream.h>
# include <iomanip.h>
main()
{
clrscr();
cout<<"\n\n";
cout<<"Bilangan Decimal dari 75 = ";
cout<<setiosflags(ios::dec)<<75<<endl;
cout<<"Bilangan Octal dari 10 = ";
cout<<setiosflags(ios::oct)<<10<<endl;
cout<<"Bilangan Hexadecimal dari 15 = "
cout<<setiosflags(ios::hex)<<15;
getche();
}

Hasil eksekusi :
Bilangan Decimal dari 75 = 75
Bilangan Octal dari 10 = 12
Bilangan Hexadecimal dari 15 = f

4. Tanda Format Manipulasi Huruf Hexadecimal


Untuk keperluan memanipulasi atau mengubah huruf pada notasi hexadecimal dengan
menggunakan tanda format :

ios::uppercase

digunakan untuk mengubah huruf pada notasi huruf hexadecimal.


Contoh program

//tanda format ios::uppercase


# include <stdio.h>
# include <conio.h>
# include <iostream.h>
# include <iomanip.h>
main()
{
int a;
clrscr();
cout<<"Penggunaan ios::uppercase\n";
cout<<"-------------------------\n";
cout<<"Tanpa Dengan \n";
cout<<"Konversi Konversi \n";
cout<<"-------------------------\n";
for (a=1; a<=15; a++)
cout<<hex<<a<<endl;
for (a=1; a<=15; a++)
{
gotoxy(15,a+5);
cout<<setiosflags(ios::uppercase)<<hex<<a<<endl;
} getche();
}

Hasil eksekusi :

Penggunaan ios::uppercase
-------------------------
Tanpa Dengan
Konversi Konversi
-------------------------
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
a A
b B
c C
d D
e E
f F
5. Tanda Format Keluaran Dasar Bilangan Hexadecimal dan Octal
Untuk keperluan menampilkan dasar bilangan Hexadecimal dan Oktal dengan
menggunakan tanda format :

ios::showbase

digunakan untuk menampilkan tanda 0x (nolx) diawal pada tampilan bilangan


hexadecimal dan 0 (nol) diawal pada tampilan bilangan decimal.

Contoh program :

//tanda format ios::showbase


# include <stdio.h>
# include <conio.h>
# include <iostream.h>
# include <iomanip.h>
main()
{
int a;
clrscr();
cout<<"Penggunaan ios::showbase\n";
cout<<"----------------------------\n";
cout<<"Decimal Hexadecimal Oktal \n";
cout<<"----------------------------\n";
cout<<setiosflags(ios::showbase);
for (a=1; a<=15; a++)
{
gotoxy(4,a+5);
cout<<dec<<a<<endl;
}
for (a=1; a<=15; a++)
{
gotoxy(15,a+5);
cout<<hex<<a<<endl;
}
for (a=1; a<=15; a++)
{
gotoxy(25,a+5);
cout<<oct<<a<<endl;
}
cout<<"----------------------------\n";
getche();
}
Hasil eksekusi :

Penggunaan ios::showbase
---------------------------
Decimal Hexadecimal Oktal
---------------------------
1 0x1 01
2 0x2 02
3 0x3 03
4 0x4 04
5 0x5 05
6 0x6 06
7 0x7 07
8 0x8 010
9 0x9 011
10 0xa 012
11 0xb 013
12 0xc 014
13 0xd 015
14 0xe 016
15 0xf 017

6. Tanda Format Menampilkan Titik Desimal


Untuk keperluan menampilkan titik desimal dengan menggunakan tanda format :

ios::showpoint

digunakan untuk menampilkan titik desimal pada bilangan yang tidak mempunyai titik
desimal pada tipe data float atau double.

//tanda format ios::showpoint


# include <stdio.h>
# include <conio.h>
# include <iostream.h>
# include <iomanip.h>
main()
{
double a = 78;
clrscr();
//-> tanpa tanda format ios::showpoint
cout<<"Tanpa tanda format ios::showpoint"<<endl;
cout<<"Variabel a = "<<a<<"\n\n";
//-> dengan tanda format ios::showpoint
cout<<"Dengan tanda format ios::showpoint"<<endl;
cout<<setiosflags(ios::showpoint);
cout<<"Variabel a = "<<a<<endl;
getche();
}
Hasil eksekusi :

Tanpa tanda format ios::showpoint


Variabel a = 78

Dengan tanda format ios::showpoint


Variabel a = 78.000

7. Tanda Format Menampilkan Simbol Plus ( + )


Untuk keperluan menampilkan simbol Plus ( + ) pada bilangan genap dengan
menggunakan tanda format :

ios::showpos

digunakan untuk menampilkan simbol plus (+) pada variabel yang memiliki nilai
bilangan positif.

//tanda format ios::showpos


# include <stdio.h>
# include <conio.h>
# include <iostream.h>
# include <iomanip.h>
main()
{
int a = 8, b = -9;
clrscr();
cout<<"Tanpa Menggunakan ios::showpos"<<"\n\n";
cout<<"Nilai a = "<<a<<" Nilai b = "<<b<<endl;
cout<<"\n\n";
cout<<setiosflags(ios::showpos);
cout<<"Dengan Menggunakan ios::showpos"<<"\n\n";
cout<<"Nilai a = "<<a<<" Nilai b = "<<b<<endl;
getche();
}

Hasil eksekusi :
Tanpa Menggunakan ios::showpos
Nilai a = 8 Nilai b = -9
Dengan Menggunakan ios::showpos
Nilai a = +8 Nilai b = -9
1.5 Kompilasi dan eksekusi program
1.3 pemrograman
1.4 program
Setelah menuliskan kode C++, kita perlu menkompilasi terlebih dahulu dan
membentuk berkas .exe. misalnya adalah untuk kode berikut:

Gambar 1.19

Caranya: pilih menu Build | Compile selamat_belajar.exe.

Gambar 1.20

Modul Pemrogaman Dasar Page 57


Gambar 1.21

Hasil pembentukan .exe yang ditandai dengan () error(s) menyatakan bahwa tidak
ada kesalahan sewaktu membentuk .exe.

Gambar 1.22
Untuk menjalankan aplikasi tekan f5 atau Ctrl+f5 atau dengan klik execute
program pada toolbar berikut.

Gambar 1.23

Modul Pemrogaman Dasar Page 58


Sehingga hasilnya sebagai berikut:

Gambar 1.24
Untuk mengakhiri aplikasi, tekanlah sembarang tombol.

1.6 Perbaikan Kesalahan


1.5 pemrograman
1.6 program
Sebagai manusia tentu terkadang kita melakukan kesalahan. Hal itu juga mungkin
terjadi ketika kita sedang menulis kode C++. Sebagai contoh, mungkin saja int
ditulis Int, yang tentu tidak akan dikenal oleh kompiler C++.
Misalnya sebagai berikut:

Gambar 1.25
Perhatikan ketika int diganti Int pada jendela output terdapat 3 error(s), yang
menunjukkan terdapat 3 kesalahan. Kesalahan tersebut dapat dilihat dengan
menggeser tombol geser di bagian kanan jendela output, sebagai berikut:

Modul Pemrogaman Dasar Page 59


Gambar 1.26
Untuk mengetahui baris yang menyebabkan kesalahan, klik ganda pada baris
kesalahan, hasilnya diperlihatkan pada gambar berikut:

Gambar 1.27

Pada gambar di atas, tampak bahwa Int ditunjuk oleh suatu penanda.
Nah, dari tanda tersebut kita dapat mengetahui bahwa terdapat kekeliruan
penulisan pada Int kemudian untuk memperbaikinya diganti dengan int.

Modul Pemrogaman Dasar Page 60


JANGAN PANIK!
Perlu diperhatikan, terkadang sebuah kesalahan
bisasaja membuat kompiler memberikan lebih dari
satu pesa kesalahan. Jika kalian menjumpai keadaan
seperti itu, betulkan kesalahan dimulai dari yang
paling atas dan kemudian cobalah untuk
mengkompilasi ulang sehingga pesan kesalahan jadi
berkurang atau hilang sama sekali

1.7 Tipe Data, Konstanta dan Variabel


1.7 pemrograman
1.7.1 Tipe data
1.8 memiliki
C++ program beberapa tipe data, perhatikan peta pikiran berikut :

Gambar 1.28 peta pikiran tipe data

Borland C++ memiliki 7 tipe data dasar, perhatikan tabel berikut :

Tipe data Ukuran dalam Jangkauan nilai


byte
char 1 -128 s/d 127
int 2 -2.147.483.648 s/d
-2.147.483.647
short 2 -32.768 s/d 32767
long 4 -2.147.483.648 s/d
-2.147.483.647
float 4 3,4 x 10-36 s/d 3,4 x 10+38
double 8 1,7 x 10-308 s/d 1,7 x 10+308
long double 10 3,4 x 10-4932 s/d 1.1 x 10+4932
Tabel 1.5 tipe data dasar

Modul Pemrogaman Dasar Page 61


Tipe data tambahan yang dimiliki oleh Borland C++, adalah :

Unsigned digunakan bila data yang digunakan hanya data yang positif saja.
Tipe data Ukuran dalam jangkauan nilai
byte
unsigned 2 0 – 65535
integer
unsigned 1 0 – 255
character
unsigned 4 0 – 4,294,967,295
long integer
Tabel 1.6 tipe data tambahan

Tipe char digunakan untuk menyatakan karakter,


tipe bool digunakan untuk menyatakan logika,
sedangkan yang lain digunakan untuk bilangan.

1.7.2 Konstanta
Konstanta biasa juga disebut dengan literal adalah suatu nilai yang dituliskan pada
kode sumber C++. Misalkan anda menuliskan 4 untuk menyatakan nilai bulat 4
dan “selamat belajar C++” untuk menyatakan suatu deretan karakter (string).

Modul Pemrogaman Dasar Page 62


Gambar 1.29 peta pikiran macam-macam konstanta

Modul Pemrogaman Dasar Page 63


Konstanta bilangan

Gambar 1.30 peta pikiran konstanta bilangan


Perhatikan :

1.5E22  berarti 1,5x1023

Tanda + atau – dapat diletakkan sesudah tanda E atau e.


Misalnya :
 1.5E+22  berarti 1,5x1023
 1.5E-22  berarti 1,5x10-23

Perhatikan tanda pecahan pada bilangan real


dinyatakan dengan titik.
Kadangakala notasi E ditulis dengan e
Jadi 1.5E22 dan 1.5e22 identik

Selain itu terdapat notasi yang menyatakan konstanta long dan float. Huruf L atau
l bisa diletakkan pada konstanta bilangan bulat untuk menyatakan konstanta
bertipe long. Dan huruf F atau f bisa diletakkan pada konstanta bilangan bulat
untuk menyatakan konstanta bertipe float.
Contoh : 123L, 123F

Konstanta karakter
Konstanta karakter digunakan untuk sebuah karakter. Karakter ditulis dalam tanda
petik tungggal.
Konstanta Keterangan
‘a’ karakter huruf a
‘@’ karakter simbol @
‘5’ karakter angka 5
Tabel 1.7 penulisan konstanta karakter

Modul Pemrogaman Dasar Page 64


Pada C++ terdapat istilah kode escape. Kode escape adalah kode karakter yang
penulisannya diawali dengan simbol \.
Kode Keterangan
\() Karakter ber-ASCII nol (disebut karakter nul)
\a karakter audio (bel)
\b backspace
\f formfeed
\n newline
\r carriage return
\t tab
\v tab vertikal
\’ petik tunggal
\” petik ganda
\? karakter?
\ddd oktal (dd = 0 s/d 377)
\xdd heksadesimal (dd = 0 s/d FF atau ff)
Tabel 1.8 kode escape

Konstanta logika

Gambar 1.31 peta pikiran konstanta logika

Contoh kasus :

#include <iostream.h>
int main ()
{
cout <<123<<endl
<<123.4<<endl
<<123.4F<<endl
<<123.4L<<endl
<<true<<endl
<<false<<endl;

return 0;
}

Modul Pemrogaman Dasar Page 65


Hasil eksekusi :

Konstanta string

Gambar 1.32 peta pikiran konstanta string


Contoh :

#include <iostream.h>
int main()
{
cout<<"\'hello pemrograman dasar\',:) :)."<<endl
<<"\"hello SMKN 1 Boyolangu\", :) :)"<<endl
<<"abc\t123\tdef" <<endl;
return 0;
}

Hasil eksekusi :

Modul Pemrogaman Dasar Page 66


Konstanta bernama

Gambar 1.33 peta pikiran konstanta bernama


Contoh kasus:

#include <iostream.h>
int main()
{
const double PI = 3.14;
double radius = 23.4;

cout<<"keliling = "
<<2 * PI * radius
<<endl;
return 0;
}

Hasil eksekusi kode C++ diatas :

Modul Pemrogaman Dasar Page 67


1.7.3 Variabel

Gambar 1.34 peta pikiran variabel

Variabel menyatakan suatu lokasi di dalam memori komputer yang digunakan


untuk menyimpan suatu nilai dan nilai yang ada di dalamnya bisa diubah.
Perhatikan ilustrasi variabel berikut :

Setelah diganti
Nilai semula menjadi 15

10 Bisa berubah
15
Gambar 1.35 ilustrasi variabel

Mendeklarasikan variabel
Dalam C++ variabel yang digunakan perlu dideklarasikan. Perhatikan bentuk
pendeklarasian variabel berikut :

Tipe namaVar [,namaVar];

Tanda [] dalam [,namaVar] menunjukkan yang ada di dalam tanda tersebut


bersifat opsional.

Modul Pemrogaman Dasar Page 68


Perhatikan macam-macam tipe variabel berikut :
Tipe variabel Simbol deklarasi
Integer int
Floating point float
Double precision double
Karakter char
Unsigned integer unsigned int
Unsigned character unsigned char
Long integer long int
Unsigned long integer unsigned long int
Tabel 1.9 macam-macam tipe variabel

Contoh :
Variabel Keterangan
int jumlah; Variabel jumlah bertipe int
float bilPecahan; Variabel bilPecahan bertipe float
char huruf; Variabel huruf bertipechar
Tabel 1.10 contoh variabel

Pendeklarasian dua buah variabel bisa dilakukan seperti berikut:

Int bilA, bilB

Memberi nilai terhadap variabel


Setelah variabel dideklarasikan, variabel dapat diberi nilai. Caranya dengan
menggunakan operator “=”.

Variabel = nilai;

Nilai yang diberikan dapat berupa konstanta, variabel, atau suatu ekspresi (yang
melibatkan operator). Misal :
Penugasan Keterangan
jumlah jumlah diisi dengan bilangan bulat 10
bilReal = 2.5f bilReal diisi dengan bilangan 2.5 bertipe
float
huru=’A’; huruf diisi dengan karakter A
Tabel 1.11 contoh memberi nilai variabel

Pemberian nilai juga dapat dilakukan saat variabel dideklarasikan. Kaidahnya :

Tipe variabel = nilaiAwal;

Contoh : double radius = 10;

Modul Pemrogaman Dasar Page 69


C++ juga memungkinkan penugasan sejumlah variabel dengan sebuah nilai,
misalkan :
a = b = c = 1;

Pemberian nilai juga dapat dilakukan melalui keyboard. Dalam hal ini C++
menyediakan objek bernama cin. Penggunaannya sebagai berikut:

cin >> variabel; tanda “>>” dinamakan operator “pengambilan dari “

1.8 Operator dan Ekspresi


1.9 pemrograman
Operator merupakan simbol atau karakter yang biasa dilibatkan dalam
1.10 program
program untuk melakukan sesuatu operasi atau manipulasi, seperti
penjumlahan, pengurangan dan lain-lain.

Menurut jumlah operand yang dilibatkan, operator diklasifikasikan menjadi


3:

Gambar 1.36 peta pikiran operator berdasarkan jumlah operand

Modul Pemrogaman Dasar Page 70


Gambar di bawah ini menunjukkan ekspresi, operand, dan operator

Operand

2+3*4 Ekspresi

Operator
Gambar 1.37 ilustrasi ekspresi operand dan operator

• Transformasi nilai menjadi keluaran dilakukan melalui sutu perhitungan


(komputasi)
• Cara perhitungan itu dinyatakan dalam suatu ekspresi
• Ekspresi terdiri atas :OPERAND dan OPERATOR

Tiga macam ekspresi


1. Ekspresi Aritmetik (operator aritmetik):
Contoh : a*b, a*b/c, a div b * c, a+b*c
: d  a*b (tipe data d harus sama dengan hasil hitungan ekspresi a*b)
2. Ekspresi Relasional (operator relasional):
Contoh : not ada, ada or ketemu, x < 5,
ada or (x=y), dll.
3. Ekspresi String (operator penyambungan (+))
Contoh :
‘Jl. Ganesa’ + ‘No.12’

Modul Pemrogaman Dasar Page 71


1.8.1 Operator Aritmatika
Operator untuk operasi aritmatika yang tergolong sebagai operator binary
adalah :
Operator Keterangan Contoh
* Perkalian 4*2
/ Pembagian 4/2
% Sisa pembagian 3%2
+ Penjumlahan 2+1
- pengurangan 2-1
Tabel 1.12 operator untuk operaasi aritmatika

Operator yang tergolong sebagai operator Unary, adalah :


Operator Keterangan Contoh
+ Tanda plus +2
- Tanda minus -3
Tabel 1.13 operator unary

Contoh :

#include <stdio.h>
#include <conio.h>
#include <iostream.h>
main()
{
int a, b, c = 0, d = 0;
clrscr();
cout<<"Masukan Nilai A : "; cin>>a;
cout<<"Masukan Nilai B : "; cin>>b;
c = a % b;
d = a * b;
cout<<" Hasil dari C = A % B = "<<c<<endl;
cout<<" Hasil dari D = A * B = "<<d<<endl;
getch();
}

Hasil eksekusi :

Masukkan Nilai A : 8
Masukkan Nilai B : 3
Hasil dari C = A % B = 2
Hasil dari D = A * B = 24

a. Ekspresi Aritmatika
Bentuk penulisan ekspresi aritmatika dikaitkan dengan pernyataan
pemberi nilai. Bentuk Umum :

Variabel = Ekspresi Aritmatika

Modul Pemrogaman Dasar Page 72


LValue RValue

Modul Pemrogaman Dasar Page 73


 Variabel, dikenal dengan sebutan LValue (Left Value)
 Ekspresi Aritmatika dikenal dengan sebutan RValue (Right Value)
 Tanda “ = “, dikenal dengan sebagai Operator Pemberi Nilai
(Assignment Operator).

LValue harus selalu berupa variabel tunggal. Bila LValue bukan berupa
variabel, maka akan tampil pesan kesalahan LValue required in
function …
RValue dapat berupa konstanta, variabel lain maupun suatu ekspresi
atau rumus aritmatika.

b. Hierarki Operator Aritmatika


Didalam suatu ekspresi aritmatika, selalu menjumpai beberapa operator
aritmatika yang berbeda secara bersamaan. Urutan operator aritmatika
sebagai berikut :

Operator Keterangan
* atau / Tingkatan operator sama, peng gunaannya
tergantung letak, yang didepan didahulukan
% Sisa Pembagian
+ atau - Tingkatan operator sama, peng gunaannya
tergantung letak, yang didepan didahulukan
Tabel 1.14 urutan operator aritmatika
Contoh :
A=8+2*3/6

Langkah perhitungannya :
A=8+6/6(6/6=1)
A=8+1
A=9
Tingkatan operator ini dapat diabaikan dengan penggunaan tanda kurung
“(“ dan “)”.

Contoh :
A = (8 + 2) * 3 / 6
Langkah perhitungannya :
A = 10 * 3 / 6
A = 30 / 6
A=5

Modul Pemrogaman Dasar Page 74


Contoh kasus :

#include <stdio.h>
#include <conio.h>
#include <iostream.h>
main()
{
int a, b;
clrscr();
a = 8 + 2 * 3 / 6;
b = (8 + 2) * 3 / 6;
cout<<" Hasil dari A = "<<a<<endl;
cout<<" Hasil dari B = "<<b<<endl;
getch();
}

Output yang akan dihasilkan, dari program contoh di atas adalah :

Hasil dari A = 9
Hasil dari B = 5

1.8.2 Operator Pemberi Nilai Aritmatika


Sebelumnya kita telah mengenal operator pemberi nilai ( assignment operator )
yaitu tanda “ = “. Sebagai contoh penggunaan operator pemberi nilai : A = A + 1

Dari penulisan ekspresi diatas, Borland C++ dapat menyederhanakan


menjadi : A += 1

Notasi “ += “ ini dikenal dengan operator pemberi nilai aritmatika.

Ada beberapa operator pemberi nilai aritmatka diantaranya :


Operator Keterangan
*= Perkalian
/= Pembagian
%= Sisa pembagian
+= Penjumlahan
-= Pengurangan
Tabel 1.15 operator pemberi nilai aritmatika

1.8.3 Operator Penambah dan Pengurang


Masih berkaitan dengan operator pemberi nilai, Borland C++ menyediakan
operator penambah dan pengurang. Dari contoh penulisan operator
pemberi nilai sebagai penyederhanaannya dapat digunakan operator
penambah dan pengurang.

Modul Pemrogaman Dasar Page 75


Operator Keterangan
*+ Penambahan
-- Pengurangan
Tabel 1.16 operator penambah dan pengurang

A = A + 1 atau A = A - 1; disederhanakan menjadi :


A += 1 atau A -= 1; masih dapat disederhanakan menjadi A ++ atau
A--
Notasi “ ++ “ atau “ -- “ dapat diletakan didepan atau di belakang variabel.

A ++ atau ++A / A-- atau --A


Kedua bentuk penulisan notasi ini mempunyai arti yang berbeda.
• Jika diletakan didepan variabel, maka proses penambahan atau pengurangan akan
dilakukan sesaat sebelum atau langsung pada saat menjumpai ekspresi ini,
sehingga nilai variabel tadi akan langsung berubah begitu ekspresi ini ditemukan,
sedangkan

• Jika diletakan dibelakang variabel, maka proses penambahan atau pengurangan


akan dilakukan setelah ekspresi ini dijumpai atau nilai variabel akan tetap pada
saat ekspresi ini ditemukan.

/* Penggunaan Notasi Didepan Variabel*/


#include <stdio.h>
#include <conio.h>
main()
{
int a = 10, b = 5;
clrscr();
printf("Nilai A = %d", a);
printf("\nNilai ++A = %d", ++a);
printf("\nNilai A = %d", a);
printf("\nNilai B = %d", b);
printf("\nNilai --B = %d", --b);
printf("\nNilai B = %d", b);
getch();
}

Output yang akan dihasilkan, dari program contoh di atas adalah :

Nilai A = 10
Hasil ++A = 11
Nilai A = 11
Nilai B = 5
Nilai --B = 4
Nilai B = 4

Modul Pemrogaman Dasar Page 76


/* Penggunaan Notasi Dibelakang Variabel*/
#include <stdio.h>
#include <conio.h>
main()
{
int a = 10, b = 5;
clrscr();
printf("Nilai A = %d", a);
printf("\nNilai A++ = %d", a++);
printf("\nNilai A = %d", a);
printf("\nNilai B = %d", b);
printf("\nNilai B-- = %d", b--);
printf("\nNilai B = %d", b);
getch();
}

Output yang akan dihasilkan, dari program contoh di atas adalah :

Nilai A = 10
Hasil A++ = 10
Nilai A = 11
Nilai B = 5
Nilai B-- = 5
Nilai B = 4

1.8.4 Operator Relasi


Operator Relasi digunakan untuk membandingkan dua buah nilai. Hasil
perbandingan operator ini menghasilkan nilai numerik 1 (True) atau 0 (False).

Operator Keterangan
== sama dengan (bukan pemberi nilai)
!= tidak sama dengan
> lebih dari
< kurang dari
>= lebih dari sama dengan
<= kurang dari sama dengan
Tabel 1.17 operator relasi

Modul Pemrogaman Dasar Page 77


#include <stdio.h>
#include <conio.h>
#include <iostream.h>
main()
{
float a, b, c, d, e, f, x, y;
clrscr();
cout<<"Masukan Nilai X = ";
cin>>x;
cout<<"Masukan Nilai Y = ";
cin>>y;
a = x == y;
b = x != y;
c = x > y;
d = x < y;
e = x >= y;
f = x <= y;
cout<<endl;
cout<<"Hasil dari "<<x<<" == "<<y<<" = "<<a<<endl;
cout<<"Hasil dari "<<x<<" != "<<y<<" = "<<b<<endl;
cout<<"Hasil dari "<<x<<" > "<<y<<" = "<<c<<endl;
cout<<"Hasil dari "<<x<<" < "<<y<<" = "<<d<<endl;
cout<<"Hasil dari "<<x<<" >= "<<y<<" = "<<e<<endl;
cout<<"Hasil dari "<<x<<" <= "<<y<<" = "<<f<<endl;
getch();
}

Output yang akan dihasilkan, dari program contoh di atas adalah :

Masukan Nilai X = 5
Masukan Nilai Y = 3

Hasil dari 5 == 3 = 0
Hasil dari 5 != 3 = 1
Hasil dari 5 > 3 = 1
Hasil dari 5 < 3 = 0
Hasil dari 5 >= 3 = 1
Hasil dari 5 <= 3 = 0

Modul Pemrogaman Dasar Page 78


1.8.5 Operator Logika
Operator Relasi digunakan untuk menghubungkan dua buah operasi relasi menjadi
sebuah ungkapan kondisi. Hasil dari operator logika ini menghasilkan nilai
numerik 1 (True) atau 0 (False).

Operator Keterangan
&& Operator logika AND
|| Operator logika OR
! Operator logika NOT
Tabel 1.18 operator logika

a. Operator Logika AND


Operator logika AND digunakan untuk menghubungkan dua atau lebih ekspresi
relasi, akan dianggap BENAR, bila semua ekspresi relasi yang dihubungkan
bernilai BENAR.

Contoh :
Ekspresi Relasi-1  A + 4 < 10
Ekspresi Relasi-2  B>A + 5
Ekspresi Relasi-3  C - 3 >= 4

Penggabungan ketiga ekspresi relasi diatas menjadi ;


A+4 < 10 && B>A+5 && C–3 >= 4

Jika nilai A = 3; B = 3; C = 7, maka ketiga ekspresi tersebut mempunyai


nilai :
 Ekspresi Relasi-1 A + 4 < 10  3 + 4 < 10 BENAR
 Ekspresi Relasi-2  B>A + 5  3 > 3 + 5  SALAH
 Ekspresi Relasi-3  C – 3 >= 4  7 – 3 >= 4  BENAR

Dari ekspresi relasi tersebut mempunyai nilai BENAR, maka


A+4 < 10 && B>A+5 && C–3 >= 4  SALAH = 0

Modul Pemrogaman Dasar Page 79


Contoh Kasus :

/* Penggunaan Operasi Logika AND */


#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main()
{
float a, b, c, d, e, f, g, h;
clrscr();
cout<<"Masukan Nilai A = "; cin>>a;
cout<<"Masukan Nilai B = "; cin>>b;
cout<<"Masukan Nilai C = "; cin>>c;
// Proses
d = a + 4 < 10;
e = b > a + 5;
f = c - 3 >= 4;
g = d && e && f;
cout<<endl<<endl;
cout<<"Program Ekspresi AND"<<endl<<endl;
cout<<"Hasil dari d = a + 4 < 10 adalah " <<d<<endl;
cout<<"Hasil dari e = b > a + 5 adalah " <<e<<endl;
cout<<"Hasil dari f = c - 3 >= 4 adalah " <<f;
cout<<endl<<endl;
cout<<"Hasil dari g = d && e && f adalah " <<g;
cout<<endl;
getch();
}

Output yang akan dihasilkan, dari program contoh di atas adalah :

Masukan Nilai A = 3
Masukan Nilai B = 2
Masukan Nilai C = 1

Program Ekspresi AND

Hasil dari d = a + 4 < 10 adalah 1


Hasil dari e = b > a + 5 adalah 0
Hasil dari f = c - a >= 4 adalah 0

Hasil dari g = d && e && f adalah 0

Modul Pemrogaman Dasar Page 80


b. Operator Logika Or
Operator logika OR digunakan untuk menghubungkan dua atau lebih
ekspresi relasi, akan dianggap BENAR, bila salah satu ekspresi relasi
yang dihubungkan bernilai BENAR dan bila semua ekspresi relasi yang
dihubungkan bernilai SALAH, maka akan bernilai SALAH.
Contoh :
Ekspresi Relasi-1  A + 4 < 10
Ekspresi Relasi-2  B>A + 5
Ekspresi Relasi-3  C - 3 > 4
Penggabungan ketiga ekspresi relasi diatas menjadi ;
A+4 < 10 || B>A+5 || C–3 > 4

Jika nilai A = 3; B = 3; C = 7, maka ketiga ekspresi tersebut mempunyai


nilai :
 Ekspresi Relasi-1  A + 4 < 10  3 + 4 < 10  BENAR
 Ekspresi Relasi-2  B>A + 5  3 > 3 + 5  SALAH
 Ekspresi Relasi-3  C - 3 > 4  7 – 3 > 4  SALAH

Dilihat ekspresi diatas salah satu ekspresi tersebut mempunyai nilai


BENAR, maka ekspresi tersebut tetap bernilai BENAR.
A+4 < 10 || B>A+5 || C–3 > 4  BENAR = 1

/* Penggunaan Operasi Logika OR */


#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main()
{
float a, b, c, d, e, f, g, h;
clrscr();
cout<<"Masukan Nilai A = "; cin>>a;
cout<<"Masukan Nilai B = "; cin>>b;
cout<<"Masukan Nilai C = "; cin>>c;
d = a + 5 > 10;
e = b > 5 + a ;
f = c - 4 <= 7;
g = d || e || f;
cout<<endl<<endl;
cout<<"Program Ekspresi OR"<<endl<<endl;
cout<<"Hasil dari d = a + 5 > 10 adalah " <<d<<endl;
cout<<"Hasil dari e = b > 5 + a adalah " <<e<<endl;
cout<<"Hasil dari f = c - 4 <= 7 adalah " <<f;
cout<<endl<<endl;
cout<<"Hasil dari g = d || e || f adalah " <<g;
cout<<endl;
getch();
}

Modul Pemrogaman Dasar Page 81


Output yang akan dihasilkan, dari program contoh di atas adalah :

Masukan Nilai A = 9
Masukan Nilai B = 7
Masukan Nilai C = 5

Program Ekspresi OR

Hasil dari d = a + 5 > 10 adalah 1


Hasil dari e = b > 5 + a adalah 0
Hasil dari f = c - 4 <= 7 adalah 1

Hasil dari g = d || e || f adalah 1

c. Operator Logika NOT


Operator logika NOT akan memberikan nilai kebalikkan dari ekspresi yang
disebutkan. Jika nilai yang disebutkan bernilai BENAR maka akan menghasilkan
nilai SALAH, begitu pula sebaliknya.

Contoh :
Ekspresi Relasi  A + 4 < 10
Penggunaan Operator Logika NOT diatas menjadi ;
!(A+4 < 10)
Jika nilai A = 3; maka ekspresi tersebut mempunyai nilai :
Ekspresi Relasi-1  A + 4 < 10  3 + 4 < 10  BENAR

Dilihat ekspresi diatas salah satu ekspresi tersebut mempunyai nilai


BENAR dan jika digunakan operator logika NOT, maka ekspresi tersebut
akan bernilai SALAH
!(A+ < 10)  !(BENAR) = SALAH = 0
Contoh kasus :

/* Penggunaan Operasi Logika NOT */


#include <stdio.h>
#include <conio.h>
#include<iostream.h>
main()
{
int a, b, c;
clrscr();
cout<<"Masukan Nilai A = ";
cin>>a;
/* Proses */
b = (a + 4 < 10);
c = !(b);
cout<<endl<<"Program Ekspresi NOT "<<endl;
cout<<"Nilai A = "<<a<<endl;
cout<<"Nilai b = (a + 4 < 10) = "<<b<<endl;
cout<<"Nilai c = !(b) = "<<c;
getch();

Modul Pemrogaman Dasar Page 82


}
Output yang akan dihasilkan, dari program contoh di atas adalah :

Masukan Nilai A = 6

Program Ekspresi NOT


Nilai A = 6
Nilai b = (a + 4 < 10) = 0
Nilai c = !(b) = 1

3.8.6 Operator Bitwise


Operator Bitwise digunakan untuk memanipulasi data dalam bentuk bit.
Borland C++ menyedikan enam buah operator bitwise.

Operator Keterangan
~ Bitwise NOT
<< Bitwise Shift Left
>> Bitwise Shift Right
& Bitwise AND
^ Bitwise XOR
! Bitwise OR
Tabel 1.19 operator bitwise

a. Operator Bitwise << (Shift Left)

Operator Bitwise Shift Left digunakan untuk menggeser sejumlah bit kekiri.

Contoh :

#include<iostream.h>
#include<stdio.h>
#include<conio.h>
void main()
{
int x;
clrscr();
cout<<"Masukan Nilai X = ";
cin>>x;
x = x << 1;
cout<<"Hasil dari Geser 1 Bit Ke kiri = "<<x<<endl;
getch();
}

Modul Pemrogaman Dasar Page 83


Output yang akan dihasilkan, dari program contoh di atas adalah :

Masukan Nilai X = 201


Hasil dari Geser 1 Bit Ke kiri = 402

b. Operator Bitwise >> (Shift Right)


Operator Bitwise Shift Right digunakan untuk menggeser sejumlah bit
kanan.
Contoh :

#include<iostream.h>
#include<stdio.h>
#include<conio.h>
void main()
{
int x;
clrscr();
cout<<"Masukan Nilai X = ";
cin>>x;
x = x >> 1;
cout<<"Hasil dari Geser 1 Bit Ke Kanan =
"<<x<<endl;
getch();
}

Output yang akan dihasilkan, dari program contoh di atas adalah :

Masukan Nilai X = 201


Hasil dari Geser 1 Bit Ke Kanan = 100

Modul Pemrogaman Dasar Page 84


c. Operator Bitwise & (And)
Operator Bitwise & ( And ) digunakan untuk membandingkan bit dari dua
operand. Akan bernilai benar (1) jika semua operand yang digabungkan
bernilai benar (1). Berikut anda dapat melihat ilustrasi untuk membandingkan bit
dari 2 operand.

Bit Operand 1 Bit Operand 2 Hasil Operand


0 0 0
0 1 0
1 0 0
1 1 1
Tabel 1.20 perbandingan bit dari 2 operand bitwise & (And)

Contoh :

#include<iostream.h>
#include<stdio.h>
#include<conio.h>
main()
{
int a, x, y;
clrscr();
cout<<"Masukan Nilai X = ";
cin>>x;
cout<<"Masukan Nilai Y = ";
cin>>y;
a = x & y;
cout<<’\n’;
cout<<"Hasil dari "<<x<<" & "<<y<<" = "<<a<<endl;
getch();
}

Output yang akan dihasilkan, dari program contoh di atas adalah :

Masukan Nilai X = 201


Masukan Nilai X = 100

Hasil dari 201 & 100 = 64

Modul Pemrogaman Dasar Page 85


d. Operator Bitwise | (Or)
Operator Bitwise | ( Or ) digunakan untuk membandingkan bit dari dua operand.
Akan bernilai benar jika ada salah satu operand yang digabungkan ada yang
bernilai benar (1). Berikut anda dapat melihat ilustrasi untuk membandingkan bit
dari 2 operand.

Bit Operand 1 Bit Operand 2 Hasil Operand


0 0 0
0 1 1
1 0 1
1 1 1
Tabel 1.21 perbandingan bit dari 2 operand bitwise | (Or)

Contoh :

#include<iostream.h>
#include<stdio.h>
#include<conio.h>
main()
{
int a, x, y;
clrscr();
cout<<"Masukan Nilai X = ";
cin>>x;
cout<<"Masukan Nilai Y = ";
cin>>y;
a = x | y;
cout<<’\n’;
cout<<"Hasil dari "<<x<<" | "<<y<<" = "<<a<<endl;
getch();
}

Output yang akan dihasilkan, dari program contoh di atas adalah :

Masukan Nilai X = 201


Masukan Nilai X = 100

Hasil dari 201 | 100 = 237

Modul Pemrogaman Dasar Page 86


e. Operator Bitwise ^ (eXclusive Or)
Operator Bitwise ^ ( XOr ) digunakan untuk membandingkan bit dari dua
operand. Akan bernilai benar (1) jika dari dua bit yang dibadingkan hanya
sebuah bernilai benar (1). Berikut anda dapat melihat ilustrasi untuk
membandingkan bit dari 2 operand.

Bit Operand 1 Bit Operand 2 Hasil Operand


0 0 0
0 1 1
1 0 1
1 1 0
Tabel 1.22 perbandingan bit dari 2 operand bitwise ^ (eXclusive Or)

Contoh :

#include<iostream.h>
#include<stdio.h>
#include<conio.h>
main()
{
int a, x, y;
clrscr();
cout<<"Masukan Nilai X = ";
cin>>x;
cout<<"Masukan Nilai Y = ";
cin>>y;
a = x ^ y;
cout<<’\n’;
cout<<"Hasil dari "<<x<<" ^ "<<y<<" = "<<a<<endl;
getch();
}

Output yang akan dihasilkan, dari program contoh di atas adalah :

Masukan Nilai X = 201


Masukan Nilai X = 100

Hasil dari 201 ^ 100 = 173

Modul Pemrogaman Dasar Page 87


f. Operator Bitwise ~ (Not)
Operator Bitwise ~ ( Not ) digunakan membalik nilai bit dari suatu operand.
Berikut anda dapat melihat ilustrasi untuk membandingkan bit dari 2
operand.
Tabel. 3.10. Tabel Operator Bitiwise Not
Bit Operand Hasil
0 1
1 0
Tabel 1.23 perbandingan bit dari 2 operand bitwise ~ (Not)
Contoh:

#include<iostream.h>
#include<stdio.h>
#include<conio.h>
main()
{
int a, x, y;
clrscr();
cout<<"Masukan Nilai X = ";
cin>>x;
a = ~x;
cout<<’\n’;
cout<<"Hasil dari ~"<<x<<" = "<<a<<endl;
getch();
}

Output yang akan dihasilkan, dari program contoh di atas adalah :

Masukan Nilai X = 8

Hasil dari ~8 = -9

Modul Pemrogaman Dasar Page 88


Kesimpulan
 Data merupakan suatu nilai yang bisa dinyatakan dalam bentuk konstanta
atau variabel
 Konstanta menyatakan nilai yang, tetap sedangkan variabel menyatakan
nilai yang dapat diubah-ubah selama eksekusi berlangsung.
 Variabel yang akan digunakan haruslah dideklarasikan terlebih dahulu,
adakalanya langsung dideklarasikan sekaligus diberi nilai (diinisialisasi)
 Operator merupakan simbol atau karakter yang biasa dilibatkan dalam
program untuk melakukan sesuatu operasi atau manipulasi.
 Operator yang terkait dengan operasi aritmatika antara lain adalah operator
aritmatika, operator penurunan dan penaikan, operator penugasan dan
operator kombinasi.
 Untuk menampilkan data/informasi ke layar digunakan fungsi printf() dan
putchar().
 Untuk menampilkan data melalui keyboard saat eksekusi berlangsung
digunakan fungsi scanf() dan getchar().

Modul Pemrogaman Dasar Page 89


Cek Pemahaman 1
1. Perhatikan program berikut:

#include <iostream.h>
#include <conio.h>
void main()
{
intnilai;
void clrscr();
nilai = 3 > 2 + (4 << 1) ^ 6 & 1;
cout << "nilai = " << nilai << endl;
}

Keluaran program tersebut adalah:

2. Diberikan program singkat berikut ini.

#include <iostream.h>
#include <conio.h>
void main()
{
float bil;
void clrscr();
bil = 2 && 1 ^ 3 || (4 - 2);
cout << "bilangan = " << bil << endl;
}

Keluaran program adalah:

3. Perhatikan program berikut:

#include <iostream.h>
#include <conio.h>
void main()
{
int bilang = 0050;
void clrscr();
cout << dec << bilang << endl;
cout << oct << bilang << endl;
}

Keluaran program adalah:

Modul Pemrogaman Dasar Page 90


4. Anggap tidak ada warning maupun error pada program berikut.

#include <iostream.h>
#include <conio.h>
void main()
{
void clrscr();
float b = 0x26;
cout << "c = " << b << endl;
{
float b = 011;
cout << "c = " << b << endl;
}
cout << "c = " << b << endl;
}

Keluarannya adalah:

5. Carilah berbagai macam contoh penggunaan tipe data, variabel, konstanta,


operator dan ekspresi ! lalu berikan penjelasan !

Modul Pemrogaman Dasar Page 91


Materi Pokok Bagian 2

Pada materi selanjutnya ini kita akan


mempelajari bagian penting dari
pemrograman yaitu struktur
percabangan.

Kompetensi dasar :

 Menerapkan struktur kontrol percabangan dalam bahasa


pemrograman
 Memecahkan masalah menggunakan struktur kontrol percabangan

Indikator :
 Memahami percabangan satu kondisi
 Mehamami percabangan dua kondisi
 Memahami percabangan lebih dari dua kondisi
 Mehamami percabangan bersarang

Tujuan:
 Siswa mampu memahami dan menerapkan percabangan satu
kondisi
 Siswa mampu mehamami dan menerapkan percabangan dua
kondisi
 Siswa mampu mehamami dan menerapkanpercabangan lebih dari
dua kondisi
 Siswa mampu mehamami dan menerapkanpercabangan bersarang

Modul Pemrogaman Dasar Page 92


II. Struktur Kontrol Percabangan

Struktur kontrol adalah kombinasi instruksi-instruksi menjadi satu unit logik yang
memiliki satu titik masuk dan satu titik keluar.

Struktur kontrol percabangan adalah kondisi di mana alir program memilih


beberapa kemungkinan solusi yang harus dilakukan. Pemilihan kondisi tersebut
harus dilakukan jika kondisi yang dihadapi menghasilkan nilai benar (true).

Dengan penggunaan struktu kontrol percabangan ini program dapat bertingkah


laku secara lebih fleksibel karena seolah-olah program dapat “memilih”
kemungkinan-kemungkinan yang dapat terjadi.

2.1 Pernyataan IF
1.11 pemrograman
a. Pernyataan if sederhana
1.12 program

Gambar 2.1 peta pikiran pernyataan if sederhana

Bentuk flowchart :
if

Kondisi ? salah

benar

Statement lain

Sesudah blok pernyataan

Modul Pemrogaman Dasar Page 93


Contoh kasus :
membuat nilai ujian
Misalkan untuk menentukan seseorang yang mengikuti ujian dianggap lulus atau
tidak. Dalam hal ini terdapat kondisi yaitu : “ dianggap lulus jika nilai ujian lebih
besar atau sama dengan 75”.

#include <iostream.h>
#include <string.h>
int main()
{
double nilai_ujian;
cout<< "Masukkan nilai ujian : ";
cin>> nilai_ujian;

char hasil[12] = "Tidak Lulus";


if (nilai_ujian >= 60)
strcpy(hasil, "Lulus");

cout<<"Hasil: "<<hasil<<endl;
return 0;
}

Hasil eksekusi :

Modul Pemrogaman Dasar Page 94


b. Pernyataan if-else

Gambar 2.2 peta pikiran pernyataan if-else

Pernyataan if melibatkan else diperlihatkan dalam diagram alir berikut :

if

salah
kondisi

benar

Blok pernyataan if Blok pernyataan


else

Bentuk umum pernyataan if-else :

if (kondisi){
//blok pernyataan yang dijalankan
//jika kondisi bernilai benar
}else {
//blok pernyataan yang dijalankan
//jika kondisi bernilai salah
}

Modul Pemrogaman Dasar Page 95


Jika di dalam tanda {} hanya terdapat sebuah
pernyataan, tanda tersebut bisa dihilangkan

Contoh kasus :
Berikut contoh kasus bentuk lain dari studi kasus nilai ujian dengan melibatkan
else

#include <iostream.h>
#include <string.h>
int main()
{
double nilai_ujian;
cout<< "Masukkan nilai ujian : ";
cin>> nilai_ujian;

if (nilai_ujian >= 75)


cout<<"Hasil : Lulus"<<endl;
else
cout<<"Hasil : Tidak Lulus"<<endl;

return 0;
}

Hasil eksekusi :

Modul Pemrogaman Dasar Page 96


c. Pernyataan IF bersarang
Pernyataan if bersarang penggungaan pernyataan if yang berada di dalam
pernyataan if yang lain.

Bentuk umumnya adalah sebagai berikut :

if (kondisi_1)
statements1;
else if (kondisi_2)
statements2;
:
:
else if (kondisi_n)
statementsn;
else
statement;

penggunaan IF bersarang diperlihatkan pada diagram alir berikut :

salah salah
Kondisi 1 Kondisi 2

benar benar

Pernyataan 1 Pernyataan 2 Pernyataan else

Contoh Kasus :
Menentukan nilai suatu ujian tergolong sebagai A,B,C,D,E dengan kriteria sebagai
berikut :
Nilai Skor
nilai ≥ 90 A
80 ≤ Nilai ≥ 90 B
60 ≤ Nilai ≥ 80 C
50 ≤ Nilai ≥ 60 D
nilai ≤ 50 E

Modul Pemrogaman Dasar Page 97


Penyelesaian masalah di atas menggunakan pernyataan if bersarang, sebagai
berikut :

#include <iostream.h>
int main()
{
double nilai_ujian;
cout<<"Masukkan nilai ujian : ";
cin>>nilai_ujian;

char skor;
if (nilai_ujian >= 90)
skor = 'A';
else
if (nilai_ujian >= 70)
skor = 'B';
else
if (nilai_ujian >= 60)
skor = 'C';
else
if (nilai_ujian >= 50)
skor = 'D';
else
skor = 'E';
cout<<"skor "<<skor<<endl;
return 0;
}

Hasil eksekusi :

Modul Pemrogaman Dasar Page 98


D. Pernyataan switch (banyak alternatif)

Gambar 2.3 peta pikiran pernyataan switch

Bentuk perintah pada pernyataan switch :

switch (ekspresi) {
case nilaiSatu:
pernyataan_1;
break;
case nilaiDua:
pernyataan_2;
break;
case nilaiTiga:
pernyataan_3;
break;
……
default: pernyataan_n

Perhatikan penjelasan berikut tentang bentuk umum switch di atas :


1. Masing-masing pernyataan (pernyataan_1 – pernyataan_N dapat berupa
satu atau beberapa perintah dan tidak perlu berupa blok pernyataan.
2. Pernyataan_1 dijalankan jika nilai ekspresi cocok dengan nilaiSatu,
setelah pernyataan_1 dijalankan, eksekusi dilanjutkan ke akhir pernyataan
switch.
3. Pernyataan_2 dijalankan jika nilai ekspresi cocok dengan nilaiDua.
Setelah pernyataan_2 dijalankan, eksekusi dilanjutkan ke akhir pernyataan
switch.
4. Pernyataan_3 dijalankan jika nilai ekspresi cocok dengan nilaiTiga.
Setelah pernyataan_3 dijalankan, eksekusi dilanjutkan ke akhir pernyataan
switch.
5. Untuk menyelesaikan kondisi yag memiliki sejumlah alternatif pernyataan
break digunakan untuk mengendalikan eksekusi ke akhir pernyataan switch.
6. Bagian default bersifat opsional. Bagian ini dijalankan jika nilai ekspresi
tidak cocok dengan nilaiSatu, nilaiDua dan seterusnya.

Modul Pemrogaman Dasar Page 99


Lebih jelasnya perhatikan gambaran dari pernyataan switch berikut :

nilai_1 pernyataan_1
break;
switch nilai_2 akhir
ekspresi pernyataan_2 switch
break;
nilai 3

Tak ada pernyataan_3


yang cocok break;

Bagian default
dijalankan
Gambar 2.4 gambaran pernyataan switch

Contoh kasus penggunaan pernyataan switch sebagai berikut:

#include <iostream.h>
int main()
{
int pilih;
cout<<"pilihan: "<<endl;
cout<<"1.Wonorejo"<<endl;
cout<<"2.Popoh"<<endl;
cout<<"3.Alun-Alun"<<endl;
cout<<endl;

cout<<"Pilihan : ";
cin>>pilih;

switch (pilih)
{
case 1:
cout<<"pilihan ke waduk wonorejo"<<endl;
break;
case 2:
cout<<"pilihan ke pantai popoh"<<endl;
break;
case 3:
cout<<"pilihan ke alu-alun
tulungagung"<<endl;
break;
default:
cout<<"pilihan anda salah"<<endl;
}
return 0;
}

Modul Pemrogaman Dasar Page 100


Hasil eksekusi dari kode C++ di atas adalah sebagai berikut :

Modul Pemrogaman Dasar Page 101


Cek Pemahaman 2

1. Jika variabel data = 6, maka keluaran program di bawah ini adalah? Jelaskan!
#include <iostream.h>
int atur_data (int);
void main()
{
int data;
cout << "Atur Data = ";
cin >> data;
cout << "Hasil = " << atur_data (data) << endl;
}
int atur_data (int urut)
{
if (urut == 1)
return (1);
else
return (urut * atur_data (urut - 1));
}

Jawaban :

2. Perhatikan program berikut.


#include <iostream.h>
int main()
{
int choice;
cout << "Pilihan: " << endl;
cout << "1. Durian " << endl;
cout << "2. Anggur " << endl;
cout << "3. Mangga " << endl;
cout << endl;
cout << "Pilihan: ";
cin >> choice;
switch (choice)
{
default:
cout << "Pilihan Salah"
<< endl;
case 1:
cout << "Pilih Durian"

Modul Pemrogaman Dasar Page 102


<< endl;
break;
case 2:
cout << "Pilih Anggur"
<< endl;
break;
case 3:
cout << "Pilih Mangga"
<< endl;
break;
}
return 0;
}
Bila Pilihan: 0, maka keluaran program adalah? Jelaskan!

Jawaban :

Modul Pemrogaman Dasar Page 103


Materi Pokok Bagian 3

Kali ini kita akan mempelajari satu


lagi struktur dalam pemrograman
yaitu struktur perulangan.

Tetap semangat !!

Kompetensi dasar :

 Menerapkan struktur kontrol perulangan dalam bahasa


pemrograman.
 Memecahkan masalah menggunakan struktur kontrol perulangan.

Indikator :

 Memahami perulangan dengan kondisi di awal


 Mehamami perulangan dengan kondisi di akhir
 Memahami perulangan dengan kondisi diinputkan user
 Mehamami perulangan dengan pernyataan continue
 Mehamami perulangan dengan pernyataan break

Tujuan:

 Siswa mampu memahami dan menerapkan perulangan dengan kondisi


di awal
 Siswa mampu mehamami dan menerapkan perulangan dengan kondisi
di akhir
 Siswa mampu mehamami dan menerapkan perulangan dengan kondisi
diinputkan user
 Siswa mampu mehamami dan menerapkan perulangan dengan
pernyataan continue

Modul Pemrogaman Dasar Page 104


 Siswa mampu mehamami dan menerapkan perulangan dengan
pernyataan break

III. Struktur Kontrol Perulangan

Gambar 3.1 Peta pikiran pengulangan

3.1 Pernyataan While

Karakteristik struktur while() {…} adalah:

Gambar 3.2 Peta pikiran struktur while

Bentuk umum:

while (kondisi)
{
Blok Pernyataan
}

Jika yang berada dalam {} hanya sebuah


pernyataan, tanda {} bisa dihilangkan.
Modul Pemrogaman Dasar Page 105
Mekanisme kerja pernyataan while sebagai berikut:

Pernyataan sebelum
While

salah
Kondisi
benar

Blok Pernyataan

Ke pernyataan sesudah
pernyataan while

Gambar 3.3 mekanisme kerja pernyataan while

Contoh kasus :

#include <iostream.h>
int main()
{
int pencacah = 1;
while (pencacah <= 5)
{
cout << "selamat belajar :)"<<endl;
pencacah++;
}

Modul Pemrogaman Dasar Page 106


return 0;
}

Modul Pemrogaman Dasar Page 107


Penjelasan :

Gambar 3.4 Peta pikiran penjelasan struktur while

Hasil eksekusi nya sebagai nerikut :

Modul Pemrogaman Dasar Page 108


3.2 Pernyataan Do .. While

Karakteristik perintah do..while() adalah:

Gambar 3.5 Peta pikiran struktur do while


Bentuk umum:

do
{
Blok Pernyataan
}
while (kondisi);

Mekanisme kerja pernyataan do while sebagai berikut:

Pernyataan sebelum
Do while

Blok Pernyataan

benar Kondisi
salah

ke pernyataan sesudah
pernyataan do while

Gambar 3.5 mekanisme kerja pernyataan do while

Pada pernyataan ini, blok pernyataan yang terdapat dalam do while paling
tidak dieksekusi sekali.

Modul Pemrogaman Dasar Page 109


Contoh kasus:

#include <iostream.h>
int main()
{
int pencacah = 1;
do
{
cout << "selamat belajar :)"<<endl;
pencacah++;
}while (pencacah <= 5);
return 0;
}

Penjelasan:

Gambar 3.6 peta pikiran penjelasan pernyataan do while

Modul Pemrogaman Dasar Page 110


3.3 Pernyataan For

Gambar 3.7 peta pikiran struktur for


Bentuk umum:

for (ungkapan1; ungkapan2; ungkapan3)


{
Blok Pernyataan 1
Blok Pernyataan n
}

Pada pernyataan ini :


1. Ungkapan1 merupakan statement awal (inisialisasi)
2. Ungkapan2 merupakan kondisi/syarat perulangan dilakukan
3. Ungkapan3 merupakan statement control untuk perulangan

Contoh kasus:

#include <iostream.h>
int main()
{
For (int i=1; i<15; i+=2)
cout << "1"<<endl;
return 0;
}

Penjelasan:

Modul Pemrogaman Dasar Page 111


Gambar 3.8 peta pikiran penjelasan pernyataan for

Blok Pernyataan merupakan pernyataan yang dijalankan jika syarat terpenuhi.

Contoh:
for (a = 1; a <= 5; a++)
{
cout << “Hello world \n”;
}

Perintah di atas akan menampilkan teks Hello World sebanyak 5 buah.

Perhatikan tanda a++. Apa maksudnya?


Selain berupa angka, pencacah perulangan juga dapat berupa karakter.
Contoh:
for (huruf = 'Z'; huruf >= 'A'; huruf--)
{
cout << “Huruf abjad= “ << huruf << “\n”;
}

Perintah di atas akan menampilkan teks Huruf abjad = ... mulai dari Z
sampai dengan A

Modul Pemrogaman Dasar Page 112


3.4 Perulangan di dalam Perulangan

Suatu pengulangan bisa saja dilakukan dalam suatu pengulangan, dan tidak
membatasi jenis pengulangan apa yang boleh berada di dalam pengulangan
lainnya, misalnya di dalam blok pengulangan for terdapat pengulangan
while, atau di dalam pengulangan while terdapat pengulangan repeat.

Contoh kasus:
* * *
** ** **
*** *** ***
**** ****
*****

n=3 n=4 n=5

bentuk seperti di atas dapat diimplementasikan dengan menggunakan for yang


diletakkan dalam for sebagai berikut :

#include <iostream.h>
int main()
{
int tinggi, baris, kolom;
cout<< "Masukkan tinggi segitiga : ";
cin>>tinggi;

for (baris =1; baris<=tinggi; baris++)


{
for (kolom=1; kolom<=baris; kolom++)
cout<<'*';
cout<<endl;
}
return 0;
}

Modul Pemrogaman Dasar Page 113


Penjelasan :

Gambar 3.9 peta pikiran penjelasan pengulangan dalam pengulangan

Hasil eksekusi kode C++ di atas ditunjukkan gambar berikut:

Modul Pemrogaman Dasar Page 114


3.5 Perulangan dengan Pernyataan Break dan
Continue

3.5.1 Perintah break


Pernyataan yang berguna untuk keluar dari suatu pengulangan (loop) yaitu .
Gambaran perintah break pada pernyataan pengulangan dapat dilihat pada
gambar berikut:

while (…)
{
if(…)
break

Eksekusi }//akhir while

pernyataan_x

Gambar 3.10 bentuk perulangan dengan perintah break

Contoh kasus penggunaan break:

#include <iostream.h>
int main()
{
for (int bil =1; bil<=10; bil++)
{
cout<<bil
<<endl;
if (bil == 5)
break;
}
return 0;
}

Modul Pemrogaman Dasar Page 115


Hasil eksekusi kode di atas adalah sebagai berikut:

Perhatikan pada kode di atas bahwa bilangan yang


ditampilkan adalah 1 sampai 5, bukan 1 sampai 10.
Mengapa??

Karena pada kondisi variabel bil sama dengan 5


dilakukan perintah break sehingga akan
menghentikan eksekusi pernyataan for.

Modul Pemrogaman Dasar Page 116


a. Perintah break pada pengulangan bersarang
Perintah break pada pernyataan pengulangan bersarang, break hanya
membuat keluar dari pernyataan pengulangan tempat pernyataan tersebut
berada, tidak terhadapa keseluruhan pernyataan pengulangan.

while (…)
{

while (…)
{
if(…)
break

}//akhir while

Eksekusi Pernyataan_sesudah_ while;



}//akhir while terluar

pernyataan_x

Gambar 3.11 bentuk perulangan dengan perintah break pada pengulangan bersarang

Contoh kasus :

#include <iostream.h>
int main()
{
int i,j;
i=0;
while (i<3)
{
j=0;
while (j<5){
if (j==3)
break;

cout<<"i= "<<i
<<" j= "<<j
<<endl;

Modul Pemrogaman Dasar Page 117


j++;
}
i++;
}
return 0;
}

Modul Pemrogaman Dasar Page 118


Penjelasan :
Perintah :

if (j==3)
break;

Menunjukkan bahwa ‘j’ sama dengan 3 hingga 5 tidak pernah ditampilkan,


yang membuat penrulangan pada while (j<5)segera diakhiri ketika j
bernilai 3.
Hasil eksekusi kode di atas adalah sebagai berikut :

3.5.2 Perintah continue


Perintah atau pernyataan continue dimaksudkan untuk mengarahkan eksekusi
ke kondisi pernyataan for, do..while, atau while sehingga kondisi akan
dievaluasi lagi.
Contoh kasus :

#include <iostream.h>
int main ()
{
int i = 0;
while (i<=5)
{
if (i==3)
{
i++;
continue;
}
cout<<i<<endl;
i++;
}
return 0;

Modul Pemrogaman Dasar Page 119


}
Penjelasan :

Pada pernyataan while berikut


if (i==3)
{
i++;
continue;
}
Menyatakan bahwa pada saat i bernilai 3 maka i i dinaikkan sebesar 1 dan
kondisi while diuji lagi,. Akibatnya dua pernyataan berikut :

cout<<i<<endl;
i++;

tidak dijalankan pada saat i bernilai 3.

Maka hasil eksekusi dari kode program di atas adalah sebagai berikut:

Modul Pemrogaman Dasar Page 120


Cek Pemahaman 3
1. Perhatikan kode program berikut :
#include <iostream.h>
void main()
{
int i = 0;
for (; i<3; ++i)
cout << "i = " << i << endl;
cout << "i = " << i << endl;
if (i=1)
i = i + 2;
}

Keluaran dari program di atas adalah? Jelaskan!

2. Perhatikan kode program berikut :


#include <iostream.h>
float rendah (float data[ ], int n);
float main()
{
float suhu[ ] = {35.67, 29.11, -3.83, 44.52, -
13.96};
float suhu_terendah = rendah (suhu, 5);
cout << "Suhu terendah = " << suhu_terendah <<
endl;
return (0);
}
float rendah (float data[ ], int n)
{
int min = data[0];
for (int i=1; i<n; i++)
if (data[i] > min)
min = data[i];
return min;
}

Modul Pemrogaman Dasar Page 121


Keluaran dari program di atas adalah? Jelaskan!

3. Perhatikan kode program berikut ini

#include <iostream.h>
void geser (char strg[ ]);
int main()
{
char word[ ] = "Program C++";
geser (word);
cout << "Hasil = " << word << endl;
return (0);
}
void geser (char strg[ ])
{
int j = 0;
while (strg[j] != '\0')
{
char kar = strg[j];
if (kar >= 'a' && kar <= 'z')
strg[j] = strg[j] - 30; j++;
}
}

Keluaran dari program di atas adalah? Jelaskan!

Modul Pemrogaman Dasar Page 122


Materi Pokok Bagian 4

Setelah mempelajari dan mampu


menguasai semua konsep pada materi
sebelumnya, pada materi ini kita akan
mempelajari konsep desain dan
analisa algoritma serta menerapkan
keseluruhan konsep dalam algoritma.

Kompetensi dasar :
 Menerapkan keseluruhan konsep algoritma dalam penyelesaian masalah
kompleks
 Menganalisa kesalahan dalam program

Indikator :
 Mengetahui definisi konsep desain dan analisa algoritma
 Mengetahui tahapan pengembangan program komputer
 Mengetahui hierarki atau struktur chart
 Mengetahui konsep debugging dan error handling
 Mengetahui studi kasus proyek aplikasi program komputer

Tujuan:
 Siswa mampu mengetahui definisi konsep desain dan analisa algoritma
 Siswa mampu mengetahui tahapan pengembangan program komputer
 Siswa mampu mengetahui hierarki atau struktur chart
 Siswa mampu mengetahui dan menerapkan konsep debugging dan error
handling
 Siswa memahami studi kasus proyek aplikasi program komputer

Modul Pemrograman Dasar Page 119


4. Konsep Desain dan Analisa Algoritma

4.1 Definisi

Desain dan analisis algoritma adalah suatu cabang khusus dalam ilmu komputer yang
mempelajari karakteristik dan performa dari suatu algoritma dalam menyelesaikan
masalah, terlepas dari implementasi algoritma tersebut. Dalam cabang disiplin ini
algoritma dipelajari secara abstrak, terlepas dari sistem komputer atau bahasa
pemrograman yang digunakan. Algoritma yang berbeda dapat diterapkan pada suatu
masalah dengan kriteria yang sama. Ada banyak cara dalam mendesain / merancang
algoritma untuk suatu permasalahan / problem. Namun demikian belum ada suatu
algoritma umum yang mentranformasikan permasalahan menjadi algoritma untuk
permasalahan tersebut.

Analisis algoritma adalah bahasan utama dalam ilmu komputer. Dalam menguji suatu
algoritma, dibutuhkan beberapa kriteria untuk mengukur efisiensi algoritma. Terdapat
dua tipe analisis algoritma, yaitu :
1. Memeriksa kebenaran algoritma
Dapat dilakukan dengan cara perurutan, memeriksa bentuk logika, implementasi
algoritma, pengujian dengan data dan menggunakan cara matematika untuk
membuktikan kebenaran.
2. Penyederhanaan Algoritma
Membagi algoritma menjadi bentuk yang sederhana.

4.2 Tahapan pengembangan program komputer

Berikut tahapan membuat sebuah program komputer yang dapat dieksekusi oleh
komputer:

Modul Pemrograman Dasar Page 120


1. Membuat langkah-langkah yang dibutuhkan untuk menyelessaikan masalah
dengan menggunakan bahasa manusia mulai dari insialisasi, proses
penyelesaian dan finalisasi

Urutan membuat sebuah algoritma yang baik dan terstruktur adalah sebagai berikut:

2. Membuat langkah-langkah dari bahasa manusia menjadi bahasa algoritmik


Misalkan:
Bahasa Manusia Bahasa Algoritmik
mendeklarasikan kotak kosong kentang : integer
yang dipakai sebagai tempat untuk pisau : integer

Modul Pemrograman Dasar Page 121


menyimpan kentang dan pisau

mengisi kotak-kotak kosong yang kentang <-1


akan dipergunakan pisau <-1

menulisakan ke layar mulai output(“mulai mengupas kentang”)


mengupas kentang

memproses kentang di mana kentang <- kentang + pisau


kentang saat ini adalah kentang
yang telah dikupas dengan pisau

pisau selesai digunakan pisau <-0

menuliskan ke layar selesai output(“selesai mengupas kentang”)


mengupas kentang

3. Mengubah bahasa algoritmik menjadi bahasa pemrograman yang


dimengerti oleh komputer.
Misalkan:
Bahasa algoritmik Bahasa C
kentang : integer int main(){
pisau : integer int kentang;
int pisau;
kentang <-1 kentang = 1;
pisau <-1 pisau = 1;
output(“mulai mengupas kentang”) printf(“mulai mengupas kentang\n”);

kentang <- kentang + pisau kentang = kentang +pisau;


pisau <-0 pisau = 0;
output(“selesai mengupas printf(“selesai mengupas
kentang”) kentang\n”);
return 1;
}

4. Melakukan kompilasi dengan menggunakan perangkat lunak yang disebut


compiler atau interpreter untuk mengetahui apakah kode program
mengandung kesalahan penulisan.
5. Mengeksekusi program pada komputer, cara eksekusi juga bergantung pada
compiler atau interpreter yang digunakan

Modul Pemrograman Dasar Page 122


Int main () Kode program
{
…………
…..
}
compiler

Kode bahasa program

Program dijalankan komputer

Mekanisme eksekusi program

4.3 Hierarki atau struktur chart

Struktur chart
Fungsi dari structure chart digunakan untuk mendefinisikan dan mengilustrasikan
dari sistem secara berjenjang dalam bentuk modul dan sub modul.

Definisi
 Structure Chart ( bagan struktur ) : organisasi dari sistem secara berjenjang
dalam bentuk modul dan submodul.
 Salah satu alat bantu pemecahan masalah teknik top-down
 Structure Chart menggambarkan hubungan elemen data dan elemen kontrol
serta hubungan antar modulnya.
 Structure Chart penjelasan yang lengkap dari sistem.

Modul Pemrograman Dasar Page 123


Elemen Structure Chart :
a. elemen data
b. elemen kontrol
c. modul
d. hubungan antar modulnya (panah).

Simbol – Simbol Dasar


Simbol-simbol standar yang paling banyak digunakan :
Gambar Simbol Keterangan
Menunjukkan suatu modul
Luas Persegi dengan nama “Luas
Panjang Modul Persegi Panjang”

Untuk menghubungkan
satu modul ke modul yang
Connection lainnya

Untuk menunjukkan
perulangan di dalam
Loop modul

Untuk menunjukkan
Decision seleksi di dalam modul

Panah dengan ling-karan


kosong menun-jukkan
yang dikirim-kan dari satu
modul ke modul yang lain-
nya.
Couple

Panah dengan ling-karan


diblok menun-jukkan
elemen kontrol yang
dikirimkan.

Modul Pemrograman Dasar Page 124


Contoh :
Gambar Keterangan
Modul A memanggil Modul B. Ssetelah
A proses dari modul B selesai, maka proses
kembali ke Modul A yang memanggilnya

Modul A memanggil Modul B, dimana


A elemen data P dikirimkan. Hasil proses
dari Modul B diperoleh elemen hasil
pengolahan Q dan elemen kontrol Flag

p B

Flags

Modul Pemrograman Dasar Page 125


Contoh Kasus :
 Modul A memanggil modul B dan mengirim elemen data P ke modul B.
 Modul B bertugas untuk mencari data P dalam suatu file database.
 Setelah proses pencarian selesai, hasil pengolahan dari modul B yaitu Q dikirim
ke modul A (Q adalah data yang ditemukan).
 Kontrol flag (bisa berupa variable Boolean True/False) dikirim dari modul B,
bila True menunjukkan data ketemu, False menunjukkan data tidak ketemu).

Gambar Keterangan
Modul A memanggil Modul B bila
kondisi yang diseleksi di modul A
A terpenuhi.
P

Q F
B C

Proses perulangan dapat diberikan simbol


Proses panah yang melingkar.
Hitung
Total
Banyaknya perulangan yang dilakukan
secara eksplisit memang tidak tampak
pada structure chart, tetapi ditunjukan
oleh proses pada modul dimana letak
perulangan tersebut terjadi.
Masukan Hitung Tampilan
Data Total hasil

Modul Pemrograman Dasar Page 126


Model Structure Chart
1. Transformed-centered
Menggambarkan sistem dalam 3 cabang utama :

 Cabang input (Afferent Branch)  cabang yang akan menerima input dan
menentukan status input untuk siap diproses.
 Cabang proses (Transform Branch) cabang yang akan melakukan fungsi
utama dari sistem, yaitu memproses input yang dikirim dari cabang input.
 Cabang output (Efferent Branch)  cabang yang akan memformat data
menjadi output.

Gambar dibawah ini mengilustrasikan bagan terstruktur, model dengan satu input
data A yang dimasukkan, diproses (ditransformasikan) menjadi data B yang
kemudian ditampilkan.

sistem

Input Proses Output


A A menjadi B B

INPUT PROCESS BRANCH OUTPUT BRANCH


BRANCH/ TRANSPORM EFFERENT
AFFERENT BRANCH BRANCH
BRANCH CENTRAL
TRANSPORM
Model Dasar Structure Chart Transformed-centered

Modul Pemrograman Dasar Page 127


Contoh bagan struktur (Structure Chart) dengan model Transformed-centered :

Program
Penggajian

D, E
A, B
A, B D, E

Baca data Hitung Cetak


Input Gaji Daftar Gaji
B
A

Baca Baca Hitung Hitung Cetak Cetak


data Tabel Tunjangan Pajak Slip Daftar
Pegawai Gaji Gaji

Modul Pemrograman Dasar Page 128


2. Transaction-centered
Suatu sistem yang menangani beberapa tipe proses (transaksi) yang mempunyai jalur
berbeda. Pada gambar dibawah ini terdapat tiga buah proses. Masing-masing proses
mengedit data secara terpisah yang kemudian digunakan untuk update file induk yang
juga berbeda. Setelah semua file-file di-update, kemudian suatu jurnal dicetak untuk
menunjukkan rincian dari masing-masing transaksi berserta isi dari masing-masing
record file induk sebelum dan sesudah proses update.

Proses
transaksi

Masukan Analyzer Dispacher


data data
transaksi transaksi

Proses Proses Proses


tipe A tipe B tipe B

Edit Update Edit Update Edit Update


transaksi file P Transaksi file Q transaksi file R
A B C

Cetak
jurnal

Gambar Jenjang Transaction-centered


Lexical Inclusion
Bentuk penggambaran secara logika  suatu modul berada didalam modul yang
lainnya.

Gambar Simbol Lexical Inclusion

Modul Pemrograman Dasar Page 129


Modul Dispatcher  modul yang sangat sederhana.
Modul dispatcher  berisi keputusan kemana proses akan diarahkan. Oleh karena
itu modul ini dapat digabungkan pada modul proses pesanan.

Modul semacam dispatcher disebut dengan Lexical Inclusion.

Proses Unit kirim, unit kurang


Barang dipesan Pesanan

Unit kurang Unit kirim, unit kurang


Memasukkan Tentukan Dispatch
Barang ketersediaan tipe transaksi
dipesan barang

Proses tidak Proses semua Proses sebagian


dikirim di kirim tidak sebagian
dikirim

Rekam record Rekam record Rekam record Update record


order khusus barang habis barang dikirim persediaan

Gambar Lexical Inclusion

Contoh Kasus :
Sebuah perusahaan akan mengolah data penggajian, ketentuan penggajiannya adalah :
- Tunjangan = 20% dari Gaji Pokok
- Gaji Kotor = Gaji Pokok + Tunjangan
- Jika Gaji Kotor < = Rp. 5.000.000,- tidak kena pajak
- Jika Gaji Kotor > Rp. 5.000.000,- kena pajak 10%
- Gaji Bersih = Gaji Kotor - Pajak
- Cetak Tunjangan, Gaji Kotor, Pajak dan Gaji Bersih

Modul Pemrograman Dasar Page 130


Tugas :
Rancanglah Structured Chart

Menghitung Gaji

Gapok
Gapok
Tunj Cetak
Gator Pajak Daftar Gaji
Baca
Data Pegawai Hitung Hitung
Gaji Kotor Pajak Pajak

Tunj Gator
Gaber
Hitung
Tunjangan Hitung
Gaji Bersih
Rancangan Structured Chart :

Soal :
Pegawai bekerja setiap hari terbagi dlm 2 shift :
- Kode shift 1 : Pagi
- Kode shift 2 : Sore
 Jika Kode Shift=1 maka gaji per jamnya Rp. 10.000,-
 Jika Kode Shift=2 maka gaji per jamnya Rp. 12.000.-
 Gaji = jumlah jam kerja * Gaji per jam
 Data input yang diketik dari keyboard adalah :
- Kode Shift
- Gaji per jam

Modul Pemrograman Dasar Page 131


Tugas :
Rancanglah Structured Chart soal diatas

Rancangan Structured Chart :

Menghitung Gaji

Kode, JJK Kode, JJK


JJK
Gpj Gaji
Kode
Gpj

Input Tentukan Cetak


Data Gaji per Jam Gaji
Gaji
Gpj

Hitung
Gaji

Program :
Pembuatan Program dengan cara internal modul (modul berada didalam file program
utama).

//-----------------------------------------------------------
// program menentukan gaji dengan modul
//-----------------------------------------------------------
#include <stdio.h>

// modul input Kode Shift dan Jumlah Jam Kerja


// dengan cara Parameter Call by Location atau Call by Reference
// Parameter Call by Reference memakai simbol alamat &
void input(int &kode, float &jjk)
{
printf("Kode Shift : ");
scanf("%d", &kode);

printf("Jumlah Jam Kerja : ");


scanf("%f", &jjk);

Modul Pemrograman Dasar Page 132


}

// modul tentukan gaji per jam


float gaji_perjam(int kode)
{
float gpj;
if (kode==1)
gpj=10000;
else
gpj=12000;

return gpj;
}

// modul hitung gaji


float hitung_gaji(float jjk, float gpj)
{
float gaji;
gaji = jjk * gpj;
return gaji;
}

// modul mencetak gaji


void cetak_gaji(float gaji)
{
printf("Gaji : %6.0f \n", gaji);
}

// program utama mencetak gaji


void main()
{
// deklarasi variabel lokal
int kode;
float jjk, gpj, gaji;

// memanggil modul input


input(kode, jjk);

// memanggil modul gaji per jam


gpj = gaji_perjam(kode);

// memanggil modul hitung_gaji


gaji = hitung_gaji(jjk, gpj);

// memanggil modul cetak_gaji


cetak_gaji(gaji);
}

Modul Pemrograman Dasar Page 133

Anda mungkin juga menyukai