KU1072
KU1072
Modul
Modul
Praktikum
Praktikum
Pengenalan Teknologi Informasi B
Pengenalan Teknologi Informasi B
Daftar isi
Daftar isi
Bab I Pengenalan Pemrograman dengan C++ ... 2 Bab I Pengenalan Pemrograman dengan C++ ... 2
Sintaks
Sintaks Dasar Dasar Pemrograman ...Pemrograman ... 3... 3 Input,
Input, Output, Output, Comment...Comment... 4... 4 Variabel
Variabel dan dan Tipe Tipe Data Data ... 5... 5 Bab II Ekspresi Operator dan Percabangan ... 7 Bab II Ekspresi Operator dan Percabangan ... 7
Operator ...
Operator ... ... 88 Operator
Operator Aritmatik ...Aritmatik ... 8... 8 Operator
Operator Relasi ...Relasi ... 9... 9 Operator
Operator Logika Logika ... ... 1010 Struktur Percabangan
Struktur Percabangan (If (If - Conditional) ...- Conditional) ... ... 1010 Switch
Switch dan dan Break Break ... 12... 12 Bab
Bab III III Tipe Tipe Data Data BentuBentukan ...kan ... 14... 14 Tipe
Tipe Data ...Data ... 15... 15 1. 1. Struktur ...Struktur ... ... 1515 2. 2. Enumerasi ...Enumerasi ... 1... 166 3. 3. Typedef ...Typedef ... ... 1616 Bab
Bab IV IV PenguPengulangalangan n (Loop(Looping) ...ing) ... ... 1818 Logika
Logika Pengulangan ... Pengulangan ... 1919 Do-While dan
Do-While dan While-Do Loop While-Do Loop ... ... 1919 For
For Loop ...Loop ... 21... 21 Loop
Loop Bersarang ...Bersarang ... 22... 22 Bab
Bab V V Array Array ... 23... 23 Array ...
Array ... 2... 244 Deklarasi
Deklarasi Array ...Array ... 24... 24 Array
Array dan Variabel dan Variabel ... ... 2424 Array
Array 2 2 Dimensi Dimensi ... 25... 25 Array
Array Multidimensi ...Multidimensi ... 27... 27 Bab
Bab VI VI FungFungsi si dan dan ProseProsedur ...dur ... 28... 28 Fungsi
Fungsi dan dan Prosedur Prosedur ... 29... 29 Variabel
Daftar isi
Daftar isi
Bab I Pengenalan Pemrograman dengan C++ ... 2 Bab I Pengenalan Pemrograman dengan C++ ... 2
Sintaks
Sintaks Dasar Dasar Pemrograman ...Pemrograman ... 3... 3 Input,
Input, Output, Output, Comment...Comment... 4... 4 Variabel
Variabel dan dan Tipe Tipe Data Data ... 5... 5 Bab II Ekspresi Operator dan Percabangan ... 7 Bab II Ekspresi Operator dan Percabangan ... 7
Operator ...
Operator ... ... 88 Operator
Operator Aritmatik ...Aritmatik ... 8... 8 Operator
Operator Relasi ...Relasi ... 9... 9 Operator
Operator Logika Logika ... ... 1010 Struktur Percabangan
Struktur Percabangan (If (If - Conditional) ...- Conditional) ... ... 1010 Switch
Switch dan dan Break Break ... 12... 12 Bab
Bab III III Tipe Tipe Data Data BentuBentukan ...kan ... 14... 14 Tipe
Tipe Data ...Data ... 15... 15 1. 1. Struktur ...Struktur ... ... 1515 2. 2. Enumerasi ...Enumerasi ... 1... 166 3. 3. Typedef ...Typedef ... ... 1616 Bab
Bab IV IV PenguPengulangalangan n (Loop(Looping) ...ing) ... ... 1818 Logika
Logika Pengulangan ... Pengulangan ... 1919 Do-While dan
Do-While dan While-Do Loop While-Do Loop ... ... 1919 For
For Loop ...Loop ... 21... 21 Loop
Loop Bersarang ...Bersarang ... 22... 22 Bab
Bab V V Array Array ... 23... 23 Array ...
Array ... 2... 244 Deklarasi
Deklarasi Array ...Array ... 24... 24 Array
Array dan Variabel dan Variabel ... ... 2424 Array
Array 2 2 Dimensi Dimensi ... 25... 25 Array
Array Multidimensi ...Multidimensi ... 27... 27 Bab
Bab VI VI FungFungsi si dan dan ProseProsedur ...dur ... 28... 28 Fungsi
Fungsi dan dan Prosedur Prosedur ... 29... 29 Variabel
Variabel Lokal ...Lokal ... 29... 29 Bab
Bab VII VII File File EksterEksternal nal ... .. 3232 File
Bab I
Bab I
Pengenalan
Pengenalan
Pemrograman dengan
Pemrograman dengan
C++
C++
Sintaks Dasar Pemrograman
Sebuah program umumnya memiliki penanda awal dan akhir dari sebuah program. Uniknya, untuk bahasa yang berbeda, penanda awal dan akhir program juga berbeda. Di dalam pseudocode, umumnya sebuah program diawali dengan kata begin dan diakhiri dengan kata end.
Contoh sintaks awal dan akhir program sesuai dengan bahasanya dapat dilihat dalam tabel berikut :
Untuk memahami sintaks lebih jauh, mari kita lihat contoh kasus berikut.
Kasus 1c : Hello World!
Sebelum menjadi seorang programmer handal, setiap programmer pasti akan memulai dengan membuat program Hello World! . Oleh karena itu, buatlah suatu program yang menampilkan Hello World! ke layar.
Input, Output, Comment
Dalam pemrograman, dikenal istilahinput, output, dan komentar /comment . Input adalah masukan yang diberikan oleh pengguna / user ketika program dijalankan, sementara output a dalah teks atau karakter tertentu yang ditampilkan ke layar devais.
Agar lebih mudah dimengerti, sebuah program umumnya mengandung komentar. Fungsi utama komentar adalah menjelaskan maksud dari langkah yang sedang dijalankan untuk membantu proses debugging dan membantu user membaca source code. Daftar sintaks untuk input, output, dan komentar pada C++ adalah sebagai berikut.
Jenis Perintah Pseudocode C
Input Input (variabel) cin >> (variable) Output Output (isi output) cout << (isi output) Comment /* (isi komentar) */ /* (isi komentar) */
Tabel 4 – Sintaks Input dan Output
Khusus untuk tipe data string, input dilakukan menggunakan sintaks getline(cin,<nama variabel>). Hal ini dikarenakan cin akan berhenti membaca input setelah menemukan spasi kosong. Untuk itu digunakan getline untuk menginput satu li ne sekaligus. Untuk lebih jelasnya simak kasus berikut.
Kasus 1d : Hello username!
Buatlah agar layar dapat menerima input nama user dan menampilkan “Hello <nama user> !” menggunakan bahasa C++. Jangan lupa menyertakan komentar!
Variabel dan Tipe Data
Variabel merupakan elemen yang dapat dimanipulasi dan memiliki tipe data tertentu. Tipe
data adalah jenis data yang mempunyai batasan tempat dan karakteristik sesuai dengan
interprestasi data dan dapat diolah oleh komputer untuk memenuhi kebutuhan dalam
pemrograman komputer.
Berikut adalah beberapa tipe data yang sering digunakan dalam dunia pemrograman :
Tipe Data Deskripsi Batasan
char karakter 1 karakter
int bilangan bulat -2147483648 … 2147483647
bool nilai boolean True atau False
float bilangan desimal
(+/-) 3.4e +/- 38 (~7 digits)
Tabel 5 – Tipe data yang sering digunakan dalam Bahasa C++
Penamaan variabel dalam C bebas, hanya saja tidak boleh mengandung spasi maupun karakter khusus seperti garis bawah, koma, dan titik.
Kasus 1e : Penggunaan variabel
Buatlah sebuah program yang menerima inputan nama , NIM, dan fakultas dari user dan tampilkanlah pada layar sebagai output.
Jawab :
#include<iostream> #include<string> using namespace std; int main(){
string nama; //deklarasi variabel nama getline(cin, nama); //input nama
cout << “Hello, ”<<nama<<”!”<<endl; //output return 0;
Contoh program setelah dijalankan #include<iostream>
#include<string> using namespace std; int main(){
string nama,fakultas; //deklarasi variabel nama,fakultas int NIM; //deklarasi variable NIM
getline(cin, nama); //input nama
getline(cin, fakultas); //input fakultas cin>>NIM; //input NIM
//output
cout << “\nNama : ” << nama << endl; cout << “NIM : ” << NIM <<endl;
cout << “Fakultas : ” << fakultas <<endl; return 0;
}
Catherine Priscilla STEI
16514333
Nama : Catherine Priscilla
NIM : 16514333
Bab II
Ekspresi, Operator,
dan Percabangan
Operator
Operator merupakan simbol tertentu dalam bahasa pemrograman yang mampu membuat compiler (penerjemah bahasa, dari bahasa yang ditulis pada layar menjadi bahasa mesin) melakukan sejumlah operasi tertentu.
Terdapat beberapa macam operator dalam C++. Tiga jenis operator dalam pemrograman adalah operator aritmatik, operator relasi, dan operator logika.
Operator Aritmatik
Pada dasarnya, pemrosesan angka membutuhkan operasi secara matematis seperti tambah, kurang, kali, dan bagi. Operator aritmatik memiliki fungsi untuk melakukan o perasi secara matematis pada bahasa pemrograman. Jenis operator aritmatik dapat dilihat pada tabel berikut.
Simbol Operator Nama dan Deskripsi Simbol + Tambah, berfungsi untuk operasi penambahan - Kurang, berfungsi untuk operasi pengurangan * Kali, berfungsi untuk operasi perkalian
/ Bagi atau Div, memiliki dua fungsi :
 Untuk tipe data float, melakukan operasi pembagian, contoh : 3.00 / 2.00 = 1.50
 Untuk tipe data integer, melakukan operasi pembagian round down, contoh 3 / 2 = 1
