bab 6 pemograman aplikasi teknik mesin (fotran)

Upload: muhammad-dienullah

Post on 19-Jul-2015

243 views

Category:

Documents


13 download

TRANSCRIPT

BAB VI

STANDAR KOMPETENSISetelah menyelesaikan mata kuliah Komputer mahasiswa mampu mengembangkan paket program aplikasi mandiri untuk menyelesaikan masalah keteknikan khususnya Teknik Mesin dengan bahasa FORTRAN

KOMPETENSI DASARMahasiswa dapat menerapkan seluruh materi yang di-ajarkan dan mampu mengembangkan sebuah program aplikasi Teknik Mesin secara logis, error prone, efektif dan efisien.

INDIKATOR1. Mahasiswa memiliki state of the art pengembangan pemrograman berbasis Teknik Mesin dan mampu menerapkannya dalam mengembangkan sebuah program aplikasi terintegrasi. 2. Mahasiswa mampu mengembangkan program aplikasi matrik lanjut dengan logika pemrograman yang benar. 3. Mahasiswa mampu mengembangkan program aplikasi pengolahan data berbasis statistika dengan logika pemrograman yang benar. 4. Mahasiswa mampu mengembangkan program aplikasi untuk menyelesaikan masalah-masalah mekanika kekuatan material, khususnya untuk statis tertentu dengan logika pemrograman yang benar. 5. Mahasiswa mampu mengembangkan program aplikasi untuk memudahkan dalam proses perencanaan mesin dengan logika pemrograman yang benar.

1

6. Mahasiswa mampu mengembangkan program aplikasi untuk menyelesaikan permasalah dalam bidang Penomena Transport dengan logika pemrograman yang benar. 6.1 PENDEKATAN PEMROGRAMAN

6.2 OPERASI MATRIK Matrik merupakan kumpulan bilangan yang disusun dalam baris dan kolom. Jadi matrik merupakan kumpulan bilangan yang disusun dalam dua dimensi, baris dan kolom. Dalam bahasa FORTRAN, matrik dapat diwakili oleh suatu larik berdimensi dua (two dimension array). Matrik banyak dipergunakan pada aplikasiaplikasi yang lainnya. A. PERKALIAN MATRIK Perkalian atara dua buah matrik dapat dilakukan bilamana banyak kolom matrik yang pertama adalah sama dengan banyaknya baris matrik yang kedua. Matrik A dengan orde 2x3 dan matrik B orde 3x2: b12 a11 a12 a13 b11 B = b A= b22 21 a 21 a 22 a 23 b31 b32 Maka matrik C hasil perkalian dari matrik A dengan B adalah berorder 2x2 sebagai berikut : c = a11 + b11 + a12 + b21 + a13 + b31 c12 = a11 + b12 + a12 + b22 + a13 + b32 C = 11 c 21 = a 21 + b11 + a 22 + b21 + a 23 + b31 c 22 = a 21 + b12 + a 22 + b22 + a 23 + b32 c12 c C = 11 c 21 c 22 Untuk matrik ANxM dan matrik BNxL, maka tiap-tiap elemen dari matrik CNxL dapat dirumuskan sebagai berikut : Cij = Ai1 xB1 j + Ai 2 xB2 j + ... + AiM xBMj atau : Cij = Aik xBkjk =1 M

dimana : i adalah elemen baris dari matrik C dari 1 sampai N j adalah elemen kolom dari matrik C dari 1 sampai L Program untuk menghitung perkalian antara dua matrik adalah sebagai berikut : Algoritma :

2

Tentukan jumlah baris matrik A N Tentukan jumlah kolom matrik A M Kolom matrik A = baris matrik B Tentukan jumlah kolom matrik B L Masukkan data matrik A a. Jika Jumlah baris matrik > N lanjut ke 6 b. Jika jumlah kolom > M kembali ke a Masukkan data matrik Anm 6. Masukkan data matrik B c. Jika Jumlah baris matrik > M lanjut ke 7 d. Jika jumlah kolom > N kembali ke Masukkan data matrik Bmn 7. Matrik C = matrik A x matrik B e. Jika jumlah baris A > N lanjut ke 8 f. Jika Jumlah kolom B> L lanjut kembali ke e C(N,L) 0 g. Jika Jumlah kolom > M lanjut kembali ke f C(N,L) C(N,L)+A(N,M)*B(M,L) 8. Cetak hasilnya Program untuk menghitung perkalian antara dua buah matrik adalah sebagai berikut :C PROGRAM UNTUK MENGHITUNG PERKALIAN DUA BUAH MATRIK C234567890 REAL A(20,20), B(20,20), C(20,20) C WRITE(*,(1X,A,\))JUMLAH BARIS MATRIK A? READ(*,(BN, I2)) N WRITE(*,(1X,A,\))JUMLAH KOLOM MATRIK A? READ(*,(BN, I2)) M WRITE(*,(1X,A,\))JUMLAH KOLOM MATRIK B? READ(*,(BN, I2)) L C MEMASUKKAN DATA MATRIK A DO 101 I=1,N DO 100 J=1,M WRITE(*,(1X,A(,I2,,,I2,)?,\))I,J READ(*,(F7.2)) A(I,J) 100 CONTINUE 101 CONTINUE C MEMASUKKAN DATA MATRIK B DO 201 I=1,M DO 200 J=1,L WRITE(*,(1X,B(,I2,,,I2,)?,\))I,J READ(*,(F7.2)) B(I,J) 200 CONTINUE 201 CONTINUE C MATRIK C ADALAH MATRIK A DIKALIKAN MATRIK B DO 301 I=1,N DO 302 J=1,L

