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
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
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).
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
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++
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
b. Statement ungkapan
d. 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:
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 :
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 :
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 :
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 :
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
#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 :
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.
Argumen adalah nilai yang dikirim ke dalam sebuah function ketika fungsi tersebut
dipanggil
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 :
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 :
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 :
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)
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();
}
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
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
Escape Sequences merupakan suatu karakter khusus yang menggunakan notasi “ \ ” (back
slash) jika karakter terdapat notasi “\” ini sebagai karakter “escape” ( menghindar).
#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);
}
b. Puts ()
Perintah puts() sebenarnya sama dengan printf(), yaitu digunakan untuk mencetak string
ke layar. puts() berasal dari kata PUT STRING.
#include <stdio.h>
#include <conio.h>
main()
{
char a[4] = "SMK 1 Boyolangu";
clrscr();
puts("Saya Sekolah di. ");
puts(a);
}
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 :
Hasil eksekusi :
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 :
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);
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);
Contoh Program :
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 :
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 .
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().
Hasil eksekusi
Hasil eksekusi
Terdapat tiga macam tanda format yang digunakan untuk konversi keluaran dalam basis
Decimal, Octal dan Hexadecimal, yaitu :
Hasil eksekusi :
Bilangan Decimal dari 75 = 75
Bilangan Octal dari 10 = 12
Bilangan Hexadecimal dari 15 = f
ios::uppercase
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
Contoh program :
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
ios::showpoint
digunakan untuk menampilkan titik desimal pada bilangan yang tidak mempunyai titik
desimal pada tipe data float atau double.
ios::showpos
digunakan untuk menampilkan simbol plus (+) pada variabel yang memiliki nilai
bilangan positif.
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
Gambar 1.20
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
Gambar 1.24
Untuk mengakhiri aplikasi, tekanlah sembarang tombol.
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:
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.
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
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).
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
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;
}
Konstanta string
#include <iostream.h>
int main()
{
cout<<"\'hello pemrograman dasar\',:) :)."<<endl
<<"\"hello SMKN 1 Boyolangu\", :) :)"<<endl
<<"abc\t123\tdef" <<endl;
return 0;
}
Hasil eksekusi :
#include <iostream.h>
int main()
{
const double PI = 3.14;
double radius = 23.4;
cout<<"keliling = "
<<2 * PI * radius
<<endl;
return 0;
}
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 :
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
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 melalui keyboard. Dalam hal ini C++
menyediakan objek bernama cin. Penggunaannya sebagai berikut:
Operand
2+3*4 Ekspresi
Operator
Gambar 1.37 ilustrasi ekspresi operand dan operator
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 :
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.
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
#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();
}
Hasil dari A = 9
Hasil dari B = 5
Nilai A = 10
Hasil ++A = 11
Nilai A = 11
Nilai B = 5
Nilai --B = 4
Nilai B = 4
Nilai A = 10
Hasil A++ = 10
Nilai A = 11
Nilai B = 5
Nilai B-- = 5
Nilai B = 4
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
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
Operator Keterangan
&& Operator logika AND
|| Operator logika OR
! Operator logika NOT
Tabel 1.18 operator logika
Contoh :
Ekspresi Relasi-1 A + 4 < 10
Ekspresi Relasi-2 B>A + 5
Ekspresi Relasi-3 C - 3 >= 4
Masukan Nilai A = 3
Masukan Nilai B = 2
Masukan Nilai C = 1
Masukan Nilai A = 9
Masukan Nilai B = 7
Masukan Nilai C = 5
Program Ekspresi OR
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
Masukan Nilai A = 6
Operator Keterangan
~ Bitwise NOT
<< Bitwise Shift Left
>> Bitwise Shift Right
& Bitwise AND
^ Bitwise XOR
! Bitwise OR
Tabel 1.19 operator bitwise
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();
}
#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();
}
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();
}
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();
}
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();
}
#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();
}
Masukan Nilai X = 8
Hasil dari ~8 = -9
#include <iostream.h>
#include <conio.h>
void main()
{
intnilai;
void clrscr();
nilai = 3 > 2 + (4 << 1) ^ 6 & 1;
cout << "nilai = " << nilai << endl;
}
#include <iostream.h>
#include <conio.h>
void main()
{
float bil;
void clrscr();
bil = 2 && 1 ^ 3 || (4 - 2);
cout << "bilangan = " << bil << endl;
}
#include <iostream.h>
#include <conio.h>
void main()
{
int bilang = 0050;
void clrscr();
cout << dec << bilang << endl;
cout << oct << bilang << endl;
}
#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:
Kompetensi dasar :
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
Struktur kontrol adalah kombinasi instruksi-instruksi menjadi satu unit logik yang
memiliki satu titik masuk dan satu titik keluar.
2.1 Pernyataan IF
1.11 pemrograman
a. Pernyataan if sederhana
1.12 program
Bentuk flowchart :
if
Kondisi ? salah
benar
Statement lain
#include <iostream.h>
#include <string.h>
int main()
{
double nilai_ujian;
cout<< "Masukkan nilai ujian : ";
cin>> nilai_ujian;
cout<<"Hasil: "<<hasil<<endl;
return 0;
}
Hasil eksekusi :
if
salah
kondisi
benar
if (kondisi){
//blok pernyataan yang dijalankan
//jika kondisi bernilai benar
}else {
//blok pernyataan yang dijalankan
//jika kondisi bernilai salah
}
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;
return 0;
}
Hasil eksekusi :
if (kondisi_1)
statements1;
else if (kondisi_2)
statements2;
:
:
else if (kondisi_n)
statementsn;
else
statement;
salah salah
Kondisi 1 Kondisi 2
benar benar
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
#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 :
switch (ekspresi) {
case nilaiSatu:
pernyataan_1;
break;
case nilaiDua:
pernyataan_2;
break;
case nilaiTiga:
pernyataan_3;
break;
……
default: pernyataan_n
nilai_1 pernyataan_1
break;
switch nilai_2 akhir
ekspresi pernyataan_2 switch
break;
nilai 3
Bagian default
dijalankan
Gambar 2.4 gambaran pernyataan switch
#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;
}
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 :
Jawaban :
Tetap semangat !!
Kompetensi dasar :
Indikator :
Tujuan:
Bentuk umum:
while (kondisi)
{
Blok Pernyataan
}
Pernyataan sebelum
While
salah
Kondisi
benar
Blok Pernyataan
Ke pernyataan sesudah
pernyataan while
Contoh kasus :
#include <iostream.h>
int main()
{
int pencacah = 1;
while (pencacah <= 5)
{
cout << "selamat belajar :)"<<endl;
pencacah++;
}
do
{
Blok Pernyataan
}
while (kondisi);
Pernyataan sebelum
Do while
Blok Pernyataan
benar Kondisi
salah
ke pernyataan sesudah
pernyataan do while
Pada pernyataan ini, blok pernyataan yang terdapat dalam do while paling
tidak dieksekusi sekali.
#include <iostream.h>
int main()
{
int pencacah = 1;
do
{
cout << "selamat belajar :)"<<endl;
pencacah++;
}while (pencacah <= 5);
return 0;
}
Penjelasan:
Contoh kasus:
#include <iostream.h>
int main()
{
For (int i=1; i<15; i+=2)
cout << "1"<<endl;
return 0;
}
Penjelasan:
Contoh:
for (a = 1; a <= 5; a++)
{
cout << “Hello world \n”;
}
Perintah di atas akan menampilkan teks Huruf abjad = ... mulai dari Z
sampai dengan A
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:
* * *
** ** **
*** *** ***
**** ****
*****
#include <iostream.h>
int main()
{
int tinggi, baris, kolom;
cout<< "Masukkan tinggi segitiga : ";
cin>>tinggi;
while (…)
{
if(…)
break
…
Eksekusi }//akhir while
pernyataan_x
#include <iostream.h>
int main()
{
for (int bil =1; bil<=10; bil++)
{
cout<<bil
<<endl;
if (bil == 5)
break;
}
return 0;
}
while (…)
{
while (…)
{
if(…)
break
…
}//akhir while
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;
if (j==3)
break;
#include <iostream.h>
int main ()
{
int i = 0;
while (i<=5)
{
if (i==3)
{
i++;
continue;
}
cout<<i<<endl;
i++;
}
return 0;
cout<<i<<endl;
i++;
Maka hasil eksekusi dari kode program di atas adalah sebagai berikut:
#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++;
}
}
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
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.
Berikut tahapan membuat sebuah program komputer yang dapat dieksekusi oleh
komputer:
Urutan membuat sebuah algoritma yang baik dan terstruktur adalah sebagai berikut:
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.
Untuk menghubungkan
satu modul ke modul yang
Connection lainnya
Untuk menunjukkan
perulangan di dalam
Loop modul
Untuk menunjukkan
Decision seleksi di dalam modul
p B
Flags
Gambar Keterangan
Modul A memanggil Modul B bila
kondisi yang diseleksi di modul A
A terpenuhi.
P
Q F
B C
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
Program
Penggajian
D, E
A, B
A, B D, E
Proses
transaksi
Cetak
jurnal
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
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
Menghitung Gaji
Hitung
Gaji
Program :
Pembuatan Program dengan cara internal modul (modul berada didalam file program
utama).
//-----------------------------------------------------------
// program menentukan gaji dengan modul
//-----------------------------------------------------------
#include <stdio.h>
return gpj;
}