Praktikum Sistem Basis Data
MODUL 1 Pemrograman dengan Bahasa C++
Praktikum Sistem Basis Data | MODUL 1
“
First solve the problem. Then, write the code” (John Johnson)
:) 2|Page
Praktikum Sistem Basis Data | MODUL 1
DAFTAR ISI
Tujuan Praktikum ......................................................................................................................................................5 Tujuan Umum.......................................................................................................................................... 5 Tujuan Khusus ......................................................................................................................................... 5 Kata Penting ................................................................................................................................................................5 1. Pengenalan Algoritma dan Pemrograman ......................................................................................................6 1.1.
Algoritma ................................................................................................................................................... 6
1.2.
Algoritma dalam Pemrograman.......................................................................................................... 6
1.3.
Sintaks Program ....................................................................................................................................... 7
1.4.
Input, Output, dan Komentar ............................................................................................................... 8
1.5.
Variabel dan Tipe Data .......................................................................................................................... 9
2. Ekspresi, Operator, dan Percabangan .............................................................................................................11 2.1.
Ekspresi ...................................................................................................................................................... 11
2.2.
Operator.................................................................................................................................................... 11
2.3.
Operator Relasi........................................................................................................................................12
2.4.
Operator Logika ......................................................................................................................................12
2.5.
Struktur Percabangan (IF-Conditional .............................................................................................. 13
3. Pengulangan (Looping) ...................................................................................................................................... 16
4.
5.
6.
3.1.
Logika Pengulangan .............................................................................................................................. 16
3.2.
Switch Break .............................................................................................................................................16
3.3.
Do-While dan While-Do-Loop ........................................................................................................... 17
3.4.
For Loop ....................................................................................................................................................19
Array .................................................................................................................................................................... 21 4.1.
Array ...........................................................................................................................................................21
4.2.
Dimensi ......................................................................................................................................................21
4.3.
Operasi dengan Array .......................................................................................................................... 22
Fungsi dan Prosedur ...................................................................................................................................... 25 5.1.
Fungsi dan Prosedur ............................................................................................................................. 25
5.2.
Variabel Lokal dan Global ................................................................................................................... 25
5.3.
Fungsi Rekursif ........................................................................................................................................ 25
Record (Struct) ................................................................................................................................................. 28 3|Page
Praktikum Sistem Basis Data | MODUL 1
7.
6.1
Cara Menginisiasikan Struct ................................................................................................................ 28
6.2
Contoh Penggunaan Struct ................................................................................................................ 29
6.3
Penggabungan Array dan Record .................................................................................................... 30
Error Handling ................................................................................................................................................. 33
DAFTAR REFERENSI ................................................................................................................................................. 35 TUGAS PENDAHULUAN ........................................................................................................................................ 36
4|Page
Praktikum Sistem Basis Data | MODUL 1
Tujuan Praktikum Tujuan Umum
Praktikan mampu memahami bahasa C++
Praktikan mampu memahami pemrograman berorientasi logika
Tujuan Khusus Pada praktikum ini Anda akan diharapkan untuk menguasai poin-poin berikut ini.*)
1. 2. 3. 4. 5.
Pengenalan algoritma dalam pemrograman C++ Pengenalan ekspresi dan operator dalam C++ Pemahaman dan pembuatan logika percabangan dan pengulangan Pemahaman dan pembuatan pengelompokkan data dalam Array Pemahaman pembuatan operasi tertentu di luar program utama
------------------------------------------------------------------------------------*) beri tanda pada kotak di samping jika Anda sudah menguasai.
Kata Penting Pseudo-code IF-Conditional Switch-Break Do-While For-Loop
Loop-Condition While-Do-Loop Array
Selamat Belajar!
5|Page
Praktikum Sistem Basis Data | MODUL 1
1. Pengenalan Algoritma dan Pemrograman 1.1.
Algoritma Dalam ilmu matematika dan komputasi, algoritma berarti langkah-langkah yang
harus ditempuh untuk kalkulasi atau pemecahan masalah. Pada dasarnya definisi algoritma merupakan sesuatu yang abstrak dan kompleks. Namun algoritma bisa saja sederhana, hanya perlu diketahui terkadang ada beberapa proses yang dilewati dan dianggap sudah dilakukan.
1.2.
Algoritma dalam Pemrograman
Dalam pemrograman, algoritma adalah dasar dari program yang akan dibuat. Algoritma akan menentukan bagaimana keberjalanan sebuah program. Tahap penyusunan algoritma sebelum membuat program umumnya disebut pseudo-coding. Tidak ada sintaks formal untuk sebuah pseudo-code. Sebuah pseudo-code umumnya terdiri dari bahasa yang mudah dimengerti (tidak seperti bahasa pemrograman di komputer). Untuk lebih jelasnya materi ini akan dijelaskan oleh dosen yang bersangkutan di kelas. Khusus untuk flowchart pseudo-code, terdapat beberapa simbol khusus yang memiliki makna berbeda sebagai berikut: Simbol
Makna
Menyatakan awal (start) dan akhir program (end) Menandakan input dan output Menandakan suatu proses Kondisi percabangan (if conditional) Konektor untuk algoritma Menandakan struktur perulangan (looping)
Table 1.Simbol Flowchart Pseudocod
6|Page
Praktikum Sistem Basis Data | MODUL 1
1.3.
Sintaks Program
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. Perlu diketahui, di beberapa bahasa pemrograman tanda awal dan akhir program akan mirip dengan tanda awal dan akhir fungsi (akan dijelaskan lebih lanjut pada bab selanjutnya). Contoh sintaks awal dan akhir program sesuai dengan bahasanya dapat dilihat dalam tabel berikut: Pseudocode
Pascal
Program
program
Begin
begin
;
End
end. C++
Fortran
#include
program
using namespace std;
int main ()
end program program>
{
return 0; } Table 2. Perbedaan Sintaks Awal dan Akhir Program
7|Page
Praktikum Sistem Basis Data | MODUL 1
1.4.
Input, Output, dan Komentar
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 device. Agar lebih mudah dimengerti, sebuah program umumnya mengandung komentar. Fungsi utama komentar adalah menjelaskan maksud dari langkah yang sedang dijalankan untuk membantu proses debugging atau membantu user membaca source code. Daftar sintaks untuk input, output, dan comment pada C++ adalah sebagai berikut: Jenis Perintah
Pseudocode
C++
Input
Input
cin >>
Output
Output
Cout <<
Comment
/* */
/* */
Table 3. Sintaks Input-Output
Khusus untuk tipe data string, input dilakukan menggunakan sintaks getline (cin,). Hal ini dikarenakan cin akan berhenti membaca input setelah menemukan spasi. Karena itu, perlu digunakan getline untuk menginput satu line sekaligus.
Contoh Kasus Buatlah agar layar dapat menerima input nama user dan menampilkan Hello ! menggunakan bahasa C++. Jangan lupa menyertakan komentar!
8|Page
Praktikum Sistem Basis Data | MODUL 1
Jawab
1.5.
Variabel dan Tipe Data
Variabel merupakan elemen yang dapat dimanipulasi dan memiliki tipe data tertentu. Tipe data sendiri adalah jenis yang menentukan tipe dari variabel yang bersangkutan.
Tipe Data char int long int float string
Deskripsi Merupakan tipe data karakter
16 Bilangan bulat s/d ±2 Bilangan bulat s/d ±2
32
Bilangan decimal Kata atau kalimat Table 4. Jenis Tipe Data
Penamaan variabel dalam C++ bebas, tetapi tidak boleh mengandung spasi maupun karakter khusus seperti garis bawah, koma, dan titik.
9|Page
Praktikum Sistem Basis Data | MODUL 1
Contoh Kasus Pada dasarnya, sebuah prosesor komputer mampu memproses banyak variabel dalam waktu yang bersamaan. Cobalah membuat program yang menerima input dari
user berupa nama, NIM, dan fakultas kemudian menampilkannya ke layar sebagai output!
Jawab Dari soal yang diberikan diketahui bahwa dibutuhkan 3 variabel yaitu nama, NIM, dan fakultas. Nama dan fakultas lebih tepat menggunakan variabel string, sementara NIM dapat menggunakan long integer ataupun string.
10 | P a g e
Praktikum Sistem Basis Data | MODUL 1
2. Ekspresi, Operator, dan Percabangan 2.1.
Ekspresi
Ekspresi (ungkapan) merupakan kombinasi dari operand dan operator yang dapat berupa konstanta (untai/numerik), variabel, atau nilai tunggal. Operand tersebut juga dapat berupa konstanta, variabel, atau nilai tunggal yang nantinya akan digunakan atau diolah dalam program sesuai dengan operator.
2.2.
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 yang sering digunakan dalam pemrograman adalah operator aritmatik, operator relasi, dan operator logika.
Simbol Operator
Nama dan Deskripsi Simbol
+
Tambah, berfungsi untuk operasi penambahan, bisa juga digunakan untuk menggabungkan tipe data string, contoh: “Halte”+”Bus”→”HalteBus” (tanpa spasi)
-
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/2=1.5 Untuk tipe data integer melakukan operasi pembagian round down (pembulatan ke bawah), contoh: 3/2=1
Modulus, berfungsi untuk memunculkan sisa hasil operasi pembagian, khusus untuk tipe data integer, contoh 6%4=2 Table 5. Operator Arimatik pada C++
11 | P a g e
Praktikum Sistem Basis Data | MODUL 1
Operator aritmatik dapat digunakan secara langsung untuk mengubah nilai suatu variabel. Sintaks umumnya adalah: = ; Contohnya, a = a + 3; akan menghasilkan variabel a baru yang bernilai nilai variabel a lama ditambah dengan 3. Selain jenis yang ditulis di tabel terdapat tipe increment dan decrement. Increment dilambangkan dengan ++; dan decrement dilambangkan dengan --;. Tipe ini setara dengan = + 1; dan = - 1;.
2.3.
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 Sama dengan Tidak sama dengan Lebih dari Kurang dari Lebih dari sama dengan Kurang dari sama dengan
Bernilsi True jika 10==10 8!=10 7>3 3<7 9>=9 2<=2
Table 6, Jenis Operator Relasi
2.4.
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, dan not. 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.
12 | P a g e
Praktikum Sistem Basis Data | MODUL 1
Operator
Fungsi
Contoh penggunaan
&&
AND
true && true beroutput true
||
OR
true || false beroutput true
!
NOT
!true beroutput false
Table 7. Jenis Operator Logika
2.5. 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: if { statement 1 } atau if { statement 1 } else { statement 2 } Bagian expression adalah bagian syarat dari if-conditional. Pada bentuk ke dua, apabila bagian expression dipenuhi, maka program akan menjalankan statement 1, sementara jika tidak dipenuhi, maka program akan menjalankan statement 2. Statement berisi perintahperintah 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.
13 | P a g e
Praktikum Sistem Basis Data | MODUL 1
if {statement 1} else { if {statement 2} else { if {statement 3} . . . else { if {statement n} else {statement else} }}}}}}}
// kurung kurawal tutup // sebanyak n buah
Contoh Kasus: 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 syaratsyarat 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.
14 | P a g e
Praktikum Sistem Basis Data | MODUL 1
15 | P a g e
Praktikum Sistem Basis Data | MODUL 1
3. Pengulangan (Looping) 3.1. 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! di layar sebanyak 7 kali, maka akan dibutuhkan paling tidak 7 baris perintah. Menggunakan sintaks pengulangan, persoalan tersebut dapat diselesaikan hanya menggunakan 4 baris program.
int a; for (a=1;a<=5;a++) { cout << ” Hello!”; }
Output : Hello! Hello! Hello! Hello! Hello!
3.2.
Switch Break
Sebelum memasuki sintaks looping, terdapat salah satu sintaks yang umumnya digunakan untuk analisa kasus dalam pemrograman. Sintaks switch akan mencocokkan nilai suatu variabel dengan syarat yang telah ditentukan. Perlu diketahui bahwa switch memperlakukan pengecekan menggunakan operator relasi ‘sama dengan’ (==). Sintaks switch adalah sebagai berikut: switch (variabel) { case : ; break; case : ; break; 16 | P a g e
Praktikum Sistem Basis Data | MODUL 1
. . case : ; break; default: 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.
3.3. Do-While dan While-Do-Loop Salah satu sintaks looping/pengulangan yang sering digunakan adalah sintaks DoWhile 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
Do {}
While-Do
while () {}
while ();
Contoh Kasus: Perhitungan Mundur 17 | P a g e
Praktikum Sistem Basis Data | MODUL 1
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, kemudian apabila hitungan mencapai nol, program diharapkan 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 looping, dapat dikerjakan menggunakan Do-While maupun While-Do. Perbedaan utamanya terdapat pada kondisi looping. Untuk lebih jelasnya, simak contoh program pada halaman berikutnya
18 | P a g e
Praktikum Sistem Basis Data | MODUL 1
3.4.
For Loop
Bentuk looping yang ketiga adalah bentuk For. Bentuk ini umumnya digunakan untuk pengulangan yang sudah diketahui jumlahnya. Meskipun begitu, loop for bisa saja dibuat seperti loop while. Sintaks loop for adalah sebagai berikut: for (;;)
{ }
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 , , dan .
Contoh Kasus: Perhitungan Deret Aritmatika Dalam matematika, deret aritmatika adalah urutan bilangan dengan suku-suku selanjutnya merupakan penjumlahan suku sebelumnya dengan konstanta tertentu. Contoh sederhana deret aritmatika adalah deret seperti berikut: 0 + 1 + 2 + 3 +4 + …. + n. Menggunakan loop for, buatlah program yang menerima masukan user berupa bilangan integer positif dan membuat hasil penjumlahan dari deret seperti pada contoh diatas. Input user akan selalu >= 0.
Jawab Sebelum menjawab kasus ini kita perlu tahu terlebih dahulu, ada berapa variabel yang kita butuhkan dan proses seperti apa yang berjalan di dalam kasus ini. Variabel utama yang digunakan dalam kasus ini adalah variabel penyimpan input user dan variabel yang digunakan sebagai counter pada loop for. Karena diminta jumlah dari deret, maka diperlukan pula sebuah variabel untuk menyimpan hasil penjumlahan.
19 | P a g e
Praktikum Sistem Basis Data | MODUL 1 Untuk prosesnya sederhana, cukup menerima input dari user, lakukan looping, kemudian tampilkan hasil penjumlahan dari looping ke layar ketika looping selesai. Contoh program adalah sebagai berikut.
20 | P a g e
Praktikum Sistem Basis Data | MODUL 1
4. Array 4.1. Array Setelah membahas mengenai variabel dan beberapa proses seperti percabangan dan pengulangan, pada bab ini kita akan membahas kumpulan variabel atau array. Array adalah sebuah variabel yang di dalamnya terdiri dari sekumpulan variabel. Sebuah array umumnya dilambangkan dengan indeks dan isi dari array tersebut. Secara visual, penggambaran array adalah sebagai berikut:
Perlu diketahui bahwa indeks array dalam C selalu dimulai dari nol, sehingga indeks terakhir dari sebuah array adalah n-1 dimana n adalah alokasi jumlah tempat pada array pada deklarasi variabel, sintaks deklarasi array adalah [];. Untuk pemanggilan isi dari array harus menyertakan indeksnya. Sintaksnya adalah [].
4.2. Dimensi Seperti sebuah tabel, sebuah array dapat dibuat memiliki beberapa dimensi. Dimensi disini berarti indeksnya memiliki n komponen. Contoh, array berdimensi satu dengan jumlah array 4 buah akan memiliki indeks dari nol sampai tiga. Array dengan jumlah array 4 buah tersebut bisa saja direpresentasikan menggunakan array dua dimensi dengan ukuran 2x2. Array dua dimensi tersebut akan memiliki indeks dari [0,0] sampai [1,1]. Untuk lebih jelasnya dapat disimak ilustrasi berikut ini.
Figure 1. Matriks 2 Dimensi
21 | P a g e
Praktikum Sistem Basis Data | MODUL 1
4.3.
Operasi dengan Array
Adanya indeks dan kemampuan untuk memanggil isi array tersebut memungkinkan kita untuk melakukan operasi dengan array. Operasi dasar menggunakan array umumnya melibatkan traversal atau pengecekan elemen/anggota dari array satu persatu. Proses traversal ini dilakukan menggunakan teknik looping yang sudah dipelajari pada bab sebelumnya. Menggunakan proses traversal, operasi aritmatik untuk array dapat dilakukan dengan mudah. Pada array, operasi aritmatik harus dilakukan satu persatu untuk setiap elemen array. Operasi aritmatik bisa saja dilakukan secara manual dengan menambahkan satu persatu isi array, namun dapat juga dilakukan dengan proses traversal. Untuk lebih jelasnya, simak kasus berikut ini.
Contoh Kasus: Pengecekan Nilai pada Tabel Software pengolah data seperti Microsoft Excel mengolah data dalam bentuk spreadsheet dan melakukan operasi tertentu pada spreadsheet tersebut. Operasi dasar dalam pengolahan spreadsheet adalah mencari nilai atau value tertentu di dalam spreadsheet tersebut. Apabila diberikan array satu dimensi dengan isi array = {0,3,4,1,2,5,6}, buatlah sebuah program yang menerima masukan user berupa integer dan mengecek apakah integer tersebut ada di dalam array! Output berupa pemberitahuan kepada user apakah bilangan tersebut ditemukan atau tidak. Masukan user bernilai bebas hanya saja bertipe integer.
Jawab Sebelum menjawab kasus ini, kelompokkan terlebih dahulu informasi yang ada dalam soal, seperti:
1. Terdapat array satu dimensi dengan isi bilangan {0,3,4,1,2,5,6}. 2. Program yang diminta menerima input user berupa integer kemudian melakukan pengecekan ke array satu dimensi tersebut untuk menemukan bilangan yang di-input user. 3. Program akan memberikan output apabila bilangan ditemukan. Jika bilangan tidak ditemukan, maka program akan memberitahu user bahwa bilangan yang dicari tidak ditemukan. 22 | P a g e
Praktikum Sistem Basis Data | MODUL 1
#include using namespace std; int main () { // Deklarasi variabel int i, a; // i = counter, a = input user int tabel[7] = {0,3,4,1,2,5,6}; // variabel array // Input, inisialisasi counter cin >> a; // Loop for (i = 0; i < 9; i++) { if (a == tabel[i]) // Angka ditemukan { cout << “Bilangan anda ditemukan”<= 9 atau break if (i >= 9) // tidak ditemukan, mencapai akhir {cout << “Bilangan tidak ditemukan” ;} return 0; } Bagian looping pada program diatas umumnya disebut bagian traversal karena pada bagian tersebut program seolah-olah berjalan dan mengecek isi array dari yang paling pertama sampai yang paling terakhir.
Contoh Kasus: 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
23 | P a g e
Praktikum Sistem Basis Data | MODUL 1
Sama seperti kasus sebelumnya, pertama-tama 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 fixed. 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.
#include using namespace std; int main () { // Inisialisasi dan deklarasi variabel int i,n; int mat1[2][2] = {{2,3},{5,7}}; int mat2[2][2] = {{1,6},{4,9}}; //Looping untuk baris for (n=0;n<2;n++){ //Looping untuk kolom for (i=0;i<2;i++){ //Output ke layar cout << mat1[n][i]+mat2[n][i] << “ ”; } //New line cout << endl; } return 0; } Tambahan: Cobalah buat program untuk menghitung perkalian matriks! 😊
24 | P a g e
Praktikum Sistem Basis Data | MODUL 1
5. Fungsi dan Prosedur 5.1.
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. 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: (parameter fungsi) { return ; } 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 diisi dengan void dan tidak perlu ada sintaks return.
5.2. Variabel Lokal dan Global Dengan adanya fungsi, variabel dibagi menjadi dua: 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. Namun, 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.
5.3.
Fungsi Rekursif
Terdapat salah satu trik yaitu penggunaan fungsi rekursif. Rekursif berarti fungsi tersebut memanggil dirinya sendiri terus menerus sampai suatu syarat tercapai. Fungsi rekursif tidak banyak digunakan dalam pemrograman dasar karena sedikit kompleks. Untuk memahami lebih jauh mengenai penggunaan fungsi dan prosedur dalam C++, simak contoh kasus berikut ini:
25 | P a g e
Praktikum Sistem Basis Data | MODUL 1
Contoh Kasus: Persamaan Posisi, Percepatan, dan Kecepatan Pada ilmu fisika, terdapat suatu fungsi yang digunakan untuk mencari posisi, percepatan, dan kecepatan dari suatu objek. 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: 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
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.
26 | P a g e
Praktikum Sistem Basis Data | MODUL 1
#include 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); //Mengembalikan/return nilai posisi return position; } float countvelocity (float v, float a, float t) { float velo; velo=v+a*t; return velo; } void showresult (float velo, float pos) { //Proses (tidak butuh variabel lokal) cout<<“Posisi benda adalah pada”<
per
//Program utama int main () { //Deklarasi variabel float finalvelo, finalpos; //Proses cout << “Masukkan cin >> v; cout << cout << “Masukkan cin >> a; cout << cout << “Masukkan cin >> t; cout <<
nilai kecepatan : ”; endl; nilai percepatan : ”; endl; nilai waktu : ”; endl;
//Melakukan perhitungan dengan memanggil fungsi finalvelo = countvelocity(v,a,t); 27 | P a g e
Praktikum Sistem Basis Data | MODUL 1
finalpos = countposition(v,a,t); //Menampilkan hasil dengan memanggil prosedur showresult(finalvelo, finalpos); return 0; }
6. Record (Struct) Record merupakan tipe data terstruktur yang terdiri dari beberapa item data yang dapat memiliki tipe data yang berbeda beda. Masing-masing item data tersebut disebut field. Dalam C++ record dikenal dengan struct. Sama halnya dengan array, record berguna untuk membuat program yang melibatkan data yang banyak dan kompleks dengan membuat penyimpanan data lebih terstruktur. Satu field dalam record hanya dapat diisi oleh satu data, contoh:
Mahasiswa
Struct
Nama
NIM
UTS
UAS
Tugas
Total
Juki
13414999
75.9
95
89.7
88.475
Atribut Struct
data Berikut struktur kode untuk membuat record: Struct Nama_Struct { Tipe_Data1 Atribut1 Tipe_Data2 Atribut2 Tipe_Data3 Atribut3 ..... };
};
6.1 Cara Menginisiasikan Struct Hal pertama yang harus dilakukan untuk menginisiasi struct yaitu kita harus membuat objeknya terlebih dahulu. 28 | P a g e
Praktikum Sistem Basis Data | MODUL 1
Nama_Struct NamaObjek; Object pada Struct dapat didefinisikan, diakses, dimanipulasi, atau dicetak dengan cara menuliskan nama objek diikuti dengan titik(.), lalu nama field-nya : NamaObjek.Atribut1 = nilai
6.2 Contoh Penggunaan Struct Contoh sederhana dari record adalah record data nilai mahasiswa. Record tersebut terdiri dari field Nama, NIM, UTS, UAS, Tugas, dan total yang memiliki tipe data yang berbeda satu sama lain yaitu single untuk field UAS, UTS, Tugas.dan total, string untuk field nama dan integer untuk field NIM. Setiap field hanya dapat diisi oleh satu data.
29 | P a g e
Praktikum Sistem Basis Data | MODUL 1
Output:
6.3
Penggabungan Array dan Record Penggabungan array dan record merupakan salah satu metode yang memungkinkan untuk menyimpan data yang banyak secara terstruktur.
Contoh Kasus Pengelola Stadion Gelora Bandung Lautan Api mendata pemesanan tiket untuk pertandingan persahabatan antara Persib Bandung melawan PSV Eidenhoven. Terdapat tiga jenis kursi penonton dengan harga yang berbeda masing-masingnya sebagai berikut:
1. 2. 3.
Kursi VIP : Rp 750.000,00 Kursi Kelas 1 : Rp 550.000,00 Kursi Kelas 2 : Rp 300.000,00
Buatlah program untuk mendata pembelian 3 orang pembeli!
30 | P a g e
Praktikum Sistem Basis Data | MODUL 1
Output:
31 | P a g e
Praktikum Sistem Basis Data | MODUL 1
Secara sederhana, data dapat disajikan sebagai berikut: Indeks 0
1
2
Atribut Nama ID Pembeli Jumlah Tiket VIP Jumlah TIket Kelas 1 Jumlah Tiket Kelas 2 Total Biaya Nama ID Pembeli Jumlah Tiket VIP Jumlah TIket Kelas 1 Jumlah Tiket Kelas 2 Total Biaya Nama ID Pembeli Jumlah Tiket VIP Jumlah TIket Kelas 1 Jumlah Tiket Kelas 2 Total Biaya
Data Adhit 101 2 0 1 Rp1.800.000,00 Hanif 102 0 3 0 Rp 1.650.000,00 Amir 103 0 0 5 Rp 1.500.000,00
32 | P a g e
Praktikum Sistem Basis Data | MODUL 1
7. Error Handling Error handing adalah suatu bentuk penanganan eror yang terjadi ketika program dijalankan dengan cara membuat suatu perintah khusus terhadap kejadian-kejadian yang memungkinkan eror bisa terjadi. Jenis error handling yang akan dibahas dalam modul ini adalah perintah percabangan dan perulangan. Perintah percabangan dan perulangan Perintah percabangan dan perulangan dapat digunakan sebagai error handling bagi eror yang disebabkan kesalahan input oleh user saat program dijalankan. Perintah percabangan dan perulangan hanya dapat menangani eror yang terjadi akibat kesalahan input dengan kondisi input memiliki tipe data yang sama dengan tipe data yang dimaksud oleh pembuat program. Sintaks perintah percabangan dan perulangan sebagai error handling disesuaikan dengan kebutuhan user dalam membuat program, serta tergantung dari kreativitas user. Berikut merupakan contoh program dengan penerapan error handling dalam contoh kasus dimana program meminta user untuk memasukkan kode genre buku yang user ingin ketahui jumlah bukunya dan menampilkan output yang diminta: #include using namespace std; //deklarasi variabel int kode, jumlah; string genrebuku; int main() { cout<<"Selamat datang! Berikut merupakan kode genre buku:"<>kode; if (kode<1||kode>5) { do { cout<<"Kode yang dimasukkan salah!"<>kode; } 33 | P a g e
Praktikum Sistem Basis Data | MODUL 1
while (kode<1||kode>5); } switch (kode) { case 1: genrebuku="Fiction"; jumlah=751; break; case 2: genrebuku="Biography"; jumlah=325; break; case 3: genrebuku="Romance"; jumlah=563; break; case 4: genrebuku="Cookbooks"; jumlah=497; break; case 5: genrebuku="Self Help"; jumlah=256; break; } cout<<"Genre buku pilihan Anda adalah:"<
34 | P a g e
Praktikum Sistem Basis Data | MODUL 1
DAFTAR REFERENSI Lab PTI. 2014. Modul Pengenalan Teknologi Informasi. Bandung: Institut Teknologi Bandung.
35 | P a g e
Praktikum Sistem Basis Data | MODUL 1
TUGAS PENDAHULUAN PETUNJUK UMUM:
Tugas Pendahuluan atau TP adalah prasyarat mengikuti praktikum. Tidak mengerjakan TP akan mendapat sanksi.
Tidak menerima Plagiarisme. Pelaku akan dikenai sanksi berat.
Margin Atas-Kiri: 3 cm, margin Kanan-bawah: 4 cm. Beri identitas di sebelah kanan atas (Nama, Nim, Modul, Shift 1/2).
Soal TP nomor 1 sampai 4 dikerjakan di A4 dengan DITULIS TANGAN (rapi dan terbaca), bolak-balik di A4 bersih atau dikerjakan di A4 reuse.
Untuk program nomor 5 dan 6 dikumpulkan ke masing-masing ketua kelas (dalam 1 cd per kelas) dengan format folder SISBASDAT_KELAS_XX (contoh: SISBASDAT_KELAS_01) dimana di dalamnya terdapat subfolder yang diberi nama NIM (contoh: 13414200) berisi program masing-masing dalam format .cpp dan .txt (copy syntax dari program ke notepad). Format penamaan file adalah NIM_TP1_NO SOAL (contoh: 13414200_TP1_05). TP dikumpulkan saat praktikum akan dimulai. Pengumpulan di luar waktu tersebut tidak akan diterima dan nilai TP yang bersangkutan akan diberi nilai 0.
SOAL TES PENDAHULUAN 1. Sebutkan dan jelaskan jenis-jenis operator, serta jelaskan simbol-simbol yang ada pada operator tersebut jika ada! 2. Tuliskan 2 perbedaan fungsi dan prosedur! 3. Buatlah program untuk menghitung gaya apung yang dialami oleh bola yang dicelupkan seluruhnya ke dalam sebuah tangki berisi suatu fluida dengan kerapatan tertentu. Penghitungan dilakukan dengan menginput jari-jari bola dan kerapatan fluida. Tampilkan pula
hasil
penghitungan
Keterangan: gunakan g=9.8 ms
volume -2
bola.
Gunakan
satuan
yang
tepat!
dan π=3,14.
36 | P a g e
Praktikum Sistem Basis Data | MODUL 1
4. Buatlah sebuah prosedur yang mencetak angka 0 sampai dengan 100 dimana program tersebut menampilkan tulisan “yes” di sebelah angka hasil perkalian kuadrat seperti berikut:
5. Sebuah tempat penitipan hewan peliharaan ingin membuat program menggunakan array untuk menyimpan data 5 hewan peliharaan yang dititipkan di tempat tersebut. Ketentuannya sebagai berikut: Data yang dimasukkan adalah nama hewan peliharaan, nama pemilik, dan jenis hewan (kucing, anjing, dsb.) - Di akhir program, berikan perintah untuk menginput nama salah satu hewan tersebut dan kemudian program menampilkan data hewan yang namanya diinput tersebut. 6. Rental Mobil Jaya Abadi berencana untuk menggunakan program komputer agar bisa -
mempermudah keperluan pencatatan pelanggan mereka. Mereka meminta Anda untuk membuat sebuah program sederhana yang memiliki beberapa pilihan menu dengan spesifikasi sebagai berikut: 1. Input data User diminta untuk memasukkan nomor member, nama, nomor telepon, dan alamat pelanggan. 2. Cari data User diminta untuk mencari data pelanggan berdasarkan nomor member pelanggan. 3. Hapus data User diminta untuk menghapus seluruh data pelanggan tertentu yaitu nomor member, nama, nomor telepon, dan alamat pelanggan berdasarkan nomor member pelanggan. 4. Keluar program User dianggap telah selesai menggunakan program, sehingga akan muncul kalimat yang menyatakan program telah selesai digunakan. Perhatikan penggunaan error handling dalam pembuatan program di atas.
37 | P a g e
Praktikum Sistem Basis Data | MODUL 1
sumbergambar: google.com
“No matter what I do, I’m going to earn it.” (John Mayer)
Good luck! 😊
38 | P a g e