modul pti b 2013

37
Bab I Pengenalan Algoritma dan Pemrograman

Upload: febri-adriandi-putra

Post on 20-Oct-2015

77 views

Category:

Documents


4 download

DESCRIPTION

About C++ Programming

TRANSCRIPT

  • Bab I Pengenalan Algoritma dan Pemrograman

  • Algoritma Dalam ilmu matematika dan komputasi, algoritma berarti langkah-langkah yang harus ditempuh untuk kalkulasi atau pemecahan masalah. Pada dasarnya definisi algoritma abstrak, untuk lebih mudahnya dapat dipelajari melalui contoh studi kasus berikut.

    Kasus 1a : Mengupas Kentang

    Bayangkan kalian ingin mengupas kentang untuk memasak sebuah sup. Jika disediakan sebuah pisau, mangkuk, dan kentang bagaimana langkah-langkah mengupas kentang untuk ditaruh di dalam mangkuk ?

    Jawab :

    Dengan mudah persoalan tersebut dijawab dengan langkah-langkah sebagai berikut :

    1. Ambil pisau

    2. Ambil 1 buah kentang

    3. Kupas kulit kentang tersebut

    4. Taruh kentang di mangkuk

    5. Kembalikan pisau ke tempatnya jika kentang sudah habis

    Apabila kita gambarkan dalam flowchart, langkah-langkah tersebut dapat digambarkan sebagai berikut :

    Flowchart 1 - Langkah Mengupas Kentang

    Ambil Pisau

    Ambil Kentang

    Kupas Kulit

    Taruh di mangkuk

    Kembalikan Pisau

  • Kompleksitas Algoritma Algoritma bisa saja sederhana seperti contoh mengupas kentang pada sebelumnya. Namun, perlu diketahui terkadang ada beberapa proses yang dilewati dan dianggap sudah dilakukan, contohnya seperti permasalahan berikut.

    Kasus 1b : Mengupas Kentang (2)

    Langkah apa saja yang ditambahkan apabila pisau kalian belum tajam dan kentang harus direbus sebelum ditaruh di mangkuk ? (Asumsikan telah disediakan panci untuk merebus kentang)

    Jawab :

    Terjadi beberapa perubahan pada flowchart mengupas kentang seperti contoh berikut :

    Flowchart 2 - Langkah Merebus Kentang (2)

    Ambil pisau

    Tajamkan pisau

    Ambil kentang Kupas kulit kentang

    Nyalakan kompor

    Masukkan air ke dalam panci

    Rebus Kentang

    Taruh kentang di mangkok

    Kembalikan pisau

  • 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 akan dijelaskan oleh dosen yang bersangkutan di kelas.

    Khusus untuk flowchart pseudo-code, terdapat simbol khusus yang memiliki arti berbeda seperti berikut :

    Simbol Makna

    Menyatakan awal (start) dan akhir program (end)

    Menandakan input dan output

    Menandakan suatu proses

    Kondisi perulangan (if conditional)

    Konektor untuk algoritma

    Menandakan struktur percabangan (looping)

    Tabel 1- Simbol Flowchart Pseudocode

  • 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

    Begin

    End

    program

    begin

    ;

    end.

    C++ Fortran

    #include

    using namespace std;

    int main ()

    {

    return 0;

    }

    program

    end program

    Tabel 2 - Perbedaan Sintaks Awal dan Akhir Program

  • Untuk memahami lebih jauh mengenai perbedaan sintaks dalam masing-masing bahasa, perhatikan contoh kasus berikut.

    Kasus 1c : Hello World !

    Peribahasa mengatakan setiap programmer memulai pemrograman dengan membuat program hello world, menggunakan empat bahasa, buat program untuk menampilkan tulisan hello world ke layar !

    Jawab :

    Pseudocode Pascal

    Program HelloWorld

    Begin

    Output (Hello World !)

    End

    program HelloWorld

    begin

    write(Hello World !);

    end.

    C++ Fortran

    #include

    using namespace std;

    int main ()

    {

    cout

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

  • Jawab :

    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.

    Contoh sederhana adalah ketika kasus memotong kentang. Dalam kasus tersebut, diberikan satu buah kentang. Apabila dimisalkan terdapat sebuah variabel bernama JumlahKentang, maka variabel tersebut memiliki nilai sebesar 2 (bilangan bulat).

    #include #include using namespace std; int main() { string nama; // Deklarasi variabel nama getline (cin,nama); // Input nama cout

  • Tipe Data Deskripsi

    char Merupakan tipe data karakter

    int Bilangan bulat s/d 216

    long int Bilangan bulat s/d 232

    float Bilangan desimal

    string Kata atau kalimat

    Tabel 5 - Tipe Data yang Sering Digunakan

    Penamaan variabel dalam C bebas, hanya saja tidak boleh mengandung spasi maupun karakter khusus seperti garis bawah, koma, dan titik.

    Kasus 1e : Output beberapa variabel

    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.

    Pada bagian output, dapat dilakukan output secara beruntun menggunakan tanda

  • Contoh program yang telah dijalankan :

    // Program Nama, NIM, dan Fakultas #include #include using namespace std; int main () { string nama; // deklarasi variabel nama string fakultas; // deklarasi variabel fakultas long int NIM; // deklarasi variabel NIM // terima input dari user getline (cin,nama); cout NIM; cout

  • 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 yang sering digunakan dalam pemrograman adalah operator aritmatik, operator relasi, dan operator logika.

    Operator Aritmatik Pada dasarnya, pemrosesan akan 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 6 - Operator Aritmatik pada C

    Operator aritmatik dapat digunakan secara langsung untuk mengubah nilai suatu variabel. Sintaks umumnya = ; contohnya adalah a = a + 3; akan menghasilkan variabel a

  • yang bernilai nilai variabel a 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;. Terdapat teknik pengubahan tipe data di dalam pemrosesan. Pengubahan tipe data di tengah proses ini menyebabkan operasi memiliki hasil berbeda, khususnya untuk penggunaan simbol bagi atau div (/). 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.

    #include using namespace std; int main () { // Deklarasi variabel int a,b float hasil; // Input dari user cin >> a; cout > b; cout hasil; return 0; }

  • Perlu diperhatikan bahwa (float) mengubah 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

  • 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 8 - 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 :

    if { statement 1 }

    Atau if { statement 1 } else { statement 2 }

    Start

    Process 1

    Process 2 End

    Cond. No

    Yes

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

    Flowchart 3 - IF bertingkat

    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

    if {statement 1} else { if {statement 2} else { if {statement 3} . . . else { if {statement n} else {statement else} }}}}}}} // kurung kurawal tutup // sebanyak n buah

  • 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. Perlu diperhatikan bahwa untuk kondisi terakhir (kondisi ketika bilangan sama dengan nol) tidak perlu dibuat if-logical lagi karena kondisi terakhir merupakan kondisi sisa.

    #include using namespace std; int main () { int a; // deklarasi variabel cin >> a; // menerima input dari user if (a > 0) // bilangan positif {cout

  • Bab III Pengulangan (Looping)

  • 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 4 - Chart Looping

    Switch dan Break Sebelum memasuki sintaks looping, terdapat salah satu sintaks yang umumnya digunakan untuk analisa kasus dalam pemrograman. 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.

    int a; for (a=1;a

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

    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

    switch (variabel) { case : ; break; case : ; break; . . case : ; break; default : break; }

  • di dalamnya sama sekali karena kondisi looping tidak dipenuhi. Sintaks kedua jenis looping adalah sebagai berikut.

    Do-While While-Do do {} while ();

    while () {}

    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 looping, dapat dikerjakan menggunakan Do-While maupun While-Do. Perbedaan utamanya terdapat pada kondisi looping. Untuk lebih jelasnya, simak contoh program pada halaman berikutnya.

  • Untuk solusi menggunakan Do-While dapat dicoba sendiri dengan kondisi looping yang sedikit berbeda.

    For Loop Bentuk looping yang ke tiga 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.

    #include 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

  • 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 penggunaan loop for dapat dilihat dalam kasus berikut ini. Kasus 3b : 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. 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.

    #include using namespace std; int main () { // deklarasi variabel int i, a, sum; // input dari user cin >> a; // inisialisasi sum sum = 0; // proses looping for (i=0;i a // output ke layar cout

  • Bab IV Array

  • 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 didalamnya terdiri dari sekumpulan variabel. Sebuah array umumnya dilambangkan dengan indeks dan isi dari array tersebut. Secara visual, penggambaran array adalah sebagai berikut.

    Gambar 1 - Representasi Array

    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 [].

    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.

    Gambar 2 - Array 2 Dimensi

    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. Kasus 4a : 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 diinput user.

    3. Program akan memberikan output apabila bilangan ditemukan. Jika bilangan tidak ditemukan, maka program akan memberitahu user bahwa bilangan yang dicari tidak ditemukan.

    Menggunakan informasi yang ada, dapat dibuat program seperti berikut.

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

    #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 = 9 atau break if (i >= 9) // tidak ditemukan, mencapai akhir {cout

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

    #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

  • Perlu diperhatikan bahwa terdapat 2 buah struktur loop di dalam program di atas. Hal ini dikarenakan looping dilakukan satu persatu, pertama looping akan dilakukan pada kolom, ketika mencapai akhir kolom, baris akan berubah dan counter kolom akan direset. Hal ini diulang terus menerus hingga mencapai akhir baris.

  • Bab V Fungsi dan Prosedur

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

    (parameter fungsi) { return ; }

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

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

    = 0 + .

    = 0 . + 1

    22

    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. #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); // 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
  • finalvelo = countvelocity(v,a,t); finalpos = countposition(v,a,t); // Tampilkan dengan showresult showresult(finalvelo, finalpos); return 0; }

    AlgoritmaKompleksitas AlgoritmaAlgoritma dalam PemrogramanSintaks ProgramInput, Output, dan KomentarVariabel dan Tipe DataOperatorOperator AritmatikOperator Relasi

    Operator LogikaStruktur Percabangan (IF Conditional)Logika PengulanganSwitch dan BreakDo-While dan While-Do LoopFor LoopArrayDimensiOperasi Dengan ArrayFungsi dan ProsedurVariabel LokalFungsi Rekursif