modul praktikum pti b 2015

32
KU1072 Modul Praktikum Pengenalan Teknologi Informasi B Institut Teknologi Bandung 2015

Upload: rikza-nur-faqih

Post on 18-Feb-2016

50 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Modul Praktikum PTI B 2015

KU1072

Modul

Praktikum

Pengenalan Teknologi Informasi B

Institut Teknologi Bandung 2015

Page 2: Modul Praktikum PTI B 2015

1 | P a g e

Daftar isi Bab I Pengenalan Pemrograman dengan C++ ................................................................................ 2

Sintaks Dasar Pemrograman ............................................................................................................. 3

Input, Output, Comment................................................................................................................... 4

Variabel dan Tipe Data ...................................................................................................................... 5

Bab II Ekspresi Operator dan Percabangan .................................................................................... 7

Operator ........................................................................................................................................... 8

Operator Aritmatik............................................................................................................................ 8

Operator Relasi ................................................................................................................................. 9

Operator Logika .............................................................................................................................. 10

Struktur Percabangan (If - Conditional)........................................................................................... 10

Switch dan Break ............................................................................................................................ 12

Bab III Tipe Data Bentukan ......................................................................................................... 14

Tipe Data ......................................................................................................................................... 15

1. Struktur ................................................................................................................................ 15

2. Enumerasi............................................................................................................................. 16

3. Typedef ................................................................................................................................ 16

Bab IV Pengulangan (Looping) .................................................................................................... 18

Logika Pengulangan ........................................................................................................................ 19

Do-While dan While-Do Loop ......................................................................................................... 19

For Loop .......................................................................................................................................... 21

Loop Bersarang ............................................................................................................................... 22

Bab V Array ............................................................................................................................... 23

Array ............................................................................................................................................... 24

Deklarasi Array ................................................................................................................................ 24

Array dan Variabel .......................................................................................................................... 24

Array 2 Dimensi ............................................................................................................................... 25

Array Multidimensi ......................................................................................................................... 27

Bab VI Fungsi dan Prosedur ........................................................................................................ 28

Fungsi dan Prosedur ....................................................................................................................... 29

Variabel Lokal .................................................................................................................................. 29

Page 3: Modul Praktikum PTI B 2015

2 | P a g e

Bab I

Pengenalan

Pemrograman dengan

C++

Page 4: Modul Praktikum PTI B 2015

3 | P a g e

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.

Page 5: Modul Praktikum PTI B 2015

4 | P a g e

Input, Output, Comment Dalam pemrograman, dikenal istilah input, output, dan komentar / comment. Input adalah masukan yang diberikan oleh pengguna / user ketika program dijalankan, sementara output adalah 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 line 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! Jawab :

Page 6: Modul Praktikum PTI B 2015

5 | P a g e

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;

}

Page 7: Modul Praktikum PTI B 2015

6 | P a g e

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;

}

Golfin Ekatria

STEI

16513166

Nama : Golfin Ekatria

NIM : 16513166

Fakultas : STEI

Page 8: Modul Praktikum PTI B 2015

7 | P a g e

Bab II

Ekspresi, Operator,

dan Percabangan

Page 9: Modul Praktikum PTI B 2015

8 | P a g e

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 operasi 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 adalah a = 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 !

Page 10: Modul Praktikum PTI B 2015

9 | P a g e

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 if 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 diperhatikan operasi 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;

}

Page 11: Modul Praktikum PTI B 2015

10 | P a g e

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 && true beroutput true

|| OR true || false beroutput true

! NOT !true beroutput false

Tabel 3 - Jenis Operator Logika

Seperti operator relasi, penjelasan lebih lanjut mengenai penggunaan operator logika akan ada pada subbab logika if.

Struktur Percabangan (IF – Conditional) Pada pemrograman, terdapat sebuah operasi logika matematika yang biasa digunakan untuk memecahkan masalah, operasi ini umumnya disebut operasi logika kondisional. Dilambangkan dengan kata if, 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 menjalankan statement 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

Page 12: Modul Praktikum PTI B 2015

11 | P a g e

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

Page 13: Modul Praktikum PTI B 2015

12 | P a g e

Perlu diperhatikan bahwa untuk kondisi terakhir (kondisi ketika bilangan sama dengan nol) tidak perlu dibuat if-logical lagi karena kondisi terakhir merupakan kondisi sisa.

