Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman...

28
Modul Praktikum Teknik Pemrograman dengan C/C++, Teknik Mesin, STTA Yogyakarta 1 Pengenalan bahasa pemrograman C++ Tujuan Praktikum : a. Mahasiswa dapat mengenal bahasa pemrograman C++. b. Mahasiswa dapat membuat source code, Struktur Program di C++ dan fungsi dari bahasa C++. c. Mahasiswa dapat mengkompile source code dan memanggil program. d. Mahasiswa dapat mengetahui input dan output dan menganalisa dari sebuah program. Dasar Toeri 1. Membuat Source Code Source code merupakan nama lain dari listing program dari suatu program yang akan dikompile. Source code ditulis dengan menggunakan text editor atau aplikasi pengolah kata lainnya yang disediakan oleh sistem operasi. Misal di sistem operasi linux menggunakan text editor vi atau emacs sedangkan di Microsoft menggunakan notepad. Source code yang dituliskan dengan text editor tesebut harus disimpan dengan nama yang berekstension *.cpp atau *.c. Karena source code ditulis dalam bahasa pemrograman C/ C++ yang akan kita gunakan dalam praktikum Algoritma dan Pemrograman. 2. Mengkompilasi Source Code Source code bukanlah suatu program, tetapi dari source code ini dapat dihasilkan suatu program. Program merupakan file yang berextensi exe (executable). 3. Struktur Program di C++ Dalam bahasa pemrograman C++ strukturnya adalah sebagai berikut: a. Header. Ex: #include<iostream.h> b. Main adalah isi dari program diawali {……. dan diakhiri dengan ……..} 4. Fungsi Fungsi dalam suatu program sangat berguna untuk membuat source code dari program tersebut menjadi ringkas dan padat. Suatu fungsi dalam source code akan dipanggil dan dikerjakan sesuai dengan urut-urutan source code-nya. Fungsi harus mengembalikan suatu nilai, baik isi maupun kosong, yang disebut void. Latihan: 1. #include <iostream.h> 2. int tambah (int x, int y) 3. { 4. cout <<”Berada di dalam fungsi tambah ( )\n”; 5. cout << “Angka I = “; 6. cin >> a; 7. cout << “Angka II = “; 8. cin >> b; 9. cout << “\nPanggil fungsi tambah ( ) …..\n “; 10. c = tambah(a,b); 11. cout << “\n Kembali ke fungsi main ( )\n “; 12. cout << “Hasil penjumlahan “ << a << “dan “ << b << “adalah “ << c << “\n”; 13. cout << “ \nSelesai…\n”; 14. return 0; 15. } 1

Transcript of Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman...

Page 1: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 1

Pengenalan bahasa pemrograman C++

Tujuan Praktikum :

a. Mahasiswa dapat mengenal bahasa pemrograman C++.

b. Mahasiswa dapat membuat source code, Struktur Program di C++ dan fungsi dari bahasa C++.

c. Mahasiswa dapat mengkompile source code dan memanggil program.

d. Mahasiswa dapat mengetahui input dan output dan menganalisa dari sebuah program.

Dasar Toeri

1. Membuat Source Code

Source code merupakan nama lain dari listing program dari suatu program yang akan dikompile. Source

code ditulis dengan menggunakan text editor atau aplikasi pengolah kata lainnya yang disediakan oleh sistem

operasi. Misal di sistem operasi linux menggunakan text editor vi atau emacs sedangkan di Microsoft

menggunakan notepad. Source code yang dituliskan dengan text editor tesebut harus disimpan dengan nama

yang berekstension *.cpp atau *.c. Karena source code ditulis dalam bahasa pemrograman C/ C++ yang akan

kita gunakan dalam praktikum Algoritma dan Pemrograman.

2. Mengkompilasi Source Code

Source code bukanlah suatu program, tetapi dari source code ini dapat dihasilkan suatu program. Program

merupakan file yang berextensi exe (executable).

3. Struktur Program di C++

Dalam bahasa pemrograman C++ strukturnya adalah sebagai berikut:

a. Header. Ex: #include<iostream.h>

b. Main adalah isi dari program diawali {……. dan diakhiri dengan ……..}

4. Fungsi

Fungsi dalam suatu program sangat berguna untuk membuat source code dari program tersebut menjadi

ringkas dan padat. Suatu fungsi dalam source code akan dipanggil dan dikerjakan sesuai dengan urut-urutan

source code-nya. Fungsi harus mengembalikan suatu nilai, baik isi maupun kosong, yang disebut void.

Latihan: 1. #include <iostream.h>

2. int tambah (int x, int y)

3. {

4. cout <<”Berada di dalam fungsi tambah ( )\n”;

5. cout << “Angka I = “;

6. cin >> a;

7. cout << “Angka II = “;

8. cin >> b;

9. cout << “\nPanggil fungsi tambah ( ) …..\n “;

10. c = tambah(a,b);

11. cout << “\n Kembali ke fungsi main ( )\n “;

12. cout << “Hasil penjumlahan “ << a << “dan “ << b << “adalah “ << c

<< “\n”;

13. cout << “ \nSelesai…\n”;

14. return 0;

15. }

1

Page 2: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 2

5. Input dan Output

Program komputer berfungsi mengolah dan memroses suatu data yang diinputkan menjadi informasi yang

dioutputkan menjadi informasi yang dioutputkan. Statemen input dalam c++, cin dengan cara penulisannya :

cin >> a;

statemen output dalam c++, cout dengan cara penulisan

cout << “-----------------------“;

6. Analisa Program

Menganalisa bagian perbagian dan menjelaskan dari kegunaan masing-masing bagian program

Contoh:

#include <iostream.h> // mencari (#) preprosesor (include) file iostream.h dalam (<>)

yang digunakan untuk input dan output.

int main () // menjalankan fungsi main yang dipanggil secara otomatis leh

sistem operasi yang akan mengembalikan nilai integer.

{

int nomer;

cout << “Masukkan suatu angka “;

cin >> nomer;

cout << “Angkanya adalah “ << number;

return 0;

}

Tugas

1. Buatlah source code dari program yang memiliki algoritma sebagai berikut :

a. Masukkan suatu kalimat = “Hallo, ini program pertamaku”

b. Tulis/ tampilkan kalimat yang pernah dimasukkan

2. Analisa program tersebut.

Page 3: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 3

Tipe Data, Variabel dan Konstanta

Tujuan Praktikum:

a. Mahasiswa dapat mengenal beberapa tipe data yang terdapat dalam bahasa C++.

