BAB I
PETA KONSEP
A. Pengertian Algoritma
Istilah algoritma berasal dari seorang ilmuwan terkenal dari Persia
yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang
barat menjadi Algorism. Al-Khuwarizmi menulis kitab atau buku yang berjudul Al
Jabr Wal-Muqabala atau The Book of Restoration and Reduction. Dari buku
tersebut diperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari Algorism
menjadi Algorithm muncul karena kata Algorism sering dikelirukan dengan
arithmetic, sehingga akhiran –ism berubah menjadi –ithm. Algoritma merupakan
suatu prosedur, urutan langkah-langkah atau tahapan-tahapan sistematis, jelas,
dan logis untuk menyelesaikan permasalahan. Langkah logis dalam algoritma harus
dapat ditentukan, bernilai salah atau benar.Algoritma merupakan alur pemikiran
dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis. (Moh
Sjukani, “Algoritma dan Struktur Data dengan C, C++, dan Java”).
Penentuan algoritma dalam pemrograman ini merupakan hal dasar yang harus
diketahui dan menjadi tahap awal dalam pembuatan program. Penyajian algoritma
dapat dilakukan menjadi dua bentuk yakni dalam tulisan maupun gambar,
tergantung dari metode atau tahap yang digunakan oleh seorang programmer.
Penyajian dalam bentuk tulisan biasanya menggunakan pseudocode sedangkan dalam
bentuk gambar biasanya dalam bentuk diagram flowchart. Tantangan tersulit
adalah mengimplementasikan algoritma yang ditentukan menjadi code atau script
yang tertata dan dapat berjalan sesuai keinginan. Berikut ini merupakan fungsi algoritma yang
perlu Anda ketahui :
- Pemrograman dapat mengatasi permasalahan
rumit dalam program yang kemungkinan juga melibatkan perhitungan tingkat
tinggi. Karena menggunakan perhitungan seringkali program yang dibuat
tidak berjalan semestinya karena adanya kesalahan, hal ini dapat
diminimalisir dengan menerapkan algoritma dalam pemrograman.
- Algoritma pemrograman juga mampu
menyederhanakan program, dari program yang besar menjadi program yang
lebih sederhana, sehingga penggunaannya lebih efektif dan efisien. Selain
itu, terdapat dua pendekatan yang dimiliki algoritma pemrograman yaitu
pendekatan top-down serta pendekatan divide and conquer.
- Fungsi dari algoritma ini bukan merupakan
sekali pakai, artinya dapat digunakan secara berulang-ulang ini memberikan
Anda keuntungan dalam meminimalisir penulisan program yang berulang-ulang.
Jadi, Anda tidak perlu repot-repot menuliskan lagi program yang sama di
lain waktu, yang hal ini memudahkan Anda dalam pembuatan program.
- Dalam pembuatan program pastinya akan
menjumpai beberapa kesalahan, hal ini sangatlah wajar. Dengan menerapkan
fungsi algoritma maka pencarian kesalahan dapat lebih mudah serta dapat
diperbaiki dengan cepat.
- Adanya alur yang jelas yang dimiliki oleh
algoritma pemrograman, Anda dapat dengan mudah mencari kesalahan jika
terjadi kesalahan. Karena program sudah tertata atau tersusun dengan rapi,
sehingga memudahkan Anda dalam pencarian dan menemukan kesalahan yang
terjadi pada program di dalam perangkat komputer yang Anda miliki.
·
Komputer hanyalah salah satu pemroses. Agar
dapat dilaksanakan oleh komputer, algoritma harus ditulis dalam notasi bahasa
pemrograman sehingga dinamakan program. Jadi program adalah perwujudan atau
implementasi teknis algoritma yang ditulis dalam bahasa pemrograman tertentu
sehingga dapat dilaksanakan oleh komputer. Kata “algoritma” dan “program”
seringkali dipertukarkan dalam penggunaannya.
·
Misalnya ada orang yang berkata seperti ini:
“program pengurutan data menggunakan algoritma selection sort”. Atau pertanyaan
seperti ini: “bagaimana algoritma dan program menggambarkan grafik tersebut?”.
Jika Anda sudah memahami pengertian algoritma yang sudah disebutkan sebelum
ini, Anda dapat membedakan arti kata algoritma dan program. Algoritma adalah
langkah-langkah menyelesaikan masalah, sedangkan program adalah realisasi
algoritma dalam bahasa pemrograman.
·
Program ditulis dalam salah satu bahasa
pemrograman dan kegiatan membuat program disebut pemrograman (programming).
Orang yang menulis program disebut pemrogram (programmer). Tiap-tiap langkah di
dalam program disebut pernyataan atau instruksi. Jadi, program tersusun atas
sederetan instruksi. Bila suatu instruksi dilaksanakan, maka operasi-operasi
yang bersesuaian dengan instruksi tersebut dikerjakan komputer. Secara garis
besar komputer tersusun atas empat komponen utama yaitu, piranti masukan,
piranti keluaran, unit pemroses utama, dan memori.
·
Unit pemroses utama (Central Processing Unit –
CPU) adalah “otak” komputer, yang berfungsi mengerjakan operasi-operasi dasar
seperti operasi perbandingan, operasi perhitungan, operasi membaca, dan operasi
menulis. Memori adalah komponen yang berfungsi menyimpan atau mengingat ingat.
Yang disimpan di dalam memori adalah program (berisi operasi-operasi yang akan
dikerjakan oleh CPU) dan data atau informasi (sesuatu yang diolah oleh
operasi-operasi).
·
Piranti masukan dan keluaran (I/O devices)
adalah alat yang memasukkan data atau program ke dalam memori, dan alat yang
digunakan komputer untuk mengkomunikasikan hasil-hasil aktivitasnya. Contoh
piranti masukan antara lain, papan kunci (keyboard), pemindai (scanner), dan
cakram (disk). Contoh piranti keluaran adalah, layar peraga (monitor), pencetak
(printer), dan cakram. Mekanisme kerja keempat komponen di atas dapat
dijelaskan sebagai berikut.
·
Mula-mula program dimasukkan ke dalam memori
komputer. Ketika program dilaksanakan (execute), setiap instruksi yang telah
tersimpan di dalam memori dikirim ke CPU. CPU mengerjakan operasi operasi yang
bersesuaian dengan instruksi tersebut. Bila suatu operasi memerlukan data, data
dibaca dari piranti masukan, disimpan di dalam memori lalu dikirim ke CPU untuk
operasi yang memerlukannya tadi. Bila proses menghasilkan keluaran atau
informasi, keluaran disimpan ke dalam memori, lalu memori menuliskan keluaran
tadi ke piranti keluaran (misalnya dengan menampilkannya di layar monitor).
B. Aspek Penting Dalam
Algoritma
Menurut Donald E. Knuth, algoritma harus mempunyai lima ciri
penting, yaitu sebagai berikut.
1. Finiteness. Algoritma harus berhenti setelah mengerjakan
sejumlah langkah tertentu atau terbatas.
2. Definiteness. Setiap langkah harus didefinisikan secara tepat,
tidak boleh membingungkan (ambiguous).
3. Input. Sebuah algoritma memiliki nol atau lebih input yang
diberikan kepada algoritma sebelum dijalankan.
4. Output. Sebuah algoritma memiliki satu atau lebih output, yang
biasanya bergantung kepada Input.
5. Effectiveness. Setiap algoritma diharapkan miliki sifat efektif.
Setiap langkah harus sederhana sehingga dapat dikerjakan dalam sejumlah waktu
yang masuk akal.
C. Ragam Struktur Algoritma
Algoritma
berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut
dapat berupa runtunan aksi (sequence), pemilihan aksi (selection), pengulangan
aksi (iteration atau looping), atau kombinasi dari ketiganya. Struktur dasar
penyajian algoritma dibedakan menjadi tiga, yaitu sebagai berikut.
1. Struktur runtunan (sequence), struktur algoritma yang mempunyai
pernyataan secara berurutan atau sequential.
2. Struktur pemilihan atau percabangan (selection), struktur
algoritma atau program yang menggunakan pemilihan atau penyeleksian kondisi.
3. Struktur perulangan, struktur algoritma atau program yang
pernyataannya akan dieksekusi berulang-ulang sampai kondisi tertentu.
Pada
algoritma, tidak dipakai simbol-simbol atau sintaks dari suatu bahasa
pemrograman tertentu, melainkan bersifat umum dan tidak tergantung pada suatu
bahasa pemrograman apapun juga. Notasi-notasi algoritma dapat digunakan untuk
seluruh bahasa pemrograman mana pun.
D. Metode Penyajian Algoritma
Algoritma dapat disajikan 3
cara yaitu :
1.
Penulisan dengan bahasa natural ( Bahasa
manusia ,seperti bahas Inggris , bahasa Indonesia dan sebagainya )
2.
Penulisan dengan bahasa yang mendekati
penulisan bahasa pemprograman ( Pseudocode ), dan
3.
Penulisan dengan ( Flowchart ).
1.
Pseudocode
Pseudocode
adalah suatu cara penulisan algoritma agar ide dan logika dapat disampaikan /
di ekpresikan algoritma dalam bentuk pseudocode biasanya menyadopsi
beberapa noasi pada sebuah bahasa pemprograman tertentu . berikut contohnya :
algoritma
- Nilai a ditammbah 5 letak A bila lebih besar
dari 10
- Dari 2 bilangan A dan B ,
cari bilangan yang terbesar .
Dengan pseudocode
A<- A+5
IF A > 10 THEN print A
IF A > B THEN print A else
print B
2.
Flowchart
Apa sih yang dimaksud dengan flowhart ?
Flowchart atau bagan aliran adalah skema / bagan ( chart ) yang menunjukan
aliran ( flow ) dalam suatu program dalam logika . Berikut simbol simbol pada
flowchart
Berikut adalah contoh
penyajiaan dalam Flowchart :
E. Flowchart Struktur Urut
Sebuah runtunan terdiri atas satu atau lebih instruksi. Tiap
instruksi dikerjakan secara berurutan sesuai dengan urutan penulisannya, yakni
sebuah instruksi dilaksanakan setelah instruksi sebelumnya selesai dikerjakan.
Urutan dari instruksi menentukan hasil akhir dari suatu algoritma. Bila urutan
penulisan berubah maka mungkin juga hasil akhirnya berubah. Sebagai contoh
perhatikan operasi aritmateka berikut ini, (4+3)*7=49, tetapi bila urutan
aksinya diubah maka hasil keluaran akan berbeda menjadi 4+(3*7) =25. Contoh
kasus: Buatlah flowchart untuk mengonversi suhu dari Celcius ke Fahrenheit,
Suhu dalam satuan Celcius dimasukkan oleh pengguna. Suhu dalam satuan
Fahrenheit ditampilkan ke layar.
F.
Flowchart
Struktur Percabangan
1.
Struktur Pemilihan
atau Percabangan Satu Kasus
Algoritma menggunakan flowchart satu kasus ini hanya terdiri satu
ekspresi kondisi dan satu pernyataan atau instruksi (aksi). Notasi yang
digunakan untuk menyatakan struktur pemilihan satu kasus ini adalah satu buah
belah ketupat dengan satu buah masukan dan dua buah keluaran. Sementara itu
pernyataan atau instruksi yang akan dilakukan menempati pada satu keluaran
pemilihan yaitu untuk kondisi terpenuhi (hasil ekspresi kondisi benar) atau
kondisi tidak terpenuhi (hasil ekspresi kondisi salah). Struktur flowchart satu
kasus diperlihatkan dalam gambar di bawah ini.
“Kondisi”
yang ada pada simbol belah ketupat merupakan ekspresi kondisi yang terdiri atas
operator yang meliputi: operator perbandingan (, ==, …..), logika (OR, AND…),
operand dapat berupa variabel atau nilai variabel.
Tabel
di bawah ini menjelaskan ragam contoh ekspresi kondisi.
Operand1 |
Operand2 |
Operator |
Ekspresi
si |
Hasil |
1 |
4 |
< |
1<4 |
False |
4 |
2 |
> |
5>2 |
True |
A=5 |
B=5 |
== |
A==B |
True |
2.
Struktur
Pemilihan atau Percabangan Dua Kasus
Algoritma menggunakan flowchart dua kasus ini hanya terdiri satu
ekspresi kondisi dan dua pernyataan atau instruksi (aksi). Notasi yang
digunakan untuk menyatakan struktur pemilihan satu kasus ini adalah satu buah
belah ketupat dengan satu buah masukan dan dua buah keluaran. Pernyataan atau
instruksi yang akan dilakukan menempati pada dua keluaran pemilihan yaitu satu
pernyataan pada kondisi terpenuhi (hasil ekspresi kondisi benar). Satu
pernyataan lainnya menempati pada kondisi tidak terpenuhi (hasil ekspresi
kondisi salah). Pernyataan atau instruksi yang akan dieksekusi tergantung dari
data masukan dan hasil ekspresi kondisi. Struktur flowchart dua kasus
diperlihatkan dalam gambar di bawah ini:
Gambar
di atas menjelaskan bahwa pernyataan 1 akan dieksekusi jika hasil ekpresi
kondisi bernilai true atau benar dan pernyataan 2 akan dieksekusi jika hasil
ekspresi kondisi bernilai false atau salah. Contoh kasus: Tulislah algoritma
untuk menentukan ketuntasan atau kelulusan dari suatu nilai dengan nilai
dimasukkan dari keyboard dan ketentuan sebagai berikut,
NILAI |
GRADE |
<60 |
“Maaf anda belum lulus” |
>60 |
“Anda lulus” |
Gambar
di atas menjelaskan flowchart yang digunakan untuk menentukan kelulusan dengan
kriteria jika nilai grade < 60 maka algoritma akan menampilkan ”Maaf Anda
belum Lulus.“ Jika nilai grade > 60 maka program akan menampilkan ”Anda
Lulus.“
3.
Struktur
Pemilihan atau Percabangan Tiga Kondisi
Algoritma menggunakan Flowchart dengan tiga kasus ini terdiri dua
ekspresi kondisi dan tiga pernyataan atau instruksi (aksi). Notasi yang
digunakan untuk menyatakan struktur pemilihan tiga kasus ini adalah dua buah
belah ketupat dengan satu buah masukan pada satu kondisi 1, satu keluaran
kondisi 1 dan dua keluaran pada kondisi 2. Masing-masing keluaran memiliki satu
pernyataan atau instruksi yang akan dieksekusi tergantung dengan hasil ekspresi
kondisi 1 dan 2. Struktur flowchart tiga kasus diperlihatkan dalam gambar
berikut:
Gambar
di atas menjelaskan pernyataan 1 akan dieksekusi jika hasil ekpresi kondisi 1
bernilai true atau benar. Pernyataan 2 akan dieksekusi jika hasil ekspresi
kondisi 1 bernilai false atau salah dan hasil ekspresi kondisi 2 bernilai
benar. Pernyataan 3 akan dieksekusi jika hasil ekspresi kondisi 1 bernilai
false atau salah dan hasil ekspresi kondisi 2 bernilai salah. Contoh kasus:
Tulislah algoritma untuk menentukan ketuntasan atau kelulusan dari suatu nilai
dengan nilai diinputkan dari keyboard dengan kriteria berikut:
NILAI |
GRADE |
>90 |
“Anda lulus dengan nilai sangat bagus” |
60-90 |
“Anda lulus dengan nilai cukup” |
<60 |
“Maaf anda belum lulus” |
Gambar
di atas menjelaskan flowchart yang digunakan untuk menentukan kelulusan dengan
kriteria jika nilai Grade > 90 maka algoritma akan menampilkan ”Anda lulus
dengan nilai sangat bagus.“ Jika nilai grade antara 60 dan 90 maka program akan
menampilkan ” Anda lulus dengan nilai cukup.“ Jika nilai grade antara < 60
maka program akan menampilkan ” maaf Anda belum lulus.“
G.
Flowchart
Struktur Perulangan
Struktur perulangan digunakan untuk mengulang suatu perintah
sebanyak yang diinginkan tanpa harus menulis ulang. Instruksi perulangan yang
umum digunakan dalam bahasa pemrograman antara lain adalah: while, do-while,
dan for.
1.
Struktur
Perulangan Instruksi WHILE
Perintah while digunakan untuk mengulangi suatu perintah sampai
kondisi tertentu. Perulangan akan terus berjalan selama kondisi masih bernilai
benar. Perulangan akan berhenti jika kondisi ekspresi bernilai salah. Bedanya
dengan perintah do – while, untuk instruksi while kondisi akan dicek dahulu
selanjutnya pernyataan dikerjakan kemudian. Penulisan dengan notasi
flowchartnya adalah sebagai berikut:
2.
Struktur
Perulangan Mengunakan Instruksi Do-While
Sebagai mana instruksi while instruksi do-while merupakan proses
perulangan yang akan berjalan jika ekspresi-boolean masih bernilai benar dan
perulangan akan dihentikan jika kondisinya sudah bernilai salah. Perbedaannya
dengan instruksi while adalah terletak pada kondisi yang diperiksa, yaitu
sebagai berikut.
a. Pada perintah while, kondisi yang diperiksa terletak di awal
perulangan, sehingga sebelum masuk ke dalam perulangan while kondisi harus
bernilai benar.
b. Pada perintah do … while,
kondisi diperiksa di akhir perulangan. Ini berarti bahwa paling sedikit sebuah
perulangan akan dilakukan oleh perintah do … while, karena untuk masuk ke dalam
perulangan tidak ada kondisi yang harus dipenuhi.
3.
Struktur
Perulangan Menggunakan Instruksi For
Struktur
perulangan menggunakan for digunakan untuk mengulangi perintah dengan jumlah
perulangan yang sudah diketahui. Pada flowchart dengan struktur ini perlu
dituliskan nilai awal dari variabel, suatu kondisi untuk diuji yang berupa
ekspresi boolean, dan perintah yang dipakai untuk penghitung (counter). Nilai
variabel penghitung akan secara otomatis bertambah atau berkurang tiap kali
sebuah perulangan dilaksanakan tergantung perintah yang akan diberikan.
4.
Struktur
Perulangan Mengunakan Instruksi Do-While
Pada suatu perulangan bisa terdapat perulangan yang lain. Suatu
struktur perualangan (inner loop) yang terdapat dalam perulangan lainnya (outer
loop) ini sering disebut dengan istilah nested loop. Salah satu contoh
penerapan algoritma nested loop adalah algoritma untuk tabel perkalian sebagai
berikut.
BAB II
PENGENALAN
2.1
Pengenalan C++
Berbicara tentang C++ tak lepas dari C, sebagai bahasa pendahulunya. C
adalah bahasa pemrograman yang dapat dikatakan berada antara bahasa beraras
rendah (bahasa yang berorientasi pada mesin) dan bahasa beraras tinggi (bahasa
yang berorientasi pada manusia). Seperti diketahui bahasa tingkat tinggi
mempunyai kompatibilitas yang tinggi antar platform.
Tujuan
utama pembuatan C++ adalah untuk meningkatkan produktivitas perogram dalam
membuat aplikasi. C++ dapat mengurangi kekompleksitasan, terutam pada program
yang besar yang terdiri dari 10.000 baris atau lebih.
2.2 Pengenalan Program C++
Program C++ dapat ditulis menggunakan sembarang editor teks, seperti EDIT (milik DOS), WordStar, SideKick,
ataupun menggunakan editor bawaan dari kompiler. Program C++ biasa ditulis
dengan nama ektensi .CPP (dari kata C Plus Plus). Agar program bisa dijalankan
(dieksekusi), program harus dikompilasi terlebih dahulu dengan menggunakan
kompiler C++.
Untuk
praktikum ini kita menggunakan Borland C++ versi 4.45 sebagai editor sekaligus
sebagai kompiler.
2.3 Contoh Program C++
Sebuah
contoh program C++ yang sangat sederhana dapat anda lihat dibawah ini :
Program
#include
<iostream.h>
void main()
{
cout
<< “Hai, Selamat belajar C++ \n”;
}
Anda dapat menyimpan program diatas dengan nama prak1.cpp. Jika program dikompilasi dan dieksekusi, maka hasilnya
berupa tulisan pada layar :
Hai,
Selamat belajar C++
Penjelasan program program diatas dapat
dilihat pada beberapa sub bab berikut.
a. Funsi Main()
Fungsi adalah salah satu dasar penyusunan blok pada C++. Sebuah program C++
minimal mengandung sebuah fungsi, yaitu fungsi main(). Fungsi ini menjadi awal dan akhir eksekusi program C++.
Sedangkan Tubuh fungsi dimulai dari tanda {
hingga tanda }. Lebih spesifik
lagi, semua yang terletak didalam tanda {
} disebut blok.
Tanda () digunakan
untuk mengapit argumen fungsi, yaitu nilai yang akan dilewatkan ke fungsi. Pada
fungsi main() seperti pada contoh,
tidak ada argumen yang diberikan. Oleh karena itu tidak ada entri di dalam ().
Kata void yang
mendahului main() dipakai untuk
menyatakan bahwa funsi ini tidak memiliki nilai balik.
b. Pernyatan
Baris :
cout
<< “Hai, Selamat belajar C++ \n”;
merupakan contoh sebuah pernyataan. Pada contoh diatas, pernyataan tersebut
digunakan untuk menampilkan tulisan yang terletak pada sepasang tanda petik
ganda ke layar. Dalam hal ini tulisan yang terletak pada sepasang tanda petik
ganda disebut konstanta string.
Setiap pernyataan harus diakhiri tanda titik koma (;). Kealpaan dalam memberikan tanda ini kan menyebabkan kompiler
memberikan pesan kesalahan selama waktu komplasi.
c.
Mengenal cout
cout disediakan oleh C++ untuk mengarahkan data ke standard output (normalnya adalah layar).
Contoh :
cout << “Hai, Selamat
Belajar C++ \n”;
tanda <<
(dua buah tanda kurang dari berurutan) merupakan sebuah operator yang
disebut operator “penyisipan/peletakan”. Operator ini akan mengarahkan operand
(data) yang terletak disebelah kanannya ke obyek yang terletak disebelah kiri.
Pada contoh di atas konstanta string diarahkan ke cout, yang memberikan hasil
berupa tampilan string kelayar tersebut.
Didalam string terdapat tanda \n adalah
merupakan karakter pindah baris (newline).
Jadi bukan tanda \ dan n itulah sebabnya tulisan :
Hai, Selamat Belajar C++
Ditampilkan pada layar dan diikuti dengan pindah baris.
#include <iostream.h>
Baris :
#include <iostream.h>
bukan suatu penyataan. Itulah sebabnya tidak ada tanda titik koma yang
diperlukan. Baris tersebut menginstruksikan kepada kompiler untuk menyisipkan file
lain (pada contoh diatas adalah iostream.h)
saat program dikompilasi. Baris #include
<isotream.h> perlu diikut sertakan pada program yanmg melibatkan cout.
clrscr() untuk menghapus layar
Perintah ini biasa dilibatkan dalam program
untuk membersihkan layar. Apabila penyataan clrscr() digunakan maka #include
<conio.h> perlu disertakan pada program. Contoh :
Program :
#include <iostream.h>
#include <conio.h>
void
main()
{
clrscr();
cout << “Hai,
Selamat belajar C++ \n”;
}
Gaya Penulisan Program
C++
memberikan keleluasaan kepada pemrogram dalam menuliskan bentuk atau gaya
program. Misal pada program 1.2 daituliskan seperti berikut :
Program :
#include <iostream.h>
#include <conio.h>
void
main() { clrscr(); cout
<< “Hai, Selamat belajar C++ \n”
;
}
Penulisan
diatas akan memberikan hasil yang sama dengan contoh sebelumnya. Namun
penulisan ini tidak dianjurkan. Program hendaknya ditulis dalam bentuk yang
mudah dibaca oleh siapa saja.
d.
Komentar
Komentar
merupakan bagian yang penting dalam program. Kehadirannya sangat membantu
pemrogram ataupun orang lain dalam memehami program. Karena berupa
penjelasan-penjelasan mengenai program atau bagian-bagian dari program. Komentar pada C++ diawalii dengan dua tanda
garis miring (//). Semua tulisan
yang terletak sesudah tanda (//)
hingga akhir batas dengan sendirinya akan diperlakukan sebagai keterangan.
Sebuah contoh program yang mengginakan komentar
:
Program :
#include <iostream.h> //
menyertakan file iostream.h
#include <conio.h>
void
main()
{
clrscr();
// Hapus Layar
cout << “Hai,
Selamat belajar C++ \n”;
}
2.4 Elemen Dasar C++
a.
Himpunan Karakter
Himpunan karakter pada C++ terdiri dari huruf, digit maupun simbol-simbol
lainnya (termasuk spasi, karakter kontrol).
Huruf
A B C D E
F G H I J K L M N O P Q R S T U V X Y Z
A b c d e
f g h i j k l m n o p q r s t u v w x y z
Digit
0 1 2 3 4
5 6 7 8 9
Simbol
dan Lain-lain
_ -
+ * dan sebagainya
b.
Pengenal (Identifier)
Pengenal adalah suatu nama yang biasa dipakai dalam pemrograman untuk
menyatakan :
-
Variabel - Fungsi
-
Konstata bernama - Label
-
Tipe data - Obyek
Serta hal-hal lain yang dideklarasikan atau
didefinisikan oleh pemrogram.
Penamaan Pengenal
Suatu
pengenal berupa satu atau beberapa
karakter :
-
Huruf - Garis bawah ( _ )
-
Digit
Dan berawalan dengan huruf atau garis bawah. Disarankan
agar pemberian nama pengenal menggunakan kata yang berarti dan mudah dibaca.
Huruf Kecil dan kapital Berbeda
Pada C++, huruf kecil dan huruf kapital pada suatu pengenal dianggap
berbeda. sifat ini dikenal dengan istilah case
sensitive. Sebab itu pengeanal NAMA,
Nama dan nama menyatakan tiga pengenal yang berbeda.
c.
Kata Kunci
Kata kunci (keyword) adalah
pengenal sistim yang mempunyai makna khusus bagi kompiler. Kata kunci tidak
dapat dirubah. Karena itu kata kunci tidak dapat digunakan sebagai pengenal.
d.
Tipa Data
Tipe data dasar pada C++ meliputi :
-
char - float - long
-
int - double
-
short - long double
Tipe data yang berhubungan dengan bilangan
bulat adalah char, int, short dan long.
Sedangkan lainya berhubungan dengan bilangan pecahan.
e.
Variabel dan Konstanta
Data pada C++ tersusun dari :
-
Variabel - Konstanta
Variabel
digunakan dalam program untuk menyimpan suatu nilai, nilai yang ada padanya
dapat diubah selama eksekusi program berlangsung.
Mendeklarasikan
dan Mendefinisikan Variabel
Variabel yang akan digunakan dalam program
haruslah dideklarasikan terlebih dahulu. Pengertian deklarasi disini berarti mengenalkan
sebuah pengenal ke program dan menentukan jenis data yang disimpam didalamnya.
tipe daftar_variabel
Bentuk pendefinisian variabel :
Menentukan Tipe Variabel
Jika variabel hendak dipakai untuk menyimpan
data bilangan bulat saja, maka pilihannya adalah tipe bilangan bulat ( seperti int , long). Jika variabel hendak dipakai untuk data bilangan pecahan,
maka variabel harus didefinisikan bertipe bilangan pecahan (seperti float).
Memberikan
Nilai ke Variabel
Bentuk pernyataan yang digunakan untuk
memberikan nilai ke variabel yang telah dideklarasikanatau didefinisikan :
variabel
= nilai
Pernyataan diatas sering disebut sebagai pernyataan
penugasan.
Insialisai Variabel
Adakalanya dalam penulisan program, variabel
langsung diberi nilai setelah didefinisikan. Sebagai contoh :
int jumlah;
jumlah = 10;
Dua pernyataan seperti diatas sebenarnya dapat
disingkat melalui pendefinisian yang disertai penugasan nilai, sebagi berikut :
int jumlah = 10;
Contoh program :
//*-------------------------------------------------------*
//* contoh 1.1 : inisialisasi variabel
dengan *
//* nilai konstan *
//*-------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
int
jumlah = 10; // inisialisasi
float harga_per_unit = 17.5;
// inisialisasi
clrscr();
cout << “Isi Jumlah = “
<< jumlah << ‘\n’;
cout << “ Isi harga per per unit
= “
Isi Jumlah
= 10 Isi harga per unit
= 17.5
<< harga_per_unit << ‘\n’;
}
Hasil
eksekusi :
Pemberian inisialisasi terhadap suatu variabel
dengan menggunakan ungkapan juga dapat diperkenenkan. Sebagai contoh :
float
duaphi = 2 * 3.14;
Contoh Program :
//*-------------------------------------------------------------*
//*
Contoh : Contoh Inisialisasi
variabel *
//* dengan suatu ungkapan *
//*-------------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
float
dupahi = 2 * 3.14; //inisialisasi dengan
ungkapan
clrscr();
cout
<< “Isi duaphi = “ << duaphi << ‘\n’;
}
Isi duaphi = 6.28
Hasil
ekseskusi :
Pendefinisian dapat pula dilakukan dimana
saja, seperti :
int i = 10;
cout << “Nilai i = “ << i <<
‘\n’;
int j = 77;
cout << “Nilai j = “ << j <<
‘\n’;
Contoh
program :
//*-----------------------------------------------------------------*
//*
Contoh: Pendefiniasian variabel dimana saja
*
//*-----------------------------------------------------------------*
#include
<iostream.h>
#include
<conio.h>
void
main()
{
int i = 10; // pendefinisian dan inisialisasi
clrscr();
cout << “Nilai i = “ << i
<< ‘\n’;
int j = 77;
cout << “Nilai j = “ << j
<< ‘\n’;
}
Nilai
i = 10 Nilai
j = 77
Hasil
Eksekusi :
BAB III
OPERATOR
DAN UNGKAPAN
3.1. Pengantar Operator dan Ungkapan
Operator merupakan simbol yang biasa dilibatkan
dalam program untuk melakukan suatu operasi atau manipulasi. Sebagaian operator
C++ tergolong sebagai operator binary,
yaitu operator yang dikenakan terhadap dua buah nilai (operand).
Contoh :
a + b
simbol “
+ “ merupakan operand untuk melakukan penjumlahan dari a dan b. Karena operator
penjumlahan melibatkan dua operand,
operator penjumlahan tergolong sebagai operator binary.
Contoh
lain :
-c
simbol “
– “ (minus) merupakan unary, karena
hanya memiliki sebauh operand (yaitu
c pada contoh diatas).
Ungkapan (ekspresi) dalam C++ dapat berupa :
-
Pengenal
-
Konstanta
-
Diantara
kombinasi elemen diatas denan operator
Contoh
ungkapan :
3 + 2 - 1
Pada
ungkapan diatas, 3,2 dan 1 merupakan operand dan simbol “ + “ serta “ – “ adalah operator. Nilai
ungkapan sendiri adalah hasil penjumlahan 3 dan 2, dikurangi 1.
3.2. Operator Aritmatika
Operator untuk aritmatika yang tergolong sebagai
operator binary. Contoh penggunan
operator aritmatikamisalnya untuk memperoleh nilai diskriminan darisuatu
persamaan kuadrat.
d = b2 – 4ac
untuk
mengimplementasikan contoh diatas adalah seperti berikut :
d = b * b – 4 * a * c ;
Contoh
program :
//*-----------------------------------------------------------*
//*
contoh 2.1 : Contoh pemakaian operator
*
//* Aritmatika *
//*-----------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
int a, b, c, d;
clrscr();
a = 5;
b = 600;
c = 5;
d = b * b – 4 * a * c;
cout << “ d = “ << d
<< ‘\n’;
}
d = 32220
Hasil eksekusi :
Operator aritmatika mempunyai prioritas
pengerjaan. Prioritas yang tinggi akan diuatamakan dalam hal pengerjaan
dibandingkan dengan operator yang memiliki prioritas yang lebih rendah. Urutan
prioritas dapat dilihat dalam tabel berikut ini :
Operator |
Prioritas |
+ --
(Khusus yang berkedudukan
sebagai awalan) |
Tertinggi |
- ( Unary Minus ) |
|
* / % |
|
+ - |
Terendah |
Jika operator memiliki prioritas yang sama,
operator sebelah kiri akan diutamakan untuk dikerjakan terlebih dahulu.
Tanda kurung biasa digunakan untuk merubah
urutan pengerjaan. Misalnya : x = ( 2 + 3) * 2 ;
akan
memeberikan nilai 10 ke x, sebab 2 + 3 dikerjakan terlebih dahulu dan hasilnya
baru dikalikan dengan 2.
Contoh
program :
//*---------------------------------------------------------------*
//*
Contoh : Penggunaan kurung untuk mengatur
*
//* prioritas pengerjaan
terhadap suatu *
//* operasi
*
//*---------------------------------------------------------------*
#include
<iostream.h>
#include
<conio.h>
void
main()
{
clrscr()
int x ;
x = 2 + 3 * 2 ;
cout << “ x = “ << x <<
‘\n’;
x = (2 + 3) * 2 ;
8 12
cout << “ x = “ << x << ‘\n’;
}
Hasil
eksekusi :
3.3.
Operator Sisa Pembagian
Operator sisa pembagian (operator modulus) yang
berupa %. Operator ini diterapkan pada operand bertipe integer. Untuk lebih
jelasnya perhatikan contoh berikut :
7 % 2 ® 1 |
Sisa
pembagian bilangan 7 dengan 2 adalah 1 |
6 % 2 ® 0 |
Sisa
pembagian bilangan 6 dengan 2 adalah 0 |
8 % 3 ® 2 |
Sisa
pembagian bilangan 8 dengan 3 adalah 2 |
Contoh
program :
//*----------------------------------------------------------*
//*
Contoh : Melihat sisi pembagian
dengan *
//* menggunakan operator
%. *
//*----------------------------------------------------------*
#include
<iostream.h>
#include
<conio.h>
void
main()
{
clrscr();
5 6 0 1 2
cout
<< 5 % 7 << ‘\n’; //sisa 5
cout << 6 % 7 << ‘\n’; //sisa 6
cout << 7 % 7 << ‘\n’; //sisa 0
cout << 8 % 7 << ‘\n’; //sisa 1
cout << 9 % 7 << ‘\n’; //sisa 2
}
Hasil eksekusi :
Kegunaan
operator % diantaranya bisa dipakai untuk menentukan suatu bilangan bulat
termasuk ganjil atau genap.
3.4.
Operator Penurunan dan Penaikan
Kedua operator ini digunakan pada operand
bertipe bilangan bulat. Operator penaikan digunakan untuk menaikan nilai
variabel sebesar satu, sedangkan operator penurunan dipakai untuk menurunkan
nilai variabel sebesar satu. Sebagai contoh :
x = x + 1 ;
y = y – 1 ;
bisa
ditulis menjadi :
++ x ;
-- y ;
atau :
x ++ ;
y -- ;
Panaikan dibelakang
Efek peletakkan tanda ++ dibelakang variabel
ditunjukkan pada program berikut :
Contoh
program :
//*-----------------------------------------------------------*
//*
Contoh: Pemakaian operator penaikan di
*
//* belakang variabel *
//*-----------------------------------------------------------*
#include
<iostream.h>
#include
<conio.h>
void
main()
{
int r = 10;
int s;
clrscr();
s = 10 + r++ ;
cout << “ r = “ << r <<
‘\n’ ;
cout << “s = “ << s << ‘\n’ ;
r = 11 s = 20
}
Hasil
eksekusi :
Pada
contoh diatas s diisi dengan penjumlahan nilai 10 dan r. Dengan demikian s akan
bernilai 20. setelah s diisi dengan 20, nilai r baru dinaikan karena operator
++ ditulis dibelakang r. Disebut post-increment
yang artinya dinaikkan dibelakang setelah penjumlahan anatara r dan 10
dilaksanakan.
Penaikan di Depan
Efek peletakkan tanda ++ di depan variabel
ditunjukkan pada program berikut ini :
Contoh
program :
//*-----------------------------------------------------------*
//*
Contoh :
Pemakaian operator penaikan di *
//* belakang variabel *
//*-----------------------------------------------------------*
#include
<iostream.h>
#include
<conio.h>
void
main()
{
int r = 10;
int s;
clrscr();
s = 10 + ++r ;
cout << “ r = “ << r <<
‘\n’ ;
r = 11 s = 21
cout
<< “s = “ << s << ‘\n’
;
}
Hasil eksekusi :
Pada contoh ini, nilai r mula-mula dinaikan
terlebih dahulu karena operator ++ ditempatkan didepan r. Disebut pre-increment kemudian nilainnya
dijumlahkan dengan 10 dan diberikan ke s. Dengan demikian s bernilai 21 dan r
sama dengan 11.
3.5. Operator Majemuk
Operator
majemuk digunakan untuk memendekkan penulisan operasi penugasan semacam :
x
= x + 2 ;
y
= y * 4 ;
menjadi :
x
+= 2;
y
*= 4;
Contoh program :
//*--------------------------------------------------------------*
//* Contoh : penggunaan operator majemuk *
//*--------------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
int x
= 2; // Mula-mula x bernilai 2
clrscr();
cout
<< “x = “ << x << ‘\n’ ;
x +=
3 ;
cout
<< “Setelah x += 3, x = “ << x << ‘\n’ ;
x *=
2 ;
cout
<< “Setelah x *= 2, x = “ << x << ‘\n’ ;
}
x = 2 Setelah x += 3,
x = 5 Setelah x += 3,
x = 5
Hasil eksekusi :
3.6. Operator Kondisi
Operator
kondisi biasa dipakai untuk mendapatkan sebuah nilai dari dua buah kemungkinan,
berdasarkan suatu kondisi. Format pemakaiannya :
ungkapan1
? ungkapan 2 : ungkapan 3
Contoh program :
//*-----------------------------------------------------------*
//* Contoh : Penggunaan operator kondisi untuk *
//* memperoleh bilangan terkecil *
//* diantara dua buah
bilangan *
//*------------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
int
bil1, bil2, minim;
clrscr();
bil1
= 53;
bil2
= 6;
minim = bil1 < bil2 ? bil1 : bil2;
cout
<< “ Bilangan terkecil = “ << minim << ‘\n’;
}
Bilangan terkecil = 6
Hasil eksekusi :
minim = bil1 < bil2 ? bil1 : bil2;
akan menyebabkan minim bernilai bil1 kalau
ungkapan :
bil1
< bil2
bernilai benar. Untuk keadaan sebaliknya,
minim akan bernilai bil2.
3.7. Ungkapan Kondisi
Ungkapan adalah ungkapan yang menjadi dasar bagi pernyataan berkondisi
(misalnya if ). Hasil ungkapan
berupa 1 kalau ungkapan bernilai benar dan ungkapan berupa 0 kalau ungkapan
bernilai salah.
Oprator Relasi
Operator biasa digunakan untuk membandingkan dua
buah nilai. Macam operator relasi dapat dilihat dalam tabel berikut :
Operator |
Keterangan |
== |
Sama dengan (bukan penugasan) |
!= |
Tidak sama dengan |
> |
Lebih dari |
< |
Kurang dari |
>= |
Lebih dari atau sama dengan |
<= |
Kurang dari atau sama dengan |
Contoh program :
//*------------------------------------------------*
//* Contoh : untuk menunjukkan nilai *
//* hasil ungkapan
kondisi *
//*------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
int
nilai;
clrscr();
nilai = 3 > 2 ; // hasil ungkapan
: benar
cout
<< “Nilai = “ << nilai << endl;
nilai
= 2 > 3 ; // hasil ungkapan : salah
cout << “Nilai = “ << nilai
<< endl;
Nilai = 1 Nilai = 0
}
Hasil eksekusi :
Agar tidak salah dalam menuliskan suatu
ungkapan, pengetahuan tentang prioritas operator perlu diketahui.
Contoh 1 :
a = b = c
pada pernyataan diatas, operator yang
dilibatkan ( = ) mempunyai sifat pengerjaan dimulai dari kanan. Berarti :
b = c
akan dikerjakan terlebih dahulu, barulah
kemudian mengerjakan :
a = b
Contoh 2 : x = 2 * 3 * 4 ;
pada pernyataan diatas, 2 * 3 akan dikerjakan
terlebih dahulu, barulah kemudian mengerjakan perkalian hasil 6 dengan 4.
Adapun prioritas = lebih rendah dari *,
maka 2 * 3 * 4 dikerjakan lebih dahulu. Selanjutnya hasilnya baru diberikan ke
x.
3.8. Fungsi Pustaka
Dalam melakukan operasi seperti memeperoleh akar kuadrat ataupun memeperoleh
logaritma alamiah dari suatu nilai. Pada C++ memang tidak terdapat
operator-operator yang khusus untuk melaksanakan operasi-oerasi seperti itu.
Tetapi tidak berarti C++ tidak dapat melakukan operasi itu. C++ menyediakan
sejumlah fungsi pustaka (library fuctions)
yang dirancang untuk memenuhi solusi dari berbagai persoalan.
Misalkan kita akan menghitung sebuah akar kuadrat, pemrogram bisa
menggunakan fungsi sqrt(). Seperti
contoh program berikut :
Contoh program :
//*-----------------------------------------------------------*
//* Contoh : Pemakaian pustaka fungsi sqrt() *
//*-----------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
#include <math.h> // Perlu disertakan untuk funsi sqrt()
void main ()
{
clrscr();
cout << “Akar dari 27 = “ << sqrt(27) << ‘\n’;
}
Akar dari 27 =
5.196152
Hasil eksekusi :
Jika program ingin menggunakan fungsi pustaka,
perlulah untuk mencatumkan deklarasi dari funsi bersangkutan. Untuk keperluan
ini program mesti menyertakan baris :
#include <nama_file>
dengan nama_file
adalah nama header, yaitu file yang
berakhiran .h. sebagai contoh
program diatas menyertakan #include
<math.h> disebabkan file header
tersebut berisi deklarasi (prototipe) dari fungsi sqrt().
BAB
IV
OPERASI DASAR MASUKAN DAN KELUARAN
4.1. Cout
Dengan cout pemrogram dapat meletakkan suatu informasi ke standart output (normalnya berupa
layar). Sebagai contoh, pernyatan berikut akan menampilkan tulisan “Pilihan
Anda salah” dikuti dengan bunyi bel (speker) :
cout << “Pilihan Anda salah !\a\n”;
Untuk lebih jelasnya dapat memeperhatikan program dibawah ini :
Contoh program :
//*------------------------------------------------------*
//* Contoh : Memperkenalkan cout dan *
//* membunyikan bel
dengan *
//* karakter \a *
//*------------------------------------------------------*
#include <iostream.h>
void main()
{
cout << “Pilihan Anda Salah ! \a”;
}
4.2. Manipulator
Manipulator
umumnya digunakan untuk mengatur tampilan data. Misalnya untuk mengatur agar
suatu nilai ditampilkan dengan lebar 10 karakter dan diatur rat kanan terhadap
lebar tersebut.
Manipulator endl
Manipulator endl digunakan untuk menyisipkan karakter newline. Dengan kata lain manipulato ini identik dengan ‘\n’.
Contoh program berikut menunjukkan penggunan
endl.
Contoh program :
//*-------------------------------------------------------------*
//* Contoh : Menampilkan 3 jumlah barang
dan *
//* menggunakan manipulator endl *
//*-------------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
int jumbar1 = 150;
jumbar2 = 23;
jumbar3 = 1401;
clrscr(); // Hapus
layar
cout << “Barang 1 = “ << jumbar1 <<
endl;
cout << “Barang2 = “ << jumbar2 <<
endl;
cout << “Barang3 = “ << jumbar3 <<
endl;
Barang 1 = 150 Barang 2 = 23 Barang 3 = 1401
}
Hasil eksekusi :
Manipulator setw()
Manipulator setw() bermanfaat untuk mangatur lebar dari suatu tampilan data.
Untuk lebih jelasnya dapat dilihat dalam program berikut :
Contoh program :
//*-------------------------------------------------------------*
//* Contoh : Manampilkan 3 buah barang
dengan *
//*
menggunakan manipulator setw()
*
//*-------------------------------------------------------------*
#include <iostream.h>
#include <iomaip.h> // Untuk manipulator setw()
#include <conio.h>
void main()
{
int jumbar1 = 150;
jumbar2 = 23;
jumbar3 = 1401;
clrscr(); // Hapus
layar
cout << “Barang 1 = “ << setw(4) <<
jumbar1 << endl;
cout << “Barang2 = “ << setw(4) << jumbar2 << endl;
cout << “Barang3 = “ << setw(4) << jumbar3 << endl;
Barang 1 = 150 Barang 2 = 23 Barang 3 = 1401
}
Hasil eksekusi :
Dengan menggunakan setw(), terlihat hasil
eksekusi adalah rata kanan. Ini dapat di bedakan dengan hasil eksekusi pada
contoh yang rata kiri.
Manipulator setfill()
Manipulator setfill() berguna
untuk mengatur karakter yang dipakai memenuhi bagian field yang ditentukan setw(),
yang tidak dipakai untuk menampilkan data.
Untuk lebih jelas dapat melihat program berikut :
Contoh program :
//*-------------------------------------------------*
//* Contoh : Pemakaian setfill() *
//*-------------------------------------------------*
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
void main()
{
float harga = 123.45
clrscr();
cout << “ setw(8) << harga
<< endl;
cout << setfill(‘*’) ; // Karakter
pemenuh ® *
cout << setw(8) << harga <<
endl;
}
123.45 **123.45
Hasil eksekusi :
Pada program diatas 123.45 ditampilkan dengan lebar 8 karakter dan didahului oleh 2
karakter spasi. Apabila terdapat pernyataan setfill(‘*’)
maka 2 karakter spasi diisi oleh karakter ‘ * ‘ .
Pemakaian setiosflag()
Manipulator setiosflag()
merupakan manipulator yang dapat dipakai untuk mengontrol sejumlah tanda format
yang tercantum dalam tebel berikut :
Tanda Format |
Keterangan |
ios::left |
Menyetel rata kiri terhadap lebar feeld yang diatur melalui setw()
|
ios::rigth |
Menyetel rata kanan terhadap lebar feeld yang diatur melalui setw() |
ios::scientific |
Menformat keluaran dalam notasi eksponensial |
ios::fixed |
Menformat keluaran dalam bentuk notasi desimal |
ios::dec |
Menformat keluaran dalam basis 10 (desimal) |
ios::oct |
Memformat keluaran basisi 8 (oktal) |
ios::hex |
Memformat huruf dalam basis 16 (heksadesimal) |
ios::uppercase |
Memformat huruf pada notasi heksadesimal dalam bentuk
huruf kapital |
ios::showbase |
Manmpilkan awalan 0x untuk bilanagan heksadesimal atau
0 (nol) untuk bilangan oktal |
ios::showpoint |
Menampilkan titik desimal pada bilangan pecahan yang
tidak memiliki bagian pecahan |
ios::showpos |
Untuk menampilkan tanda + pada bilangan positif |
Manipulator setprecision()
Apabila anda bekerja dalam bilangan pecahan, Anda juga mengatur jumah digit
pecahan yang ingin ditampilkan. Hal ini dapat dilakukan dengan menggunakan
manipulator setprecision().
Bentuknya :
setprecision(n)
dengan n
menyatakan jumlah digit pecahan yang diinginkan.
Sebagai contoh :
cout <<
setprecision(2) << 123.56789 << endl;
akan menapilkan :
123.57
bagian pecahan terdiri atas dua digit sesuai
dengan argumen pada setprecision().
Contoh Program :
//*-------------------------------------------------------*
//* Contoh : Menunjukkan efek manipulator *
//* setprecisoin() *
//*-----------------------------------------------------*
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
void main()
{
float nilai = 123.45;
clrscr();
123 123.4 123.45 123.450 123.4500 123.45000 123.449997 123.4499969
cout << setiosflags(ios::fixed);
cout << setprecision(0) << nilai
<< endl;
cout << setprecision(1) << nilai
<< endl;
cout << setprecision(2) << nilai
<< endl;
cout << setprecision(3) << nilai
<< endl;
cout << setprecision(4) << nilai
<< endl;
cout << setprecision(5) << nilai
<< endl;
cout << setprecision(6) << nilai
<< endl;
cout << setprecision(7) << nilai
<< endl;
}
Hasil eksekusi :
Contoh berikut menunjukkan hasil bila setw() dipakai tetapi ios::fixed tidak
diikut sertakan.
//*---------------------------------------------------------*
//* Contoh :
Menunjukkan efek setprecision() *
//* tanpa tanda format
ios::fixed *
//*---------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
void main()
{
float nilai = 123.45;
clrscr(); // Hapus layar
cout << setprecision(0) << nilai
<< endl;
cout << setprecision(1) << nilai
<< endl;
cout << setprecision(2) << nilai
<< endl;
cout << setprecision(3) << nilai
<< endl;
cout << setprecision(4) << nilai
<< endl;
cout << setprecision(5) << nilai
<< endl;
cout << setprecision(6) << nilai
<< endl;
cout << setprecision(7) << nilai
<< endl;
1e+02 1e+02 1.2e+02 123 123.4 123.45 123.45 123.45
}
Hasil eksekusi :
4.3. cin
Obyek cin bermanfaat untuk untuk
membaca data dari standart input
(normalnya adalah keyboard).
cin dengan sebuah variabel
Bentuk pernyataan cin untuk
membaca data dari keyboard dan meletakkan ke sebuah variabel variabel bernama var :
cin >> var
Contoh program yang menunjukkan penmakaian cin untuk membaca data bertipe int
dan float.
//*------------------------------------------------------*
//* Contoh : Membaca data bertipe int dan *
//* float dari keyboard *
//*------------------------------------------------------*
#include <iostream.h>
void main ()
{
int bil_x ;
// Definisi bilangan bulat
float bil_y ; // Definisi bilangan pecahan
cout << “Masukkan sebuah bilangan
bulat = “ ;
cin
>> bil_x ;
cout << “Masukkan sebuah bilangan
pecahan = “ ;
cin >> bil_y;
cout << “ Bilangan Bulat = “ <<
bil_x << endl;
cout
<< “ Bilangan Pecahan = “ << bil_y << endl;
}
Masukkan sebuah bilangan bulat =
123 Masukkan sebuah bilangan pecahan =
23.1 Bilangan Bulat = 123 Bilangan Pecahan 23.1
Hasil eksekusi :
Tampak bahwa bentuk perintah untuk membaca
data bertipe int ataupun float sama saja. Hal ini berlaku untuk
semua jenis data dasar ( char, int, long, float ataupun double).
Salah
satu manfaat dari adanya fasilitas pemasukkan dari keyboard adalah memungkinkan
untuk membuat program yang membaca data yang berubah-ubah.
cin dengan lebih dari satu variabel
Bentuk
cin dapat juga sebagai berikut :
cin >> bil_x >> bil_y
;
Pada contoh ini kedua bilangan dapat bilangan dapat dimasukkan dari keyboard
dengan pemisah berupa spasi, tab atau enter.
Contoh program :
//*-----------------------------------------------------------*
//* Contoh : Untuk membaca data dengan
lebih *
//* dari satu variabel *
//*-----------------------------------------------------------*
#include <iostream.h>
void main ()
{
int bil_x ;
// Definisi bilangan bulat
float bil_y ; // Definisi bilangan pecahan
cout << “Masukkan sebuah bilangan
bulat dan “ << endl;
cout << “Masukkan sebuah bilangan
pecahan “ << endl ;
cin >> bil_x >> bil_y;
cout << “ Bilangan Bulat = “ <<
bil_x << endl;
cout
<< “ Bilangan Pecahan = “ << bil_y << endl;
Masukkan sebuah bilangan
bulat dan Masukkan sebuah bilangan
pecahan 20 23.2 ¿ Bilangan Bulat = 20 Bilangan Pecahan 23.2
}
Hasil eksekusi :
cin untuk membaca karakter
cin juga
dapat dipakai untuk membaca sebuah karakter. Sebagai contoh :
//*------------------------------------------------------------*
//* Contoh : Membaca karakter dengan cin *
//*------------------------------------------------------------*
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
void main ()
{
char karakter;
clrscr();
cout << “Masukkan sebuah karakter “;
cin >> karakter;
cout << “Anda mengetik “ <<
karakter << endl;
cout << “Masukkan sebuah karakter “;
cin >> karakter;
cout << “Anda mengetik “ <<
karakter << endl;
Masukkan sebuah karakter a ¿ Anda mengetik a Masukkan sebuah karakter b ¿ Anda mengetik b
}
Hasil eksekusi :
Tampak pada contoh program diatas, untuk
setiap karakter yang dimasukkan harus diakhiri dengan enter (¿ ). Penekanan enter pada pemasukkan sebuah
karakter terkadang tidak dikehendaki oleh pemakai. Jika demikian, anda dapat
menggunakan fungsi getch() ataupun getche().
4.4. Fungsi getc() dan getche()
Fungsi getc() dan getche() berguna untuk membaca sebuah
karakter tanpa perlu menekan enter. Selain itu, fungsi ini juga dapat dipakai
untuk membaca tombol seperti spasi, tab ataupun enter.
Bentuk pemakaiannya :
karakter = getch() karakter = getche()
Perbedaan kedua fungsi ini adalah :
- getch() :
tidak menampilkan karakter dari tombol yang ditekan
- getche() :
menamilkan karakter dari tombol yang ditekan
Contoh program :
//*-------------------------------------------------------------*
//* Contoh : Membaca karakter dengan getch() *
//*-------------------------------------------------------------*
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
void main()
{
char karakter;
clrscr();
cout << “Masukkan sebuah karakter “;
karakter = getch();
cout << “Anda mengetik “ <<
karakter << endl;
cout << “Masukkan sebuah karakter “;
karakter = getch();
cout << ”Anda mengetik “ << karakter << endl;
}
Masukkan sebuah
karakter a 7 Tidak ditampilkan Anda mengetik a Masukkan sebuah
karakter b 7 Tidak ditampilkan Anda mengetik b
Sebuah getch()
bisa pula dimanfaatkan untuk menunggu sembarang tombol ditekan. Pada keadaan
seperti ini tidak perlu diletakkan ke variabel.
Contoh program :
//*--------------------------------------------------------------*
//* Contoh : getch() untuk memebaca sembarang *
//* tombol *
//*--------------------------------------------------------------*
#include <iostream.h >
#include <conio.h>
void main()
{
cout << “Tekanlah sembarang tombol”
<< endl;
cout << “Untuk mengakhiri program ini “ ;
getch();
}
BAB V
PERNYATAAN DASAR
5.1. Pernyataan if
Pernyataan
if dapat dipakai untuk mengambil keputusan berdasarkan suatu kondisi. Bentuk
pernyataan ada dua macam :
-
if
-
if else
Pernyataan if sederhana
Pernyataan if paling sederhana
berbentuk :
if (kondisi) pernyataan
-
Kondisi digunakan untuk menentukan pengambilan keputusan
-
Pernyataan dapat berupa sebuah pernyataan-pernyataan
majemuk.
Penerapan if
misalnya untuk menentukan seseorang
boleh atau tidak menonton pertunjukkan bioskop. Kondisi yang digunakan
seseorang boleh menonton kalau sudah berusia 17 tahun.
Contoh program :
//*-----------------------------------------------------------*
//* Contoh : Penggunaan if dalam pengambilan *
//* keputusan *
//*-----------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
int usia;
clrscr();
// Hapus layar
cout << “Berapa usia anda ? “;
cin >> usia;
if (usia < 17)
cout
<< “ Anda tidak diperkenankan menonton” << endl;
Barapa usia anda ? 16 ¿ Anda Tidak diperkenankan menonton
}
Hasil eksekusi :
Apabila program dieksekuisi lagi untuk
memasukkan usia diatas 17 maka :
Tampak diatas bila dimasukkan usia diatas 17
maka pesan tidak akan ditampilkan. Untuk mengatasi hal ini dapat dilakukan
dengan menggunakan pernyataan kondisi if
else.
Barapa usia anda ? 21 ¿
Pernyataan if else
Pernytaan if else mempunyai
bentuk sebagai berikut :
if (kondisi)
Pernyataan 1; else
Pernyataan 2;
Untuk if
else kita dapat menggunakan
contoh 5.1 untuk melihat perbedaan dengan if
sederhana.
Contoh program :
//*-----------------------------------------------------------*
//* Contoh : Penggunaan if else dalam *
//* pengambilan keputusan *
//*-----------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
int usia;
clrscr();
// Hapus layar
cout << “Berapa usia anda ? “;
cin >> usia;
if (usia < 17)
cout
<< “ Anda tidak diperkenankan menonton” << endl;
else
cout
<< “ Selamat menonton” << endl;
Barapa usia anda ? 16 ¿ Anda Tidak diperkenankan menonton
}
Hasil eksekusi :
Apabila kita memasukkan umur lebih dari 17 maka hasil
eksekusi yang didapat adalah :
Barapa usia anda ? 21 ¿ Selamat menonton
Pernyataan if dalam if
if (kondisi1) pernyataan1; else if (kondisi2) pernyataan2; else if (kondisi3) pernyataan3; if (kondisiM) pernyataanM; else /*Opsional*/ pernyataanN; /*Opsional*/
Pernyataan if yang terletak dalam if
sering disebut nested if atau if bersarang. Salah satu bentuknya adalah :
Bentuk pernyatan if seperti ini bermanfaat
untuk menyeleksi sejumlah kemungkinan tindakan. Penyeleksian dilakukan secara
bertingkat.
Contoh program :
//*------------------------------------------------------*
//* Contoh : Pemakaian if bertingkat untuk *
//* menentukan nama hari *
//*------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main ()
{
int kode_hari;
clrscr();
// Hapus layar
cout << “Menentukan hari “ <<
endl;
cout << “1 = Senin 3 = Rabu 5 = Jum’at 7 = Minggu
“<< endl;
cout << “2 = Selasa 4 = Kamis
6 = Sabtu “ << endl;
cout << “Kode hari [1..7] : “ ;
cin >> kode_hari;
// Proses seleksi;
if (kode_hari = = 1)
cout
<< “Senin” << endl;
if (kode_hari = = 2)
cout
<< “Selasa” << endl;
if (kode_hari = = 3)
cout
<< “Rabu” << endl;
if (kode_hari = = 4)
cout
<< “Kamis” << endl;
if (kode_hari = = 5)
cout
<< “Jum’at” << endl;
if (kode_hari = = 6)
cout
<< “Sabtu” << endl;
if (kode_hari = = 7)
cout
<< “Minggu” << endl;
else
cout
<< “Kode hari salah” << endl;
Menentukan hari 1 = Senin 3 = Rabu 5 = Jum’at 7 = Minggu “<< endl; 2 = Selasa 4 = Kamis 6 = Sabtu “ << endl; Kode hari [1..7] : 2 ¿ Selasa
}
Hasil eksekusi :
Program diatas pertama-tama meminta kode hari
dimasukkan dari keyboard. Kemudian if
dan else secara bertingkat akan
menyeleksi nilai tersebut dan memeberikan nama hari. Bila anda memasukkan kode
hari yang salah maka :
Menentukan hari 1 = Senin 3 = Rabu 5 = Jum’at 7 = Minggu “<< endl; 2 = Selasa 4 = Kamis 6 = Sabtu “ << endl; Kode hari [1..7] : 9 ¿ Kode
hari salah
5.2. Pernyataan switch
switch adalah pernyataan yang digunakan untuk menjalankan salah
satu pernyataan dari beberapa kemungkinan pernyataan, berdasarkan nilai dari
sebuah ungkapan dan nilai penyeleksi.
Kaidah
umum pernyataan switch :
switch (ungkapan) { case ungkapan1; pernyataan_1; break; case ungkapan2; pernyataan_2; break; ………. default : /*Opsinal*/ pernyataan_x; /*Opsinal*/ }
Pada pernyataan switch, ungkapan
dapat berupa ungkapan, konstanta ataupun variabel. Adapun ungkapan1, ungkapan2 dan
seterusnya dapat berupa sembarang konstanta bertipe int atau char.
Contoh program :
//*--------------------------------------------------------------*
//* Contoh : Pemakaian switch untuk
menentukan *
//* nama hari *
//*--------------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
int kode_hari;
clrscr();
// Hapus layar
cout << “Menentukan Hari”” <<
endl;
cout << “1 = Senin 3 = Rabu 5 = Jum’at 7 = Minggu
“<< endl;
cout << “2 = Selasa 4 = Kamis
6 = Sabtu “ << endl;
cout << “Kode hari [1..7] : “ ;
cin >> kode_hari;
// Proses seleksi dengan switch
switch (kode_hari)
{
case 1:
cout
<< “Senin” << endl;
break;
case 2 :
cout
<< “Selasa” << endl;
break;
case 3 :
cout
<< “Rabu” << endl;
break;
case 4 :
cout
<< “Kamis” << endl;
break;
case 5 :
cout
<< “Jum’at” << endl;
break;
case 6 :
cout
<< “Sabtu” << endl;
break;
case 7 :
cout
<< “Minggu” << endl;
break;
default :
cout
<< “Kode hari salah” << endl;
break;
} // akhir switch
}
Menentukan Hari 1 = Senin 3 = Rabu 5 = Jum’at 7 = Minggu 2 = Selasa 4 = Kamis 6 = Sabtu Kode hari [1..7] : 2 ¿ Selasa
Hasil eksekusi :
Kehadiran break
pada setiap case sangat penting.
Sebab break akan menyebabkan keluar
dari switch.
5.3. Pernyataan while
Pernyataan while merupakan salah
satu pernyataan yang berguna untuk memproses suatu pernyataan atau beberapa
pernyataan beberapa kali. Bentuk pernyataan while :
while
(ungkapan); pernyataan;
Pernyataan bisa berupa pernyataan majemuk,
sehingga bentuknya bisa seperti :
while
(ungkapan); { pernyataan1; pernyataan2; …… pernyataanN; }
Bagian pernyataan yang mengikuti while akan dieksekusi selama ungkapan pada while bernilai benar (tidak sama dengan nol). Pengujian terhadap
ungkapan while dilakukan sebelum
bagian pernyataan.
Contoh program :
//*----------------------------------------------------*
//* Contoh : pemakaian while untuk *
//* menampilkan tulisan
C++ *
//* sebanyak 10 kali *
//*----------------------------------------------------
*
#include <iostream.h>
#include <conio.h>
void main()
{
int i;
// Sebagai variabel pencacah yang menyatakan
// jumlah tulisan C++ yang harus ditampilkan
clrscr();
// Hapus layar
i = 0;
// Mula-mula diisi sama dengan nol
while ( i < 10 )
{
cout << “ C++ ” << endl;
i
++ ; // Menaikkan pencacah
sebesar 1
}
C++ C++ C++ C++ C++ C++ C++ C++ C++ C++
}
Hasil eksekusi :
Pada program diatas, variabel i bertindak
sebagai pencacah yang gunanya untuk mengingat jumlah tulisa C++ yang telah
ditampilkan. Itulah sebabnya mula-mula didisi dengan nol. Kemudian untuk setiap
putaran, isi variabel ini dinaikkan. Oleh karena variabel i dijadikan sebagai kondisi
pada while, suatu ketika ketika
kondisi i<10 akan bernilai salah, maka while
berakhir.
5.4. Pernyataan do-while
Format :
do { pernyataan1; pernyataan2; ….
pernyataanN; } while (ungkapan)
Bagian pernyataan1
hingga pernyataanN dijalankan secara
berulang sampai ungkapan bernilai
salah (sama dengan nol). Namn berbeda dengan while, pengujian ungkapan dilakukan dibelakang (setelah bagian peryataan).
Contoh program :
//*-----------------------------------------------------*
//* Contoh : pemakaian do-while untuk *
//* menampilkan tulisan
C++ *
//* sebanyak 10 kali *
//*----------------------------------------------------
*
#include <iostream.h>
#include <conio.h>
void main()
{
int i;
// Sebagai variabel pencacah yang menyatakan
// jumlah tulisan C++ yang harus
ditampilkan
clrscr();
// Hapus layar
i = 0;
// Mula-mula diisi sama dengan nol
do
{
cout << “ C++ ” << endl;
i
++ ; // Menaikkan pencacah
sebesar 1
} while ( i < 10 );
}
5.5. Pernyataan for
for (ungkapan1; ungkapan2; ungkapan3) pernyataan;
Pernyataan for berguna untuk menggulang pengeksekusian terhadap satu atau
sejumlah pernyataan. Bentuk format :
Contoh program :
//*----------------------------------------------------------*
//* Contoh : Menampilkan bilangan genap *
//* yang nilainya kurang atau
sama *
//* dengan n dan ditampilkan
dari *
//* terbesar sampai nol *
//*----------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
int n;
clrscr();
cout << “Menampilkan bilangan genap yang
nilainya “<< endl;
cout <<” kurang atau sama dengan n “
<< endl;
cout << “Masukkan nilai n = “ ;
cin >> n;
// Jika n ganjil, maka dikurangi 1
if ( n % 2)
n
--;
// tampilkan deret bilangan genap dari besar
ke kecil
for (
; n >= 0; n -= 2 )
cout << n << ‘ ‘;
Menampilkan bilangan genap yang
nilainya kurang atau sama dengan n Masukkan nilai n = 11 ¿ 10
8 6 4
2 0
}
Hasil eksekusi :
Pada program diatas terdapat :
n
--; ungkapan
kosong
for ( ; n >= 0; n -= 2 )
sama artinya dengan :
for (n -- ; n >= 0 ; n - = 2 )
for bersarang ( Nested for )
Pada aplikasi tertentu, terkadang kita menggunakan pernyataan for yang juga berada dalam pernyataan for.
Contoh program :
//*--------------------------------------------------------------*
//*
Contoh : Memebentuk
segitiga yang berisi *
//* karakter ‘ * ‘ dengan
menggunakan *
//* for didalam for *
//*--------------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
int tinggi,
// Menyatakan tinggi segi tiga
baris, // Pencacah untuk
baris
kolom; // Pencacah untuk kolom
clrscr();
cout << “ Tinggi segitiga = “ ;
cin >> tinggi;
cout << endl; //Membuat baris kosong
for (baris = 1; kolom <= baris; kolom ++ )
{
for (klom = 1; kolom <= baris ; klom ++ )
cout << ‘ * ‘ ;
cout << endl ; // Pindah
baris
}
}
Tinggi segitiga = 5 ¿ * ** *** **** *****
Hasil eksekusi :
5.6. Pernyataan Continue
Kegunaan dari continue dipakai
untuk mengarahkan eksekusi ke putaran atau iterasi berikutnya pada pernyataan
pengulangan. Efek dari dari perintah ini pada for, while dan do-while :
-
Pada for :
Ungkapan ke tiga pada for (ungkapan terkanan yang terletak didalam ( ) pada for ) akan dijalankan dan kemudian
ungkapan ke dua diuji lagi.
-
Pada while dan
do-while :
Pengujian terhadap ungkapan pada while dilakkan kembali.
Contoh menunjukan efek continue pada for :
//*-------------------------------------------------------*
//* Contoh : Melihat efek continue pada
for *
//*-------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
int bil;
clrscr();
for ( bil = 0; bil < 10; bil++)
{
cout
<< bil << ‘ ‘ ;
continue;
cout
<< “Perhatikan apakah saya muncul” << endl;
}
}
0 1 2
3 4 5
6 7 8
9
Hasil eksekusi :
Pernyataan : cout << “Perhatikan apakah
saya muncul “ << endl;
Tidak pernah tersentuh (hal ini akan
dilaporkan sewaktu pengompilasian program), sebab continue menyebabkab bil++ diproses dan bil < 10 diuji kembali.
Contoh program penggunaan continue pada while :
//*----------------------------------------------------*
//* Contoh : Pengunaan continue pada *
//* while *
//*----------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
int pencacah; // Manyatakan banyaknya nilai
float nilai; //
Menyatakan nilai yang dimasukkan
float total; //
Menyatakan total dari nilai
clrscr();
cout << “Menghitung nilai rata-rata “
<<endl;
cout << “Akhiri dengan memasukkan nilai
negatif “ << endl ;
pencacah = 0;
// Mula-mula diisi dengan nol
total = 0;
while ( 1 )
// Ungkapan selalu benar
{
cout << “Nilai ke- “ << pencacah +
1 << “ = “;
cin >> nilai ; // Baca nilai
if
(nilai > 100)
{
cout << “ Nilai diatas diabaikan”
<< endl;
continue;
// Ulangi keawal while
}
if ( nilai < 0 )
break; // keluar dar while
pencacah ++; // Naikkan pencacah sebesar 1
total += nilai ; // Tambahkan nilai ke total
}
cout << “Jumlah nilai = “ << pencacah << endl;
cout << “ Nilai rata-rata = “ <<
total / pencacah << endl;
Menghitung nilai
rata-rata Akhiri dengan
memasukkan nilai negatif Nilai ke-1 = 50 ¿ Nilai ke-2 = 60 ¿ Nilai ke-3 = 700 ¿ Nilai diatas
diabaikan Nilai ke-3 = 70 ¿ Nilai ke-4 = -1 ¿ Jumlah nilai = 3 Nilai rata-rata = 60
}
Hasil eksekusi :
5.7. Menghentikan Program dengan exit()
Suatu eksekusi program dapat dihentikan melalui pemanggilan funsi exit(). Hal ini dapat dilakukan jika
dalam sebuah program ada suatu eksekusi kondisi yang tidak dikehendaki.
exit (nilai_keluar);
Bentuk pemakaian exit() :
nilai_keluar dapat disi dengan dengan 0 sampai dengan 255. Umumnya jika program dapat
melakukan tugasnya dengan bauk maka nilain keluarnya adalah 0. nilai keluar
tidak sama dengan nol untuk menyatakan suatu kesalahan.
Contoh program :
//*------------------------------------------------------*
//* Contoh : Penggunaan exit()
*
//*------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
#include <ctype.h> // Untuk toupper()
#include <stdlib.h> // Untuk exit()
void main()
{
char jawab;
cout << “ Y = ya, T = Tidak. Pilihan (
Y/T ) : “ ;
for ( ;
; )
{
// Baca tombol dan ubah ke hurf kapital
jawab = toupper(getch());
if ((jawab = = ‘Y’) || (jawab = = ‘T’))
{
cout << jawab << endl;
if ( jawab = = ‘Y’)
exit(1);
else
exit(0);
}
}
}
MODUL VI
F U N
G S I
6.1. Definisi Fungsi
Setiap
fungsi yang dipanggil didalam program harus didefinisikan. Letaknya dapat
dimana saja.
Contoh definisi kuadrat() :
// Prototipe funsi
long kuadrat (long 1);
-------------------------------------
// Definisi fungsi
long kuadrat(long 1)
{
return(1 * 1);
}
Pernyataan return di dalam fungsi digunakan untuk memeberikan nilai balik
fungsi. Pada contoh diatas, fungsi kuadrat() memberikan nilai balik berupa
nilai kuadrat dari argumen.
Contoh program :
//*------------------------------------------------------------*
//* Contoh : Pembuatan fungsi dengan argumen *
//* bertipe long dan nilai
balik berupa *
//* long *
//*------------------------------------------------------------*
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
long kuadrat(long1); // prototipe fungsi
void main()
{
clrscr();
for ( long bil = 200; bil < 2000; bil+= 200
)
cout
<< setw(8) << bil
<< setw(8) << kuadrat(bil) << endl;
}
// Definisi fungsi
200 40000 400 160000 600 360000 800 640000 1000
1000000 1200
1440000 1400
1960000 1600
2560000 1800 3240000
long kuadrat(long 1)
{
return( 1 * 1 );
}
Hasil eksekusi :
6.2. Fungsi tanpa Nilai Balik
Adakalanya suatu fungsi tidak perlu
memiliki nilai balik. Misalnya fungsi yang hanya dimaksudkan untuk menampilkan
suatu keterangan saja.pada funsi seperti ini, tipe nilai balik fungsi yang
diperlukan adalah void.]
Contoh :
void tampilkan_judul ()
{
cout << “PT. Aria perkasa Manunggal”
<< endl;
cout << “Jl. Kertadipura Tenggara 27R”
<< endl;
cout << “Kudus” << endl;
}
pada contoh funsi diatas, tidak ada pernyataan
return, mengingat fungsi tidak
memiliki nilai balik. Namaun penggunaan pernyataan return secara eksplisit juga diperkenenkan. Dalam hal ini digunakan
berbentuk :
return
saja.
Jadi contoh diatas dapat ditulis :
void tampilkan_judul ()
{
cout << “PT. Aria perkasa Manunggal”
<< endl;
cout << “Jl. Kertadipura Tenggara 27R”
<< endl;
cout << “Kudus” << endl;
return;
}
6.3. Lingkup variabel
Lingkup variabel
menentukan keberadaan suatu variabel tertentu dalam fungsi. Ada variabel yang
hanya dikenal di suatu fungsi dan tidak dikenal pada fungsi lain. Namun ada
juga variabel yang dapat diakses oleh semua fungsi.
Variabel Otomatis
Variabel
yang didefinisikan di dalam suatu fungsi berlaku sebagai variabel lokal bagi
fungsi. Artinya, variabel tersebut hanya dikenal didalam fungsi tempat variabel
didefinisikan.
Contoh program :
//*---------------------------------------------------------*
//* Contoh : Memperlihatkan efek variabel *
//* otomatis (lokal)
*
//*---------------------------------------------------------*
#include < iostream.h>
#include <conio.h>
void alpha(); // Prototipe fungsi
void main()
{
int x = 22; // Variabel lokal pada main()
double y = 2.22;
clrscr();
cout << “ Pada main() : x = “ << x
<< “ y = “ << y << endl;
alpha(); // Panggil fungsi alpha
cout << “Pada main() : x = “ << x
<< “ y = “ << y << endl;
}
// Definisi fungsi alpha()
void alpha()
{
int x = 20; // Variabel lokal pada
alpha()
double y = 3.14;
cout << “Pada alpha() : x = “ << x
<< “ y = “ << y << endl;
Pada main() : x = 22
y = 2.22 Pada alpha() : x = 22
y = 3.14 Pada main() : x = 22
y = 2.22
}
Hasil ekseskusi :
Tampak bahwa perubahan x dan y pada alpha()
tidak mempengaruhi variabel bernama sama pada main(). Karena variabel-variabel
tersebut bersiafat lokal bagi masing-masing fungsi yag mendefinisikannya.
Variabel x dan y pada fungsi alpha() yang disebut sebagai variabel otomatis.
Variabel Eksternal
Variabel
eksternal adalah variabel yang didefinisikan diluar fungsi manapun. Variabel
ini dikenal juga sebagai variabel global, sebab variabel ini dikenal disemua
fungsi.
Contoh program :
//*---------------------------------------------------------------*
//* Contoh : Pemakaian Variabel eksternal
*
//*---------------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
int oblade = 550; // Variabel eksternal
void tambah(); // Prototipe fungsi
void main()
{
clrscr();
cout << oblade << endl;
tambah();
cout << oblade << endl;
tambah();
cout << oblade << endl;
}
// Definisi fungsi
void tambah ()
{
oblada ++ ; // Variabel eksternal dinaikkan
}
551 552 553
Hasil eksekusi :
Guna memeperjelas suatu variabel didalam suatu
fungsi yang menggunakannya dapat mendeklarasikan (bukan mendefinisikan, karena
tidak ada pengalokasian memori) dengan menambahkan kata extern didepan tipa data.
Contoh program :
//*------------------------------------------------------------*
//* Contoh : Pemakaian Variabel eksternal *
//* dengan tambahan kata
extern *
//*------------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
int oblade = 550; // Variabel eksternal
void tambah(); // Prototipe fungsi
void main()
{
clrscr();
cout << oblade << endl;
tambah();
cout << oblade << endl;
tambah();
cout << oblade << endl;
}
// Definisi fungsi
void tambah ()
{
extern oblade;
oblada ++ ; // Variabel eksternal dinaikkan
}
Variabel Statis
Variabel
eksternal maupun otomatis dapat berkedudukan sebagai variabel statis. Suatu
variabel statis mempunyai sifat :
-
Jika variabel lokal berdiri sebagai variabel satatis,
maka :
-
Variabel tetap hanya dapat diakses pada fungsi yang
mendefinisikannya
-
Variabel tidak hilang saat eksekusi fungsi berakhir
-
Inisialisasi oleh pemrogram akan dilakukan sekali saja
selama program dijalankan.
-
Jika variabel eksternal dijadikan sebagai variabel
statis,variabel ini dapat diakses oleh semua file yang didefinisikan pada file
yang sama dengan variabel eksternal tersebut.
Contoh program :
//*-----------------------------------------------------------*
//* Contoh : Menunjukkan efek variabel
satatis *
//*-----------------------------------------------------------*
#include<iostream.h>
#include <conio.h>
void saya_ingat(); // Prototipe fungsi
void main()
{
int mana = 50;
clrscr();
saya_ingat();
saya_ingat();
saya_ingat();
cout << “ main() : mana = “ << mana << endl;
}
// Pada fungsi berikut
// mana didefinisikan sebagai variabel statis
void saya_ingat()
{
static int mana = 77; // variabel statis
mana ++; // Naikkan sebesar 1
cout << “ Saya_ingat () : mana = “
<< mana << endl;
}
Saya_ingat () :
mana = 78 Saya_ingat () :
mana = 79 Saya_ingat () :
mana = 80 main() : mana = 50
Hasil eksekusi :
Berdasarkan hasil diatas, terlihat bahwa
variabel statis mana pada fungsi saya_ingat () hanya diinisialisasi (bernilai
77) sekali saja. Kemudian setiap kali saya_ingat () dipanggil nilai variabel
tersebut dinaikkan sebesar 1.
6.4. Operator Resolusi Lingkup
Pada C++ terdapat operator dua buah tanda titik-dua ( :: ). Operator ini disebut operator resolusi lingkup (scope resolution). Kegunaanya untuk
mengakses variabel yang didefinisikan diluar suatu fungsi.
Contoh program :
//*---------------------------------------------------------*
//* Contoh : Pemakaian operator resolusi *
//* lingkup ( :: ) *
//*---------------------------------------------------------*
#include < iostream.h>
#include <conio.h>
int x = 50; // Variabel eksternal
void main()
{
double x; // Definisi variabel lokal
clrscr();
x = 5.678901234; // Variabel lokal yang diberi nilai
cout << x << “ “ << ::x
<< endl;
::x = 77; // Variabel eksternal yang diberi
nilai
cout << x << “ “ << ::x
<< endl;
}
5.6789
50 5.6789 77
Hasil eksekusi :
Program diatas mengungkapkan bahwa sekalipun
didalam suatu fungsi terdapat variabel yang namanya sama dengan nama variabel
eksternal, kedua variabel tersebut tetap bisa diakses.
6.5. Nilai Bawaan Untuk Nilai Fungsi
Salah satu keistimewaan C++ adalah adanya kemampuan untuk menyetel nilai
bawaan (default) argumen fungsi.
Argumen-argumen yang mempunyai nilai bawaan nantinya dapat tidak disertakan
didalam pemanggilan fungsi dan dengan sendirinya C++ akan menggunakan nilai
bawaan dari argumen yang tidak disertakan.
Contoh program :
//*--------------------------------------------------------------*
//* Contoh : Menggambarkan nilai bawaan
dalam *
//* argumen fungsi *
//*--------------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void tulis_cplus(int jum); // Prototipe fungsi
void main()
{
clrscr();
tulis_cplus(1); // Untuk menuliskan sebuah tulisan C++
}
void tulis_cplus(int jum);
{
for (int i = 0; i < jum; i ++)
cout << “ C++ “ << endl;
cout << “ Seleseai “ << endl;
}
C++ Selesai
Hasil eksekusi :
Contoh program :
//*------------------------------------------------------*
//* Contoh : Menggambarkan nilai bawaan *
//* Dalam argumen fungsi *
//*-----
---------------------------------------------*
#include <iostream.h>
#include <conio.h>
void
tulis_cplus(int jum = 1); // Prototipe
fungsi
// Dan menyetel nilai bawaan fungsi
void main()
{
clrscr();
tulis_cplus(); // Argumen tidak perlu disebutkan
}
void tulis_cplus(int jum);
{
for (int i = 0; i < jum; i ++)
cout << “ C++ “ << endl;
cout << “ Seleseai “ << endl;
}
Pada contoh program 5.7 dan 5.8 mempunyai
kesamaan hanya saja pada contoh program 5.8 dalam prototipe fungsi nilai
bawaannya dikut sertakan sehingga pada saat argumen pemanggilan fungsi tidak
perlu di tuliskan lagi.
6.7. Referensi
Referensi
digunakan untuk memberikan nama alias dari variabel. Bentuk pendeklarasiannya :
Int &ref = nama_variable ;
Tanda & mengawali nama referensi.
Setelah pendeklarasian seperti diatas, ref
menjadi nama alias dari nama_variabel.
Penggubahan nilai terhadap nama_variabel
dapat dilakukan melalui nama_variabel
itu sendiri atau melalui referensi ref,
sebagaimana dapat dilihat pada contoh dibawah ini.
Contoh program :
//*-----------------------------------------------------*
//* Contoh 5.9 : contoh referensi *
//*-----------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
int i ;
int &r = 1; // Deklarasi referensi
clrscr();
i =10;
cout << “i = “ << i << endl;
cout << “ r = “ << r <<
endl;
r = 55;
cout << “i = “ << i << endl;
cout << “ r = “ << r <<
endl;
}
i = 10 r = 10 i = 55 r = 55
Hasil eksekusi :
Tampak bahwa pengubahan nilai terhadap i
maupun r memberikan efek sama.
Operator juga bekerja pada suatu variabel
maupun referensinya dengan efek yang sama. Sebagai contoh :
//*-----------------------------------------------------*
//* Contoh : Operasi penaikan isi variabel*
//* melalui referensi *
//*-----------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
int i =
55;
int &r = i; // Referensi
clrscr();
cout << “i = “ << i << “ r = “ << r
<<endl;
i ++ ;
cout << “ i = ” << i <<“ r =
“ << r << endl;
r ++ ;
cout << “i = “ << i << “ r = “ << r
<< endl;
}
i = 55 r = 55 i = 56 r = 56 i = 57 r = 57
Hasil eksekusi :
Operator
++ pada i maupun r akan mengubah nilai keduanya, karena i dan r
menyiratkan memori yang sama.
6.8. Inline Function
Inline function dengan cukup menyisipkan kata-kata inline didepan tipe nilai balik fungsi dalam pendefinisian fungsi.
Contoh :
inline jumlah (int x, int y)
{
return(x + y);
}
inline function disarankan dipakai pada fungsi
yang sering dipanggil dan ukurannya kecil (terdiri satu atau dua pernyataan),
terutama jika dilibatkan pada pernyataan pengulangan proses (while, for dan do-while).
Misalnya pada bentuk seperti berikut :
for (int i = 1; i < 100; i++)
cout << i << “.” <<
jumlah (i, 2 * i) << endl;
jika fungsi jumlah () tidak ditulis sebagai inline function, proses tersebut akan
menjadi relatif lambat.
Contoh program :
//*---------------------------------------------------------*
//* Contoh : Pembuatan fungsi inline *
//*---------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
// Definisi fungsi sebagai inline
inline int jumlah(int x, int y)
{
return(x + y );
}
void main()
{
clrscr();
for (int i = 1; i < 100; i ++ )
cout << i << “ . “ <<
jumlah(i, 2 * i) << endl;
}
…
Hasil eksekusi :
6.9. Function Overloading
Function Overloading atau Overloading
terhadap fungsi memungkinkan sebuah fungsi dapat menerima bermacam-macam tipe
dan memberikan nilai balik yang bervariasi pula.
Contoh program :
//*-----------------------------------------------*
//* Contoh : Contoh overloading *
//* terhadap fungsi *
//*-----------------------------------------------*
#include <iostream.h>
#include <conio.h>
// Prototipe fungsi
int kuadrat (int i);
long kuadrat(long l);
double kuadrat(double d);
void main()
{
cout << kuadrat(2) << endl;
cout << kuadrat(66666) << endl;
cout << kuadrat(1.2) << endl;
}
// Definisi fungsi
int kuadrat (int i)
{
return(i * i);
}
long kuadrat (long l)
{
return(l * l);
}
double kuadrat (double d)
{
return(d * d);
4 149388260 1.44
}
Hasil rekursi :
Program ini menunjukkan pemanggilan fungsi kuadrat()
dengan berbagai bentuk tipe data.
6.10. Rekursi
Fungsi dalam C++ dapat dipakai secara rekursi, artinya suatu fungsi dapat
memanggil fungsi yang merupakan dirinya sendiri. Penerapan rekursi diantaranya
untuk menghitung nilai :
Xn
Dengan n merupakan bilangan bulat positif.
Solusi dari persoalan ini berupa :
Jika
n = 1 maka Xn = X
Selain
itu : Xn = X * Xn – 1
Contoh program :
//*------------------------------------------------*
//* Contoh : Opreasi pangkat secara *
//* rekursi *
//*------------------------------------------------*
# include <iostream.h>
#include <conio.h>
long int pangkat ( int x, int n);
void main()
{
int x, y;
clrscr();
cout << “ Menghitung x ^ y “<<
endl;
cout << “ x = “ ;
cin >> x ;
cout << “ y = “ ;
cin >> y ;
cout << x << “ ^ “ << y
<< endl;
<< pangkat(x, y) << endl;
}
long int pangkat(int x, int n)
{
if (n =
= 1 )
return(x);
else
return(x * pangkat(x, n – 1));
}
Menghitung x ^ y x = 2 ¿ y = 3 ¿ 2 ^ 3 = 8
Hasil elsekusi :
BAB VII
MENGENAL ARRAY
7.1. Array Dimensi Satu
Gambaran
sebuah array ditunjukkan pada Contoh Program di baawah ini.
Program ini meminta pemakai untuk memasukkan 5 buah data temperatur dari
keyboard. Kelima data tersebut disimpan pada array bernam suhu. Selanjutnya
data yang ada pada array tersebut ditampilkan ke layar.
Contoh program :
//*------------------------------------------------*
//* Contoh : program menggunakan *
//* array *
//*------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
float suhu[5]; // Array dengan elemen 5 bertipe float
clrscr();
// Membaca data dari keyboard dan meletakkan
array
cout << “Masukkan 5 buah data suhu”
<< endl;
for (int i = 0; i < 5; i ++)
{
cout << i + 1 << “ . “;
cin >> suhu[i];
}
// Menampilkan isi array ke layar
cout << “Data suhu yang anda masukkan :
“ << endl;
for ( i = 0; i < 5; i ++ )
cout
<< suhu[i] << endl;
Masukkan 5 buah data
suhu 1 : 27.5 ¿ 2 : 28 ¿ 3 : 27.5 ¿ 4 : 30.5 ¿ 5 : 27 ¿ Data suhu yang anda
masukkan 27.5 28 27.5 30.5 27
}
Hasil eksekusi :
Tampak diatas terdapat pernyataan :
-
float suhu[5]; menyatakan array suhu
dapat menyimpan 5 (lima) buah data bertipe float.
-
suhu[i] menyatakan elemen suhu dengan subscript sama dengan i.
-
cin >> suhu[i]; : membaca data dari keyboard dan meletakkan ke
elemen nomor i pada array suhu.
-
cout << suhu[i]; : akan menampilkan elemen bernomor i pada
array suhu.
7.2. Array Berdimensi Dua
Array
ini dapat digunakan untuk berbagai keperluan. Sebagai gambaran, data kelulusan
dari jurusan Teknik Tnformatika, Manajemen Informatika dan Teknik Komputer pada
sekolah tinggi Komputer dari tahun 1992 hingga 1995 dapat dinyatakan dengan
array berdimensi dua.
Sebelum membahas cara pendefinisian array berdimensi dua, perhatikan tabel
berikut :
Jurusan |
2012 |
2013 |
2014 |
2015 |
1. Teknik Informatika |
35 |
45 |
80 |
120 |
2. Manajemen Informatika |
100 |
110 |
70 |
101 |
3. Teknik Komputer |
10 |
15 |
20 |
17 |
Bentuk seperti tabel diatas dapat dituangkan
kedalam array berdimensi dua. Pendefinisiannya :
int
data_lulus[3][4];
pada pendefiniasian diatas :
3 menyatakan jumlah baris (mewakili jurusan)
4 menyatakan jumlah kolom (mewakili tahun kelulusan)
nama_array[subscript_baris, subscript_kolom]
array berdimensi dua dapat diakses dengan
bentuk :
Contoh program :
//*-----------------------------------------------------*
//* Contoh : Pemakaian array berdimensi *
//* dua *
//*-----------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
int data_lulus[3][4]; // Array berdimensi dua
int tahun, jurusan;
clrscr();
// Memberikan data ke elemen array data_lulus
data_lulus[0][0] = 35; // data TI – 2012
data_lulus[0][1] = 45; // data TI - 2013
data_lulus[0][2] = 90; // data TI - 2014
data_lulus[0][3] = 120; // data TI - 2015
data_lulus[1][0] = 100; // data MI – 2012
data_lulus[1][1] = 110; // data MI - 2013
data_lulus[1][2] = 70; // data MI – 2014
data_lulus[1][3] = 101; // data MI - 2015
data_lulus[2][0] = 10; // data TK – 2012
data_lulus[2][1] = 15; // data TK -
2013
data_lulus[2][2] = 20; // data TK - 2014
data_lulus[2][3] = 17; // data TK – 2015
// Proses untuk memperoleh informasi kelulusan
while (1)
{
cout << “Jurusan ( 0 = TI, 1 = MI, 2 =
TK ) : “ ;
cin >> jurusan;
if ((jurusan = = 0 ) || (jurusan = = 1) ||
(jurusan = = 3))
break; // Keluar dari
while
}
while (1)
{
cout << “Tahun ( 1992 – 1995) : “ ;
cin >> tahun;
if (( tahun >= 1992 ) && ( tahun
<= 1995 )
{
tahun -
= 1992; // Konversi ke 0, 1, 2
atau 3
break; // Keluar dari while
}
}
cout << “Jumlah yang lulus = “
<< data_lulus[jurusan][tahun] << endl;
}
Jurusan ( 0 = TI, 1 = MI, 2 = TK ) : 1 ¿ Tahun (1992 – 1195) : 1992 ¿ Jumlah yang lulus = 100
Hasil eksekusi :
Mula-mula program mengisi data ke array
data_lulus. Kemudian program meminta data jurusan dan tahun dari keyboard.
Kedua data masukkan dipastikan tidak akan berada diluar jangkauan kedua
subscript-nya.
7.3. Array Berdimensi Tiga
tipe nama_array[subscript1][subcsript2][subscript3]
Bentuk umum pendefinisian array berdimensi tiga
:
Sebagai contoh :
int huruf[2][8][8] ;
merupakan pendefinisian array data_huruf
sebagai array berdimensi tiga.
MODUL VIII
DASAR STRING
8.1. Konstatnta String
Suatu
konstanta string ditulis dengan awalan dan akhiran tanda petik ganda ( “ ).
Misalnya :
“ C++ “
Konstanta string disimpan dalam memori secara
berurutan, setiap karakter menempati memori sebesar 1 byte. Setelah karakter
yang terakhir terdapat karakter NULL (karakter dengan nilai ASCII sama dengan
nol atau disimbolkan dengan ‘\0’, yaitu tanda \ diikuti nol).
Bila
suatu string hanya berisi karakter NULL, string disebut sebagai string kosong.
8.2. Variabel String
Variabel
string adalah variabel yang dipakai untuk menyimpan string. Misalnya :
char teks[10];
merupakan pernyataan untuk mendefinisikan
variabel string dengan panjang maksimal 15 karakter (sudah termasuk karakter
NULL).
8.3. Memasukan Data String Dari Keyboard
Setelah suatu variabel string didefinisikan, bisa mengisikan data ke
variabel tersebut. Pemasukkan data dapat ditangani oleh cin.
Contoh program :
//*---------------------------------------------------------*
//* Contoh : Pendefinisian variabel string
dan *
//* pengisian variabel
melalui cin *
//*---------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
char teks[13]; // String dengan panjang
maksimal
// 13
karakter
clrscr();
cout << “Masukkan sebuah kata “ <<
endl;
cin >> teks;
cout << “Yang Anda Masukkan : “ <<
teks << endl;
Masukkan sebuah kata Halo ¿ Yang Anda Masukkan : Halo
}
Hasil eksekusi :
Pada contoh diatas bila Anda memasukkan sebuah
kata seperti :
“Halo, Sobat”. Maka kata setelah spasi tidak
akan terbaca, untuk mengatasi hal ini anda dapat menggunakan fungsi anggota get() pada obyek cin (cin.get()). Seperti
contoh program berikut :
//*------------------------------------------------------------*
//* Contoh : Pendefinisian variabel string dan
*
//* pengisian variabel melalui
cin.get() *
//*------------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
char teks[13]; // String dengan panjang
maksimal
// 13
karakter
clrscr();
cout << “Masukkan sebuah kata “ <<
endl;
cin.get >> (teks, 13);
cout << “Yang Anda Masukkan : “ <<
teks << endl;
}
Masukkan sebuah kata Halo, Sobat ¿ Yang Anda Masukkan : Halo Sobat
Hasil eksekusi :
8.4. Fungsi dan Makro Berbasis Karakter
Fungsi
Makso berguna untuk menganalisis karakter-karakter yang terdapat pada suatu
string ataupun untuk melakukan konversi (misalnya huruf kecil menjadi huruf
kapital).
Makro keluarga is...
Sejumlah
makro dengan awalan is, adalah sebagai berikut :
- isalnum() : karakter alphanumeris (digit, huruf kecil atau huruf
kapital)
- asalpha() : karakter alphabetis ( huruf kecil atau huruf kapital)
- isascii() :
karakter ASCII standar
- iscntrl() :
karakter kontrol
- isdigit() :
karakter digit (0 sampai dengan 9)
- isgraph() : karakter yang dapat ditampilkan tetapi spasi tidak
- islower() : huruf kecil (a sampai z)
- isprint() :
karakter yang dapat ditampilkan termasuk spasi
- ispunct() : tanda pungtuasi ( seperti ! ataupun ?)
- isupper() : huruf kapital ( A sampai Z)
- isxdigit() : digit heksadesimal ( 0 samapi 9, Asamapai F, a sampai
f)
Contoh program :
//*---------------------------------------------------------------*
//* Contoh : Contoh pemakaian islower(),
isupper() *
//* isdigit(), ispunct() *
//*----------------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
char st[128];
int jum_kapital = 0,
jum_kecil = 0,
jum_pungtuasi = 0,
jum_digit = 0;
clrscr();
cout << “Masukkan string apa saja : “
<< endl;
cin.getline(st, sizeof(st)) ;
for (int i = 0; st[i]; i ++ )
{
if (islower(st[i]))
jum_kecil++;
if (isupper(st[i]))
jum_kapital++;
if (isdigit(st[i]))
jum_digit++;
if (ispunct(st[i]))
jum_pungtuasi++;
}
cout << endl ; // Pindah baris
cout << Jumlah Huruf Kapital : “
<< jum_kapital << endl;
cout << Jumlah Huruf Kecil : “ <<
jum_kecil << endl;
cout << Jumlah Digit : “ <<
jum_digit << endl;
cout << Jumlah pungtuasi : “ <<
jum_pungtuasi << endl;
}
Masukkan string apa saja : 123 halo 123. Test ¿ Jumlah Huruf Kapital : 1 Jumlah Huruf Kecil : 6
Jumlah Digit : 6 Jumlah
pungtuasi : 2
Hasil eksekusi :
8.5. Konversi String ke Angka atau Sebaliknya
Untuk
melakukan konversi string ke bilangan, Anda dapat menggunakan sejumlah fungsi
bawaan. Fungsi yang tersidia adalah sebagai berikut :
Fungsi
|
Prototipe |
Keterangan |
atio() |
stdlib.h |
Mengkonversi string argumen menjadi nilai bertipe int |
atof() |
stdlib.h |
Mengkonversi string argumen menjadi nilai bertipe float |
atol() |
stdlib.h |
Mengkonversi string argumen menjadi nilai bertipe long int |
_atold() |
stdlib.h |
Mengkonversi string argumen menjadi nilai bertipe long double (hanya terdapat dalam
borland C++) |
Adapun fungsi untuk bilangan ke string adalah
sebagai berikut :
Fungsi |
Prototipe |
Keterangan |
Itoa() |
stdlib.h |
Untuk mengkonversi suatu bilangan bertipe int menjadi string |
Ltoa() |
stdlib.h |
Untuk mengkonversi suatu bilangan bertipe long int menjadi string |
ultoa() |
stdlib.h |
Untuk mengkonversi suatu bilangan bertipe unsigned
long int menjadi string |
8.6. String sebagai Parameter Fungsi
String
sebagai parameter fungsi pada dasarnya sama dengan array sebagai parameter
fungsi.
Contoh program :
//*-------------------------------------------------------------*
//* Contoh : pembuatan fungsi yang
melibatkan *
//* argument bertipe
string *
//*-------------------------------------------------------------*
#include <iosstream.h>
#include <conio.h>
#include <string.h>
void RataKiri(char hasil[], char st[], int n);
void main()
{
char teks[] = “Bahasa C++”;
char hasil[128];
clrscr();
int panjang = strlen(teks);
for (int i = 0; i < panjang; i++)
{
RataKiri(hasil, teks, i+1);
B Ba Bah Baha Bahas Bahasa Bahasa Bahasa C Bahasa C+ Bahasa C++
cout << hasil << endl;
}
}
Hasil eksekusi :
Dalam program diatas argumen fungsi ditulis
dengan bentuk seperti hasil[] pada
pendefinisian fungsi. Tetapi hal ini tidaklah umum sebagai pengantinya argumen
string dinyatakan dengan pointer yang menunjuk ke tipe char.
BAB IX
MENGENAL POINTER
9.1. Mendefinisikan Variabel Pointer
tirp_data *nama_variabel
Suatu variabel pointer didefinisikan dengan
bentuk sebagai berikut :
-
tipe_data dapat berupa sembarang tipe seperti halnya pada
pendefinisian variabel bukan pointer.
-
nama_variabel adalah nama
variabel pointer
Supaya
suatu variabel menunjuk ke variabel lan, mula-mula harus diisi dengan alamat
dari variabel yang hendak ditunjuk.
Contoh program :
//*--------------------------------------------------------------*
//* Contoh 9.1 : Pendefinisian variabel pointer dan *
//* pengisian alamat ke
variabel tersebut *
//*--------------------------------------------------------------*
#include <iostreamh>
#include <conio.h>
void main()
{
int vint = 55; // Variabel bukan pointer
int *pint; // Variabel pointer
clrscr();
pint = &vint; // Pointer menunjuk ke vint
cout << “ Alamat vint = “ <<
&vint << endl;
cout << “pint = “ << pint <<
endl;
Alamat vint =
0xfff4 pint = 0xfff4
}
Hasil eksekusi :
Pada program diatas :
cout << “pint = “ << pint <<
endl;
ternyata menampilkan isi pointer itu sendiri,
bukan isi dari variabel vint.
9.2. Mengakses Nilai yang ditunjuk Pointer
Berdasarkan contoh program didepan, nilai dari vint dapat diakses melalui
pint setelah pernyataan :
pint = &vint
dijalankan. Caranya dengan melibatkan operator
“tak langsung”. Operator ini berupa simbol “ * “ dan diletakkan di depan nama
variabel pointer.Contoh
*pint
Contoh program :
//*--------------------------------------------------------*
//* Contoh : Pengaksesan nilai melalui suatu *
//* pointer *
//*--------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
int vint = 55; // Variabel bukan pointer
int *pint; // Variabel pointer
clrscr();
pint = &vint; // Pointer menunjuk ke vint
cout << “ Nilai yang ditunjuk oleh pint
= “
<< *pint << endl;
}
Nilai yang ditunjuk oleh pint = 55
Hasil ekseskusi :
9.3. Pointer Void
Untuk memebuat pointer yang tidak bertipe yakni dengan meletakkan kata
kunci pada void pada bagian penentu
tipe pointer. Contoh :
void *ptr;
Merupakan pernyataan untuk mendefinisikan ptr sebagai variabel pointer void.
Suatu pointer void adalah pointer
yang dapat menunjuk ke sembarang tipe data. Misalnya, Anda dapat mengatur agar
pointer ini menunjuk ke tipe data int,
tetapi di saat lain diperlukan untuk menunjuk data bertipe float.
Contoh program :
//*--------------------------------------*
//* Contoh : Pointer void *
//*--------------------------------------*
#include <iostream.h>
#include <conoi.h>
void main()
{
clrscr();
void *ptr; // Pointer tak bertipe
int vint = 50;
float vfl = 51.5;
ptr = &vint; // menunjuk ke int
cout << “Nilai yang ditunjuk oleh ptr =
“
<< *(int *)ptr << endl;
ptr = &vfl; // menunjuk ke float
cout << “Nilai yang ditunjuk oleh ptr :
“
<< “*(float *) ptr << endl;
}
Hasil eksekusi :
Nilai yang ditunjuk oleh ptr = 50 Nilai yang ditunjuk oleh ptr = 51.5
Dari program diatas bahwa variabel pointer ptr dapat menunjuk ke tipe int ataupun float.
Pointer
dapat pula digabungkan dengan array, karena pada umumnya antara pointer dan
array mempunyai kesamaan.
Contoh program :
//*--------------------------------------------------------*
//* Contoh : Pointer yang menunjuk ke array *
//*--------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
clrscr();
int tgl_lahir[] = {28, 11, 1982 };
int *ptgl;
ptgl = tgl_lahir; // ptgl menunjuk ke array
cout << “Nilai yang ditunjuk oleh
ptgl : “
<< *ptgl << endl;
cout << “Nilai dari tgl_lahir[0] : “
<< tgl_lahir << endl;
Nilai yang ditujuk oleh ptgl : 24 Nilai dari tgl_lahir[0] : 24
}
Hasil ekseskusi :
Setelah penugasan ptgl = tgl_lahir ptgl akan menunjuk ke elemen pertama
(tgl_lahir[0]) dari array tgl_lahir.
Tugas Minggu VIII :
Buatlah program menentukan bulan.
Contoh :
Masukkan Kelahiran Anda : 28 / 11 /1982
Anda Lahir pada : 28 November 1982
(simpan degan nama tugas8.cpp)
BAB X
STRUKTUR, ENUM, UNION, BIT-FIELD DAN TYPEDEF
10.1. Struktur
Struktur
bermanfaat untuk mengelompokkan sejumlah data dengan tipe yang berlainan.
Apabila suatu struktur telah dideklarasikan, struktur ini dapat dgunakan untuk
mendefinisikan suatu variabel.
variable_struktur.nama_anggota
Suatu struktur juga dapat mengandung struktur
yang lain dan anggota struktur dapat diakses menggunakan bentuk :
Contoh program lengkap yang melibatkan
pendeklarasian dan pendefinisian variabel struktur dan juga pengaksesan
terhadap anggota variabel struktur dapat dilihat dibawah ini :
//*----------------------------------------------------------*
//* Contoh : Pendeklarasian, pendefinisian dan
*
//* pengaksesan struktur *
//*----------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
struct data_tanggal // Pendeklarasian
{
int tahun;
int bulan;
int tanggal;
};
data_tanggal tanggal_lahir // Pendefinisian struktur
// Pengaksesan anggota struktur
tanggal_lahir.tangal = 28;
tanggal_lahir.bulan = 11;
tanggal_lahir.tahun = 1982;
cout << tanggal_lahir.tanggal << ‘
/ ’
<< tanggal_lahir.bulan << ‘/ ’
<< tanggal_lahir.tahun << endl;
}
Hasil eksekusi :
Pada program diatas tanda titik diantara nama
variabel dan nama anggota menyatakan penugasan untuk memberikan nilai 28 ke
anggota tanggal pada variabel
struktur tanggal_lahir.
Pemberian nilai terhadap suatu struktur dapat dilakukan dengan bentuk :
var1 = var2;
sepanjang kedua variabel adalah variabel struktur bertipe sama.
Contoh program :
//*--------------------------------------------*
//* Contoh : Penugasan struktur *
//*--------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
struct data_tanggal // Pendeklarasian
{
int tahun;
int bulan;
int tanggal;
};
data_tanggal tgl1, tgl2 ; // Pendefinisian struktur
// Penugasan per anggota
tgl1.tanggal = 28;
tgl1.bulan = 11;
tgl1.tahun = 1982;
// Penugasan antaranggota struktur
tgl1 = tgl2;
cout << tgl2.tanggal << ‘ / ’
<< tgl2.bulan << ‘ / ’
<< tgl2.tahun << endl;
}
Hasil eksekusi :
10.2. Union
Union
menyerupai struktur (termasuk dalam hal pengaksesannya), namun mempunyai
perbedaan nyata. Union biasa dipakai untuk menyatakan suatu memori dengan nama
lebih dari satu.
Contoh program :
//*----------------------------------------------*
//* Contoh : Pendefinisian union *
//*----------------------------------------------*
#include <iostream.h>
#include <conio.h>
union bil_bulat
{
unsigned int di;
unsigned char dc[2];
};
void main()
{
clrscr();
bil_bulat bil_x; // Pendefinisian union
bil_x.di = 0x2345;
cout << setiosflags(ios::showbase);
cout << hex << “di : “ << bil_x.di << endl;
cout << hex << “dc[0] : “ <<
int(bil_x.dc[0]) << endl;
cout << “dc[1] : “ <<
int(bil_x.dc[1) << endl;
}
Di : 0x2345 dc[0] : 0x45 dc[1] : 0x23
Hasil eksekusi :
Tampak bahwa dengan mengisikan nilai bil_x.di, data dapat diakses melalui bil_x.dc. dalam hal ini, bil_x.dc[0] menyimpan byte rendah dari bil_x.di dan bil_x.dc[1] berkaitan dengan byte tinggi dari bil_x.di (mengingat bil_x.di
berukuran dua byte).
Seperti halnya struktur, variabel union juga dapat diinisialisasi saat
didefinisikan.
Contoh program :
//*--------------------------------------------*
//* Contoh : Inisialisasi Union *
//*--------------------------------------------*
#include <iostream.h>
#include <conio.h>
union bil_bulat
{
unsigned int di;
unsigned char dc[2];
};
void main()
{
clrscr();
bil_bulat bil_x = 0x2345; //
Inisialisasi
cout << setiosflags(ios::showbase);
cout << hex << “di : “ << bil_x.di << endl;
cout << hex << “dc[0] : “ <<
int(bil_x.dc[0]) << endl;
cout << “dc[1] : “ <<
int(bil_x.dc[1) << endl;
}
10.3. Struktur Bit-field
Satu bit atau beberapa bit dalam sebuah data berukuran suatu byte atau dua
byte dapat diakses dengan mudah malalui bit-field.
Dengan cara ini suatu bit atau beberapa bit dapat diakses tanpa melibatkan
operator manipulasi bit (seperti & dan || ). Selain itu satu atau dua byte
meri dapat dipakai untuk menyimpan sejumlah informasi.
Conto program :
//*---------------------------------------------------------*
//* Contoh : bit-filed untuk mengakses bit-bit *
//* dalam sebuah byte
data *
//*---------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
// Pendeklarasian bit-field
struct info_bit
{
unsigned bit0 : 1;
unsigned bit1 : 1;
unsigned bit2 : 1;
unsigned bit3 : 1;
unsigned bit4 : 1;
unsigned bit5 : 1;
unsigned bit6 : 1;
unsigned bit7 : 1;
};
void main()
{
clrscr();
union ubyte // Pendeklarasian union
{
unsigned char byte;
info_bit bit;
};
ubyte ascii; // Pendeklarian variabel union
int nilai;
cout << “ Masukkan ascii antara 0 s/d
255 : “;
cout << ascii.bit.bit7 <<
ascii.bit.bit6
cout << ascii.bit.bit5 <<
ascii.bit.bit4
cout << ascii.bit.bit3 <<
ascii.bit.bit2
<< ascii.bit.bit1 << ascii.bit.bit0 << endl;
Masukkan ascii antara 0 s/d 255 : 128 ¿ 76543210 ß
Posisi bit 10000000
}
Hasil eksekusi :
Masukkan ascii antara 0 s/d 255 : 16 ¿ 76543210 ß
Posisi bit 00010000
Perlu diketahui, suatu variabel yang
didefinisikan sebagai bit-field tidak
bisa diisi secara langsung dengan suatu nilai. Oleh karena itu biasa dibentuk
didalam union.
10.4. Enum
Tipe
enum biasa dipakai kalau kemungkinan nilai dari suatu data telah diketahui, dan
jumlah kemungkinannya tidak banyak.
Contoh program :
//*-----------------------------------------------------*
//* Contoh : tipe enum *
//*-----------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
clrscr();
enum nama_hari { Senin, Selasa, Rabu, Kamis,
Jumat,
Sabtu, Minggu };
nama_hari hari1, hari2; // Pendefinisian enum
// Pemberian nilai enum
hari1 = Senin;
hari2 = Jumat;
int selisih = hari2 – hari1;
cout << “Selisih Hari : “ <<
selisih << endl;
Selisih Hari : 4
}
Hasil eksekusi :
Pada contoh diatas terdapat pendeklarasian
tipe enum berupa nama_hari. Anggota tipe enum nama_hari berupa Senin, Selasa, Rabu dan seterusnya.
nma_hari hari1, hari2 merupakan pernytaan untuk mendefinisikan variabel
bernama hari1 dan hari2 yang bertipe enum nama_hari.
10.5. typedef
typedef biasa dipakai untuk memberikan nama alias terhadap suatu
tipe data. Sebagai contoh anda dapat memberikan nama alias dari unsigned char
berupa BYTE.
Contoh program :
//*-----------------------------------------------*
//* Contoh : typedef *
//*-----------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
clrscr();
typedef unsigned char BYTE;
BYTE kode; // Sebagai pemendekan dari :
unsigned char code;
kode = 65;
cout << kode; // Karakter ASCII 65
}
A
Hasil eksekusi :
Lembar Kerja Praktikum 1 :
Pengenalan
Setelah mengerjakan LKP 1 ini, anda diharapkan
dapat:
1. mengenal lingkungan salah satu compiler bahasa
pemrograman C yaitu Turbo C++ 4.5.
2. menggunakan compiler tersebut untuk
menyelesaikan kasus sederhana.
Dasar Teori
Lingkungan Turbo C++ 4.5
Turbo C++ 4.5 adalah tool yang dipakai untuk
membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama
Turbo C++ 4.5.
4 3 2 1
1 : Menu Utama
2 : Toolbar
3 : Jendela
pengetikan kode program
4 : Jendela
Message/Pesan kesalahan kode
Create
new, Open, Save, Save As File
Untuk memulai membuat kode program di Turbo C++ 4.5
langkah-langkahnya adalah sebagai berikut :
1.
Buka Turbo C++
4.5 dari menu program sehingga akan keluar jendela Turbo C++ berikut :
2.
Kemudian pilih
menu File > New maka akan tampil
jendela baru (di dalam jendela utama Turbo C++) untuk menuliskan kode program.
3.
Setelah
menuliskan kode program maka simpan dengan memilih menu File > Save as (untuk menyimpan dengan nama baru) atau File > Save (Tidak menyimpan dengan nama
baru bila sudah pernah disimpan). Tentukan dirve dan direktori tempat
penyimpanan.
Untuk membuka file atau kode program yang sudah pernah dibuat maka
langkah-langkahnya adalah seperti berikut :
1. Pilih menu File > Open maka akan tampil jendela seperti berikut :
2. Tentukan drive dan direktori lokasi tempat
menyimpan file program kemudian klik OK.
Compile
Program, Pendeteksian Error dan Warning, Run Program
Setelah menuliskan kode program, maka berikutnya adalah compile
program dengan tujuan untuk mendeteksi kesalahan-kesalahan dalam penulisan kode
program. Adapun langkah-langkahnya adalah sebagai berikut :
1.
Pilih menu Project > Compile, atau kombinasi
tombol ALT+F9, akan tampil jendela
status compile seperti berikut :
Dari status di atas maka tidak ditemukan error atau warning pada program.
Dari status di atas dapat dilihat bahwa
terdapat error pada program. Untuk
melihat pesan error tersebut klik OK maka
akan tampil jendela pesan error seperti berikut :
Jendela di bawah ini menunjukkan terdapat warning pada program.
Untuk melihat pesan warning tersebut, klik tombol OK.
2.
Setelah kode
program di-compile maka langkah berikutnya adalah menjalankannya, yaitu dengan
memilih menu Debug > Run atau
kombinasi tombol CTRL+F9.
Contoh Program :
Program mengeluarkan tulisan ”Selamat Datang”
1. Compiler C: Turbo C++ 4.5
Deklarasi :
-
Algoritma :
write(“Selamat Datang
di STKIP INVADA CIREBON”)
write(“Nama Anda”)
write(“Nim Anda”)
write(“Jurusan Anda”)
- Bukalah software Turbo C++
- Ketikkan kode program berdasarkan algoritma yang diberikan
- Compile program dengan menekan Alt + F9 atau pilih menu Project à Compile
- Jalankan program dengan menekan Ctrl + F9 atau pilih menu Debug à Run
- Simpan file dengan nama Praktikum1.cpp
Skenario devc++
dalam OS windows
1. Membuat
proyek baru di devc++ dalam OS windows
Step 1 : Pada aplikasi c++, pilih File > New Project > New
Source File
Tampilan project baru
Step 2 : Ketikkan kode program pada area kerja
Tampilan source code
Task 2 :
Menyimpan proyek baru
Step 1 : Pilih Menu File > Save As >
Step 2 : Pilih direktori penyimpanan dan beri nama file
Tampilan Save As
Task 3 :
Kompilasi dan Eksekusi program
Step 1 : Pilih menu Execute > Compile
Tampilan compile program
Step 2 : Pilih menu Execute > Run
Tampilan running program
Lembar Kerja Praktikum 2: Tipe Data dan Ekspresi
Setelah mengerjakan LKP 2 ini, anda diharapkan
dapat:
1.
mengenal berbagai tipe data pada bahasa C.
2.
menggunakan tipe data untuk menyelesaikan berbagai kasus
sederhana.
Tipe Data dapat dibedakan menjadi dua, yaitu
tipe data dasar dan tipe data bentukan
Tipe Data Dasar
Adalah tipe yang dapat langsung dipakai.
Ukuran Memori (byte) |
Jangkauan Nilai |
Jumlah Digit Presisi |
|
Char |
1 |
-128 hingga +127 |
- |
Int |
2 |
-32768 hingga +32767 |
- |
Long |
4 |
-2.147.438.648 hingga 2.147.438.647 |
- |
Float |
4 |
3,4E-38 hingga 3,4E38 |
6-7 |
Double |
8 |
1.7E-308 hingga 1.7E308 |
15-16 |
long double |
10 |
3.4E-4932 hingga 1.1E4932 |
19 |
Beberapa format yang dipakai untuk mencetak nilai numerik
integer :
Kode Format |
Hasil yang
dicetak |
%i atau %d %u %li %lu |
Numerik integer bertanda Numerik integer tak bertanda (unsigned integer) Numerik Long integer bertanda Numerik Unsigned Long Integerl |
%c |
Karakter ASCII |
%x %o |
Hexadecimal Integer Octal Integer |
Tipe
Bentukan
Tipe
bentukan adalah type yang dibentuk dari type dasar atau dari type bentukan lain
yang sudah didefinisikan, contohnya tipe struktur. Struktur terdiri dari data yang disebut field.
Field–field tersebut digabungkan menjadi satu tujuan untuk kemudahan dalam
operasi. Mengenai tipe data bentukan akan dibahas lebih lanjut pada mata kuliah
Algoritma dan Pemrograman 2.
Contoh Program :
1: #include
<stdio.h>
2: #include <conio.h>
3: void main()
4: {
5: int
nilai,hasil;
6:
7: printf(“Masukkan
Suatu Nilai : ”);
8: scanf(“%d”,&nilai);
9:
10: clrscr();
11: hasil =
nilai + nilai ;
11: printf(“Hasil
dari nilai + nilai adalah :\n%d”, hasil);
12: }
1. Compiler C: Turbo C++ 4.5
Deklarasi
:
const
Phi = 3.14 {konstanta}
L
: real
K,
p, l : integer
Algoritma
:
read(p)
read (l)
Kß2*(p+l)
write(K)
bersihkan
layar
read (r)
L ß
Phi*r*r
write(L)
Lembar Kerja Praktikum 3: Kondisi
Setelah mengerjakan LKP 3 ini, anda diharapkan
dapat:
1.
memahami konsep pengkondisian dalam pemrograman
2.
mengenal berbagai bentuk pengkondisian pada bahasa C.
3.
menggunakan pengkondisian untuk menyelesaikan berbagai kasus
sederhana.
Bentuk IF
Penggunaan seleksi dapat menggunakan bentuk if, sintaks
penulisannya adalah sebagai berikut :
if
(kondisi)
{
Statement
}
Contoh Program :
1: #include
<stdio.h>
2: void main()
3: {
4: int a;
5: int b;
6:
7: a = 10;
8: b = 9;
9:
10: if
(a>b)
11: {
12: printf(“%d
lebih besar dari %d”,a,b);
13: }
14: }
Bentuk IF dengan Operator
Terkadang ada
lebih dari satu kondisi yang harus terpenuhi, untuk itu dapat digunakan
operator logika AND dan OR, pada bahasa C sintaks penulisannya adalah sebagai
berikut,
Untuk operator logika AND :
if
(kondisi1 && kondisi2 )
{
Statement
}
ContohProgram :
1: #include
<stdio.h>
2: void main()
3: {
4: int a =
10;
5:
6: if (a<
15 && a>9)
7: {
8: printf(“15
lebih besar dari %d lebih besar dari 9”,a);
9: }
10: }
Untuk operator logika OR :
if (kondisi1 || kondisi2 )
{
Statement
}
ContohProgram :
1: #include
<stdio.h>
2: void main()
3: {
4: int a =
15;
5:
6: if
(a%5==0 || a%2==0)
7: {
8: printf(“%d
habis dibagi 5 atau 2”,a);
9: }
10: }
Bentuk IF – ELSE IF – ELSE
Penggunaan bentuk if diatas adalah penggunaan untuk kasus
yang tidak memiliki alternative, untuk penggunaan if dengan alternative,
sintaks penulisannya :
if
(kondisi)
{
Statement1
}
else
{
Statement2
}
Atau
if
(kondisi)
{
Statement1
}
else
if (kondisi2)
{
Statement2
}
Else
{
Statement3
}
Contoh Program :
1: #include
<stdio.h>
2:
3: void main()
4: {
5: int T;
6:
7: printf(“Masukkan
Nilai Suhu = ”);
8: scanf(“%d”,&T);
9:
10: if
(T<=)
11: {
12: printf(“Kondisi
Beku”);
13: }
14: else if
(T>0 && T<= 100)
15: {
16: printf(“Kondisi
Cair”);
17: }
18: else
19: {
20: printf(“Kondisi
Uap”);
21: }
22: }
Bentuk Nested IF
Dalam penggunaan kondisi terkadang diperlukan suatu
bentuk if yang bertingkat, sintaks penulisannya adalah, sebagai berikut :
if
(kondisi1)
{
Statement1
if (kondisi1-1)
{
Statement1-1
}
else
{
Statement1-2
}
}
else
{
Statement2
}
Contoh Program :
1: #include
<stdio.h>
2: void main()
3: {
4: int a =
10;
5: int b =
5;
6: int c =
2;
7:
8: if(a%b ==
0)
9: {
10: printf(“%d
adalah bilangan kelipatan %d\n”,a,b);
11: if(a%c
== 0)
12: {
13: printf(“%d
adalah bilangan genap\n”,a);
14: }
15: else
16: {
17: printf(“%d
adalah bilangan ganjil\n”,a);
18: }
19: }
20: }
Bentuk SWITCH
Selain bentuk if, pengkondisian dalam bahasa C dapat pula
menggunakan bentuk switch, sintaks penulisannya adalah sebagai berikut:
switch(nilai)
{
case(kondisi1):
{
Statement1
}
break;
case(kondisi2):
{
Statement2
}
break;
case(kondisi3):
{
Statement3
}
break;
default:
{
StatementDefault
}
break;
}
Contoh Program :
1: #include
<stdio.h>
2:
3: void main()
4: {
5: int
nilai;
6: printf(”Masukkan
nilai : “);
7: scanf(“%d”,&nilai);
8:
9: switch(nilai)
10: {
11: case(1):
12: {
13: printf(“satu\n”);
14: }
15: break;
16: case(2):
17: {
19: printf(“dua\n”);
20: }
21: break;
22: case(3):
23; {
24: printf(“tiga\n”);
25: }
26: break;
27: default:
28: {
29: printf(“tidak
ada nilai\n”);
30: }
31: break;
32: }
33: }
1.
Compiler C: Turbo C++ 4.5
a,b,c
: real
D,x1,x2
: real
Algoritma
:
read(a);
read
(b);
read
(c);
if(a>0)
D=b*b-4*a*c;
if
(D>0)
write("Akar
Real");
x1=(-b+root(D))/(2*a);
x2=(-b-root(D))/(2*a);
write(x1);
write(x2);
elseif
(D==0)
write("Akar
Kembar");
x1=(-b)/(2*a);
write(x1);
else
{D<0}
write("Akar
Imaginer");
endif
else
write("nilai
a harus > 0");
endif
Lembar Kerja Praktikum 4: Pengulangan
Setelah mengerjakan LKP 4 ini, anda diharapkan
dapat:
1. memahami konsep pengulangan dalam pemrograman
2. mengenal berbagai bentuk pengulangan pada
bahasa C.
3. menggunakan pengulangan untuk menyelesaikan
berbagai kasus sederhana.
Bentuk FOR
Perulangan dalam bahasa C dapat menggunakan bentuk FOR, sintaks
penulisannya adalah sebagai berikut :
for (nilai awal; kondisi perulangan; operasi)
{
Statement
}
Contoh Program :
1: #include <stdio.h>
2: void main()
3: {
4: for(int i = 0; i < 9; i++)
5: {
6: printf(“%d ”,i);
7: }
8: }
Bentuk WHILE
Perulangan dalam bahasa C dapat pula menggunakan bentuk
WHILE, sintaks penulisannya adalah sebagai berikut :
while(kondisi)
{
Statement
operasi
}
Contoh Program :
1: #include <stdio.h>
2:
3: void main()
4: {
5: int i = 0;
6: while(i<10)
7: {
8: printf(“%d\n”,i);;
9: i++;
10: }
11: printf(“Nilai akhir = ”);
12:
13: while(i<10)
14: {
15: printf(“%d ”,i);
16: i++;
17: }
18: }
Bentuk DO-WHILE
Perulangan dalam bahasa C dapat pula menggunakan bentuk
DO-WHILE, sintaks penulisannya adalah sebagai berikut :
do
{
Statement
Operasi
}
while(kondisi);
Contoh Program :
1: #include <stdio.h>
2:
3: void main()
4: {
5: int i = 0;
6: do
7: {
8: printf(“%d\n”,i);
9: i++;
10: }
11: while(i<10);
12: printf(“Nilai akhir = ”);
13:
14: do
15: {
16: printf(“%d ”,i);
17: i++;
18: }
19: while(i<10);
20: }
1.
Compiler C: Turbo C++ 4.5
Deklarasi
:
i,j
: integer
Algoritma :
for
i ß 1 to 5 do
for
j ß 5 to i do
write(“*”)
endfor
write(“\n”)
endfor
Lembar Kerja Praktikum 5:
Array
Setelah mengerjakan LKP 5 ini, anda diharapkan
dapat:
1.
memahami konsep array dalam pemrograman
2.
menggunakan array untuk menyelesaikan berbagai kasus
sederhana.
Array satu dimensi
Dalam bahasa pemrograman, array adalah
variabel yang sejenis yang berderet sedemikian rupa sehingga alamatnya saling
bersambung/kontigu atau dengan kata lain variabel berindeks.
Bentuk umum :
tipe_array
nama_array [jumlah data]
Ilustrasi array satu dimensi :
|
|
|
|
|
|
Array
di atas mempunyai enam element.
Contoh Program :
1: #include <stdio.h>
2:
3: void main()
4: {
5: int a[5] = {10,25,30,45,50};
6: int i;
7:
8: for(i=0;i<5;i++)
9: {
10: printf(“%d = %d\n”,i,a[i]);
11: }
12: }
Array Multidimensi
Array multidimensi adalah array yang mempunyai lebih dari
satu dimensi. Misal
: A[3][5] artinya array tersebut mempunyai 3 baris 5 kolom.
Bentuk umum :
tipe_array
nama_array [jumlah data][jumlah data]
Ilustrasi array multi dimensi :
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Array
di atas mempunyai delapan belas element.
Contoh Program :
1: #include <stdio.h>
2:
3: void main()
4: {
5: int a[3][3] =
{{10,20,30},{40,50,60},{70,80,90}};
6: int i,j;
7:
8: for(i=0;i<3;i++)
9: {
10: for(j=0;j<3;j++)
11: {
12: printf(“%d
”,a[i][j]);
13: }
14: printf(“\n”);
15: }
16: }
1.
Compiler C: Turbo C++ 4.5
Deklarasi
:
const Nmaks = 20
NilaiAngka : array [1..Nmaks] of
real
NilaiHuruf : array [1..Nmaks] of
char
i : integer
Algoritma
:
for iß1 to n do
if (NilaiAngka[i] >
85) then
NilaiHuruf[i] ß’A’
elseif
(NilaiAngka[i] > 70) and (NilaiAngka[i] < 85) then
NilaiHuruf[i]ß’B’
elseif
(NilaiAngka[i] > 55) and (NilaiAngka[i] < 70) then
NilaiHuruf[i]ß’C’
elseif
(NilaiAngka[i] > 45) and (NilaiAngka[i] < 55) then
NilaiHuruf[i]ß’D’
else
NilaiHuruf[i]ß’E’
endif
endfor
Lembar Kerja Praktikum 6:
Pointer
Setelah mengerjakan LKP 6 ini, anda diharapkan
dapat:
1.
memahami konsep pointer dalam pemrograman.
2.
menggunakan pointer untuk menyelesaikan berbagai kasus
sederhana.
Definisi
Pointer dapat diartikan sebagai suatu nilai yang menunjuk
alamat suatu lokasi memori. Lokasi memori tersebut mungkin diwakili oleh sebuah
variabel atau mungkin juga lokasi bebas dalam memori. Sedangkan pointer sendiri
yang berupa nilai ditampung dalam sebuah variabel yang disebut variabel
pointer. Jadi variabel pointer atau pointer berisi suatu nilai yang menyatakan
alamat suatu lokasi.
Contoh :
Step:
- d=&a à
*d = 2 ; d = A
- c=&b à
*c = 3 ; c = B
- b=*d à
b = 2 ; &b = B
- *d=*cà
*d = 2 ; d = A
Dari contoh di atas terlihat bahwa addres pada variabel
pointer dapat berubah – ubah, apabila addres suatu variabel pointer berubah
maka valuenya akan berubah sesuai addres yang ditunjuk oleh pointer tersebut.
Apabila pada address yang ditunjuk oleh pointer tersebut mengalami perubahan
value, maka value pada pointer juga akan berubah.
Contoh Program :
1: #include <stdio.h>
2:
3: void main()
4: {
5: int a,b;
6: int *c;
7: int *d;
8:
9: a = 2;
10: b = 3;
11:
12: d = &a;
13: printf("a = %d\n",a);
14: printf("alamat a = %d\n",&a);
15: printf("d = %d\n",*d);
16: printf("alamat d = %d\n",d);
17:
18: c = &b;
19: printf("b = %d\n",b);
20: printf("alamat b = %d\n",&b);
21: printf("c = %d\n",*c);
22: printf("alamat c = %d\n",c);
23:
24: b = *d;
25: printf("b = %d\n",b);
26: printf("alamat b = %d\n",&b);
27: printf("d = %d\n",*d);
28: printf("alamat d = %d\n",d);
29:
30: *d = *c;
31: printf("d = %d\n",*d);
32: printf("alamat d = %d\n",d);
33: printf("c = %d\n",*c);
34: printf("alamat c = %d\n",c);
35: }
1. Compiler C: Turbo C++ 4.5
Deklarasi
:
a : array [1..5] of
integer
*b : integer
i : integer
Algoritma
:
b = a
for i = 0 to 5 do
read(b)
b++
endfor
b = a
for i = 0 to 5 do
write(b)
b++
endfor
Lembar Kerja Praktikum 7: Fungsi
dan Prosedur
Setelah mengerjakan LKP 7 ini, anda diharapkan
dapat:
1. memahami konsep fungsi dan prosedur dalam
pemrograman
2. menggunakan fungsi dan prosedur untuk
menyelesaikan berbagai kasus sederhana.
Definisi dan Bentuk Umum Fungsi
Fungsi adalah sejumlah instruksi yang
dikelompokkan menjadi satu, berdiri sendiri, yang berfungsi untuk menyelesaikan
suatu pekerjaan. Bahasa C minimal mempunyai satu buah fungsi yang disebut
Fungsi main() yaitu fungsi induk/utama. Sintaks penulisannya adalah sebagai
berikut :
TipeData NamaFungsi()
{
Statement
return variabel
}
Ingat bahwa pemrograman bersifat terstruktur,
karena itu untuk fungsi yang dibuat setelah main, harus dideklarasikan lebih
dahulu di bagian atas.
Definisi dan Bentuk Umum Prosedur
Prosedur adalah suatu fungsi yang tidak
mengembalikan nilai, karena itu tipe data untuk prosedur adalah void atau
kosong. Sintaks penulisannya adalah sebagai berikut :
void NamaProsedur()
{
Statement
}
Ingat bahwa pemrograman bersifat terstruktur,
karena itu untuk prosedur yang dibuat setelah main, harus dideklarasikan lebih
dahulu di bagian atas.
Penggunaan Parameter
Ada 2 jenis
Parameter
·
Formal Parameter, merupakan parameter yang muncul di
definisi fungsi atau prosedur.
·
Actual
Parameter, merupakan parameter yang muncul di program saat pemanggilan fungsi atau prosedur.
Berikut adalah
sintaks untuk penggunaan parameter
TipeData NamaFungsi(TipeData Variabel1, TipeData
Variabel2)
{
Statement
return variabel
}
TipeData NamaProsedur(TipeData Variabel1, TipeData
Variabel2)
{
Statement
return variabel
}
Contoh Program :
Fungsi :
1: #include
<stdio.h>
2:
3: int tambah(int
a, int b);
4:
5: void main()
6: {
7: int
a,b,hasil;
8:
9: printf(“Nilai
a = “);
10: scanf(“%d”,&a);
11:
12: printf(“Nilai
b = “);
13: scanf(“%d”,&b);
14:
15: hasil =
tambah(a,b);
16:
17:
19: printf(“Hasil
= %d\n”,hasil);
18: }
20:
21: int tambah(int
a, int b)
22: {
23: int Hasil;
24: Hasil = a + b;
25: return Hasil;
26: }
Prosedur :
1: #include
<stdio.h>
2:
3: void tambah();
4:
5: void main()
6: {
7: tambah();
8: }
9:
10: void tambah()
11: {
12: int a,b,c;
13: printf(“Nilai
a = “);
14: scanf(“%d”,&a);
15:
16: printf(“Nilai
b = “);
17: scanf(“%d”,&b);
18:
19: c = a + b;
20:
21: printf(“Hasil
= %d\n”,c);
22: }
1. Compiler C: Turbo C++ 4.5
Deklarasi
:
m,n, kpk : integer
function KPK(input m,n
: integer) à integer {menghitung KPK}
procedure cetak (input
kpk : integer) {cetak KPK}
Algoritma
:
read(m)
read(n)
kpk ß KPK(m,n)
cetak(kpk)
Lembar Kerja Praktikum 8: File Eksternal
Setelah mengerjakan LKP 8 ini, anda diharapkan
dapat:
1. memahami konsep file dalam pemrograman
2. menggunakan file untuk menyelesaikan berbagai
kasus sederhana.
Sejauh ini praktikum yang dilakukan pada LKP ini
menggunakan input dari keyboard dan memberikan output pada layar monitor. Pada
kenyataannya seringkali dilakukan pembacaan input dari arsip dan penulisan
output ke arsip.
Berikut adalah keyword yang penting dalam
pemrosesan arsip
FILE* à Tipe data
pengaksesan arsip
fopen à Fungsi untuk
membuka arsip
fclose à Fungsi untuk
menutup arsip
fprintf à Fungsi untuk
menulis ke dalam arsip
fscanf à Fungsi untuk
membaca dari dalam arsip
Contoh Program :
Menulis ke dalam arsip :
1: #include
<stdio.h>
2:
3: void main()
4: {
5: FILE*
file;
6: file =
fopen("arsip.txt","w");
8: fprintf(file,"Selamat_Datang_di_Fakultas_Ilmu_Komputer");
9: }
Membaca dari dalam arsip :
1: #include
<stdio.h>
2:
3: void main()
4: {
5: FILE*
file;
6: char
teks1[100];
7: file =
fopen("arsip.txt","r");
8:
9: fscanf(file,"%s",teks1);
10:
11: printf("%s",teks1);
12: }
Catatan :
w dan r adalah kunci untuk pengaksesan arsip,
w berarti write, digunakan agar arsip yang diakses hanya dapat ditulis saja,
sedangkan r berarti read, digunakan agar arsip yang diakses hanya dapat dibaca
saja.
1.
Compiler C: Turbo C++ 4.5
Deklarasi
:
file : FILE
nama, nim, jurusan : string
Algoritma
:
read(nama)
read(nim)
read(jurusan)
file ß
nama,nim,jurusan
nama, nim, jurusan ß file
write(nama)
write(nim)
write(jurusan)
Lembar Kerja Praktikum
9 : Variabel
Script :
#include
“iostream.h”
#include “conio.h”
main ()
{
int a,b,c;
cout
<< “Masukkan nilai A : “; cin >> a;
cout << “Masukkan nilai B : “; cin >> b;
c = a + b;
cout << “Nilai A+B = “<< c;
getch();
}
Ranning Program
Lembar Kerja Praktikum
10 : SEGITIGA
Script
#include
“iostream.h”
#include “conio.h”
main ()
{
//kamus
float alas,tinggi,luas;
//deskripsi
cout << “Masukkan Alas = “; cin >> alas;
cout << “Masukkan Tinggi = “; cin >> tinggi;
luas = (alas * tinggi) / 2;
cout << “Luas Segitiga = ” << luas;
getch(); //tekan sembarang tombol
}
Ranning Program
Lembar Kerja Praktikum
11 : Menukar
nilai a ke variabel b
Script
#include
“iostream.h”
#include “conio.h”
main()
{
int A,B,Cadangan;
cout<<
“Masukan Nilai A = “; cin >> A;
cout<< “Masukan Nilai B = “; cin >> B;
Cadangan
= A;
A=B;
B=Cadangan;
Cadangan
=0;
cout
<< “Nilai A =” << A << “\n” ;
cout << “Nilai B =” << B;
getch();
}
Ranning Program
Lembar Kerja Praktikum
12 : Menentukan presdikat
/*
Untuk Menentukan Predikat Kelulusan di perlukan input Nilai dengan keterangan :
A = > = 85 dan <= 100
B = > = 75 dan > 85
C = > = 60 dan > 75
D = < 60
Script
*/
#include
“iostream.h”
#include “conio.h”
main()
{
char Predikat;
float Nilai;
cout<<
“masukan Nilai Siswa : “; cin >> Nilai;
if
(Nilai>=85 && Nilai <=100)
Predikat = ‘A’;
else if (Nilai>=75 && Nilai <=85)
Predikat =’B’;
else if (Nilai>=60 && Nilai <=75)
Predikat =’C’;
elae if (Nilai<60)
Predikat = ‘D’;
else
Predikat = ”;
cout
<< “Nilai Huruf : “<< Predikat ;
getch();
}
Ranning Program
Lembar Kerja Praktikum
13 : Gaji Bersih
Hitung Gaji Bersih dari :
Gapok : 1.500.000
Tunjangan : 500.000
Pajak : 5%
BPJS : 5%
Input :
Nama dan Banyak Bulan ?
Script
*/
#include
“iostream.h”
#include “conio.h”
main ()
{
int Gapok, Tunj, nBulan, Gaber, TotalGaji, JumGaber;
float Pajak,BPJS;
char Nama[30];
cout
<< “Nama Pegawai : “; cin >> Nama;
cout << “Banyak Bulan : “; cin >> nBulan;
Gapok =
1500000;
Tunj = 500000 ;
TotalGaji = Gapok + Tunj;
Pajak = 0.05 * TotalGaji;
BPJS = 0.03 * TotalGaji;
Gaber =
TotalGaji – Pajak – BPJS;
JumGaber
= Gaber * nBulan;
cout
<< “SLIP GAJI PEGAWAI\n” << “==========================\n”;
cout << “Nama : ” << Nama << “\n”;
cout << “Gaji Pokok : ” << Gapok <<“\n”;
cout << “Tunjangan : ” << Tunj << “\n”;
cout << “Pajak : ” << Pajak <<“\n”;
cout << “BPJS : ” << BPJS << “\n”;
cout << “Selama : ” << nBulan<<“\n”;
cout << “==================================\n”;
cout << ” Gaji Bersih : ” << “jumGaber” << “\n”;
getch();
}
Ranning Program
Lembar Kerja Praktikum
14 : Menetukan bilangan bulat ganjil
Scipt
#include
“iostream.h”
#include “conio.h”
main ()
{
int input, sisabagi;
cout
<< “Masukan Bilangan Bulat :”; cin>> input;
sisabagi = input%2;
if (
sisabagi ==0 )
cout << input << ” adalah Bilangan Genap.”;
else
cout << input << ” adalah Bilangan Ganjil.”;
getch
();
}
Ranning Program
Lembar Kerja Praktikum 15 : Mencetak karakter
bintang dengan bentuk-bentuk segitiga dengan menggunakan perulangan
dalam perulangan
/*
Mencetak Karakter
*
**
**
***
****
*****
Scrip
*/
#include
“iostream.h”
#include “conio.h”
main ()
{
int baris,kolom,max ;
char karakter ;
karakter = ‘*’
;
max = 15;
cout <<
“Bentuk Pertaama” << endl ;
for (baris=1;
baris<=max; baris++)
{
for (kolom=1; kolom<=baris; kolom++)
{
cout << karakter;
}
cout << endl ;
}
cout <<
“Bentuk Kedua” << endl ;
for (baris=1;
baris<=max; baris++)
{
for (kolom=1; kolom<= (max-baris) ; kolom ++)
{
cout << ” ” ;
}
for (kolom=1; kolom<=baris; kolom++)
{
cout << karakter;
}
cout << endl ;
}
cout <<
“Bentuk Ketiga” << endl ;
for (baris=max;
baris>=1; baris–)
{
for (kolom=1; kolom<=baris; kolom++)
{
cout << karakter;
}
cout << endl ;
}
cout <<
“Bentuk Keempat” << endl ;
for (baris=max
; baris>=1; baris–)
{
for (kolom=1; kolom<= (max-baris) ; kolom ++)
{
cout << ” ” ;
}
for (kolom=1; kolom<=baris; kolom++)
{
cout << karakter;
}
cout << endl ;
}
cout <<
“Bentuk Refleksi Satu” << endl ;
for (baris=1;
baris<=max; baris++)
{
for (kolom=1; kolom<=baris; kolom++)
{
cout << karakter;
}
for (kolom=1; kolom<= (max-baris) ; kolom ++)
{
cout << ” ” ;
}
for (kolom=1; kolom<= (max-baris) ; kolom ++)
{
cout << ” ” ;
}
for (kolom=1; kolom<=baris; kolom++)
{
cout << karakter;
}
cout << endl ;
}
getch ();
}
Ranning Program
Lembar Kerja Praktikum 16 : Mencetak deret bilangan
menggunakan perulangan
Script
#include
“iostream.h”
#include “conio.h”
main ()
{
int ulang;
//perulangan
for
for (ulang=1; ulang<=10; ulang++)
{
cout << “Cetang Angka = ” << ulang << endl;
}
//perulangan
while
ulang=1;
while (ulang <=10)
{
cout << “Cetak Angka = ” << ulang << endl;
ulang++;
}
//perulangan do
while
ulang=1;
do
{
cout << “Cetak Angka = ” << ulang << endl;
ulang++ ;
}
while (ulang<=10);
getch () ;
}
Ranning Program
Lembar Kerja Praktikum 17 : Soal cerita
Sebuah Toko perlengkapan bahan bangunan yang bernama “TB BARUDAK”
memeberikan promo harga Cat Tembok 25 Kg. Bagi konsumen yang membeli sebanyak 3
pile akan mendapatkan potongan harga sebesar 80%, promo ini berlaku bagi setiap
konsumen yang membeli mminimal 3 pile atau kelipatannya akan mendapatkan
potongan harga 80%, sementara harga 1 pile cat tembok 25 Kg Rp. 154.000,-
# Selesaikan
kasus diatas dengan mengunakan bahasa pemrograman C/C++ agar dapat dengan mudah
berapa jumlah yang harus dibayarkan oleh konsumen.
Script
Ranning Program
Lembar Kerja Praktikum 18 : Soal
cerita
Seorang tukang
cat tembok mempunyai ukuran dalam pengecatan yang terbagi dalam 3 kategori
kualitas yaitu kualitas tinggi, kualitas sedang dan kualitas rendah. Untuk kualitas
tingggi 5 Kg cat tembok dapat menutupi bidang dengan baik seluas 3 X 4 m2 atau
seluas 12 m2 dan kualitas sedang 5 Kg cat tembok dapat menutupi bidaang seluas
4 X 5 m2 atau seluas 20 m2 serta kualitas rendah 5 Kg cat tembok dapat menutupi
seluas 6 X 11 m2 atau seluas 66 m2.
Buatlah
penyelesaian studi kasus diatas dengan menggunakan bahasa pemrograman C/C++
untuk mempermudah dalam menghitung berapa jumlah cat tembok yang dibutuhkan
untuk ke 3 kategori kualitas.
Script
Running
program
Lembar Kerja Praktikum 19 : Soal Cerita
Buatlah Program menggunakan struktur tentang biaya kuliah
mahasiswa dengan ketentuan sebagai berikut
1. D3
Spp tetap = Rp. 500
Spp Variable = Rp. 250/sks
2. S1
Spp Tetap = Rp. 750
SPP variable = Rp. 500/sks
Script
#include<conio.h>
#include<iostream.h>
struct
mhs
{
char
nama[20], nim[20], prodi[3];
int
sks, program;
}bayar;
main()
{
int
var, tetap;
cout<<"
Nama Mahasiswa \t\t : "; cin>>bayar.nama;
cout<<"
Nim Mahasiswa \t\t\t : "; cin>>bayar.nim;
cout<<"
Prodi [ TI SI MI] \t\t : "; cin>>bayar.prodi;
input:
cout<<"
Program [1 = D3 / 2 = S1] \t : ";
cin>>bayar.program;
if(bayar.program
< 1 || bayar.program > 2)
{
cout<<"
Program Tidak Sesuai ";
goto
input;
}
cout<<"
Jumlah SKS \t\t\t : "; cin>>bayar.sks;
if(bayar.program
== 1)
{
tetap
= 500;
var
= bayar.sks*250;
}
else
if(bayar.program == 2)
{
tetap
= 750;
var
= bayar.sks*500;
}
cout<<"
"<<endl;
cout<<"
-----------------------------------------------------"<<endl;
cout<<"
\t\t\t OUT PUT "<<endl;
cout<<"
-----------------------------------------------------"<<endl;
cout<<"
Nama \t\t\t : "<<bayar.nama<<endl;
cout<<"
Nim \t\t\t : "<<bayar.nim<<endl;
cout<<"
Prodi \t\t\t : "<<bayar.prodi<<endl;
cout<<"
Program \t\t : "<<bayar.program<<endl;
cout<<"
Jumlah SKS \t\t : "<<bayar.sks<<endl;
cout<<"
Biaya SPP Tetap \t : "<<tetap<<endl;
cout<<"
Biaya SPP Variable \t : "<<var<<endl;
cout<<"
-----------------------------------------------------"<<endl;
getch();
return
0;
}
Hasil Running
DAFTAR ISI
1.
Bruce Eckel. (2000). Thinking in C++, Volume 1, 2nd Edition. Prentice Hall.
2.
Desphande P.S., O.G. Kakde (2004). C dan Data Structures. Charles River Media, Inc. Massachusetts
3.
Frieyadie. (2006). Panduan Pemrograman C++.
Andi : Yogyakarta
4.
Heriyanto, Imam, Budi Raharjo (2003). Pemrograman Borland C++ Builder. Informatika Bandung.
5.
Hermanto
Bambang, M.Cs, Tim Asisten Dasar-Dasar Pemrograman, Edisi I (2017), Modul Praktikum Dasar-Dasar Pemrograman,
Laboratorium Komputasi Dasar D3 Manajemen Informatika FMIPA Universitas Lampung
6.
Indrajit, Richardus Eko. Manajemen Sistem Informasi dan Teknologi Informasi.
7.
Indrajit, Richardus Eko. Kajian Strategis Analisa Cost-Benefit Investasi Teknologi Informasi.
8.
Kadir, Abdul. (2003). Pemrograman C++. Andi :
Yogyakarta
9.
Kristanto, Andri. (2003). Struktur Data Dengan
C++. Penerbit Graha Ilmu. Yogyakarta
10.
Lidya, Leoni, rinaldi Munir (2002). Algoritama dan Pemrograman dalam Bahas Pascal dan C. Informatika Bandung.
11.
Moh.Sjukani,
(2013), “Struktur Data (Algoritma
&Struktur Data 1) dengan C,C++”,
Mitra Wacana Media: Jakarta
12.
Moh.Sjukani,
(2012), “Struktur Data (Algoritma
&Struktur Data 2) dengan C,C++”,
Mitra Wacana Media: Jakarta
13.
Muliono Rizki, S.Kom., M.Kom, (2018), Modul Praktikum Algoritma
Struktur Data, Teknik Informatika, Universitas Medan Area, Medan
14.
Nugroho Adi. (2009). Algoritma Dan Struktur
Data Dalam Bahasa Java. Andi : Yogyakarta
15.
Sanjaya, Dwi (2005). Asyiknya Belajar Struktur Data di Planet C++. Elex Media Komputindo.
16.
Sjukani Moh. (2009). Struktur Data (Algoritma
& struktur Data 2) Dengan C, C++. Edisi 3. Mitra Wacana Media : Jakarta
17.
Solichin, Achmad (2003). Pemrograman Bahasa C dengan Turbo C. IlmuKomputer.Com
18.
https://www.thecrazyprogrammer.com/2017/05/travelling-salesman-problem.html
19.
https://www.geeksforgeeks.org/graph-and-its-representations/
20.
https://repository.bsi.ac.id/index.php/unduh/item/283413/Modul_strukturData.pdf