Switch dan Break 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; }

Page 14: Modul Praktikum PTI B 2015

13 | P a g e

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.

Page 15: Modul Praktikum PTI B 2015

14 | P a g e

Bab III

Tipe Data Bentukan

Page 16: Modul Praktikum PTI B 2015

15 | P a g e

Tipe Data 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 :

1. Struktur 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;

string alamat;

}M;

Page 17: Modul Praktikum PTI B 2015

16 | P a g e

//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.panggilan=”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”

2. Enumerasi

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,......);

3. Typedef Typedef atau type definition berguna untuk mencipatakan nama lain dari suatu tipe data.

Salah satu fungsi dari typedef adalah untuk mempermudah penulisan struct yang kadang

terlalu panjang. Berikut adalah contoh pemakaian typedef :

typedef struct mahasiswa mhs;

Page 18: Modul Praktikum PTI B 2015

17 | P a g e

Pada contoh diatas, dijelaskan bahwa typedef berfungsi untuk memberi nama lain dari “struct

mahasiswa” menjadi “mhs” sehingga pada saat pendeklarisian struktur menjadi lebih ringkas

pada bagian program selanjutnya.

Page 19: Modul Praktikum PTI B 2015

18 | P a g e

Bab IV

Pengulangan (Looping)

Page 20: Modul Praktikum PTI B 2015

19 | P a g e

Logika Pengulangan 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

Do-While dan While-Do Loop 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 While-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 tulisan ‘START’ ! (Asumsi user akan selalu memberi masukan > 0) Jawab : Untuk mengerjakan kasus ini, perlu diketahui terdapat 2 operasi yang dilakukan, yaitu menampilkan teks dan melakukan perulangan. Teks yang ditampilkan dibuat dengan logika if sederhana, jika angka tidak sama dengan nol maka teks yang ditampilkan adalah angka tersebut. Bagian kedua, yaitu

int a;

for (a=1;a<=5;a++){

cout << “\nHello !”;

}

Output :

Hello !

Hello !

Hello !

Hello !

Hello !

Page 21: Modul Praktikum PTI B 2015

20 | P a g e

looping, dapat dikerjakan menggunakan Do-While maupun While-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){

// a = 0, tampilkan ‘START’

cout << “\nSTART”;

}

a--;

}while(a>=0); // Eliminasi loop, a < 0

return 0;

}

Page 22: Modul Praktikum PTI B 2015

21 | P a g e

For Loop 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;

}

Page 23: Modul Praktikum PTI B 2015

22 | P a g e

Loop Bersarang 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;

}

Page 24: Modul Praktikum PTI B 2015

23 | P a g e

Bab V

Array

Page 25: Modul Praktikum PTI B 2015

24 | P a g e

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.

Deklarasi 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 menyebabkan runtime error. Oleh

karena itu, tentukanlah rentang indeks yang akan digunakan saat deklarasi dengan tepat

(sesuai dengan kebutuhan)

Array dan Variabel 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

cin>>tabel[2]; .

Jika diberikan 5 buah bilangan , dan kita perlu menyimpan bilangan tersebut pada tabel , kita bisa

melakukan

Page 26: Modul Praktikum PTI B 2015

25 | P a g e

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 cara 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 :

Array 2 Dimensi Struktur array juga dapat membentuk sebuah tabel 2 dimensi

Contoh deklarasi array 2 dimensi : int matriks[2][5];

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;

}

Page 27: Modul Praktikum PTI B 2015

26 | P a g e

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 isi 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.

Page 28: Modul Praktikum PTI B 2015

27 | P a g e

Array Multidimensi 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;

}

Page 29: Modul Praktikum PTI B 2015

28 | P a g e

Bab VI

Fungsi dan Prosedur

Page 30: Modul Praktikum PTI B 2015

29 | P a g e

Fungsi dan Prosedur 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 dengan void dan tidak perlu ada sintaks return.

Variabel Lokal 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 lokalnya ketika fungsi tersebut berjalan. Pendeklarasian dan inisialisasi variabel lokal sama seperti variabel 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 :

vt = v0 + a. t

x = v0. t + 1

2at2

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>;

}

Page 31: Modul Praktikum PTI B 2015

30 | P a g e

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

Page 32: Modul Praktikum PTI B 2015

31 | P a g e

#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);

return 0;

}