b. Mahasiswa dapat belajar menggunakan variable dalam pembuatan sebuah program.

c. Mahasiswa dapat belajar menggunakan konstanta dalam pembuatan sebuah program.

Dasar teori

1. Tipe Data

Setiap program pada umumnya mempunyai data yang akan diolah menjadi suatu informasi, data

mempunyai tipe tertentu seperti terlihat pada tabel data berikut :

No Tipe Ukuran Nilai

1. Bool 1 byte True atau False

2. Unsigned short int 2 byte 0 – 65.535

3. Short int 2 byte -32.768 – 32.767

4. Unsigned long int 4 byte 0 – 4.294.967.295

5. Long int 4 byte -2.147.483.648 – 2.147.483.647

6. Int (16 bit) 2 byte -32.768 – 32.767

7. Int (32 bit) 4 byte -2.147.483.648 – 2.147.483.647

8. Unsigned int (16 bit) 2 byte 0 – 65.535

9. Unsigned int (32 bit) 4 byte 0 – 4.294.967.295

10. Char 1 byte 256 nilai karakter ASCII

11. Float 4 byte -1.2e-38 – 3.4e+38

12. Double 8 byte -2.2e-308 – 1.8e+308

2. Variable

Variabel merupakan tempat untuk menyimpan data yang digunakan dalam program. Variabel yang telah

di deklarasikan akan dibuatkan tempatnya pada RAM sehingga dapat digunakan untuk menyimpan data yang

suatu saat dapat digunakan kembali.

int a, b, c;

Keterangan:

int : Tipe data

a, b, c : variabel

unsigned short int lebar = 5, panjang;

Keterangan :

Unsigned short int : tipe data

Lebar : variabel

5 : data untuk variable

3. Konstanta

Konstanta merupakan lokasi penyimpanan suatu data, hampir mirip dengan variabel, tetapi konstanta

nilainya tidak dapat diubah ketika program dijalankan

Latihan 1. #include <iostream.h>

2. int main ()