1. 2. 3. 4. 5.

3

C(I,J)= 0 DO 303 K=1,M C(I,J)= C(I,J)+A(I,K)*B(K,J) 303 CONTINUE 302 CONTINUE 301 CONTINUE C MENCETAK MATRIK A WRITE(*,(/,1X,A))DATA MATRIK A : DO 400 I=1,N 400 WRITE(*,(1X,100(F9.2))(A(I,J),J=1,M) C MENCETAK MATRIK B WRITE(*,(/,1X,A))DATA MATRIK B : DO 500 I=1,N 500 WRITE(*,(1X,100(F9.2))(B(I,J),J=1,M) C MENCETAK MATRIK C WRITE(*,(/,1X,A))MATRIK C ADALAH MATRIK A X MATRIK B : DO 600 I=1,N WRITE(*,(1X,100(F9.2))(C(I,J),J=1,L) 600 CONTINUE END

B. INVERSE MATRIK Invers dari suatu matrik dapat dilakukan bilamana matriknya berua matrik bujur sangkar, yaitu jumlah baris dari matrik harus sama dengan jumlah kolom. Sifat khusus dari suatu invers matrik adalah bila invers dari suatu matrik dikalikan kembali dengan matrik aslinya, akan didapat matrik identitas, yaitu matrik yang semua elemennya nol, kecuali elemen-elemen diagonal bernilai 1. Misal, matrik X adalah matrik asli sebagai berikut : x11 x12 x13 X = x 21 x 22 x 23 x31 x32 x33 Bila invers dari matrik dilambangkan dengan X-1, maka : X X-1 = 1 Matrik identitas yang terjadi adalah : 1 0 0 X = 0 1 0 0 0 1 Jadi matrik identitas dapat digunaka untuk mengecek apakah perhitungan invers matrik sudah benar atau tidak. Program berikut digunakan untuk menghitung invers matrik dan matrik identitasnya, sebagai berikut :C C PROGRAM UNTUK MENGHITUNG INVERS MATRIK C C234567890

4

REAL X(50,50), Y(50,50), C(50,50) CHARACTER*30 NAMAMAT WRITE(*,(1X,A,\))ORDE DARI MATRIK READ(*,(BN, I2)) N C C MEMASUKKAN DATA MATRIK WRITE(*,*) DO 201 I=1,N DO 200 J=1,N WRITE(*,(1X,A(,I2,,,I2,)?,\))I,J READ(*,(F7.2)) X(I,J) Y(I,J)= X(I,J) 200 CONTINUE 201 CONTINUE NAMAMAT = MATRIK X ADALAH : CALL CETAK(N,N,X,NAMAMAT) CALL INV(N,Y) CALL KALI(N,N,N,X,Y,C) NAMAMAT =INVERS DARI MATRIK X ADALAH : CALL CETAK(N,N,C, NAMAMAT) END C C SUBROUTINE INVERS MATRIK X SUBROUTINE INV(N,Y) DIMENSION Y(50,50) DO 301 I=1,N D=Y(I,I) Y(I,I)=0 DO 302 J=1,N Y(I,J)= Y(I,J)/D 302 CONTINUE DO 303 L=1,N IF(L .EQ. I) GOTO 650 A=Y(L,I) Y(L,I)=0 DO 304 J=1,N Y(L,J)=Y(L,J)-A*Y(I,J) 304 CONTINUE 303 CONTINUE 301 CONTINUE RETURN END C C SUBROUTIN PERKALIAN MATRIK SUBROUTINE KALI(N,M,L,A,B,C) DIMENSION A(50,50), B(50,50), C(50,50) DO 401 I=1,N DO 402 J=1,L C(I,J)= 0 DO 403 K=1,M C(I,J)= C(I,J)+A(I,K)*B(K,J) 403 CONTINUE 402 CONTINUE

5

C C SUBROUTINE MENCETAK DATA MATRIK SUBROUTINE CETAK(N,M,X,NAMAMAT) DIMENSION X(50,50) CHARACTER*30 NAMAMAT WRITE(*,*) WRITE(*,(1X,A,A))NAMAMAT WRITE(*,*) DO 500 I=1,N 500 WRITE(*,(1X,100(F9.2))(X(I,J),J=1,M) RETURN END

301 CONTINUE RETURN END

6.3

APLIKASI STATISTIK A. PENGUJIAN DUA RATA-RATA Pengujian terhadap dua nilai rata-rata akan menggunakan dua ekor (two-tailed test). Pengujian yang dilakukan akan membandingkan antara Z hitung (Zh) dengan Z tabel (Zt) untuk tingkat keyakinan yan gtertentu. Besarnya Zt dilihat dari tabel students t-distribution sebagai berikut :

A

Zt2

Gambar 6.1. Students t-distribution Nilai dari Z hitung (Zh) dapat dicari dari persamaan berikut : X1 X 2 Zh = S12 S 2 2 + N1 N 2 dengan : X1 = rata-rata nilai yang pertama X2 = rata-rata nilai yang kedua S1 = standar deviasi nilai yang pertama S2 = standar deviasi nilai yang kedua N1 = jumlah data nilai pertama

6

N2 = jumlah data nilai kedua Tidak ada perbedaan antara dua rata-rata bila : Zt1