Modul Dasar dasar 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 Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta 1 I
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Modul Dasar dasar 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. Linux menyediakan
perangkat lunak yang dapat digunakan untuk mengubah suatu source code menjadi
program, perangkat lunak ini sering diberi nama sebagai compiler, dan compiler yang
ada di Linux salah satunya adalah gcc stau g++.
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta 1
I
Cara memanggilnya :
g++ nama_source_code.cpp –o nama_program
Parameter –o harus dituliskan, sebab kalau tidak, akan membuat hasil compiler berupa
file program bernama a.out.
3. Memanggil Program
Dari hasil compile akan diperoleh suatu file bernama program yang mempunyai
extensi *.exe. Program ini dapat dijalankan secara langsung dengan cara menuliskan
nama programnya.
Contoh : /pertama menjalankan program bernama pertama.
4. 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 ……..}
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta 2
17. {18. float input;19. cout <<”Masukkan sisi bujursangkar = “ ;20. cin >> input;21. return (input);22. }23.24. float luasp(float sisi)25. {26. float luas;27. luas = square(sisi);28. return(luas);29. }30. void tampil (float luas)31. {32. cout << “\n\nluas Bujursangkarnya adalah = “ << luas
<< “persegi”;33. }
5. 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 <<
(Buatlah program di atas pada komputer, lalu compile dan jalankan)
Fungsi rand() mengembalikan harga-harga random tipe integer antara 0 –
RAND_MAX. Program di bawah ini adalah cara menggunakan fungsi rand().
1. #include <stdio.h>2. #include <stdlib.h>3. int main()4. {5. int i;6. for(i=0; i<5; i++)7. {8. printf("%d\n",rand());9. }10. return 0;11. }
(Buatlah program di atas pada komputer, lalu compile dan jalankan berulang-ulang dan
catat hasil outputnya).
Output program di atas adalah urutan bilangan random dengan harga yang selalu
sama. Hal itu disebabkan inisialisasi benih adalah identik setiap waktu. Untuk
mendapatkan urutan harga random yang berbeda pada setiap program tersebut
dijalankan anda dapat menggunakan fungsi time() untuk membangkitkan benih dengan
fungsi srand(). Fungsi srand() menggunakan unsigned int sebagai argument dan me-set
benih random yang akan dipakai untuk membangkitkan bilangan random dengan rand().
Pada banyak aplikasi, penggunaan fungsi time() untuk membangkitkan benih adalah
cara yang baik dan valid. Modifikasi program anda sehingga menjadi program di bawah
ini:
1. #include <stdio.h>2. #include <stdlib.h>3. #include <time.h>4. int main()
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta 7
5. {6. int i;7. /* set benih untuk rand() */8. srand((unsigned)time(NULL));9. for(i=0; i<5; i++) {10. printf("%d\n", rand());11. }12. return 0;13. }
Untuk membangkitkan bilangan random pada range tertentu dapat dilakukan
dengan cara me-map bilangan integer yang dikembalikan oleh fungsi rand(). Dua
program berikut membangkitkan bilangan random tipe float.
1. #include <stdio.h>2. #include <stdlib.h>3. #include <time.h>4. int main()5. {6. float x;7. int i;8. /* set benih untuk rand() */9. srand((unsigned)time(NULL));10. for(i=0; i<5; i++) {11. x = (float) rand()/(RAND_MAX);12. printf("%f\n", x);13. }14. return 0;15. }
(Buatlah kedua program tersebut, lalu compile dan jalankan. Perhatikan dan catat output
dari masing-masing program).
Tugas:
Buatlah program dengan fungsi rand() untuk membangkitkan bilangan random antara 0
dan 99. Kemudian modifikasi program anda agar keluar dari loop pada saat bilangan
random yang dibangkitkan melampui angka 88.
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta 8
Modul Operasi Matrix
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 . 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. }
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta 9
III
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][C] = [A] – [B]
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++) {
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta 10
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. }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
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta 11
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]).
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.
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.
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta 12
Modul Metode Jacobi
Tujuan praktikum:
Dapat memahami penyelesaian sistem persamaan linear dimensi banyak dengan
iterasi Jacobi.
Memahami metode trial-and-error dengan metode Jacobi.
Dapat membuat program metode numerik Jacobi untuk mencari akar-akar
persamaan linear suku banyak.
Dasar teori:
Metode Jacobi merupakan salah satu metode penyelesaian sistem persamaan
linear (baca: matriks) berdimensi banyak (baca: lebih dari 2). Untuk matriks dengan
dimensi kecil (kurang atau sama dengan dua), lebih efektif diselesaikan dengan aturan
eliminasi atau metode Cramer.
Sistem persamaan linear dapat di-representasikan (dimodelkan) dalam bentuk
1. Pilih input persamaan yang sesuai sehingga program di atas dapat dijalankan2. Tulis jawaban dari persamaan anda dalam selembar kertas dan dikumpulkan
pada akhir praktikum
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta 22
Modul Metode Regula Falsi
Tujuan praktikum:
Mempelajari pemrograman komputer untuk menyelesaikan persamaan non
linear dengan metode regula falsi
Dasar teori:
Metode biseksi dapat diperbaiki apabila proses penetuan interval tidak perlu
setengah dari interval sebelumnya.
Jika bisa dicari interval yang lebih baik maka proses penyelesaian akan
memakan waktu yang lebih cepat dengan jumlah iterasi yang lebih sedikit.
Metode regula falsi titik xc ditentukan dari perpotongan garis linear g(x) yang
menghubungkan f(xa) dan f(xb) dengan y=0
Perhatikan grafik berikut:
Xc dicari dengan persamaan :
Sama dengan metode biseksi jika f(xc)*f(xb)<0 maka xb=xc
Jika f(xc)*f(xb)>0 maka xa=xc.
Pada gambar dengan bertambahnya iterasi, nilai xc akan konvergen ke akar
persamaan (penyelesaian).
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta 23
VII
Proses iterasi berhenti jika selisih nilai xc pada suatu iterasi dengan xc pada
iterasi sebelumnya kurang dari nilai toleransi error yang diberikan
3. Pilih input persamaan yang sesuai sehingga program di atas dapat dijalankan4. Tulis jawaban dari persamaan anda dalam selembar kertas dan dikumpulkan
pada akhir praktikum
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta 24
Modul Persamaan Diferensial
Tujuan praktikum:
Mahasiswa mampu menyelesaikan persamaan-persamaan diferensial biasa
beserta masalah syarat awalnya.
Mahasiswa mampu menyelesaikan sistem linear beserta masalah syarat awalnya.
Mahasiswa dapat melakukan studi lanjut tentang persamaan diferensial.
Dasar teori:
Persamaan diferensial adalah hubungan antara sekelompok fungsi dengan turunan-turunannya. Persamaan diferensial biasa adalah sebuah persamaan diferensial yang menghubungkan fungsi dengan sebuah variabel ke turunannya terhadap variabel itu sendiri
#include<iostream.h>#include<math.h>void main(){int a,i,derajat;float hasil,hasil1,x,koef[6],koef1[6];cout << "Masukkan derajat tertinggi dari persamaan : ";cin >> derajat;cout << "Masukkan nilai x : ";cin >> x;for (i=derajat;i>=0;i--){cout << "Masukkan koef dari x^"<< i << " : ";cin >> koef[i];}cout << "Persamaan yang anda masukkan adalah :\n ";cout << "f(x) = ";hasil=0;for (i=derajat;i>=1;i--){cout << koef[i] << "x^" <<i<< " + ";hasil+=(koef[i]*pow(x,i));}cout << koef[0]<< "\n";hasil+=koef[0];cout << "f(" <<x<< ") : " << hasil <<endl;
cout << endl;cout << "Turunan dari persamaan adalah : " <<endl;cout << "f`(x) = ";
Modul Praktikum Komputasi Numerik, Teknik Informatika, STTA Yogyakarta 25