3. {

4. const int minggu = 0;

5. const int senin = 0;

6. const int selasa = 0;

7. const int rabu = 0;

8. const int kamis = 0;

9. const int jumat = 0;

2

Page 4: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 4

10. const int sabtu = 0;

11. int pilih;

12. cout << “Masukkan hari dalam angka (0-6) = “ ;

13. cin >> pilih;

14. if (pilih = = minggu || pilih = = sabtu)

15. {

16. cout << “\n Sekarang anda berada di akhir minggu ! \n “;

17. cout << “Karena anda dihari ke : “ << pilih << endl;

18. }

19. else

20. {

21. cout << “\n Wah, anda dihari kerja ….“;

22. cout << “Karena anda dihari ke : “ << pilih << endl;

23. }

24. cout << endl;

25. return 0;

Latihan

1. Buat source code dari algoritma di bawah ini

a. Masukkan panjang dan lebar

b. Luas panjang * lebar

c. Tulis luas

2. Analisa program tersebut

Page 5: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 5

O p e r a t o r

Tujuan Praktikum:

Operator merupakan simbol atau kata yang dapat digunakan dalam program untuk melakukan suatu operasi

atau manipulasi, seperti menjumlahkan 2 buah nilai, memberikan nilai ke variabel dan sebagainya. Sehingga

mahasiswa dapat memahami fungsi atau kegunaan dari operator tersebut.

Dasar Teori

1. Operator Pengerjaan (Assigment Operator)

Suatu operator bertanda sama dengan (=) yang digunakan untuk mengisikan nilai yang berada pada

sebelah kanan variabel.

Contoh

a = 5

a = b = c

Latihan

Buat source code untuk algoritma dibawah ini :

a. Masukkan data untuk variabel a

b. a = b = c

c. Tampilkan nilai a, b dan c

2. Operator Aritmatika

Operator yang digunakan untuk melakukan operasi aritmatika terhadap nilai suatu variabel-variabel.

Ada 2 jenis operator aritmatika yaitu operator binary dan operator unary.

Tabel operatur binary

Operator Keterangan

* Perkalian

/ Pembagian

% Modulus atau sisa pembagian

+ Pertambahan

- Pengurangan

Tabel Operator unary

Operator Keterangan

+ Tanda Plus

- Tanda Minus

++ Prefix : preincrement

Postfix : Postincrement

-- Prefix : predecrement

Postfix : Postdecrement

Latihan

1. Buat source code untuk algoritma dibawah ini

a. Masukkan jari-jari lingkaran

b. Luas * r2

c. Tampilkan jari-jari lingkaran

d. Tampilkan luas lingkaran

2. Analisa luas lingkaran

3. Operator Peningkatan dan Penurunan

Operator peningkatan digunakan untuk menambah nilai 1 dari nilai sebelumnya dan operator penurunan

digunakan untuk mengurangi nilai 1 pada nilai sebelumnya.

Latihan

3

Page 6: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 6

1. #include <iostream.h>

2. int main()

3. {

4. int x = 10;

5. x = ++x;

6. cout << “Nilai x = “ << x << endl;

7. x = ++x;

8. cout << “Nilai x = “ << x << endl;

9. x = --x;

10. cout << “Nilai x = “ << x << endl;

11. return 0;

12. }

Latihan

1. Buat source code untuk algoritma dibawah ini

a. Masukkan data a dan b

b. C a+b++

c. Tampilkan c

2. Analisa program

3. Buat algoritma dan source code-nya untuk mencari nilai c = a+ ++b

4. Operator Bitwise

Operator dalam bentuk bit dan seluruh operasinya hanya dapat dikenakan pada operand yang bertipe

integer atau karakter

Operator Keterangan

<< Geser ke kiri

>> Geser ke kanan

& Operasi bit AND

| Operasi bit OR

^ Operasi bit XOR

~ Operasi bit NOT

Latihan 1. # include <iostream.h>

2. int main

3. {

4. unsigned x = 93;

5. cout << “Nilai x semula adalah “ << x << endl;

6. x = x << 1;

7. cout << “Nilai x setelah digeser ke kiri adalah << x << endl;

8. x = x >> 2;

9. cout << “Nilai x setelah digeser ke kanan adalah << x << endl;

10. return 0;

11. }

5. Operator Hubungan

Operator ini digunakan untuk membandingkan dua elemen nilai dan akar yang dihasilkan nilai

perbandingannya, yaitu betul (bernilai 1) atau salah (bernilai 0).

Operator Keterangan

> Lebih besar dari

>= Lebih besar sama dengan

< Lebih kecil

<= Lebih kecil sama dengan

= = Sama dengan

!= Tidak sama dengan

Page 7: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 7

6. Operator Logika

Operator logika bisasanya berpasangan dengan operator hubungan nilai perbandingan dari operator

logikanya menghasilkan 2 nilai yaitu betul (nilai 1) dan salah (nilai 0)

Operator Keterangan

&& Operator logika AND

|| Operator logika OR

! Operator logika NOT

Latihan

1. Buatlah source code untuk algoritma berikut ini

a. Masukkan nilai dan tugas

b. Jika nilai lebih besar dari 70 AND tugas lebih besar sama dengan 75, maka tulis lulus

c. Jika nilai lebih kecil sama dengan 70 AND tugas lebih kecil dari 75, maka tulis tidak lulus

2. Analisa program tersebut.

7. Operator Alamat

Operator ini berhubungan dengan pengunaan pointer

& menunjukkan alamat dari suatu data

* menunjukkan suatu pointer

Latihan 1. # include <iostream.h>

2. int main ()

3. {

4. int a, *b;

5. a = 20;

6. b = &a;

7. cout << “Pointer b menunjuk alamat “ << b << endl;

8. cout << “Alamat tsb bernilai “ << *b << endl;

9. return 0;

10. }

Page 8: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 8

Percabangan

Tujuan Praktikum:

Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman C++ sehingga

dapat menggunakan percabangan tersebut dalam membuat sebuah program baik itu if, if else, nested if

maupun percabangan majemuk.

Dasar Teori

1. IF

Statement ini digunakan untuk melakukan pilihan terhadap 2 atau lebih alternatif pilihan dengan bentuk

umumnya sebagai berikut.

If (kondisi)

Pernyataan

Contoh : penggalan program Discount = 0;

If (harga>10000)

{

discount = (10/100)*harga;

bonus = “Kaos Kaki”

}

dari penggalan program diatas percabangan terjadi atas kondisi harga yang lebih besar dari 10000 mendapat

discount sebesar 10% dan juga mendapat bounus Kaos Kaki.

Latihan :

1. Buatlah algoritma yang lengkap dari penggalan program diatas.

2. Buatlah source code-nya.

2. IF… ELSE

Bentuk umumnya :

If (kondisi)

{

pernyataan1

….

}

else

{

Pernyataan

……

}

Dalam bentuk percabangan ini jika kondisi yang ditanyakan benar maka akan mengerjakan pernyataan pertama,

jika kondisi yang ditanyakan salah maka akan mengerjakan pernyataan kedua.

Contoh : 1. #include<iostream.h>

2. int main()

3. {

4. int n,t;

5. cout<<”Masukan sebuah nilai “<<endl;

6. cin>>n;

7. cout<<”Masukan nilai dari Tugas “<<endl;

8. cin>>t;

9. if (nilai>70)

10. cout<<”Lulus”<<endl;

4

Page 9: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 9

11. else

12. cout<<”Tidak Lulus”<<endl;

13. return 0;

14. }

Bila program dijalankan, akan muncul pertanyaan tentang nilai dan tugas yang harus dimasukan, kondisi yang

dipertanyakan adalah besarnya n atau nilai lebih dari 70, jika benar maka akan muncul pernyataan Lulus, jika

salah maka akan muncul pernyataan Tidak Lulus.

Latihan

1. Buatlah source code dari algoritma berikut ini :

a. Masukan harga barang yang dibeli

b. Jika harga >= 10000, dikenakan diskon 10%

c. Tampilkan harga yang harus dibayarkan

d. Jika harga kurang dari kondisi yang ditetapkan, dikenakan diskon 5%

e. Tampilkan harga yang harus dibayarkan

2. Analisa-lah program yang dihasilkan

3. NESTED IF

ini merupakan suatu bentuk percabangan didalam percabangan dengan bentuk umumnya sebagai berikut :

if (kondisi1)

if (kondisi2)

pernyataan;

else

pernyataan;

else

pernyataan;

Latihan

1. Buatlah source code dari algoritma berikut ini :

a. Masukan Nilai angka

b. Jika 100=>nilai >=81, maka nilai dalam bentuk hurufnya adalah A, jika tidak berarti

81>nilai>=60 dan nilai dalam bentuk hurufnya adalah B, jika tidak berarti 60 >nilai>=40 dan

nilai dalam bentuk hurufnya adalah C, jika tidak berarti 40>nilai>=20 dan nilai dalam bentuk

hurufnya adalah D, jika tidak berarti nilai hurufnya adalah E

c. Tampilkan tulisan “Nilai dalam bentuk hurufnya =”

2. Buatlah flowchart-nya

3. Analisa-lah program tersebut

4. PERCABANGAN MAJEMUK

Percabangan majemuk disini yang dimaksud adalah suatu percabangan yang menyajikan banyak alternatif

pilihan pernyataan yang sesuai dengan kondisi yang dipertanyakan. Dalam bahasa C/C++ percabangan ini

menggunakan perintah SWITCH sedangkan pada pascal menggunakan case…of. Bentuk umumnya

switch(ekspresi)

{

case konstanta1 :

pernyataan1;

break;

case konstanta2 :

pernyataan2;

break;

…..

….

….

Default : pernyataanx;

}

Page 10: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 10

contoh : 1. #include<stdio.h>

2. main()

3. {

4. int kode;

5. printf(“Masukan Kode Hasri [1-7] : “);

6. scanf(“%d”,&kode);

7. switch(kode)

8. {

9. case 1:

10. printf(“Senin”);

11. break;

12. case 2:

13. printf(“Selasa”);

14. break;

15. case 3:

16. printf(“Rabu”);

17. break;

18. case 4:

19. printf(“Kamis”);

20. break;

21. case 5:

22. printf(“Jumat”);

23. break;

24. case 6:

25. printf(“Sabtu”);

26. break;

27. case 7:

28. printf(“Minggu”);

29. break;

30. default:

31. printf(“Kode tidak ditemukan”);

32. }

33. }

Latihan :

Sebuah program yang dibuat dengan bahasa C/C++ jika dijalankan akan tampak seperti dibawah ini : MENU UTAMA

--------------------

1. Bujursangkar

2. Segitiga

3. Lingkaran

4. Keluar

--------------------

Pilih[1-4] :

Buatlah :

1. Algoritmanya

2. Source Code

3. Penjelasan

Page 11: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 11

Perulangan

Tujuan praktikum:

Mahasiswa dapat memahami tentang looping pada sebuah program karena pada dasarnya suatu

program ketika dieksekusi sering memunculkan sesuatu yang diulang-ulang, berarti program ini mempunyai

listing dengan menggunakan metode looping. Ada dua cara untuk membuat looping yaitu dengan rekursi atau

iterasi. Cara iterasilah yang akan dibahas pada Bab 5 ini.

Dasar Teori

1. While…do

While sering digunakan untuk melakukan pengulangan, bentuk penulisannya While ( kondisi )

{

statment1 ;

.

.

statment2;

Contoh

1. //Menunjukan looping dengan 'while'

2. //Sebagai pengganti 'goto'

3. #include<iostream.h>

4. int main()

5. {

6. //inisialisasi variabel 'hitung'

7. int hitung = 0;

8. //Mulai looping dengan memeriksa kondisi

9. while (hitung <=5)

10. {

11. hitung++;

12. cout <<"Menghitung : " << hitung << endl;

13. }

14. cout << endl;

15. cout << "Selesai menghitung." << endl;

16. cout << "Perhitungan terakhir : " << hitung;

17. cout << endl;

18. return 0;

19. }

Looping do….while ini mengeksekusi statement yang ada dalam blok looping sebelum mengecek kondisinya.

Cara penulisannya sebagai berikut :

Menghitung : 1

Menghitung : 2

Menghitung : 3

Menghitung : 4

Menghitung : 5

Selesai menghitung

Perhitungan terakhir : 5

5

Page 12: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 12

Do

{

.

.

statement;

.

.

}

while ( kondisi );

contoh 1. //Menunjukkan looping 'do..while'

2. #include <iostream.h>

3. int main

4. {

5. int hitung, hit;

6. cout << "Berapa kali perulangan ? ";

7. cin >> hitung;

8. //Menyalin isi 'hitung' ke 'hit' untuk perbandingan

9. hit = hitung;

10. cout << "menghitung mundur .. \n" << endl;

11. //Mulai looping (setidaknya satu kali)

12. do

13. {

14. cout << "Mencetak : " << hitung << endl;

15. hitung--;

16. }

17. while (hitung > 0);

18. cout << endl;

19. //Memeriksa apakah input dari user dengan 'hit' yang disalin dari

'hitung'

20. // kurang atau sama dengan nol

21. if (hitung <=0)

22. {

23. cout << "Tidak ada perulangan ... ";

24. cout << endl;

25. }

26. else

27. {

28. cout << "Selesai mengulang." << endl;

29. cout << "Perhitungan terakhir : " << hitung << endl;

30. }

31. return ;

32. }

2. For

Dengan menggunakan loopingdo ini ada tiga langkah yang harus dijalankan yaitu inisialisai ( awalan ),

pengujian kondisi, dan aksi yang dilakukan yang dapat berupa penambahan atau pengurangan suatu variabel.

For ( insialisasi; pengujian; aksi )

{

.

.

statement;

.

.

}

Page 13: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 13

Contoh 1. #Menunjukkan looping 'for'

2. #include <iostream.h>

3. int main()

4. {

5. int hitung hit;

6. cout <<"Berapa kali perulangan ? ";

7. cin >> hitung;

8. // Menyalin isi 'hitung' ke 'hit' untuk perbandingan

9. hit = hitung;

10. cout << "Menghitung mundur ...\n" << endl;

11. // Mulai looping dengan kondisi 'hitung' lebih besar atau sama

dengan 'hit'

12. // dan akan berakhir ketika 'hitung' sama dengan nol

13. for (hit>= hitung; hitung > 0; hitung--)

14. {

15. cout << "mencetak : " << hitung << endl;

16. }

17. cout >> endl;

18. //Memeriksa apakah input dari user dengan 'hit' yang disalin dari

'hitung' kurang atau sama dengan nol

19. if (hit <= 0)

20. {

21. cout << "tidak ada perulangan ...";

22. cout << endl;

23. }

24. else

25. cout << "Selesai menghitung." << endl;

26. cout << "Perhitungan terakhir : " << hitung;

27. cout << endl;

28. }

29. return 0;

30. }

3. Goto

Perintah ini digunakan untuk mengalihkan proses ke suatu label tertentu.

Contoh : 1. #include<stdio.h> 2. main() 3. { 4. int n=1; 5. cetak : 6. printf(“Praktikum ini terlalu mudah\n”); 7. if(n++<10) 8. goto cetak; 9. }

Latihan :

Buatlah program dalam bentuk menu, yang menampilkan suatu bentuk konversi seperti dibawah ini. MENU UTAMA

--------------------

1. BBM

2. Mata Uang

3. Suhu

4. Keluar

--------------------

Pilih[1-4] :

Page 14: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 14

Dengan ketentuan

1. BBM meliputi premium, solar, premix dan minyak tanah. Tampilkan pembelian dari 1 liter hingga 10

liter dengan kenaikan per 1 liter dengan rumus :

Premiun = liter*1850

Solar = liter*1650

Premix = liter*2200

Minyak = liter*700

2. Mata uang meliputi rupiah, dolar dan euro

3. Suhu meliputi celcius, reamur dan fahrenheit

Fahrenheit = 9/5*celceius+32

Reamur =4/9*celcius-32

Page 15: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 15

Fungsi

Tujuan Praktikum:

a. Mahasiswa dapat memahami fungsi dalam sebuah program yaitu subprogram yang akan mengolah data

dan mengembalikan nilai.

b. Mahasiswa dapat memahami fungsi keluaran bukan integer.Prototipe fungsi Parameter formal dan

parameter actual Variabel local file header dan rekursi

Dasar Teori

Fungsi adalah subprogram yang akan mengolah data dan mengembalikan nilai. Setiap program C++

mempunyai minimal satu fungsi, yaitu main(), yang dijalankan otomatis oleh sistem operasi. Suatu fungsi

dapat memanggil fungsi yang lainnya, atau sebaliknya. Setiap fungsi harus dapat mengembalikan suatu nilai, jika

tidak akan menjadi fungsi void. Jadi ketika fungsi dipanggil, ia akan akan mengerjakan sesuatu seperti pada

listing programnya, dan kemudian mengirimkan hasilnya. Nilai yang dikembalikan disebut dengan returnvalue

dan tipenya harus dideklarasikan.

Contoh 1. #include <iostream.h>

2. // fungsi prototype

3. int LuasSegiEmpat(int x, int y);

4. int main()

5. {

6. int panjang, lebar, luas;

7. cout <<"Masukkan Panjang : " ;

8. cin >> panjang;

9. cout <<"Masukkan Lebar : " ;

10. cin >> lebar;

11. cout << endl;

12. // panggil fungsi

13. luas = LuasSegiEmpat(panjang, lebar);

14. cout << "Luas yang didapat adalah = " << luas <<"\n";

15. return 0;

16. }

17. int LuasSegiEmpat(int x, int y)

18. {

19. //nilai hasil perhitungan langsung dikembalikan

20. return (x*y);

21. }

int main ( )

{

statement;

fungsi1( );

.

.

.

.statment;

fungsi2( );

.

.

.

.

Return 0;

}

.

.

.

.

return

.

Fungsi3 ( );

.

.

return

.

.

.

.

return

6

Page 16: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 16

Fungsi Uraian

Sqrt(x)

exp(x)

log(x)

log10(x)

fabs(x)

ceil(x)

floor(x)

pow(x)

fmod(x,y)

sin(x)

cos(x)

tan(x)

Akar kuadrat dari x

Fungsi eksponen ex

Logaritma alami dari x (dasar e)

Logaritma dari x (dasar 10)

Nilai mutlak dari x

Pembulatan ke bilangan bulat terkecil yang tidak lebih kecil dari x

Pembulatan ke bilangan bulat terbesar yang tidak lebih besar dari x

xy

pembagian x/y sebagai tipe float

sinus dari x (dalam radian)

cos dari x (dalam radian)

tangen dari x(dalam radian)

1. Fungsi dengan nilai keluaran bukan integer

Untuk fungsi dengan nilai keluaran bukan integer, langkah yang diperlukan berupa :

Fungsi harus dideklarasikan di awal program

Fungsi didefinisikan dengan diawali penentu tipe fungsi

Contoh float minimum(x,x)

float x,y;

{

if(x>y)

return(x);

else

return(y);

}

2. Prototipe fungsi

Yang dinamakan prototipe fungsi adalah cara atau gaya dalam mendeklarasikan fungsi. Fungsi ini

digunakan untuk menjelaskan kepada kompiler mengenai :

Tipe keluaran fungsi

Jumlah parameter

Tipe dari masing-masing parameter

Keuntungan pemakaiannya adalah kompiler akan melakukan konversi seandainya antara tipe parameter

dalam definisi dan parameter saat pemanggilan fungsi tidak sama atau akan menunjukan kesalahan kalau jumlah

parameter dalam definisi dan saat pemanggilan berbeda.

Kalau definisi semula berupa : Float jumlah(x,y)

Float x,y ;

Maka menjadi Float jumlah(float x, float y)

3. Parameter formal dan parameter aktual

Parameter formal adalah variabel yang ada pada daftar parameter dalam definisi. Parameter aktual adalah

parameter yang dapat berupa variabel atau konstanta maupun ungkapan yang dipakai dalam pemanggilan fungsi.

Contoh

printf(“%f”, kali(2*3,5*6));

Adapun cara melewatkan parameter adalah :

Pemanggilan dengan nilai

Pemanggilan dengan referensi

Contoh : 1. #include<stdio.h>

2. void tukar(int x, int y);

Page 17: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 17

3. main()

4. {

5. int a, b;

6. a = 99;

7. b = 11;

8. printf(“Nilai sebelum pemanggilan fungsi : \n”);

9. printf(“Nilai a =%d nilai b =%d\n\n”,a,b);

10. tukar(a,b);

11. printf(“Nilai sesudah pemanggilan fungsi :\n”);

12. printf(“Nilai a =%d nilai b =%d\n\n”,a,b);

13. }

14. void tukar (int px, int py);

15. {

16. int z:

17. z=px;

18. px=py;

19. printf(“Nilai diakhiri fungsi :\n”);

20. printf(“Nilai px=%d nilai py=%d\n\n “, px,py);

21. }

4. Variabel lokal

Variabel lokal adalah variabel yang dideklarasikan didalam fungsi yang bersifat :

Otomatis diciptakan ketika fungsi dipanggil dan hilang ketika fungsi selesai digunakan

Hanya dikenal oleh fungsi tempat variabel berada

Pada waktu diciptakan nilainya tidak tentu

Dalam penulisannya dapat ditambahakan kata “AUTO” didepannya

Contoh : 1. #include <iostream.h>// fungsi prototype

2. void fungsiKu();

3. int x = 5, y = 7;

4. int main()

5. {

6. cout << "x dari fungsi 'main()' : " << x << endl;

7. cout << "y dari fungsi 'main()' : " << y << endl;

8. cout << endl;

9. cout << "*** Panggil fungsi 'fungsiKu()' *** \n\n";

10. fungsiKu();

11. cout << "\nKembali lagi ke 'main()' dari 'fungsiKu()'\n";

12. cout << endl;

13. cout << "x dari fungsi 'main()' : " << x << endl;

14. cout << "y dari fungsi 'main()' : " << y << endl;

15. return 0;

16. }

17. void fungsiKu()

18. {

19. int y = 10; // variabel lokal 'y'

20. cout << "x dari fungsi 'fungsiKu()' : " << x << endl;

21. cout << "y dari fungsi 'fungsiKu()' : " << y << endl;

22. }

5. File header

Setiap pustaka baku mempunyai file header yang mengandung prototipe fungsi untuk semua fungsi yang

ada didalam pustaka dan definisi dari tipe-tipe data maupun konstanta yang diperlukan oleh fungsi tersebut.

assert.h : berisi makro dan informasi untuk diagnosa yang membantu pemeriksaan kesalahan prose

dalam program

ctype.h : mengandung prototipe fungsi untuk menguji properti dari karakter, dan dapat digunakan

untuk mengubah karakter huruf kecil ke besar

Page 18: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 18

errno.h : mendifinisikan makro untuk melaporkan kondisi kesalahan

float.h : berisi batasan didalam sistem bilangan bertipe float

limits.h : berisi batasan sistem integral

locale.h : berisi prototipe fungsi dan informasi lainnya yang dapat memodifikasi sistem data pada saat

program diproses

math.h : berisi prototipe fungsi untuk pustaka matematika

setjmp.h : berisi prototipe fungsi yang menuntun urutan pemanggilan fungsi

signal.h : berisi prototipe fungsi dan makro untuk menangani kondisi yang bermacam-macam saat

program diproses

stdarg.h : mendifinisikan makro untuk menangani daftar argumen fungsi yang nilai dan tipenya tidak

diketahui

stddef.h : berisi definisi umum dari tipe yang digunakan C untuk membentuk perhitungan tertentu

stdio.h : berisi prototipe fungsi untuk pustaka input/ output

stdlib.h : berisi prototipe fungsi untuk konversi nilai ke teks atau sebaliknya, alokasi memori, bilangan

acak dan utilitas lainnya

strings.h : pemrosesan string

time.h : manipulasi data dan waktu

6. Rekursi

Fungsi rekursif adalah suatu fungsi yang memanggil dirinya sendiri, artinya fungsi tersebut dipanggil di

dalam tubuh fungsi itu sendiri. Fungsi faktorial, yang menghitung nilai faktorial dari suatu bilangan bulat positif,

merupakan pokok bahasan yang memudahkan pemahaman fungsi rekursif.

Contoh : #include<stdio.h>

int faktorial(int n)

{

if (n==1)

return(1);

else

return(n*faktorial(n-1));

}

main()

{

int x ;

printf(“Mencari nilai faktorial\n “);

printf(“Masukan nilai x : “); scan(“%d”,&x);

printf(“Nilai faktorial dari %d=%d\n”,x,faktorial(x));

}

Latihan

Buatlah program dalam bentuk menu, yang menampilkan suatu bentuk konversi seperti dibawah ini.

MENU UTAMA

--------------------

1. Perkalian

2. Pembagian

3. Pengurangan

4. Pengurangan

5. Keluar

--------------------

Pilih[1-5] :

Pernyataan :

Pilihan yang disajikan dibuat menggunakan fungsi

Dan program akan diulang berulang-ulang sampai pilihan pada nomor 5.

Page 19: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 19

Array, String dan Pointer

Tujuan Praktikum:

a. Mahasiswa dapat memahami, mendeklarasikan dan menggunakan array dimensi dua.

b. Mahasiswa dapat memahami, mendeklarasikan dan menggunakan string.

c. Mahasiswa dapat memahami, mendeklarasikan dan menggunakan pointer.

Dasar Teori

1. Deklarasi array

Array merupakan koleksi data dimana setiap elemen memakai nama yang sama dan bertipe sama dengan

dibedakan setiap elemennya dengan sebuah indeks. Nilai dari indeks dimulai dari 0, dengan cara penulisan Tipe_data nama_array[jumlah_elemen_array]

Contoh 1. #include<stdio.h>

2. int main()

3. {

4. int square[100];

5. int i;

6. int k;

7. for(i=0;i<10;i++)

8. {

9. k=i+1;

10. square[i]=k*k;

11. printf(“\nPangkat dari %d adalah %d “,k,square[i])

12. }

13. return 0;

14. }

2. Array dimensi dua

Contoh : 1. #include <iostream.h>

2. #include <iomanip.h>

3. int jum_kol(int arrIn[] [3], int nilai_kol[]);

4. int jum_bar(int arrIn[] [3], int nilai_bar[]);

5. int main()

6. {

7. static int arr[2][3] = {

8. {10,20,30},

9. {11,21,31}

10. };

11. int bar, kol;

12. int nilai_kol[3];

13. int nilai_bar[2];

14. for (bar = 0; bar < 2; bar ++)

7

Page 20: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 20

15. {

16. for (kol = 0; kol < 3; kol++)

17. { // Mengatur tampilan matik agar teratu

18. cout << setw(5) << arr[bar][kol];

19. }

20. cout << "\n\n";

21. }

22. jum_kol(arr, nilai_kol);

23. for (kol = 0; kol < 3; kol++)

24. {

25. cout << "Hasil penjumlahan kolom " << kol << " adalah ";

26. cout << nilai_kol[kol] << endl;

27. }

28. jum_bar(arr, nilai_bar);

29. for (bar = 0; bar < 2; bar++)

30. {

31. cout << "Hasil penjumlahan baris " << bar << " adalah ";

32. cout << nilai_bar[bar] << endl;

33. }

34. return 0;

35. }

36. int jum_kol(int arrIn[][3], int nilai_kol[])

37. {

38. int bar, kol;

39. for (kol = 0; kol < 3; kol++)

40. {

41. nilai_kol[kol] = 0;

42. for (bar = 0; bar < 2; bar++)

43. {

44. nilai_kol[kol] += arrIn[bar][kol];

45. }

46. }

47. return 0;

48. }

49. int jum_bar(int arrIn[][3], int nilai_bar[])

50. {

51. int bar, kol;

52. for (bar = 0; bar < 3; bar++)

53. {

54. nilai_bar[bar] = 0;

55. for (kol = 0; kol < 3; kol++)

56. {

57. nilai_bar[bar] += arrIn[bar][kol];

58. }

59. }

60. return 0;

61. }

Latihan

Diketahui sebuah data nilai mahasiswa Teknik Informatika STTA Yogyakarta sebagai berikut

No Nim Nama UTS UAS Tugas Total Nilai

1

2

3

4

5

03000001

03000002

03000003

03000004

03000005

Budi

Ima

Jojon

Bagong

Londo

70

80

60

75

85

50

40

45

55

60

100

90

80

70

60

Buatlah program dengan menggunakan tampilan menu berikut ini

Page 21: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 21

MENU UTAMA

--------------------

1. Memasukan Data

2. Menampilkan Data

3. Keluar

--------------------

Pilih[1-3] :

Panduan :

a. Tampilan menu untuk memasukan data adalah sebagai berikut : NIM :

Nama :

UTS :

UAS :

Tugas :

Lagi(y/t)?

b. Total diperoleh dengan menggunakan rumus = UTS*0.3+UAS*0.5+Tugas*0.2

c. Nilai dalam bentuk huruf dengan ketentuan :

100>= Nilai>80 = A

80>= Nilai >60 = B

60>= Nilai >40 = C

40>= Nilai >20 = D

20>= Nilai >0 = E

d. Tampilan menu untuk menampilkan data dibuat mirip dengan data yang didapat diatas.

3. String

String merupakan betuk data yang biasa dipakai dalam pemrograman guna menampung dan memanipulasi data

teks, string bukan merupakan tipe data tersensiri tetapi merupakan jenis khusus dari array ( dalam bahasa

pemrograman C/C++ ).

Data string biasanya dimasukan dengan perintah gets atau scanf : gets(namalarik);

Atau scanf(“%s”,namalarik);

contoh : 1. #include<stdio.h> 2. main() 3. { 4. char nama[20]; 5. printf(“masukan nama anda: “);scanf(“%s”,nama); 6. printf(„ Nama yang tadi dimasukan adalah : %s\n”,nama); 7. }

Variabel string dalam bentuk char ini dapat diakses seperti halnya kita mengakses suatu tipe data dalam bentuk

array atau larik dengan contoh sebagai berikut : 1. #include<stdio.h>

2. main()

3. {

4. int a, j;

5. char kata[25];

6. puts(Ketikan Suatu Kalimat : “); gets(kata);

7. j=0;

8. for(a=0;kata[a];a++)

9. j=j++;

10. printf(“Jumlah karakter dari kalimat yang anda ketikan adalah :

%d\n”,j);

11. }

Page 22: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 22

5. Pointer

Ambil angka di alamat berikutnya :

5

Jumlahkan angka tersebut dengan angka di alamat sebelumnya

6

Simpan hasilnya di alamat berikutnya :

11

Hentikan program

1

2

3

4

5

6

7

alamat

instruksi

data

Pointer adalah sebuah variabel yang menunjuk ke alamat memori komputer. Memori komputer digambarkan

seperti tampak pada gambar diatas sebagai suatu tumpukan penyimpanan dengan lokasi yang berbeda-beda,

untuk memdeakan lokasinya digunakan nomor-nomor yang unik, nomor ini disebut dengan alamat memor. Ada

kebiasaan bahwa seorang programmer tidak tahu tentang alamat-alamat memori yang dipakai untuk variabel-

variabel yang dibuat karena kompiler sudah menangani ini secara detail. Kita dapat mengetahui alamat-alamat

yang dipakai oleh variabel-variabel yang kita buat, dengan menggunakan operator “&“.

Keuntungan meakses memori dengan menggunakan pointer daripada menggunakan variabel global adalah

bahwa fungsi yang dapat mengakses data hanya fungsi yang mempunyai pointer tersebut, dengan demikian

kontrol terhadap pemakaian data dan mengurangi masalah yang timbul ketika sebuah fungsi mengubah data

tersebut secara tidak sengaja.

Contoh : 1. #include<iostream.h>

2. typedef unsigned short int USHORT;

3. int main()

4. {

5. USHORT umurku; //variabel umurku

6. USHORT *umurku = null; // pointer yang menunjuk ke variabel umurku

7. umurku=5;

8. cout<<”umurku = “<<umurku<<endl;

9. *umurku=&umurku; // pointer umurku disi dengan alamat umurku

10. cout<<””Pointer umur ku = “<<*umurku<<endl;

11. cout <<endl;

12. umurku=7;

13. cout<<”umurku = “<<umurku<<endl;

14. *umurku=&umurku; // pointer umurku disi dengan alamat umurku

15. cout<<””Pointer umur ku = “<<*umurku<<endl;

16. cout <<endl;

17. return 0

18. }

bandingkan dengan ini : 1. #include<iostream.h>

2. typedef unsigned short int USHORT;

3. int main()

4. {

5. USHORT umurku; //variabel umurku

data *data

Page 23: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 23

6. USHORT *umurku = &umurku; // pointer yang menunjuk ke variabel

umurku

7. umurku=5;

8. cout<<”umurku = “<<umurku<<endl;

9. cout<<””Pointer umur ku = “<<*umurku<<endl;

10. cout <<endl;

11. umurku=7;

12. cout<<”umurku = “<<umurku<<endl;

13. cout<<””Pointer umur ku = “<<*umurku<<endl;

14. cout <<endl;

15. return 0

16. }

Page 24: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 24

Studi Kasus I, Operasi Matrik

Tujuan praktikum:

Mengetahui cara inisialisasi dan memanipulasi data elemen dari sebuah matrix

Dapat melakukan operasi matrix, penambahan, pengurangan, perkalian, inverse dll. dengan program

komputer

Dapat menggunakan array 2D pada C untuk melakukan operasi matrix

Dasar teori:

Sebuah matrix terdiri dari array segiempat dari elemen-elemen yang ditandai dengan simbul [A]. Individual

elemen-elemen dari sebuah matrix [A] dinotasikan dengan ija . Set dari elemen-elemen horizontal disebut baris

dan set dari elemen-elemen vertikal disebut kolom. Dengan demikian sebuah program matrix dapat

diimplementasikan menggunakan array 2D.

Contoh:

int a[2][3];

a[0][0] a[0][1] a[0][2]

a[1][0] a[1][1] a[1][2]

Array 2D adalah array dari arrays, sehingga deklarasi di atas adalah array dari dua array integer. Matrix di atas

mempunyai jumlah baris 2 dan jumlah kolom 3. Berikut adalah contoh program untuk mengisi data elemen-

elemen 1 s/d 6 dan me-print elemen-elemen dalam baris dan kolomnya.

1. #include<iostream.h>

2. #include<conio.h>

3. void main(){

4. clrscr();

5. int a[3][3];

6. int b[3][3];

7. int c[3][3];

8. int i,j;

9. for (i=1;i<3;i++) {

10. for (j=1;j<3;j++) {

11. cout << "Masukkan elemen matrik A " << i << "," << j << " : ";

12. cin >> a[i][j];

13. }

14. }

15. cout << "Matrik A : " <<endl;

16. for (i=1;i<3;i++) {

17. for (j=1;j<3;j++) {

18. cout << a[i][j] << " ";

19. }

20. cout << endl;

21. }

22. }

Penambahan atau pengurangan dua buah matrix [A] dan [B] dapat dilakukan dengan cara menambahkan atau

mengurangkan masing elemen yang bersesuaian dari tiap-tiap matrix [A] dan [B] tersebut.

[C] = [A] + [B] ijijij bac

8

Page 25: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 25

[C] = [A] – [B] ijijij bac

Program penambahan dua buah matrix 2 x 2. Pada program penambahan matrix di bawah terdapat dua buah

function mat_read (int mat[2][2]) dan function mat_print (int mat[2][2]) belum dibuat. Buatlah sendiri kedua

function tersebut dengan mengacu potongan program di atas dan kemudian selesaikan program penambahan dua

buah matrix di bawah.

Program untuk menambah dua matrix 2 x 2:

1. #include<iostream.h> 2. #include<conio.h> 3. 4. void main(){ 5. clrscr(); 6. int a[3][3]; 7. int b[3][3]; 8. int c[3][3]; 9. int i,j; 10.

11. for (i=1;i<3;i++) {

12. for (j=1;j<3;j++) {

13.

14. cout << "Masukkan elemen matrik A " << i << "," << j << " : ";

15. cin >> a[i][j];

16. }

17. }

18.

19. cout << "Matrik A : " <<endl;

20. for (i=1;i<3;i++) {

21. for (j=1;j<3;j++) {

22.

23. cout << a[i][j] << " ";

24.

25. }

26. cout << endl;

27. }

28.

29. for (i=1;i<3;i++) {

30. for (j=1;j<3;j++) {

31.

32. cout << "Masukkan elemen matrik B " << i << "," << j << " : ";

33. cin >> b[i][j];

34. }

35. }

36.

37. cout << "Matrik B : " <<endl;

38. for (i=1;i<3;i++) {

39. for (j=1;j<3;j++) {

40.

41. cout << b[i][j] << " ";

42.

43. }

44. cout << endl;

45. }

46.

47. for (i=1;i<3;i++) {

48. for (j=1;j<3;j++) {

49. c[i][j]=a[i][j]+b[i][j];

50. }

Page 26: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 26

51. }

52.

53. cout << "Matrik C : " << endl;

54. for (i=1;i<3;i++) {

55. for (j=1;j<3;j++) {

56. cout << c[i][j] << " ";

57. }

58. cout << endl;

59. }

60. }

