1
[Document subtitle]
[DATE]
[COMPANY NAME]
[Company address]
CV. KASIH INOVASI TEKNOLOGI
Patmi Kasih
Umi Mahdiyah
Konsep Dasar Algoritma Pemrograman Menggunakan C++ Chapter#1
Oleh :
Patmi Kasih
Umi Mahdiyah
ISBN : 978-602-51918-4-8
Editor
Danar Putra Pamungkas
Penyunting
Julian Sahertian
Desain Cover
Ahmad Bagus Setiawan
Syukur Alhamdulillah kehadirat Allah SWT atas karunia dan berkah-Nya sehingga
penulis dapat menyelesaikan penyusunan buku Konsep Dasar Algoritma Pemrograman
Menggunakan C++ Chapter#1 ini. Tekad untuk memberikan bahan belajar yang mudah untuk
dipahami bagi mahasiswa tingkat I jurusan Teknik informatika di Universitas Nusantara PGRI
Kediri, membuat penulis bersemangat untuk menyelesaikan buku Konsep Dasar Algoritma
Pemrograman Menggunakan C++ Chapter#1 ini. Pembelajaran Algoritma dan Pemrograman
sangatlah penting bagi jurusan teknik informatika, karena sebagian besar mata kuliah dalam
jurusan teknik informatika membutuhkan pemahaman algoritma yang kuat, oleh karena itu
kemampuan dasar yang kuat mengenai algoritma dan pemrograman sangat dibutuhkan.
Sebagai mata kuliah dasar dan inti, dalam penyampaiannya diperlukan cara yang mudah
diterima dan dipahami oleh mahasiswa yang notabene berasal dari latar belakang jurusan
sekolah yang beragam. Bahasa C dipilih sebagai bahasa bantu dalam mata kuliah Algoritma
dan Pemrograman karena bahasa C merupakan bahasa pemrograman dasar yang terstruktur
dan mendukung pemrograman berorientasi objeck. Bahasa C merupakan bahasa
pemrograman yang sudah tidak diragukan lagi kehandalannya dan banyak digunakan untuk
membuat program-program dalam berbagai bidang, termasuk pembuatan compiler dan sistem
operasi. Sampai saat ini, C masih tetap menjadi bahasa populer dan berwibawa dalam kancah
pemrograman. Bahasa C telah menjadi inspirasi bagi kelahiran bahasa-bahasa pemrograman
baru, Java, dan juga yang lainnya. Bahasa C sehingga dari sisi sintak control programnya,
ketiga bahasa ini bisa dikatakan sama. Bahasa pemrograman C sangatlah fleksibel dan
portabel, sehingga dapat ditempatkan dan dijalankan di dalam beragam sistem operasi. Pada
umumnya, C banyak digunakan untuk melakukan interfacing antar perangkat keras
(hardware) agar dapat berkomunikasi satu sama lainnya.
Dalam buku dan modul pembelajaran ini dibahas konsep-konsep dasar penyusunan
algoritma dan juga konsep dasar yang mutlak diperlukan dalam pemrograman menggunakan
bahasa C sehingga dapat mengimplementasikannya langsung ke dalam kasus-kasus
pemrograman yang dihadapi. Dengan penyajian contoh program yang cukup banyak dalam
setiap bab dan sub bab diharapkan bisa banyak membantu memberikan banyak isnpirasi bagi
mahasiswa dalam mempelajari pemrograman C secara mudah dan cepat.
Terakhir, penulis menyampaikan banyak terima kepada kepada Pak Ahmad Bagus
Setiawan beserta rekan-rekan Tim Generation UN PGRI Kediri yang telah mempercayai
penulis untuk menyusun modul pembelajaran ini dan telah banyak membantu dalam proses
pencetakan dan penerbitan modul pembelajaran ini. Terima kasih sepenuh hati kepada Suami
dan Putraku tercinta atas cinta dan dukungannya. Semoga Apa yang kita niatkan dengan
kebaikan membawa keberkahan bagi kita semua…aamiin.
1.1 Algoritma
1.1.1 Konsep Algoritma
Algoritma berasal dari kata algoris dan ritmis yang pertama kali diungkapkan oleh Abu
Ja’far Mohammad Ibn Musa Al Khowarizmi (825M) dalam buku Al-Jabr Wa-al Muqobla.
Dalam pemrograman algortima berarti suatu metode khusus yang tepat dan terdiri dari
serangkaian langkah-langkah yang terstruktur dan dituliskan secara sistematis yang akan
dikerjakan untuk menyelesaikan masalah dengan bantuan komputer.Secara sederhanya
algoritma adalah langkah-langkah, urutan langkah-langkah, atau tahap-tahap. Algoritma
merupakan urutan langkah-langkah logis yang disusun secara sistematis untuk menyelesaikan
suatu masalah. Kata logis (logika) merupakan kunci dan syarat utama dalam algoritma,
dimana langkah-langkah yang disusun dalam algoritma harus logis (masuk akal), dan dapat di
nalar oleh akal pikiran manusia. Hasil dari algoritma harus dapat ditentukan bernilai benar
atau salah. Karena langkah yang salah akan memberikan hasil yang salah.
Disadari atau tidak setiap kegiatan/ aktifitas sehari-hari kita dipenuhi dengan algoritma.
Contoh sederhana adalah langkah-langkah dalam menggosok gigi, dimulai dari mengambil
sikat gigi, mengambil pasta gigi, membuka tutup pasta, menuangkan pasta pada sikat gigi,
mengambil air, berkumur dengan air, menggosok gigi dengan sikat gigi yang telah diberi
pasta, berkumur untuk membersihkan mulut. Kegiatan ini kita dilakukan setiap hari, dan tanpa
kita sadari bahwa kita telah melakukan apa yang disebut dengan algoritma.
Contoh algoritma:
Menukarkan isi dua buah gelas, dimana gelas A berisi cairan biru, gelas B berisi cairan
merah. Maka, untuk menyelesaikan permasalahan tersebut dapat dilakukan cara, misalnya:
2 Belajar Konsep Dasar Algoritma Pemrograman Menggunakan C++
• Algoritma 1:
a. Tuangkan isi gelas A ke gelas B
b. Tuangkan isi gelas B ke gelas A
• Algoritma 2:
a. Tuangkan isi gelas A ke gelas C
b. Tuangkan isi gelas B ke gelas A
c. Tuangkan isi gelas C ke gelas B
Dari jawaban kedua algoritma diatas, dapat di analisis:
- Algoritma 1 tidak salah, akan tetapi tidak memberikan penyelesaian yang tepat dan tidak
menghasilkan pertukaran yang benar. Karena cairan pada kedua gelas bisa saja tercampur.
- Jawaban pada Algoritma 2 sudah tepat. Dengan menggunakan bantuan sebuah gelas C,
maka kedua isi gelas dapat ditukarkan tanpa tercampur.
Salah satu contoh sederhana adalah algoritma untuk menentukan bilangan mana yang lebih
besar dari input dua buah bilangan. Jadi diberikan input dua buah bilangan dari user, dan
program akan secara otomatis menentukan dan memberikan output bilangan mana yang
lebih besar. Maka penyelesaian yang bisa dibuat adalah:
1) Inisialisasi
2) Input dua buah bilangan, masukkan masing-masing dalam variabel, misalkan bil_1
dan bil_2.
3) Apakah bil_1 lebih besar dari bil_2 ?
- Jika ya, maka bil_1 adalah bilangan yang lebih besar dari bil_2.
- Jika tidak, maka pasti bahwa bil_2 adalah bilangan yang lebih besar dari bil_1.
4) Tampilkan bilangan terbesar (nilai dari bil_1, atau nilai dari bil_2).
5) Selesai.
2. Flowchart Algoritma
Flowchart merupakan representasi secara diagram dari urutan langkah-langkah untuk
mendapatkan suatu hasil. Urutan langkah-langkah ini dilakukan dengan menggambarkan
tahap-tahap pemecahan masalah dengan merepresentasikan simbol-simbol tertentu yang
mudah dimengerti, mudah digunakan dan standar.
Simbol-simbol dalam flowchart program adalah:
a) a) Simbol Terminal, simbol yang digunakan untuk menyatakan
awal atau akhir suatu program.
b) b) Simbol Input/ Output, untuk menunjuk-kan operasi masukan
atau keluaran.
c) c) Simbol Proses, untuk menggambarkan proses pengolahan
data.
d) d) Simbol Keputusan/ Decision, untuk menyatakan suatu pilihan
berdasarkan suatu kondisi tertentu.
bil_1, bil_2
Input bil_1,
Input bil_2
Apakah Bilangan
ya
bil_1>bil_2 ? terbesar = bil_1
tidak
Bilangan
terbesar = bil_2
Selesai
3. Pseudocode Algoritma
Pseudo artinya semu atau tidak sebenarnya. Pseudo-code berisikan langkah-langkah
untuk menyelesaikan suatu permasalahan (hampir sama dengan algoritma), hanya saja
bentuknya sedikit berbeda dari algoritma. Pseudocode menggunakan bahasa yang hampir
menyerupai bahasa pemrograman. Selain itu biasanya menggunakan bahasa yang mudah
dipahami secara universal dan juga lebih ringkas dari pada algoritma. Dalam penulisan
pseudocode disarankan untuk menggunakan keyword yang umum digunakan dalam bahasa
pemrograman, seperti : if, then, else, while, do, repeat, for, dan lainnya.
BAB 1
5
ALGORITMA & PEMROGRAMAN
2) Buatlah pseudocode algoritma untuk menentukan apakah bilangan yang di input adalah
bilangan ganjil atau bilangan genap.
Jawab:
Read bil
if (bil mod 2 = 0) then
cout (“Output Genap”)
else
cout (“Output Ganjil” )
1.2 Pemrograman
Dalam menjalankan komputer, hal terpenting yang harus diketahui dan dipahami adalah
program. Dalam pemrograman dikenal beberapa bahasa pemrograman, seperti juga manusia
mengenal bahasa-bahasa yang digunakan untuk berkomunikasi. Manusia dalam
berkomunakasi menggunakan kata atau karakter sedangkan komputer dengan kode 0 dan 1.
Untuk mempermudah manusia berkomunikasi dengan komputer, maka diciptakan bahasa
pemrograman. Dengan adanya bahasa pemrograman ini, tidak harus menerjemahkan ke dalam
0 dan 1 untuk berkomunikasi dengan komputer.
a. Program
Program adalah kata, ekspresi, pernyataan atau kombinasi yang disusun dan dirangkai
menjadi satu kesatuan prosedur yang menjadi urutan langkah untuk menyesuaikan masalah
yang diimplementasikan dengan bahasa pemrograman.
b. Bahasa Pemrograman
Bahasa pemrograman merupakan prosedur atau tata cara penulisan program dalam bahasa
pemrograman, ada dua faktor penting yaitu sintaksis dan semantik. Sintak adalah aturan-
aturan gramatikal yang mengatur tata cara penulisan kata, ekspresi dan pernyataan.
Semantik adalah aturan-aturan untuk menyatakan suatu arti. Contoh : Write, Read.
c. Pemrograman
Pemrograman merupakan proses mengimplementasikan urutan langkah-langkah untuk
menyelesaikan suatu masalah dengan bahasa pemrograman.
d. Pemrograman Terstruktur
Pemrograman Terstruktur merupakan proses mengimplementasikan urutan langkah-
langkah untuk menyelesaikan suatu masalah dalam bentuk program yang memiliki rancang
bangun yang terstruktur dan tidak berbelit-belit sehingga mudah ditelusuri, dipahami dan
dikembangkan oleh siapa saja.
Latihan Praktikum - 1
1. Buatlah algoritma sederhana cara membuat telur dadar dengan kalimat deskriptif.
Gunakan struktur bahasa Indonesia yang jelas dan mudah dimengerti!.
2. Buatlah flowchart algoritma untuk menghitung luas segitiga:
a. Segitiga Siku
b. Segitiga Sama Kaki
3. Buatlah Pseudocode algoritma untuk menghitung keliling persegi panjang!.
8 Belajar Konsep Dasar Algoritma Pemrograman Menggunakan C++
BAB 2
STRUKTUR DASAR
ALGORITMA
Mulai
baca panjang
baca lebar
Hitung Luas
Tampilkan
Luas
Selesai
Contoh 2.1:
Algoritma menonton_film,
• Dengan pseudocode algoritma :
1) mulai
2) baca usia
BAB 2
11
STRUKTUR DASAR ALGORITMA
Mulai
baca usia
Selamat
Usia>17
Menonton
Selesai
Contoh 2.2:
Algoritma untuk melakukan operasi dua bilangan berdasarkan kode operasi, misalkan
bilangan A dan bilangan B. Jika kode bernilai 1 maka lakukan penjumlahan dua bilangan,
dan apabila kode berisi selain 1 maka lakukan perkalian dua bilangan.
- Dalam flowchart algoritma dapat digambarkan seperti berikut:
12 Belajar Konsep Dasar Algoritma Pemrograman Menggunakan C++
Mulai
baca bilangan A
baca bilangan B
baca kode
kode = 1 Hasil = A + B
Hasil = A * B
Tampilkan hasil
Selesai
3) nested if
Struktur pemilihan dalam bentuk nested if mempunyai bentuk flowchart sebagai berikut:
BAB 2
13
STRUKTUR DASAR ALGORITMA
Start
Baca syarat
Syarat_1 y Instruksi_2
Syarat_2 y Instruksi_2
Syarat_3 y Instruksi_3
Syarat_x y Instruksi_x
Instruksi_z
End
Start
Baca kode
hari
Kode==1 y Kalkulus
Kode==2 y Alpro
Kode==3 y PTI
Kode==5 y Agama
Komunitas
Kode==6 y
ROHIS
Kode==7 y LIbur
case ungkapan2:
pernyataan2;
break;
.......
default: //optional
pernyataan_x; //optional
}
Latihan Praktikum - 2
1. Dengan konsep pemilihan, buat flowchart algoritma untuk mencari nilai P dan Q,
dimana P = X + Y. Jika P bernilai positif, maka Q = X * Y, sedangkan jika P bernilai
negative maka nilai Q = X/Y.
2. Buatlah sebuah flowchart untuk melakukan operasi hitung dari 2 buah bilangan, missal
bilangan A dan B. Sebagai dasar pemilihan digunakan kode_hitung, jika kode=1, maka
lakukan penjumlahan bilangan, jika kode=2 maka lakukan perkalian, jika kode=3
lakukan pembagian, jika kode=4 pengurangan, selain itu tidak ada operasi hitung
3. Buatlah Pseudocode algoritma untuk menghitung nilai akhir dari siswa dengan
ketentuan: nama siswa, nilai tugas, nilai UTS, dan nilai UAS, diinput. Nilai Akhir =
(nilai tugas+UTS+UAS)/3. Berikan predikat kelulusan untuk mata kuliah tersebut.
Jika nilai_akhir<65 maka Tidak Lulus, jika nilai_akhir> 65 maka Lulus. Konversikan
nilai akhir dalam bentuk huruf. huruf hasil konfersi dengan aturan :
Jika nilai_angka >= 80 maka nilai huruf sama dengan A
Jika nilai_angka >= 70 maka nilai huruf sama dengan B
Jika nilai_angka >= 60 maka nilai huruf sama dengan C
Jika nilai_angka >= 50 maka nilai huruf sama dengan D
Jika nilai_angka < 50 maka nilai huruf sama dengan E
4. Buatlah flowchart algoritma untuk menghitung luas dan keliling dari lingkaran,
segitiga, dan trapesium. Kode bangun 1= lingkaran, 2= segitiga, 3=trapesium !.
a) Struktur While
Struktur pengulangan dengan instruksi while digunakan untuk mengulang satu baris
instruksi (satu blok) selama syarat yang diberikan masih terpenuhi. Pada pengulangan
while, syarat akan uji terlebih dahulu sebelum instruksi yang akan diulang dikerjakan,
yang berarti syarat akan diuji didepan, sehingga ada kemungkinan baris instruksi yang
akan diulang tidak dikerjakan sama sekali (syarat tidak terpenuhi).
mulai
syarat
ya tidak
instruksi_1
instruksi_2
instruksi_3
selesai
Contoh 2.3:
Algoritma untuk cetak angka 1-10 dengan while yang bisa dibuat adalah:
- Dengan flowchart algoritma dapat digambarkan:
mulai
i<=10
tidak
ya
Cetak i
i+1
selesai
Dari flowchart dapat dijelaskan pertama kali i bernilai 1, kemudian diuji apakah i lebih
kecil atau sama dengan 10, jika benar dicetak nilai i, kemudian nilai i dinaikkan sebesar 1,
kemudian nilai i diuji kembali apakah masih lebih kecil atau sama dengan 10 jika benar
maka dicetak nilai i, begitu seterusnya. Perulangan akan berhenti jika nilai i lebih besar 10.
b) Struktur do … while …
Struktur pengulangan dengan instruksi do…while digunakan untuk mengulang satu
baris instruksi (satu blok) sampai syarat tidak terpenuhi. Ciri utama pengulangan do…while
adalah syarat akan uji setelah instruksi yang akan diulang dikerjakan, dengan kata lain
syarat akan diuji dibelakang, sehingga baris instruksi yang masuk dalam blok do…while
minimal akan dikerjakan satu kali meskipun kondisi syarat bernilai salah.
Dengan struktur flowchart:
mulai
instruksi_1
instruksi_2
instruksi_3
syarat
selesai
Dari bentuk flowchart diatas dapat dituliskan bentuk dasar struktur do … while … :
do
{
pernyataan1;
pernyataan2;
...
pernyataanN;
} while (ungkapan)
Algoritma Cetak_Angka_do_while :
1) mulai
2) i = 0
3) i = i + 1 //bagian dimulainya do …
4) cetak i
5) jika i < 10 kerjakan langkah 3 sampai langkah 4
6) selesai
c) Struktur for
Struktur pengulangan dengan intruksi for digunakan untuk mengulang satu baris instruksi
atau satu blok instruksi sampai jumlah perulangan yang disyaratkan terpenuhi. Ciri utama
pengulangan for adalah terdapat nilai awal dan nilai akhir yang menunjukkan banyaknya
pengulangan yang akan dilakukan. Dengan bentuk dasar:
for (ungkapan1; ungkapan2; ungkapan3;)
pernyataan;
Bentuk dasar struktur for tersebut sama dengan bentuk dasar struktur while, yaitu:
ungkapan1;
while (ungkapan2)
{
pernyataan;
ungkapan3;
}
dimana:
ungkapan1 merupakan pernyataan inisialisasi sebelum masuk ke while.
BAB 2
19
STRUKTUR DASAR ALGORITMA
mulai
for nilai_awal to
nilai_akhir
instruksi_1
instruksi_2
instruksi_3
selesai
Contoh:
Buatlah algoritma untuk mencetak angka 1 sampai 10 menggunakan perulangan for. :
- Dengan flowchart algoritma dapat digambarkan seperti sebagai berikut:
20 Belajar Konsep Dasar Algoritma Pemrograman Menggunakan C++
mulai
Cetak i
selesai
Dari algoritma diatas dapat dijelaskan bahwa nilai i pertama akan berisi 1, kemudian
dicetak nilai i, dalam perulangan for nilai variabel i akan bertambah secara otomatis
sehingga nilai variabel i sekarang menjadi 2, kemudian dicetak nilai i, begitu seterusnya
sampai nilai i berisi 10, maka proses pengulangan selesai.
mulai
Contoh 2.4:
Penggunaan struktur for dalam for adalah algoritma untuk menampilkan hasil perkalian
angka 1 sampai 10.
mulai
j++
selesai
1) Mulai
2) Kerjakan langkah 3 mulai dari i=1 sampai i=10
3) Jika i<=10, kerjakan langkah 4
4) Kerjakan langkah 5 mulai dari j=1 sampai j=10
5) Jika j<=10 kerjakan langkah 6
6) i*j
7) cetak (i+j)
8) j=j+1
9) kembali ke langkah 5, sampai j>10 (langkah 5 bernilai
salah)kerjakan langkah 10
10) i=i+1
11) kembali ke langkah 3 sampai 10, sampai i>10 (langkah 3
bernilai salah)
12) selesai
Untuk pemrograman dengan konsep perulangan bersarang (nested repetition) dapat juga
dibuat dengan kombinasi antara struktur for dan while. Flowchart algoritma untuk
kombinasi perulangan dengan for dan while sama bentuknya seperti flowchart nested for.
Contoh sederhana dengan struktur bahasa pseudocode:
1) Mulai
2) Kerjakan langkah 3 mulai dari i=1 sampai i=10 //for
3) Jika i<=10, kerjakan langkah 4
4) j = 1 //while
5) selama j <= 10 kerjakan langkah 5 sampai langkah 8
BAB 2
23
STRUKTUR DASAR ALGORITMA
6) i*j
7) cetak (i+j)
8) j=j+1
9) kembali ke langkah 5 sampai 8, sampai j>10 (langkah 5
bernilai salah)kerjakan langkah 10
10) i=i+1 //kembali ke for
11) kembali ke langkah 3 sampai 10, sampai i>10 (langkah 3
bernilai salah)
12) selesai
-----------------------------------------------------------------------------------------------------------------
Latihan Praktikum - 3
1. Buatlah flowchart algoritma dan pseudocode algoritma dengan struktur bahasa indonesia
untuk mencetak bilangan genap sampai batas nilai tertentu (nilai batas diinputkan) dengan
struktur pengulangan!
2. Buatlah algoritma dengan struktur bahasa Indonesia (pseudocode) dan flowchart untuk
mencari angka terbesar dan angka terkecil dari sejumlah angka yang diinputkan dengan
menggunakan pengulangan. Bila diperlukan berikan batas jumlah angka yang diinputkan.
3. Buatlah algoritma dengan struktur indonesia dan flowchart untuk menghitung total
pembayaran pembelian. Input berupa nama pembeli, nama barang dengan jumlah barang
yang dibeli, jumlah dan harga barang. Barang yang dibeli jumlahnya bisa banyak
tergantung pembelian dari konsumen.
Tugas (1)
1) Buatlah flowchart algoritma untuk mencari luas dan volume tabung!
2) Buatlah pseudocode dan flowchart algoritma untuk mengetahui bilangan terbesar dari
input 3 (tiga) buah bilangan!
3) Dengan struktur pengulangan buatlah flowchart/ pseudocode algoritma untuk menuliskan
deret angka kelipatan 3 sampai jumlah/ batas tertentu!.
4) Buatlah flowchart dan pseudocode algoritma untuk menghitung gaji yang harus
dibayarkan diakhir bulan kepada pegawai harian dengan data inputan nama pegawai,
24 Belajar Konsep Dasar Algoritma Pemrograman Menggunakan C++
jumlah hari kerja, dan jumlah jam lembur. Gaji per hari Rp.40.000,upah lembur per jam
sebesar Rp.5000. Gaji pegawai dihitung dari gaji per hari*jumlah hari kerja. Total Upah
lembur didapat dari upah lembur*jumlah jam lembur. Uang transport akan diberikan
kepada pegawai yang lembur lebih dari 10 jam dalam sebulan sebesar 10% dari total
upah lembur.
BAB 3
DASAR PEMROGRAMAN
BAHASA C++
3.1 Bahasa C++
C merupakan bahasa pemrograman dasar terstruktur yang berkekuatan tinggi dan
fleksibel. Bahasa C dikembangkan di laboratorium Bell AT&T di Murray, New Jersey
sebagai bahasa pemrograman untuk sistem operasi Unix yang bertujuan untuk membuat
antara muka yang bersifat user friendly. Pencipta C adalah pengembang sistem bernama
Dennis M. Ritchie dan Brian W. Kernighan pada sekitar tahun 1971-1972. Bahasa C adalah
pengembangan dari bahasa sebelumnya yang dinilai masih terkesan lambat, yaitu bahasa B
pada tahun 1970, oleh seorang pengembang sistem dari laboratorium yang sama bernama Ken
Thompson. Bahasa C dikembangkan dengan tujuan untuk menulis ulang dan menutupi
kelemahan-kelemahan yang ada pada sistem operasi Unix sebelumnya. Sejak itu bahasa C
terus digunakan untuk memelihara sitem operasi Unix. Sampai akhirnya pada tahun 90-an,
bahasa C ini digunakan untuk mengembangkan sistem operasi Windows dan sekarang ini
digunakan untuk mengembangkan sistem operasi Linux. Selain untuk menulis program yang
merupakan embedded system, di kalangan industry hiburan, bahasa C banyak digunakan
dalam mengembangkan perangkat lunak untuk permainan (game). Hal ini yang menyebabkan
Bahasa C menjadi bahasa yang sangat populer di kalangan industri perangkat lunak.
Saat ini banyak sekali terdapat bahasa permograman tingkat tinggi (high level language)
seperti Pascal, BASIC, COBOL dan lainnya. Walaupun demikian, sebagian besar dari para
programmer profesional masih tetap memilih bahasa C sebagai bahasa yang lebih unggul,
dengan pertimbangan bahwa bahasa C mempunyai kelebihan-kelebihan antara lain:
• Bahasa C++ tersedia hampir di semua jenis komputer.
• Kode bahasa C/C++ sifatnya adalah portable dan fleksibel untuk semua jenis komputer.
• Proses executable program bahasa C/C++ lebih cepat.
• Dukungan pustaka yang banyak.
• C adalah bahasa yang terstruktur.
26 Belajar Konsep Dasar Algoritma Pemrograman Menggunakan C++
Program
File Header
Sumber
(.hpp)
(.cpp)
Kompiler C++
Linker
File
Excutetable
(.exe)
3. main() menjadi awal dan akhir eksekusi program C++, sehingga sebuah program dalam
C++ mengandung sebuah fungsi main().
main → nama judul fungsi
{ →awal tubuh fungsi/awal eksekusi program
→tubuh fungsi/blok
} →akhir tubuh fungsi/akhir eksekusi program
Tanda () digunakan untuk mengapit argumen fungsi, yaitu nilai yang akan dilewatkan ke
fungsi.
4. Blok Pernyataan
Merupakan satu atau beberapa buah statemen/pernyataan yang pada setiap akhir baris
pernyataan diakhiri dengan titik koma (;).
Setiap program yang ditulis dengan C++ harus mempunyai fungsi utama, yang bernama
main(). Fungsi inilah yang akan dipanggil pertama kali pada saat proses eksekusi program.
Artinya apabila kita mempunyai fungsi lain selain fungsi utama, maka fungsi lain tersebut
baru akan dipanggil pada saat digunakan. Fungsi main() ini dapat mengembalikan nilai 0 ke
sistem operasi yang berarti bahwa program tersebut berjalan dengan baik tanpa adanya
kesalahan. Berikut dua bentuk kerangka fungsi main() dalam bahasa C yang dapat digunakan.
1. Bentuk Pertama (tanpa pengembalian nilai ke sistem operasi)
void main(void)
{
Statemen_ yang_akan_dieksekusi;
...
}
Kata kunci void di atas bersifat opsional, dalam arti bisa dituliskan dan bisa juga tidak.
2. Bentuk Kedua (dengan mengembalikan nilai 0 ke sistem operasi)
int main(void)
{
Statemen_yang_akan_dieksekusi;
...
return 0;
}
BAB 3
29
DASAR PEMROGRAMAN BAHASA C++
Kata kunci void di atas juga bersifat opsional. Namun, para programmer C pada
umumnya menuliskan kata kunci tersebut di dalam fungsi yang tidak memiliki parameter,
juga fungsi yang tidak memiliki nilai balik.
Dari kedua bentuk diatas, kerangka lengkap program bahasa C dapat dituliskan:
#include <nama_header_file>
... //header-header yang lain
/* Prototipe fungsi */
tipe_data nama_fungsi1(parameter1, parameter2, ...);
tipe_data nama_fungsi2(parameter1, parameter2, ...);
...
int main(void) //Fungsi utama
{
Statemen_yang_akan_dieksekusi;
...
return 0;
}
//Implementasi fungsi
tipe_data nama_fungsi1(parameter1, parameter2, ...)
{
Statemen_yang_akan_dieksekusi;
...
}
tipe_data nama_fungsi1(parameter1, parameter2, ...)
{
Statemen_yang_akan_dieksekusi
...
}
menuliskan fungsi-fungsi lain tersebut di atas atau sebelum fungsi utama, maka kita tidak
perlu lagi untuk menuliskan bagian prototipe di atas.
2) Pengenal (Identifier)
Pengenal adalah suatu nama yang biasa dipakai dalam pemrograman untuk
menyatakan menyatakan variabel, konstanta, tipe data, fungsi, label, obyek serta hal-hal
lain yang dibuat oleh pemrogram. Suatu pengenal merupakan kombinasi dari huruf,
angka dan garis bawah (_). Penamaan pengenal harus berawalan dengan huruf atau garis
bawah dan menggunakan kata yang mudah dipahami dan dapat mewakili fungsi dari
pengenal yang dibuat. Pengenal dalam C++ bersifat case sensitive atau dibedakan antara
huruf kecil dan huruf besar. Misalkan pengenal NAMA, nama, Nama merupakan buah
tiga pengenal yang berbeda.
Pemberian nama pengenal haruslah berupa satu atau beberapa karakter yaitu :
huruf, digit, garis bawah ( _ ) dan berawalan dengan huruf atau garis bawah. Disarankan
agar pemberian nama pengenal menggunakan nama yang berarti dan mudah dibaca.
Misalnya: gaji_pegawai yang menyatakan gaji pegawai lebih baik, mudah diingat
daripada g saja. Berikut ini contoh pengenal yang boleh dan tidak boleh.
nama_barang #barang
(simbol # tidak diperkenankan)
kuartal_2 nama barang
(tidak boleh mengandung spasi)
Pemberian nama pengenal tidak boleh menggunakan kata-kata yang merupakan keyword
(kata kunci) dari bahasa pemrograman, yaitu adalah pengenal sistem yang mempunyai
makna khusus bagi kompiler. Contoh: do, else, class, for, if, delete dan yang lainnya.
3) Tipe Data
Berikut tipe data dasar pada C++ beserta ukurannya:
Ukuran Jumlah
Tipe Data Jangkauan Nilai
Memori Digit Presisi
char 1 byte -128 hingga +127 -
int 2 byte -32.768 hingga +32.767 -
Short 2 byte -32.768 hingga +32.767 -
long 4 byte -2.147.438.648 hingga 2.147.438.647 -
float 4 byte 3.4 x 10-38 hingga 3.4 x 10+38 6-7
double 8 byte 1.7 x 10-308 hingga 1.7 x 10+308 15-16
long double 10 byte 3.4 x 10-4932 hingga 1.1 x 10+4932 19
Tipe data yang berhubungan dengan bilangan bulat adalah char, int, short dan long.
Sedangkan yang lainnya berhubungan dengan bilangan pecahan. Pemilihan tipe variabel
disesuaikan dengan data yang akan disimpan. Jika untuk bilangan bulat maka gunakan
tipe data bilangan bulat, seperti : int, long. Jika untuk bilangan pecahan maka gunakan
tipe data bilangan pecahan, seperti : float. Selain itu jangkauan tipe data juga harus
disesuaikan dengan kemungkinan data yang akan disimpan dalam variabel.
Perlu diketahui bahwa agar sedapat mungkin menggunakan variabel dengan tipe data
yang berukuran memori lebih kecil.
(pengenal) tertentu dan hanya bisa menampung data sesuai dengan tipe yang ditentukan.
Sifat dari variabel adalah nilai yang dikandung akan mudah diubah sesuai dengan proses
yang terjadi seperti contoh dibawah ini. Konstanta adalah suatu memori yang
dialokasikan dengan nama tertentu yang berisi suatu nilai yang memiliki sifat tetap yang
tidak akan bisa berubah.
a) Mendeklarasikan & Mendefinisikan Variabel
Sebelum variabel digunakan, maka variabel tersebut harus didefinisikan terlebih
dahulu. Pendefinisian variabel dapat dimana saja sebelum variabel itu digunakan
dengan bentuk :
<tipedata> <namavariabel>;
atau:
<tipedata> <daftarvariabel>;
Contoh:
int jumlah;
float harga_satuan, total_harga;
c) Variabel String
String pada dasarnya merupakan array (deret) dari karakter. String sangat
memudahkan pemrogram. Dengan string kita dapat menampilkan prompt, pesan
kesalahan dan berbagai informasi lainnya. Seperti halnya tipe data lain, string juga
dapat berupa konstanta atau variabel.
Konstanta string merupakan deretan karakter yang diawali dan diakhiri dengan tanda
petik ganda (“). Misalnya “Hai, selamat belajar C++”. Konstanta string berbeda
dengan konstanta karakter, “a” tidaklah sama dengan ‘a’.
Contoh program 3.1:
//program string
#include <conio.h>
#include <iostream.h>
void main()
{ char teks[20];
cout<<"Masukkan kata : ";
cin>>teks;
cout<<"Kata yang anda masukkan : "<<teks;
getch();
}
Program di atas dapat berjalan dengan normal jika diinputkan sebuah kata. Namun jika
terdapat spasi (lebih dari satu kata) maka kata sesudah spasi tidak ditampung dalam
variabel string. Ini disebabkan karena operator >> pada cin hanya bisa membaca masukan
hingga terdapat spasi, tab atau enter. Untuk mengatasi hal tersebut kita dapat
menggunakan fungsi getline().
Penggunaan fungsi getline dapat dituliskan dalam bentuk:
• Untuk data bertipe 'char'
cara definisinya -----> char alamat[50];
cara menulis di input --------> cin.getline(alamat,sizeof(alamat));
• Untuk data bertipe “string”
cara definisi --------> string nama;
cara menulis di input ---->getline(cin, nama);
34 Belajar Konsep Dasar Algoritma Pemrograman Menggunakan C++
d) Lingkup Variabel
Lingkup variabel merupakan jangkauan berlakunya suatu variabel. Lingkup variabel
ditentukan oleh tempat di mana variabel dideklarasikan. Menurut lingkupnya, variabel
dibedakan menjadi dua, yaitu variabel global dan variabel lokal.
1) Variabel Global
Variabel global adalah variabel yang dideklarasikan di luar fungsi, baik fungsi utama
maupun fungsi pendukung lainnya. Sifat-sifat variabel global : \
• Dikenal (dapat diakses) oleh semua fungsi.\
• Jika tidak diberi nilai awal secara otomatis berisi nilai nol.
• Dideklarasikan dengan menambahkan kata “extern” (opsional).
2) Variabel Lokal
Variabel lokal adalah variabel yang dideklarasikan di dalam fungsi.
Sifat-sifat variabel lokal :
• Secara otomatis akan diciptakan ketika fungsi dipanggil dan akan lenyap ketika
proses eksekusi terhadap fungsi berakhir.
• Hanya dikenal oleh fungsi tempat variabel dideklarasikan.
• Tidak ada inisialisasi secara otomatis (saat variabel diciptakan nilainya random).
• Dideklarasikan dengan menambahkan kata “auto” (opsional).
Berikut ini contoh penggunaan variabel global dan lokal dalam program.
Contoh program 3.2:
#include <stdio.h>
// Mendeklarasikan variabel global x
int x = 10; //memberikan nilai 10 ke dalam variabel x
Hasil eksekusi:
Nilai b dari fungsi NilaiX(): 10
Nilai x dari fungsi NilaiX(): 25
Dari hasil tersebut terlihat bahwa variabel x bersifat global, artinya dia akan dikenali dan
dapat diakses oleh setiap fungsi yang terdapat di dalam program (dalam hal ini fungsi
main() dan nNilaiX()). Pendefinisian fungsi di atas mungkin sedikit membingungkan
karena belum pernah ada pembahasan pada bab sebelumnya. Pembahasan lebih lanjut
mengenai pendefinisian fungsi selain fungsi utama akan di bahas lebih detil pada
Algoritma dan Pemrograman 2.
3. Pustaka input/ output merupakan pustaka yang berisi stream dan fungsi-fungsi
input/output. Pustaka ini telah ada di header stdio.h dan iostream.h. Dalam bahasa C
pustaka I/O yang digunakan adalah stdio.h yang berisi fungsi-fungsi seperti printf (cout)
dan scanf. Scanf (cin) digunakan untuk memasukkan sebuah nilai ke variable dan
printf(cout) digunakan untuk mencetak suatu nilai dari variable maupun konstanta.
Contoh program 3.3 :
#include <iostream.h>
void main()
{
clrscr(); //membersihkan layar
cout << "Selamat Belajar C++\n";
}
Hasil eksekusi :
Selamat Belajar C++
#include<conio.h>
void main()
{
char kar1, kar2;
cout<<"Tekan sembarang karakater : ";
kar1 = getch();
cout<<"\nTekan sembarang karakater : ";
kar2 = getche();
cout<<"\n\nKarakter pertama : "<<kar1<<'\n';
cout<<"Karakter kedua : "<<kar2<<'\n';
getch();
}
Hasil eksekusi:
Tekan sembarang karakater :
Tekan sembarang karakater : b
Karakter pertama : a
Karakter kedua : b
5. Komentar
Perhatikan baris ke 3 dan ke 4 pada contoh program 3.2 diatas. Baris tersebut yang disebut
sebagai komentar. Komentar diperlukan untuk menjelaskan mengenai program atau
bagian-bagian dalam program, atau menuliskan sesuatu sebagai pengingat dalam program.
Pada C++ komentar diawali dengan dua tanda garis miring (//). Ini digunakan untuk
komentar pada satu baris. Selain itu, komentar dapat juga diawali dengan tanda /* dan
diakhiri dengan tanda */. Ini digunakan untuk komentar yang terdiri dari beberapa baris.
Isi komentar dapat berupa:
• Tujuan/ fungsi program
• Saat program dibuat/direvisi
• Keterangan-keterangan lain tentang kegunaan sejumlah pernyataan dalam program.
Latihan Praktikum - 4
1. Buatlah sebuah program sederhana yang menampilkan data identitas pribadi anda dengan
operator keluaran saja (cout)!.
Nama : (isikan nama anda)
Tempat Lahir : (isikan kota asal)
Tanggal lahir : (isikan tanggal lahir)
Alamat : (alamat rumah)
2. Buatlah program yang menampilkan data identitas pribadi anda dengan operator keluaran
dan masukkan!. Anda bisa melakukan save-as dari program no. 1 dan lakukan modifikasi.
BAB 4
OPERATOR & UNGKAPAN
4.1 Operator
Operator merupakan suatu simbol yang digunakan untuk melakukan suatu
operasi atau manipulasi, seperti operator penjumlahan, pengurangan, perkalian,
pembagian dan operator lainnya. Fungsi operator -operator ini sangat penting,
karena tanpa adanya operator kita tidak bisa membuat program perhitungan,
program perbandingan dan lain -lain. Dalam operasi setiap operator selalu
melibatkan operad. Operand adalah nilai asal yang digunakan didalam proses
operasi atau variabel yang akan diproses oleh operator.
Operator-operator pada pemrograman C++ memiliki sifat sebagai berikut:
void main()
{
clrscr();
int a = 25;
int b = 10;
Hasil program:
a + b = 35
a - b = 15
a x b = 250
a / b = 2
a % b = 5
BAB 4
41
OPERATOR & UNGKAPAN
Hasil eksekusi:
Nilai = 1
Nilai = 0
Hasil eksekusi:
Nilai = 0
Nilai = 1
Fungsi dari operator &, | dan ~ di atas sebenarnya sama dengan fungsi operator logika &&, ||
dan !. Perbedaannya hanya operator bitwise ini melakukan operasinya bit demi bit, sedangkan
operator logika melakukan operasi pada nilai totalnya.
a = 50;
b = 3;
x = a << b;
cout<<"Hasil "<<a<<" << "<<b<<" = "<<x<<'\n';
x = a >> b;
cout<<"Hasil "<<a<<" >> "<<b<<" = "<<x<<'\n';
x = a & b;
cout<<"Hasil "<<a<<" & "<<b<<" = "<<x<<'\n';
x = a | b;
cout<<"Hasil "<<a<<" | "<<b<<" = "<<x<<'\n';
x = a ^ b;
cout<<"Hasil "<<a<<" ^ "<<b<<" = "<<x<<'\n';
x = ~a;
cout<<"Hasil ~"<<a<<" = "<<x<<'\n';
getch();
}
Hasil eksekusi:
Hasil 50 << 3 = 400
Hasil 50 >> 3 = 6
Hasil 50 & 3 = 2
Hasil 50 | 3 = 51
Hasil 50 ^ 3 = 49
Hasil ~50 = 4294967245
a = 2 + (b = 5);
sama dengan :
b = 5;
a = 2 + b;
Berikut beberapa bentuk penggunaan operator penugasan dalam struktur pemrograman C++:
Operator Deskripsi
operator penugasan sederhana, untuk menetapkan nilai dari sisi operand kanan
=
ke operand kiri
tambahkan AND operator penugasan, menambahkan operand yang benar
+=
untuk operand kiri dan menetapkan hasil untuk operand kiri
kurangi AND operator penugasan, itu mengurangi operand kanan dari operand
-=
kri dan menetapkan hasil untuk operand kiri
kalikan AND operator penugasan, mengalihkan operand kanan dengan
*=
operand kiri dan menetapkan hasil untuk operand kiri
Bagikan AND operator penugasan, membagi operan kiri dengan operand
/=
kanan dan menetapkan hasil untuk operand kiri
Modulus AND operator penugasan, sisa bagi dengan menggunakan dua
%=
operand dan menetapkan hasil untuk operand kiri
<<= shift kiri AND operator penugasan
>>= shift kanan AND operator penugasan
&= Bitwise AND operator penugasan
^= bitwise XOR dan operator penugasan
|= bitwise inclusive OR dan operator penugasan
Contoh penggunaan yang jelas untuk jenis operator poenugasan ini adalah operator majemuk.
Contoh lain:
5 + 20 * 2 – 20 / 2 + (10 - 2)
Maka:
BAB 4
47
OPERATOR & UNGKAPAN
- Ekspresi numerik yang terdapat di dalam kurung buka tutup akan dikerjakan pertama
kali karena mempunyai prioritas paling tinggi dibandingkan dengan operator perkalian
(*), pembagian (/), penjumlahan (+) dan pengurangan (-) sehingga ekspresi numerik
akan menjadi 5 + 20 * 2 – 20 / 2 + 8.
- Operator perkalian (*) dan pembagian (/) akan dikerjakan berikutnya mulai dari kiri ke
kanan karena memiliki prioritas yang sama dan lebih tinggi dari operator penjumlahan
(+) dan pengurangan (-) sehingga ekspresi numerik menjadi 5 + 40 – 10 + 8.
- Operator penambahan dan pengurangan mempunyai prioritas yang sama dan akan
dikerjakan terakhir mulai dari kiri ke nanan sehingga menghasilkan nila 43.
S = 10 + R;
S = 10 + --R;
identik dengan : R = R - 1;
S = 10 + R;
4.1.9 Operator Misc
Operator misc adalah operator tambahan yang sering dipakai dalam pemrograman,
terutama pada pemrograman array. Misalnya operator sizeof dan pointer (*).
Operator Description
sizeof size of operator digunakan untuk mengetahui ukuran dari
memori
Condition ? X : Y operator kondisi Jika Kondisi ini benar? maka kembali nilai
X: jika nilai Y
, Nilai seluruh ekspresi koma adalah nilai ekspresi terakhir dari
daftar dipisahkan koma
Cast digunakan untuk mengkonversi type data
& pointer & digunakan untuk mengembalikan alamat dari
variabel
* opinter * digunakan untuk mengetahui alamat memori
Contoh penggunaan operator misc adalah operator kondisi. Operator kondisi biasa
dipakai untuk mendapatkan sebuah nilai dari dua buah kemungkinan, berdasarkan suatu
kondisi. Ada tiga ungkapan yang dilibatkan. Oleh karena itu operator ?: tergolong operator
ternary. Bentuk pemakaian operator kondisi adalah:
ungkapan1? Ungkapan2 : ungkapan3;
----------------------------------------------------------------------------------------------------------
Latihan Praktikum - 5
1. Buatlah flowchart algoritma untuk menampilkan deret bilangan 1 – 100 yang habis
dibagi dengan 2 dan habis dibagi dengan 3.
2. Buatlah pseudocode algoritma dari soal no. 1 diatas!
----------------------------------------------------------------------------------------------------------
4.2 Ungkapan
Ungkapan disebut juga dengan ekspresi. Dalam C++ ungkapan dapat berupa pengenal,
konstanta, atau diantara kombinasi pengenal dan konstanta dengan operator.
Contoh ungkapan:
a = b + c – 2;
maka: a, b, c merupakan operand, simbol =, + ,- adalah operator. Dalam hal ini variabel a diisi
hasil penjumlahan b dan c dikurangi 2. Selanjutnya nilai a menyatakan nilai ungkapan.
Operator Aritmatika dalam ungkapan:
Seperti halnya pada matematika, dalam pemrograman operator juga mempunyai derajat
prioritas yang sama. Operator dengan prioritas tinggi akan diutamakan dalam hal pengerjaan
dibandingkan dengan operator yang memiliki proritas lebih rendah.
Ungkapan Kondisi
Ungkapan kondisi adalah ungkapan yang menjadi dasar bagi pernyataan berkondisi
(misalnya if). Ungkapan ini memberikan nilai benar atau salah.
Hasil ungkapan berupa :
0 kalau ungkapan bernilai salah
1 kalau ungkapan bernilai benar
Adapun elemen yang dapat membentuk ungkapan ini operator relasi dan operator logika.
4.3 Manipulator
Manipulator adalah fungsi pembantu yang memungkinkan untuk mengontrol input/
output stream. Manipulator pada umumnya digunakan untuk mengatur tampilan layar.
Contohnya untuk mengatur supaya suatu nilai ditampilkan dengan lebar 8 karakter dan diatur
rata kiri terhadap lebar tersebut. Dalam C++, terdapat beberapa manipulator yang merupakan
fitur baru, yang baru ditambahkan. Hal ini karena compiler C++ klasik (belum distandarisasi)
tidak mendukung adanya manipulator. Adapun manipulator yang dimaksud disini adalah
seperti yang terlihat pada tabel dibawah ini:
Untuk menggunakan manipulator yang tercantum diatas harus menyertakan file header
<iomanip> dan <ionsteam>. Berikut ini penjelasan mengenai beberapa manipulator yang
disediakan oleh C++ :
1. Manipulator endl
Manipulator endl digunakan untuk menyisipkan karakter ganti baris (newline).
Manipulator ini identik dengan karakter ’\n’.
void main()
{
int angka1 = 22;
int angka2 = 555;
float total = 12345.67;
cout<<"Isi angka 1 : "<<angka1<<endl;
cout<<"Isi angka 2 : "<<angka2<<endl;
cout<<"Isi angka 2 : "<<total<<endl;
getch();
}
Hasil program:
Isi angka 1 = 22
int angka 2 = 555
Isi angka 2 = 12345.67
2. Manipulator setw()
Manipulator setw() digunakan untuk mengatur lebar tampilan data pada layar. Jika anda
akan mengatur tampilan data pada layar maka perlu disertakan header iomanip.h.
Contoh program 4.7
/* contoh penggunaan setw()*/
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
void main()
{
int angka = 7775;
cout<<setw(0)<<angka<<endl;
cout<<setw(5)<<angka<<endl;
cout<<setw(7)<<angka<<endl;
getch();
}
BAB 4
53
OPERATOR & UNGKAPAN
Hasil program:
7775
7775
7775
3. Manipulator setfill()
Manipulator setfill() digunakan untuk mengatur karakter yang diisikan pada field yang
ditentukan oleh setw() yang tidak digunakan untuk menampilkan data.
Contoh program 4.8
/* contoh penggunaan setw() dan setfill()*/
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
void main()
{
int angka = 7775;
cout<<setw(0)<<setfill('*')<<angka<<endl;
cout<<setw(4)<<setfill('*')<<angka<<endl;
cout<<setw(6)<<setfill('*')<<angka<<endl;
cout<<setw(8)<<setfill('*')<<angka<<endl;
getch();
}
Hasil program:
7775
*7775
**7775
****7775
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
void main()
{
int x = 100;
cout<<"Nilai x : "<<x<<endl;
cout<<"Nilai x dalam oktal : "<<oct<<x<<endl;
cout<<"Nilai x dalam heksadesimal : "<<hex<<x<<endl;
cout<<"Nilai x dalam desimal : "<<dec<<x<<endl;
getch();
}
Hasil eksekusi :
Nilai x : 100
Nilai x dalam octal : 144
Nilai x dalam heksadesimal : 64
Nilai x dalam decimal : 100
5. Manipulor setiosflags()
Manipulor setiosflags() merupakan manipulator yang dapat dipakai untuk mengontrol
sejumlah tanda format sebagai berikut :
Tanda Format Keterangan
ios::left : untuk set rata kiri terhadap lebar filed yang diatur melalui setw()
ios::right : untuk rata kanan terhadap lebar filed yang diatur melalui setw()
ios::scientific : untuk format keluaran dalam notasi eksponensial
ios::fixed : untuk format keluaran dalam bentuk notasi desimal
ios::dec : untuk format keluaran dalam basis 10 (desimal)
ios::oct : untuk format keluaran dalam basis 8 (oktal)
ios::hex : untuk format keluaran dalam basis 16 (heksadesimal)
ios::uppercase : untuk format huruf pada notasi heksadesimal dalam bentuk kapital
ios::showbase : untuk menampilkan awalan 0x untuk bilangan heksadesimal atau 0
(nol) untuk bilangan octal
BAB 4
55
OPERATOR & UNGKAPAN
ios::showpoint : untuk menampilkan titik desimal pada bilangan pecahan yang tidak
memiliki bagian pecahan
ios::showpos : Untuk menampilkan tanda + pada bilangan positif
float y = 123.456;
cout<<"y ditampilkan dengan ios::fixed "<<endl;
cout<<setiosflags(ios::fixed)<<y<<endl<<endl;
cout<<resetiosflags(ios::fixed);
cout<<dec<<bil<<endl;
float a = 234.00;
cout<<"\nTanpa ios::showpoint : "<<endl;
cout<<a<<endl<<endl;
int b = 27;
cout<<"\nTanpa ios::showpos : "<<endl;
cout<<b<<endl<<endl;
Hasil eksekusi :
x ditampilkan dengan ios::left
520
x ditampilkan dengan ios::right
520
y ditampilkan dengan ios::fixed
123.456001
y ditampilkan dengan ios::scientific
1.234560e+02
Tanpa ios::showbase :
BAB 4
57
OPERATOR & UNGKAPAN
63
51
33
Dengan ios::showbase :
063
0x33
51
Dengan ios::uppercase untuk heksadesimal :
51
Tanpa ios::showpoint :
234
Dengan ios::showpoint :
234.000
Tanpa ios::showpos :
27
Dengan ios::showpos :
+27
6. Manipulator resetiosflags()
Manipulator resetiosflags() digunakan untuk mengembalikan ke bentuk format awal
setelah adanya penggunaan manipulator, misalnya :
setiosflags(ios::left)
telah digunakan, maka untuk kembali ke bentuk awal bisa digunakan :
resetiosflags(ios::left)
cout<<setiosflags(ios::left)<<setw(10)<<x<<endl<<endl;
cout<<"Setelah dilakukan resetiosflags(ios::right)"<<endl;
cout<<resetiosflags(ios::left);
cout<<setw(10)<<x<<endl<<endl;
getch();
}
Hasil eksekusi :
Ditampilkan dengan ios::right
12345
Setelah dilakukan resetiosflags(ios::right)
12345
7. Manipulator setprecision()
Manipulator setprecision() digunakan untuk mengatur jumlah digit pecahan yang akan
ditampilkan pada bilangan pecahan.
Bentuk :
setprecision(n)
dengan n adalah jumlah digit yang ingin ditampilkan
cout<<setprecision(5)<<y<<endl;
getch();
}
Hasil eksekusi :
12
12.3
12.34
12.340
12.3400
12.34000
-----------------------------------------------------------------------------------------------------------------
Latihan Praktikum - 6
1. Buatlah program dari hasil algoritma yang anda buat pada tugas (1) untuk no. 2 dan No. 3.
Tampilkan hasilnya dengan baik
2. Buatlah sebuah program yang menampilkan data mahasiswa kelas anda yang terdiri dari
npm, nama, alamat asal, sekolah_asal. Gunakan fungsi getline. Tampilkan data dalam
format tabel dengan fungsi-fungsi manipulator.
-----------------------------------------------------------------------------------------------------------------
60 Belajar Konsep Dasar Algoritma Pemrograman Menggunakan C++
BAB 5
PERNYATAAN DASAR
DALAM C++
Pernyataan (statement) adalah baris perintah atau instruksi yang digunakan untuk
melakukan suatu tindakan. Pernyataan bisa terdiri dari satu baris atau lebih (satu blok) yang
disebut blok pernyataan. Blok pernyataan merupakan sekumpulan baris program (instruksi)
yang berada di dalam kurung kurawal. Blok pernyataan sering juga disebut sebagai
pernyataan majemuk. Contohnya:
{
a = 15;
b = a + 20;
c = b – 5;
}
adalah blok pernyataan yang dapat diperlakukan sebagai blok tunggal atau blok yang
setingkat. Jika dalam suatu blok pernyataan didefinisikan suatu pengenal maka pengenal
tersebut hanya dikenal didalam blok itu saja dan blok yang ada didalamnya. Perngenal tidak
akan dikenal diblok diluar definisi dari pengenalnya.
a = 20;
cout<<"a = "<<a<<endl;
}
cout<<"a = "<<a<<endl;
getch();
}
Macam-macam pernyataan dalam pemrogramaan C++, yaitu:
5.1 Pernyataan Ungkapan dan Pernyataan Deklarasi (Definisi)
Pernyataan ungkapan terdiri dari sebuah ungkapan dan diakhiri dengan tanda titik koma
(;). Biasanya berupa penugasan nilai terhadap variabel atau pemanggilan fungsi. Contoh :
bil = 10;
x++;
jumlah = hasil * 15;
#include <iostream.h>
#include <conio.h>
void main()
{
cout<<"Tes goto"<<endl;
goto selesai;
cout<<"Pernyataan ini tidak ditampilkan"<<endl;
selesai: //nama label
cout<<"Selesai..."<<endl;
getch();
}
Hasil eksekusi:
Tes goto
Selesai …
Pemakaian goto sebisa mungkin dihindari karena pernyataan ini cenderung membuat program
menjadi rumit dan sulit dipahami. Penggunaan goto sering kali menyulitkan dalam logika
program dan jika terjadi kesalahan penelusuran kesalahan akan menjadi rumit, apalagi kalau
program yang dibuat besar.
5.3.1 Pernyataan If …
Pernyataan if digunakan untuk mengambil keputusan berdasarkan suatu kondisi yang
diuji, merupakan syarat pengambilan keputusan. Ada 3 (tiga) bentuk if dalam C++.
1. Pernyataan if sederhana
Pada bentuk ini, pernyataan if hanya mempunyai satu kondisi atau satu kemungkinan
pernyataan yang akan dikerjakan jika kondisi (syarat) yang diuji bernilai benar.
Bentuk pernyataan if sederhana :
64 Belajar Konsep Dasar Algoritma Pemrograman Menggunakan C++
if (kondisi)
pernyataan;
Hasil eksekusi:
Berapa Usia anda ? 15
Anda tidak boleh menonton.
Hasil eksekusi :
Masukkan nilai : 25
Silahkan Memilih…
Masukkan nilai : 15
Anda belum bisa memilih
66 Belajar Konsep Dasar Algoritma Pemrograman Menggunakan C++
Pada pernyataan ini <kondisi1> diuji, jika hasil pengujian bernilai benar maka pernyataan1
dikerjakan, jika hasil pengujian <kondisi1> bernilai salah maka akan diuji <kondisi2>, jika
hasil pengujian bernilai benar maka pernyataan2 akan dikerjakan, jika hasil pengujian
<kondisi2> bernilai salah maka <kondisiM> akan diuji, jika hasil pengujian bernilai benar
maka <pernyataanM> akan dikerjakan, jika hasil pengujian <kondisiM> bernilai salah maka
akan mengerjakan <pernyataanN> yang merupakan alternatif terakhir jika semua kondisi
yang diuji tidak terpenuhi.
Pseudocode bangun_datar
//ditampilkan menu pilihan untuk hitung luas bangun datar
//dilakukan dengan menggunakan nested if
//deklarasi
char pilih
int sisi, panjang, lebar, alas, tinggi;
float luas
//deskripsi
{
cetak (“ Hitung Luas Bangun Datar”)
cetak (“ ========================“)
BAB 5
67
PERNYATAAN DASAR DALAM C++
if(pilih==’1’)
{
cout<<“Kubus”<<endl;
cout<<”Masukkan sisi kubus : “; cin>>sisi;
luas = sisi * sisi ;
}
else if(pilih==’2’)
{
cout<<“Persegi Panjang”<<endl;
cout<<“Masukkan Panjang : ”; cin>>panjang;
cout<<“Masukkan Lebar : ”; cin>>lebar;
luas = panjang * lebar;
}
BAB 5
69
PERNYATAAN DASAR DALAM C++
else if(pilih==’3’)
{
cout<<“Segitiga”<<endl;
cout<<“Masukkan Alas : ”; cin>>alas;
cout<<“Masukkan Tinggi : ”; cin>>tinggi;
luas = (0.5) * alas * tinggi;
}
else
{
cetak(“Selesai”<<endl;
}
cetak(luas)
}
Pada pernyataan switch, (ungkapan) dapat berupa konstanta atau variabel, sedangkan
ungkapan1, ungkapan2, dapat berupa konstanta bertipe int atau char. Proses pencocokan
70 Belajar Konsep Dasar Algoritma Pemrograman Menggunakan C++
Pseudocode Operasi_duaBilangan
//ditampilkan menu pilihan untuk operasi hitung dua bilangan
//deklarasi
char pilih
int bil_A, int bil_B
float hasil
//deskripsi
{
cetak (“ Menu Pilihan Operasi Hitung ”)
cetak (“ ======================= “)
cetak (“1. Penjumlahan Bilangan “)
cetak (“2. Perkalian Bilangan “)
cetak (“3. Pengurangan Bilangan “)
cetak (“4. Pembagian Bilangan “)
cetak (“ 5. Selesai “)
cetak (“ Pilihan Anda [ 1 .. 5] : “)
baca (pilih)
switch (pilih)
case 1:
baca bil_A
baca bil_B
hasil = bil_A + bil_B
case 2:
baca bil_A
baca bil_B
hasil = bil_A * bil_B
case 3:
baca bil_A
baca bil_B
BAB 5
71
PERNYATAAN DASAR DALAM C++
-----------------------------------------------------------------------------------------------------------------
BAB 5
73
PERNYATAAN DASAR DALAM C++
Pada pengulangan dengan bentuk while, pernyataan yang mengikuti while akan
dikerjakan jika ungkapan yang diuji bernilai benar (sama dengan 1). Pada pernyataan while,
ungkapan akan diuji terlebih dahulu sebelum pernyataan dikerjakan, sehingga ada
kemungkinan bagian pernyataan pada while tidak akan dikerjakan sama sekali jika
ungkapan yang diuji bernilai salah (sama dengan nol).
Psoudocode Cetak_angka
// Akan dicetak angka 1 sampai 10 dengan perulangan while
//deklarasi
int i
//deskripsi
{
i = 1
BAB 5
75
PERNYATAAN DASAR DALAM C++
while(i<=10)
{
cetak(i)
i++
}
Hasil Eksekusi:
i ke - 0
i ke - 1
i ke - 2
i ke - 3
i ke - 4
i ke - 5
i ke - 6
i ke - 7
i ke - 8
i ke - 9
76 Belajar Konsep Dasar Algoritma Pemrograman Menggunakan C++
Pseudocode Cetak_bil_ganjil
/* Akan dicetak bilangan ganjil dengan batas tertentu
menggunakan pengulangan while*/
//deklarasi
int batas, i
//deskripsi
{
baca(batas)
i = 1
while(i<=batas)
{
if(i%2=1)
cetak(i)
i++
}
}
getch();
}
Hasil Eksekusi:
Masukkan batas bilangan : 33
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33
Pada pengulangan ini pernyataan yang mengikuti do...while akan dikerjakan terlebih dahulu,
setelah itu baru diuji ungkapan dalam while, jika ungkapan yang diuji bernilai benar (sama
dengan 1), maka pernyataan akan dikerjakan kembali, begitu seterusnya sampai ungkapan
yang diuji bernilai salah (sama dengan nol).
Pseudocode cetak_bil_genap
/* Akan dicetak bilangan genap dengan batas tertentu
menggunakan pengulangan while*/
//deklarasi
int batas, i
//deskripsi
{
baca(batas)
i = 1
do
{
if(i%2=0)
78 Belajar Konsep Dasar Algoritma Pemrograman Menggunakan C++
cetak(i)
i++
}while(i<=batas)
Hasil Eksekusi:
Masukkan batas bilangan : 30
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30
ungkapan1;
while (ungkapan2)
{
pernyataan;
ungkapan3;
}
Dimana
ungkapan1 merupakan pernyataan inisialisasi sebelum masuk ke while.
ungkapan2 berlaku sebagai kondisi yang menentukan pengulangan terhadap pernyataan
atau tidak.
ungkapan3 digunakan sebagai pengatur variabel yang digunakan di dalam ungkapan1.
Pseudocode cetak_angka_for
// Akan dicetak angka 1 sampai 10 dengan perulangan for
//deklarasi
int i;
//deskripsi
{
for(i=0; i<=10; i++)
{
cetak(i)
}
}
#include <iostream.h>
#include <conio.h>
void main()
{
clrscr();
int i;
for(i=1; i<=10; i++)
{
cout<<i<<" ";
}
getch();
}
Hasil eksekusi:
1 2 3 4 5 6 7 8 9 10
Hasil eksekusi:
Masukkan batas bilangan : 30
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30
Dalam bentuk ini, pernyataan akan dikerjakan sebanyak syarat pada ungkapan2 pada for2.
Selanjutnya seluruh pernyataan yang ada di dalam for2 akan diulang sebanyak syarat pada
ungkapan2 pada for1.
Pseudocode baris_bintang
//akan dicetak barisan karakter * dengan for bersarang
//deklarasi
int i,j;
//deskripsi
baca(tinggi)
baca(lebar)
cetak("*")
#include <iostream.h>
#include <conio.h>
void main()
clrscr();
int i,j;
cout<<endl;
cout<<"*";
getch();
Hasil eksekusi:
Masukkan tinggi baris : 4
Masukkan lebar : 5
Barisan Bintang
*****
*****
*****
*****
Pseudocode Segitiga_Bintang
// Akan dicetak karakter * yang membentuk bangun segitiga
//DEKLARASI
int tinggi, i, j
//DESKRIPSI
{
baca(tinggi)
for(i=1;i<=tinggi;i++)
for(j=1;j<=i;j++)
cetak(‘*’)
endl
}
#include <iostream.h>
#include <conio.h>
void main()
{
int tinggi; //untuk tinggi segitiga
clrscr();
cout<<"Masukkan Tinggi Segitiga = "; cin>>tinggi;
cout<<endl;
for(int baris=1; baris<=tinggi; baris++)
{
for(int kolom=1; kolom<=baris; kolom++)
{
cout<<"*";
}
cout<<endl;
}
getch();
}
Hasil eksekusi:
Masukkan Tinggi Segitiga = 8
*
**
***
****
*****
******
*******
********
#include <iostream.h>
int main()
{
int tinggi;
cout << "Tinggi segitiga = "; cin >>tinggi;
for (int kolom=1; kolom<=tinggi; kolom++)
{
int baris =kolom-1;
for (int turun=1; turun<=baris; turun++)
{
cout << " ";
}
baris = tinggi - kolom + 1;
for ( turun = 1; turun<=baris; turun++)
{
cout << " *";
}
cout << endl;
}
}
Hasil eksekusi:
Tinggi segitiga = 8
* * * * * * * *
* * * * * * *
* * * * * *
* * * * *
* * * *
* * *
* *
*
-----------------------------------------------------------------------------------------------------------------
86 Belajar Konsep Dasar Algoritma Pemrograman Menggunakan C++
Latihan Praktikum – 7
1. Buatlah program untuk menampilkan deret bilangan yang habis dibagi 3 dan 5 sampai
batas bilangan tertentu!
2. Sebuah LPK ternama di Kediri, mengadakan test Program komputer yang akan diadakan
tiga kali test (terdiri dari program Ms. Word, Ms. Excel, Bahasa C). Test ini didakan
untuk menentukan Grade dan besarnya biaya kursus bila siswa tersebut ingin melanjutkan
ke tingkat yang lebih tinggi. Sebagai inputan adalah Jumlah Siswa dan Nilai dari ketiga
test tersebut masing-masing siswa. Rata-rata Nilai adalah nilai akhir dari siswa.
Tampilkan data dan Grade serta Jumlah Bayar
Keterangan : Gunakan fungsi perulangan untuk input data siswa, fungsi if dan fungsi switch
untuk menentukan grade.
Ketentuan Nilai :
Nilai Grade Besar Biaya
91 - 100 A 50.000
76 - 90 B 150.000
60 - 75 C 250.000
40 - 59 D 350.000
01 - 39 E 450.000
0 0 550.000
-----------------------------------------------------------------------------------------------------------------
Tugas (4)
1. Sebagai seorang analis sistem anda diminta membuat flowchart algoritma dan program
untuk menghitung gaji karyawan. Data inputan nama pegawai, kategori bagian, jumlah
hari kerja, dan jumlah jam lembur. Jika terdapat 3 kategori karyawan:
a. Karyawan bagian Produksi dengan Gaji Rp.160.000, upah lembur per jam sebesar
Rp.20.000.
b. Karyawan bagian Packing dengan Gaji Rp.145.000, upah lembur per jam sebesar
Rp.15.000.
c. Karyawan bagian Distribusi dengan Gaji Rp.155.000, upah lembur per jam sebesar
Rp.17.500.
dengan ketentuan:
BAB 5
87
PERNYATAAN DASAR DALAM C++
• Tunjangan istri diberikan sebesar 15% dari gaji pokok, Tunjangan anak akan
diberikan sampai anak ke 3, sebesar 10% dari total gajiPOKOK.
• Uang transport akan diberikan kepada pegawai yang lembur lebih dari 10 jam dalam
sebulan sebesar 10% dari total upah lembur.
• Gaji pegawai dihitung dari gaji per hari*jumlah hari kerja. Total Upah lembur
didapat dari upah lembur*jumlah jam lembur. Gunakan constanta untuk tunjangan
istri dan anak.
Tampilkan hasil dalam bentuk tabel yang rapi. Manfaatkan fungsi manipulator.
88 Belajar Konsep Dasar Algoritma Pemrograman Menggunakan C++
DAFTAR PUSTAKA
Abdul Kadir, Pemrograman C++ Membahas Pemrograman Berorientasi Objek
Menggunakan Turbo C++ dan Borland C++, Andi Offset, Yogyakarta
Budi Sutedjo, Michel An, Algoritma dan teknik pemrograman, Andi offset, yogyakarta
I Made Joni, Budi Raharjo, Cara Mudah mempelajari Algoritma dan Implementasinya,
Informatika, Bandung.
Jogiyanto, Analisis dan Desain Sistem informasi Pendekatan Terstruktur Teori dan Praktek
Aplikasi Bisnis, Andi Offset, Yogyakarta
Rinaldi Munir, Algoritma dan Pemrograman dalam Bahasa Pascal dan C buku 1 dan 2,
Informatikan, Bandung