% Modulus, mengembalikan sisa pembagian, khusus tipe data integer, contoh 6 % 4 = 2
Tabel 1 - Operator Aritmatik pada C
Operator aritmatik dapat langsung digunakan untuk mengubah nilai suatu variabel. Sintaks umumnya <variabel> = <variabel / angka> <operator> <variabel / angka>; contohnya adalaha = a + 3; akan menghasilkan nilai a baru yang bernilai a sebelumnya ditambah dengan 3. Masih ada satu jenis penulisan operator aritmatik yang lain yaitu increment dan decrement. Increment dilambangkan dengan <variabel>++; dan decrement dilambangkan dengan <variabel>--;. Tipe ini setara dengan <variabel a> = <variabel a> + 1; dan<variabel a> = <variabel a> - 1;.
Pada pemrosesan aritmatik, terkadang kita perlu menggunakan pengubahan tipe data secara pemaksaan . Pengubahan tipe data di tengah dengan cara ini menyebabkan operasi memiliki hasil berbeda, khususnya untuk penggunaan simbol bagi atau div (‘/’) sebab pemrosesan di dalam prosesor akan melakukan proses yang berbeda. Untuk lebih jelasnya, lihat studi kasus berikut. Kasus 2e : From integer to float
Perubahan tipe data sangat umum dalam pemrograman. Pada sebuah program perhitungan hasil bagi, user pada umumnya memasukkan angka dalam tipe integer. Sebagai latihan, buat sebuah program yang menghitung hasil bagi dua bilangan integer dalam bentuk float !
Jawab :
Dalam kasus ini, akan digunakan pengubahan tipe data ketika operasi pembagian sedang berjalan. Contoh programnya adalah sebagai berikut.
Perlu diperhatikan bahwa (float) memaksa fungsi operator div (pembagian bil. bulat) menjadi operator pembagian biasa (bilangan desimal). Bisa juga dilakukan lewat bentuk berikut : hasil = float (a) / b.
Operator Relasi
Operator relasi adalah operator yang digunakan untuk menyatakan relasi atau hubungan antara dua variabel. Berbeda dengan operator aritmatik, operator relasi akan selalu menghasilkan data true atau false.
Penggunaan operator relasi umumnya terdapat pada statement i f sebagai syarat true atau false. Jenis operator relasi adalah sebagai berikut.
Simbol Definisi Bernilai True jika
== Sama dengan 10 == 10
!= Tidak sama dengan 8 != 10
> Lebih dari 12 > 7
< Kurang dari 10 < 33
>= Lebih dari sama dengan 14 >= 14 <= Kurang dari sama dengan 1 <= 1
Tabel 2 - Jenis Operator Relasi
Penggunaan operator relasi akan dijelaskan lebih lanjut pada subbab logika if .
NB: Perlu diperhatikanoperasi sama dengan menggunakan tanda sama dengan sebanyak 2 kali (==). Tanda sama dengan 1 kali hanya berfungsi untuk mengassign nilai.
#include <iostream> using namespace std; int main () { // Deklarasi variabel int a,b float hasil;
// Input dari user
cin >> a; cout << endl; cin >> b; cout << endl;
// Proses, perhatikan (float) hasil = (float) a/b;
// Output, panggil variabel hasil
cout << “Hasil bagi kedua bilangan adalah “ >> hasil;
return 0; }
Operator Logika
Tipe operator yang ke tiga adalah operator logika. Operator logika adalah simbol yang memiliki fungsi khusus untuk melakukan operasi logika seperti AND,OR,NOT, XOR,dan masih banyak yang lainnya. Penggunaan operator logika biasanya berhubungan dengan operator relasi, yaitu sebagai penghubung antara dua operator relasi. Lebih jelasnya, operator logika menghubungkan hasil (true atau false) yang didapat dari operasi relasi dan memberikan hasil baru (true atau false) berdasarkan operasi logika matematika.
Jenis operator logika terdapat pada tabel di bawah ini.
Operator Fungsi Contoh penggunaan && AND true &&trueberoutputtrue
|| OR true|| false beroutputtrue
! NOT !true beroutput false
Tabel 3 - Jenis Operator Logika
Seperti operator relasi, penjelasan lebih lanjut mengenai penggunaan operator logika akan ada pada subbab logikaif .
Pada pemrograman, terdapat sebuah operasi logika matematika yang biasa digunakan untuk memecahkan masalah, operasi ini umumnya disebut operasi logika kondisional. Dilambangkan dengan kataif , operasi ini akan melakukan / mengeksekusi deretan perintah selanjutnya jika kondisi awalnya telah dipenuhi. Contoh sintaks if dalam C++ adalah sebagai berikut :
Bagian expression adalah bagian syarat dari if-conditional . Pada bentuk ke dua, apabila bagian
expression dipenuhi, maka program akan menjalankan statement 1, apabila tidak dipenuhi, maka program akan menjalankanstatement 2.Statement berisi perintah-perintah yang akan dijalankan oleh program seperti perintah print ,scan, atau manipulasi variabel.
Selain bentuk if-conditional standar, terdapat juga bentuk if-conditional bertingkat. Flowchart dan sintaks dari dari if bertingkat adalah sebagai berikut.
if <kondisi/expression> { statement 1 } Atau if <kondisi/expression> { statement 1 } else { statement 2 } Start Process 1 Process 2 End Cond. No Yes
Struktur Percabangan
IF
onditional
Untuk lebih memahami mengenai penggunaan if-logical, simak contoh soal berikut ini. Kasus 2a : Cek positif, negatif, atau nol
Pengecekan bilangan positif, negatif, atau nol adalah sebuah fungsi dasar yang umum digunakan pada program berskala kecil sampai besar. Untuk itu, buatlah program yang dapat menerima input dari user berupa integer dan mengecek apakah bilangan tersebut positif, negatif, atau bilangan nol. Jawab :
Untuk membuat program yang menjawab permasalahan diatas, perlu diketahui syarat-syarat atau kondisi dari permasalahan. Kita tahu bahwa bilangan positif adalah bilangan dengan nilai > 0, bilangan negative adalah bilangan dengan nilai < 0, dan bilangan nol memiliki nilai = 0. Untuk itu kita harus mengecek setiap syarat yang ada. Urutan pengecekan sebenarnya bebas, berikut contoh jawaban. if <kondisi/exp. 1> {statement 1} else { if <kondisi/exp. 2> {statement 2} else { if <kondisi/exp. 3> {statement 3} . . . else { if <kondisi/exp. n> {statement n} else {statement else} }}}}}}}
// kurung kurawal tutup // sebanyak n buah
Perlu diperhatikan bahwa untuk kondisi terakhir (kondisi ketika bilangan sama dengan nol) ti dak perlu dibuat if-logical lagi karena kondisi terakhir merupakan kondisi sisa.
Selain if, masih ada 1 cara lagi untuk percabangan yaitu menggunakan sintaks switch. Sintaks switch akan mencocokan nilai suatu variabel dengan syarat yang telah ditentukan. Perlu diketahui bahwa switch memperlakukan pengecekan menggunakan operator relasi ‘sama dengan’ (==). Sintaks switch adalah sebagai berikut.
#include <iostream> using namespace std; int main () {
int a; // deklarasi variabel
cin >> a; // menerima input dari user if (a > 0){
// bilangan positif
cout << ”\nbilangan ini positif”;} else{
if (a < 0){
// bilangan negatif
cout << ”\nbilangan ini negatif”;} else{
// tidak positif dan tidak negatif cout << ”\nbilangan ini nol”;}
}
return 0; }
switch (variabel) {
case <kondisi 1> : <statement 1>; break;
case <kondisi 2> : <statement 2>; break;
. .
case <kondisi n> : <statement n>; break;
default : <statement default> break;
}
Switch dan Break
Terdapat salah satu perintah baru dalam sintaks diatas yaitu break. Perintah break digunakan untuk menyelesaikan proses looping atau pengecekan logika di dalam sebuah program. Pada contoh diatas, apabila tidak ditulis break setelah statement, maka variabel akan dicocokkan dengan semua kondisi meskipun sudah ditemukan kondisi yang cocok.
Bab III
Pada bahasa pemrograman C / C++, secara umum terdapat dua buah tipe yaitu tipe data dasar dan tipe bentukan. Tipe data dasar merupakan tipe data variabel standar yang telah disediakan. Contoh tipe data dasar adalah : integer, float, boolean, double dan char. Tipe data dasar dapat langsung digunakan pada variabel yang dibuat.
Untuk keperluan khusus pada pemrograman, user dapat membuat tipe bentukan sendiri. Berikut adalah jenis tipe bentukan :
Struktur adalah tipe data bentukan yang menyimpan lebih dari satu variabel bertipe sama ataupun berbeda. Berikut adalah bentuk umum penulisan struktur :
struct nama_struktur { tipe_data variabel1; tipe_data variabel2; ... }; ---struct nama_struktur { tipe_data variabel1; tipe_data variabel2; ... }nama_variabel; Contoh program : Contoh 1: struct mahasiswa { int NIM; string nama; string alamat; };
//contoh pendeklarasian variabel M dengan //tipe data mahasiswa struct mahasiswa M ;
//cara mengakses variabel M M .NIM=13213000; M .nama=”Abah”; Contoh 2: struct mahasiswa { int NIM; string nama;
Tipe Data
1.
Struktur
//cara akses
M.NIM=13213000;
M.nama=”Abah”;
Berdasarkan contoh diatas, dapat ditarik kesimpulan bahwa : variabel M, memiliki tipe mahasiswa. Tipe mahasiswa dibentuk oleh user dan memiliki sub tipe NIM, nama dan alamat. Pada penulisan seperti contoh 2, variabel M tidak perlu dideklarasikan dan langsung dapat diakses.
Struktur dapat dideklarasikan secara bertingkat. Pada kasus ini maka terdapat struktur di dalam struktur lainnya. Contoh cara untuk deklarasi dan mengakses struktur bertingkat :
struct namax { string lengkap; string panggilan; }; struct mahasiswa { int NIM;
struct namax nama; string alamat; };
//deklarasi variabel M bertipe mahasiswa struct mahasiswa M;
//cara mengakses struktur dalam struktur M.nama.pang gilan=”Budi”;
Pada contoh diatas, variabel “M” memiliki tipe “mahasiswa” dan ingin mengakses sub tipe “nama”. Tipe “nama” sendiri merupakan variabel dengan tipe bentukan “namax” yang salah
satu sub tipe nya adalah “panggilan”
Tipe enumerasi adalah tipe data yang nilainya telah didefinisikan sejak awal tipe tersebut dibuat oleh user. Tipe ini digunakan untuk membentuk tipe data yang nilainya bersifat pasti. Misalnya : nama hari dan jenis kelamin.
Bentuk umum :
enum nama_tipe(nilai1,nilai2,nilai3,...);
Pada contoh diatas, dijelaskan bahwa ty pedef berfungsi untuk memberi nama lain dari “struct mahasiswa” menjadi “mhs” sehingga pada saat pendeklarisian struktur menjadi lebih ri ngkas
Bab IV
Pada pemrograman, sering kali dibutuhkan pemrosesan berulang-ulang untuk mencapai suatu hasil tertentu. Apabila pengulangan ini dilakukan secara manual ukuran file program akan menjadi terlalu
besar. Contoh sederhana adalah jika kita ingin menuliskan “Hello World” di layar sebanyak 7 kali, maka
akan dibutuhkan paling tidak 7 baris perintah. Menggunakan sintaks pengulangan, persoalan tersebut dapat diselesaikan hanya menggunakan 3 baris program.
Flowchart 1 - Chart Looping
Salah satu sintaks yang looping / pengulangan yang sering digunakan adalah sintaks Do-While dan While-Do. Untuk jenis Do-While, program akan menjalankan statement terlebih dahulu sebelum melakukan pengecekan kondisi looping. Sebaliknya, untuk W hile-Do, program akan mengecek kondisi looping terlebih dahulu sebelum menjalankan statement yang ada di dalamnya.
Dari bentuk diatas, bentuk Do-While akan selalu menjalankan statement yang ada di dalamnya minimal sebanyak satu kali, sementara While-Do bisa saja tidak menjalankan statement di dalamnya sama sekali karena kondisi looping tidak dipenuhi. Sintaks kedua jenis looping adalah sebagai berikut.
Do-While While-Do
do
{<statement loop>} while (<kondisi loop>);
while (<kondisi loop>) {<statement loop>}
Untuk lebih jelas mengenai looping, simaklah persoalan berikut.
Kasus 3a : Perhitungan Mundur
Pada perlombaan balap mobil, umumnya terdapat istilah countdown atau hitung mundur untuk menandakan dimulainya balapan. Hitung mundur ini dilakukan dengan menampilkan teks hitungan
dan tulisan ‘START’ ketika hitungan mencapai nol. Buatlah sebuah program yang menerima input user
berupa bilangan integer dan menampilkan hitungan saat itu. Apabila hitungan mencapai nol, program akan menampilkan t ulisan ‘START’ ! (Asumsi user akan selalu memberi masukan > 0)
Jawab :
Untuk mengerjakan kasus ini, perlu diketahui terdapat 2 operasi yang dilakukan, yaitu menampilkan int a; for (a=1;a<=5;a++){ cout << “\nHello !”; } Output : Hello ! Hello ! Hello ! Hello ! Hello !
Logika Pengulangan
looping, dapat dikerjakan menggunakan Do-While maupun W hile-Do. Perbedaan utamanya terdapat pada kondisi looping. Untuk lebih jelasnya, simak contoh program pada halaman berikutnya.
Solusi While-do : Solusi Do-While : #include <iostream> using namespace std; int main () { // Deklarasi variabel int a, i; // Proses cin >> a; // Input while (a >= 0){ if (a > 0){ // a > 0, tampilkan angka cout << a << endl; } else // a = 0, tampilkan ‘START’ cout << “\nSTART”; } a--; } // Eliminasi loop, a < 0 return 0; } #include <iostream> using namespace std; int main () { // Deklarasi variabel int a, i; // Proses cin >> a; // Input do{ if (a > 0){ // a > 0, tampilkan angka cout << a << endl; } else if (a == 0){
Bentuk looping yang ke tiga adalah bentuk For. Bentuk ini umumnya digunakan untuk pengulangan yang sudah diketahui jumlahnya. Namun, for loop juga dapat dibuat seperti do-while ataupun while-do loop. Sintaks loop for adalah sebagai berikut.
Variabel loop adalah variabel yang digunakan untuk menyimpan nilai hitung / counter dalam menjalankan loop for. Umumnya variabel counter ini bertipe integer dan mengalami increment / decrement. Untuk kondisi infinite loop atau loop yang tak berhenti, cukup kosongkan ketiga bagian <variable loop>, <kondisi looping>, dan <inc/decrement>.
Contoh penggunaan loop for dapat dilihat dalam kasus berikut ini.
Kasus 3b : Perhitungan Jumlah Bilangan diantara 2 bilangan
Misalkan anda diberi masukan berupa 2 buah bilangan bulat positif. Carilah hasil penjumlahan semua bilangan diantara 2 bilangan tersebut (inklusif)
Jawab :
for (<variabel loop>;<kondisi looping>;<inc/decrement>){ <statement loop> } #include <iostream> using namespace std; int main () { // deklarasi variabel
int i, awal, akhir, jumlah; // input dari user
cout<<”Nilai awal : ”; cin >> awal; cout<<”Nilai akhir : ”; cin>>akhir; // inisialisasi sum
jumlah = 0;
// proses looping
for (i=awal;i<=akhir;i++){ jumlah = jumlah + i;
} // loop selesai ketika i > akhir // output ke layar
cout << “\njumlah bilangan bulat diantara ”<<awal<<“ dan ”<<akhir<<“ (inklusif) adalah : “ << jumlah<<endl ;
return 0; }
Setelah memahami mengenai perulangan, marilah kita mencoba beranjak ke soal yang lebih menantang.
Kasus 3c : Pola Persegi
Sekarang anda diminta untuk membuat suatu pola persegi dengan sisi N Jawab :
Untuk membuat suatu persegi kita mesti menggunakan “for di dalam for”. 1 for digunakan untuk
mencetak 1 baris bintang dan for lainnya digunakan untuk mengganti baris
#include <iostream> using namespace std; int main () {
// deklarasi variabel int i, j, n;
// input dari user
cout<<”Sisi : ”; cin >> n; // proses looping
for (i=0;i<n;i++){ for (j=0;j<n;j++){
cout<<”*”; //cetak bintang sebaris }
cout<<endl; //berganti baris }
return 0; }
Bab V
Array
Array adalah variabel dengan satu buah nama, tetapi mengandung banyak nilai. Akses nilai-nilainya dilakukan dengan indeks.
Perhatikanlah contoh berikut !
Indeks 0 1 2 3 4 5 6 7 8 9
A 3 10 5 7 11 19 23 35 37 12
 A[0] = 3  A[1] = 10  A[7] = 35
Pada contoh diatas, kita memiliki sebuah variabel yang bernama A. Variabel A tersebut memiliki 10 buah nilai, dimana nilai-nilai tersebut dapat diakses dengan indeks. Untuk mengakses indeks ke – x, gunakanlah A[x]. Dan nilai A[x] itu bisa kita anggap sebagai variabel yang berdiri sendiri. Konsep inilah yang kita sebut dengan array.
Karena array juga merupakan sebuah variabel, maka array juga memerlukan deklarasi seperti variabel lainnya.
Format deklarasi array : <tipe data> <nama>[<jumlah arrray>];
 <nama> adalah nama dari array (aturan penamaan sama seperti variabel biasanya  <jumlah array> adalah rentang indeks array dari 0 sampai jumlah array – 1
 <tipe data> adalah tipe data dari array. Dapat berupa integer, string, char, float, boolean, tipe bentukan, dan lain lain
Contoh : int A[10];
 Untuk contoh tersebut array A yang terdefinisi adalah A[0], A[1], A[2], … , A[9]
 Mengakses nilai indeks di luar batasan tersebut akan menyebabkanruntime error. Oleh karena itu, tentukanlah rentang indeks yang akan digunakan saat deklarasi dengan tepat (sesuai dengan kebutuhan)
Suatu array dapat kita anggap sebagai variabel, sehingga segala jenis operasi pada variabel juga berlaku pada array. Sebagai contoh, kita memiliki suatu array tabel[10]. Maka array tabel tersebut akan terdefinisi untuk indeks 0 sampai dengan indeks 9. Maka kita bisa melakukan instruksi
Array
Deklarasi Array
Namun, cara menginput tersebut kurang efisien. Akan lebih efisien jika kita menginput menggunakan perulangan (looping).
Dapat kita lihat bahwa penginputan dengan perulangan jauh lebih efisien daripada c ara penginputan yang sebelumnya. Untuk lebih jelas mengenai penggunaan array, perhatikan contoh berikut
Kasus 4a : Membalik urutan N buah bilangan
Buatlah sebuah program yang menerima inputan N buah bilangan dan mencetak N buah bilangan tersebut dengan urutan terbalik.
Jawab :
Struktur array juga dapat membentuk sebuah tabel 2 dimensi
cin>>tabel[0]; cin>>tabel[1]; cin>>tabel[2]; cin>>tabel[3]; cin>>tabel[4]; for (i=0;i<5;i++){ cin>>tabel[i]; } #include <iostream> using namespace std; int main () { // Deklarasi variabel
int i, N; // i = counter, N = input user int tabel[100];
// variabel array
// Input, inisialisasi banyak bilangan cin >> N;
// Loop
for (i = 0; i < N; i++) { cin>>tabel[i];
} // loop selesai apabila I >= N for (i=N-1; i >= 0;i--){
cout<<tabel[i]<<endl;
} // loop selesai apabila I < 0 return 0;
}
Penjelasan contoh diatas :
1. Array matriks tersebut bertipe data integer
2. Kini kita memiliki variabel matriks[a][b] , yang terdefinisi untuk 0 ≤  ≤ 1, 0 ≤  ≤ 4 3. Struktur matriks tersebut dapat kita lihat seperti pada tabel di bawah ini
0 1 2 3 4
0 1
Kasus 4b : Operasi Matriks
Matriks merupakan sekumpulan variabel yang dapat dioperasikan sesuai dengan indeksnya. Definisi matriks sangat sesuai dengan definisi array 2 dimensi, karena itu array juga dapat dioperasikan seperti matriks. Buatlah program yang mampu melakukan operasi sederhana pada matriks seperti penjumlahan ! Jumlah matriks yang digunakan adalah 2 buah matriks dengan ukuran 2x2. Isi dari matriks merupakan bilangan integer (bebas). Tampilkan hasil operasi penjumlahan dan pengurangan ke layar user !
Jawab :
Sama seperti kasus sebelumnya, pertama-pertama kelompokkan informasi yang ada di soal : 1. Terdapat 2 array 2 dimensi dengan ukuran 2x2
2. Isi array merupakan bilangan integer, dibebaskan. Asumsikan i si array sudah fix.
3. Operasi yang dilakukan adalah penjumlahan antara dua matrix, kemudian hasil operasi ditampilkan di layar.
Dari informasi yang ada, dibutuhkan empat variabel, yaitu variabel counter 1, variabel counter 2, variabel matriks 1, dan variabel matriks 2. Hasil operasi bisa saja dimasukkan ke variabel baru, namun untuk mempersingkat, akan kita buat isi program sebagai berikut.
Tidak hanya sampai 2 dimensi, array juga dapat kita deklarasi 3 dimensi, 4 dimensi, 5 dimensi, bahkan lebih dari itu pun bisa.
Sebagai contoh : int data [2][50][50]; Penjelasan contoh diatas :
1. Array matriks tersebut bertipe data integer
2. Kini kita memiliki variabel data[i][j][k] , yang terdefinisi untuk 0 ≤  ≤ 1, 0 ≤  ≤ 49, 0 ≤  ≤ 49
3. Akses elemen dapat dilakukan dengan data[i][j][k] . #include <iostream>
using namespace std; int main () {
// Inisialisasi dan deklarasi variabel int i,j;
int mat1[2][2] = {{2,3},{5,7}}; int mat2[2][2] = {{1,6},{4,9}}; //Looping untuk baris
for (j=0;j<2;j++){
//Looping untuk kolom for (i=0;i<2;i++){ //Output ke layar cout << mat1[j][i]+mat2[j][i] << ” “; } //New line cout << endl; } return 0; }
Array Multidimensi
Bab VI
Setelah belajar mengenai program dan berbagai proses seperti input output, deklarasi dan operasi variabel, logika bercabang / if , dan looping, bagian terakhir dari dasar pemrograman adalah penggunaan fungsi dan prosedur.
Apa itu fungsi ? Fungsi adalah suatu bagian dari program yang mampu mengerjakan tugas atau operasi tertentu di luar program utama. Pada dasarnya sebuah prosedur adalah fungsi, hanya saja prosedur tidak mengembalikan nilai seperti fungsi.
Sintaks fungsi dalam C++ adalah sebagai berikut :
Pemanggilan fungsi di dalam program cukup dengan mendeklarasikan nama fungsi dan variabel yang digunakan sebagai parameter fungsi. Pastikan variabel yang digunakan memiliki tipe yang cocok dengan parameter fungsi. Prosedur memiliki sintaks sama, hanya saja pada bagian <tipe data> diisi denganvoid dan tidak perlu ada sintaksreturn.
Dengan adanya fungsi, variabel dibagi menjadi 2 yaitu variabel lokal dan global. Variabel lokal adalah variabel yang nilainya hanya berlaku di dalam fungsi tersebut. Variabel lokal akan dihapus nilainya setelah fungsi selesai. Variabel global, sebaliknya merupakan variabel yang berlaku di dalam program. Variabel global bisa saja diubah atau dioperasikan nilainya oleh sebuah fungsi. Tetapi, sebuah fungsi ada baiknya hanya mengoperasikan parameter dan variabel lo kalnya ketika fungsi tersebut berjalan. Pendeklarasian dan inisialisasi variabel lokal sama seperti var iabel global. Perbedaannya, variabel lokal dideklarasikan di bawah fungsi tertentu.
Untuk lebih memahami penggunaan fungsi, perhatikanlah contoh berikut : Kasus 5a : Persamaan Posisi, Percepatan, dan Kecepatan
Pada ilmu fisika, terdapat suatu fungsi yang digunakan untuk mencari posisi, percepatan, dan kecepatan dari suatu objek. Fungsi ini biasa disebut persamaan Newton yang umumnya dideklarasikan sebagai berikut :
v = v+ a. t x = v. t +
1 2at
Fungsi akan terlalu panjang apabila ditulis dalam satu program. Untuk itu, buatlah program yang menerima masukan dari user berupa nilai kecepatan awal, percepatan, dan waktu dengan tipe float, kemudian menampilkan nilai kecepatan akhir dan jarak. Perhitungan kecepatan akhir, jarak, dan penampilan hasil akhir berada pada fungsi dan prosedur terpisah yang terdefinisi sebagai berikut.
<tipe data> <nama fungsi> (parameter fungsi) {
<isi fungsi>
return <nilai balik fungsi>; }
Fungsi dan Prosedur
Jawab :
Seperti biasa, kelompokkan terlebih dahulu informasi yang diperoleh dari soal seperti berikut.
1. Terdapat 3 variabel dengan tipe float yang diinput oleh user yaitu variabel kecepatan, percepatan, dan waktu.
2. 2 Variabel hasil yaitu posisi dan kecepatan akhir.
3. Terdapat 2 fungsi dan 1 prosedur yaitu countpos, countvelocity, dan showresult. 4. Persamaan untuk kedua fungsi didefinisikan dalam soal.
Dari hal-hal tersebut, program dapat dibuat seperti berikut. Perlu diperhatikan bahwa penambahan jumlah variabel untuk menyimpan nilai posisi dan kecepatan akhir tidak bersifat wajib.
float countpos (float v, float a, float t)
// Fungsi countpos menghitung posisi objek dengan // kecepatan v, percepatan a, dan pada waktu t float countvelocity(float v, float a, float t)
// Fungsi countvelocity menghitung kecepatan akhir // objek dengan kecepatan v, percepatan a, dan waktu t void showresult(float velo, float pos)
// Prosedur showresult menampilkan hasil perhitungan // 2 fungsi sebelumnya ke layar
#include <iostream> using namespace std; // Deklarasi fungsi
float countpos (float v, float a, float t) {
// Deklarasi variabel lokal float position;
// Proses
position = v*t + (0.5*v*t*t); // Kembalikan nilai position return position;
}
float countvelocity (float v, float a, float t) {
// Deklarasi variabel lokal float velo;
// Proses
velo = v + a*t;
// Kembalikan nilai kecepatan / velo return velo;
}
void showresult (float velo, float pos) {
// Proses, variabel lokal tidak dibutuhkan
cout << “Posisi benda adalah pada ” << pos << “meter” << endl;
cout << “Kecepatan akhir benda adalah “ << velo << “meter per sekon” << endl; } // Program utama int main () { // Deklarasi variabel float a,v,t;
float finalvelo, finalpos; // Proses
cout << “Masukkan nilai kecepatan : “; cin >> v; cout << endl;
cout << “Masukkan nilai percepatan : “; cin >> a; cout << endl;
cout << “Masukkan nilai waktu : “; cin >> t; cout << endl;
// Lakukan perhitungan dan assign nilai finalvelo = countvelocity(v,a,t);
finalpos = countposition(v,a,t); // Tampilkan dengan showresult showresult(finalvelo, finalpos);
Bab VII
Jika Anda perhatikan, sampai saat ini kita hanya menggunakan keyboard sebagai media input kita dan layar monitor. Untuk program sederhana, tentu saja cara ini sudah sangat mumpuni. Namun, ada kalanya kita ingin nilai yang kita input/output atau nilai variable disimpan sehingga masih dapat dipakai walaupun program telah selesai dieksekusi. Untuk masalah tersebut, kita menggunakan file eksternal.
Terdapat dua jenis file yang dapat dibaca/ditulis. Yang pertama adalah file teks, yaitu file yang dapat dibaca dan ditulis langsung menggunakan teks editor biasa sperti notepad. File teks akan menyimpan data dalam bentuk karakter. Jenis file kedua adalah file biner, file dengan format khusus yang hanya dapat dibaca dengan program khusus juga. Contohnya, coba Anda buka file berekstensi pdf menggunakan notepad, terlihat karakter-karakter yang tidak dapat kita maknai. Pada modul ini, kita hanya akan fokus pada jenis file yang pertama.
Cara membaca dan menulis data kedalam file cukup mirip dengan penggunaan cin dan cout, hanya saja kita menggunakantipe data ifstream untuk membaca dan ofstream untuk menulis data. Sebagai contoh, perhatikan persoalan dibawah.
Kasus 6a : Hello username!
Buatlah agar layar dapat menerima input nama user dan menuliskan “Hello <nama user> !” pada file external menggunakan bahasa C++.
#include <iostream>
#include <fstream> //agar dapat menggunakan ifstream dan ofstream using namespace std;
int main () {
string nama; //deklarasi variabel nama
ofstream myfile ("contoh.txt"); //deklarasi variable myfile if (myfile.is_open())
{
getline(cin, nama); //input nama
myfile << “Hello, ”<<nama<<”!”<<endl; //output ke file
myfile.close(); //penting! Menandakan file telah selesai diproses }
else cout << "File tidak dapat dibuka"; return 0;
}
Kasus 6b : Membaca file external
Setelah menyelesaikan Kasus 6a, Anda tentu ingin mengetahui isi dari file external yang kalian buat. Buatlah program untuk membaca contoh.txt!
#include <iostream>
#include <fstream> //agar dapat menggunakan ifstream dan ofstream using namespace std;
int main () {
string line; //deklarasi variabel line
ifstream myfile ("contoh.txt"); //deklarasi variable myfile