Perkalian sebuah matrix [A]: m x n, dengan bilangan skalar c, dapat dihitung sebagai berikut:

c a11 c a12 ... c a1n

[B] = c [A] = c a21 c a22 ... c a2n

c am1 c am2 ... c amm

Sedang perkalian dua buah matrix [C] = [A] [B] dapat dilakukan dengan persamaan sebagai berikut (ingat

jumlah baris-kolom dari matrik [C]).

n

k

kjikij bac1

Inverse dari sebuah matrix [A] adalah [A]-1 yang dapat dihitung sebagai berikut:

[A] [A]-1 = [A]-1 [A] = [I]

dengan [I] adalah matrix identitas.

Untuk matrix inversi dari matrix 2 x 2 inverse matrix dapat dihitung dengan jauh lebih sederhana sebagai

berikut.

1121

1222

21122211

1 1][

aa

aa

aaaaA

Tugas:

Buat program perkalian matrix 2 x 2 dengan bilangan skalar c yang dapat divariasi. Kemudian tentukan

matrix inverse dari matrix 2 x 2 tersebut.

Buat program perkalian matrix persegi m x n dengan m dan n = 4.

Page 27: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 27

Studi Kasus I, Iterasi Bisection

Tujuan praktikum:

Dapat memahami penyelesaian persamaan f(x) = 0 dan mencari akar-akar persamaannya dengan

metode penggambaran grafis.

Memahami metode trial-and-error dengan metode Bisection untuk mencari akar-akar persamaan f(x) =

0.

Dapat membuat program metode numerik Bisection untuk mencari akar-akar persamaan f(x) = 0.

Dasar teori:

Metode paling sederhana untuk mencari akar-akar persamaan f(x) = 0 adalah dengan me-plot fungsi yang dicari

akar-akarnya. Akar-akar persamaan adalah harga-harga f(x) yang memotong sumbu x. Metode ini biasa disebut

metode grafis.

Contoh:

Gunakan metode grafis untuk menentukan koefisien penurunan parasut c yang turun dengan massa m = 68.1 kg,

kecepatan v = 40 m/s, pada waktu turun t = 10 detik. Grafitasi bumi adalah g = 9.8 m/detik2.

Persamaan: vec

gmcf tmc )/(1)(

c (ordinat) f(c) (absis)

4

8

12

16

20

34.115

17.653

6.067

-2.269

-8.401

Metode Bisection:

Secara umum jika f(x) adalah berharga real dan kontinyu pada interval ul xx dan harga-harga )( lxf dan

)( uxf mempunyai tanda yang berbeda, maka berlaku persamaan 0)()( ul xfxf . Dan paling tidak akan

ada satu persamaan yang berharga di antara ul xx .

Mencari akar-akar persamaan dengan metode Bisection adalah dengan membagi dua interval ul xx kemudian

mencari akar-akarnya pada tiap-tiap interval, lalu membagi dua kembali interval yang memuat akar-akar

persamaannya. Step-step algoritma dari metode Bisection adalah sebagai berikut:

9

1

2

1

6

Akar

persamaan c

f(c)

Page 28: Pengenalan bahasa pemrograman C++ - stta.namestta.name/materi/2018 - Modul Teknik Pemrograman tm.pdf · Mahasiswa dapat belajar dan memahami tentang percabangan dalam bahasa pemrograman

Modul Praktikum Teknik Pemrograman dengan C/C++,

Teknik Mesin, STTA Yogyakarta 28

Pilih harga rendah lx dan harga tinggi ux di mana akar-akar persamaanya akan termuat di antaranya.

Tentukan estimasi akar persamaan 2

ulr

xxx

Evaluasi hasilnya dengan cara sebagai berikut:

a. Jika 0)()( ul xfxf , maka akar persamaan yang dicari ada pada interval bawah. Maka set

ru xx dan kembali ke step 2.

b. Jika 0)()( ul xfxf , maka akar persamaan yang dicari ada pada interval atas. Maka set

rl xx dan kembali ke step 2.

c. Jika 0)()( ul xfxf , maka akar persamaan yang dicari adalah rx .

Program mencari akar persamaan dengan metode Bisection:

/* User perlu memdefinisikan fungsi yang dicari akarnya sebagai fungsi pada program dengan nama: ffunction.

Contoh diberikan pada program ini. */

1. #include<iostream.h>

2. void main() {

3. float a,b,c,fa,fb,fc,konvergensi;

4. int iterasi;

5.

6. cout << "Masukkan Nilai A : ";

7. cin >> a;

8. cout << "Masukkan Nilai B : ";

9. cin >> b;

10.

11. konvergensi=1;

12. iterasi=0;

13. while (konvergensi > 0.000005)

14. {

15. c=(a+b)/2;

16.

17. fa=(2*a)+3;

18. fb=(2*b)+3;

19. fc=(2*c)+3;

20.

21. if ((fc*fb) > 0)

22. b=c;

23. else

24. a=c;

25.

26. konvergensi=a-b;

27. if (konvergensi < 0)

28. konvergensi=konvergensi*-1;

29.

30. iterasi++;

31. }

32.

33. cout << "Jumlah iterasi : " << iterasi << endl;

34. cout << "Akar persamaan : " << a <<endl;

35.

36. }

Tugas:

Buatlah program untuk mencari akar-akar persamaan pada metode grafis di atas menggunakan metode Bisection.