Merancang Apliksai Sederhana Perhitungan Kalor dgn Matlab

Metode Elemen Hingga, 29.10.2012, Tek Mesin S1

Setelah pada pertemuan sebelumnya kita membuat aplikasi perhitungan suhu suatu bidang dua dimensi dengan console (text-based), sekarang kita coba untuk membuat aplikasi yang berbasis Graphical User Interface (GUI). Untuk mempraktekannya download gambar berikut ini.

Kemudian pada command window ketik guide. Rancang disain seperti di bawah ini:

Gunakan teknik yang telah dijelaskan pada pertemuan yang lalu untuk menghitung nilai empat suhu di tengah jika atas, bawah, kiri dan kanan diberi suhu. Jika dijalankan hasilnya kira2 seperti di bawah ini.

Graph Theory 2

Mat Diskrit, 29.10.2012, T. Komputer D3

Jika pada pertemuan yang lalu kita menggunakan graph berarah, sekarang kita coba graph yang tidak berarah. Dalam Matlab tidak jauh berbeda teknik memasukkan datanya. Tetap gunakan arah panah sebagai patokan.

Setelah memasukan matriks graphnya:

>> W=[.5 .4 .3 .4 .2 .1];

>> DG=sparse([2 1 4 4 3 5],[1 3 3 2 5 4],W)

>>view(biograph(DG,[],’ShowWeights’,’on’))

Tekan tombol Accept. Akan dihasilkan gambar graph sebagai berikut:

Sekarang mencari Matriks graph untuk mengetahui jalur terpendek:

>> graphallshortestpaths(DG)

 

ans =

 

0 1.1000 0.4000 0.7000 0.6000

0.5000 0 0.9000 1.2000 1.1000

1.2000 0.7000 0 0.3000 0.2000

0.9000 0.4000 0.3000 0 0.5000

1.0000 0.5000 0.4000 0.1000 0

Untuk yang tidak berarah:

>> UG = tril(DG + DG’)

Matriks jalur terpendeknya:

>> graphallshortestpaths(UG)

 

ans =

 

0 Inf Inf Inf Inf

0.5000 0 Inf Inf Inf

0.4000 Inf 0 Inf Inf

0.7000 0.4000 0.3000 0 Inf

0.6000 0.5000 0.2000 0.1000 0

Mengalikan Matriks (2×3) dengan (3×2)

Aljabar Linear, 25.10.2012, T.Komputer D3, Lab Hardware

Pertemuan yang lalu kita telah membuat program perkalian dua buah matriks 3×3, sekarang kita coba membuat program mengalikan dua buah matriks, yakni matriks 2×3 dengan 3×2. Untuk menerima inputan matriks dari keyboard, buka program yang lalu. Lakukan modifikasi jangkauan i dan j baik untuk matriks kiri (A) dan matriks kanan (B).

Perhatikan kode di atas hasil modifikasi dari program sebelumnya. Deklarasi variabel, tidak ada perubahan, hanya saja format matriks A, B, dan X yang berubah jangkauan matriksnya. Matriks A jumlah baris 2 dan kolom 3, sebaliknya Matriks B dengan jumlah kolom 3 dan baris 2. Jangan lupa, kalang (for) untuk menampilkan matriks A dan B juga harus dimodifikasi.

Akhirnya, setelah Matriks A dan B terbentuk, dibuat satu kalang untuk membuat matriks X hasil perkalian kedua matriks itu. Perhatikan karena hasil kali matriks (2×3) dan (3×2) haruslah berukuran (2×2) maka a dan b dijaga dari 0 sampai 1 (array dimulai dari 0). Jalankan (Ctrl-F9).

Untuk latihan, coba buat program yang mengalikan matriks berapa saja, fleksibel, tergantung masukan ukuran matriks yang akan dikalikan. Tentu saja jika tidak memenuhi syarat, program langsung memberi respon adanya kesalahan tentang ukuran matriks sebagai syarat perkalian.

Graph Theory

Discrete Mathematic, Lab of Software, 23.10.2012, Comp. Engineering D3

Graph theory is an old theory about connection between vertex and edge. It was found in eighteen century by Euler. The first case was about bridge called konisberg. So, as a exercise we try to solve the smallest path to problem below.

Open your Matlab application and try to input that problem into Matlab. In command window, firstly, we create Matrix of vertexes and edges.

  • W=[.5 .4 .3 .4 .2 .1];
  • >> DG=sparse([2 1 4 4 3 5],[1 3 3 2 5 4],W)
  • DG =
  • (2,1) 0.5000
  • (5,4) 0.1000
  • (4,2) 0.4000
  • (1,3) 0.4000
  • (4,3) 0.3000
  • (3,5) 0.2000
  • view(biograph(DG,[],’ShowWeights’,’on’))

Finaly, we get the shortest path for every node using function ‘graphallshortestpaths‘

>> graphallshortestpaths(DG)

 

ans =

 

0 1.1000 0.4000 0.7000 0.6000

0.5000 0 0.9000 1.2000 1.1000

1.2000 0.7000 0 0.3000 0.2000

0.9000 0.4000 0.3000 0 0.5000

1.0000 0.5000 0.4000 0.1000 0

What is that matrix mean? The rows are represent nodes and the columns are another nodes. For example, the shortest path from node 2 to node 5 can be seen at that matrix are the number of row 2 column 5 is 1.1. You can count by your self that the node 2 to node 5 are across node 1 and 3 with 0.5, 0.4 and 0.2 = 1.1 which the same as element (2,5).

Membuat Persamaan dengan Microsoft Equation

Lab Sainstech, 23.10.2012, T.Mesin S1.

Buat persamaan matematik dengan Microsoft Equation. Klik ‘Insert’ – pilih symbol equation:

Contoh untuk nim: 41187001120054, a=5, b=4.

Untuk membuat Matrik, pilih ‘Matrix with Bracket‘.

Hapus isi matrik yang 2 x 2 dan ganti menjadi 3 x 3.

Terakhir, untuk pangkat eksponensial:

 

 

Note: Simpan dan beri nama sesuai dengan nama masing-masing. Kirim ke email: rahmadya.trias@gmail.com

Perbandingan Sistem Kendali Kontinyu dan Digital

Buka Simulink untuk memandingkan grafik keluaran antara sistem kendali kontinyu dan dijital. Untuk membandingkan kita gunakan fungsi alih yang sama.

Pilih ‘Continuous‘ dan ‘Diskrit‘ untuk membuat fungsi alihnya.

Untuk mendapatkan ‘Mux‘ gunakan ‘searching” pada simulink. Untuk mencari fungsi alih diskritnya, gunakan command window pada Matlab dan fungsi ‘c2d‘ untuk memperoleh ‘Discrete Transfer Fcn‘.

  • >> g=tf(1,[1 4 8])
  • Transfer function:
  • 1
  • ————-
  • s^2 + 4 s + 8
  • >> h=c2d(g,0.1,’zoh’)
  • Transfer function:
  • 0.004367 z + 0.003821
  • ———————-
  • z^2 – 1.605 z + 0.6703
  • Sampling time: 0.1

Hasilnya dapat dilihat pada Scope:

Ada sedikit perbedaan pada respon, tetapi akurasinya tetap sama (Lihat Display: 0.89). Ketertinggalan diakibatkan oleh ‘Time Sampling‘ yang kecil. Waktu cuplik yang terlalu akurat mengakibatkan beban saat konversi dari D/A dan A/D. Coba naikan waktu cuplik jadi satu detik, hasilnya:

Hasilnya lebih akurat tetapi akibatnya grafik kurang presisi.

Mengalikan Matriks 3 x 3

Untuk perkalian matriks kita harus mengetahui syarat perkalian dua matriks dimana kolom matriks bagian kiri harus sama dengan baris matriks bagian kanan. Jika tidak memenuhi, program sebaiknya memberi pesan. Hasilnya pun kita harus tahu, yakni berukuran baris matriks bagian kiri dan kolom matriks bagian kanan. Misal kita akan mengalikan matriks berukuran 2×3 dengan 3×2, maka hasil matriksnya adalah 2×2. Karena kasus yang akan kita coba adalah mengalikan matriks 3×3 dengan 3×3, maka dengan mudah kita mendapatkan hasil matriks 3×3 juga. Dengan kode pada tulisan terdahulu, tambahkan di bawahnya kode berikut (jangan lupa deklarasikan int a,b, dan c terlebih dahulu).

//mengalikan matriks A x B

for(a=0;a<3;a++)

{

    for(b=0;b<3;b++)

    {

        X[a][b]=0;

        for(c=0;c<3;c++)

        {

            X[a][b]=X[a][b]+A[a][c]*B[c][b];

        }

    }

}

cout<<“Hasil Kali = \n”;

for(a=0;a<3;a++)

{

    for(b=0;b<3;b++)

    {

        cout<<X[a][b]<<” “;

    }

    cout<<” \n”;

}

Kebetulan matriks 3×3 unik, berikutnya kita akan coba mengalikan dua matriks yang ukurannya bervariasi.

Memasukan Matriks dengan Turbo/Borland C++

Sebelum masuk ke praktek mengalikan dua buah matriks, ada baiknya berlatih terlebih dahulu memasukan dua buah matriks yang akan dikalikan, misalnya matriks A dan B. Buka Turbo/Borland C++ dan ketik instruksi sebagai berikut:

  1. #include<stdio.h>
  2. #include<iostream.h>
  3. void main()
  4. {
  5. int i,j,A[3][3],B[3][3];
  6. //menginput matriks A
  7. cout<<“Masukkan Matriks A \n”;
  8. for(i=0;i<3;i++)
  9. {
    1. for(j=0;j<3;j++)
    2. {
      1. cout<<“Masukkan Elemen Matriks ke “<<(i+1)<<“,”<<(j+1)<<” :”;
      2. cin>>A[i][j];
    3. }
  10. }
  11. //menginput matriks B
  12. cout<<“Masukkan Matriks B \n”;
  13. for(i=0;i<3;i++)
  14. {
    1. for(j=0;j<3;j++)
    2. {
      1. cout<<“Masukkan Elemen Matriks ke “<<(i+1)<<“,”<<(j+1)<<” :”;
      2. cin>>B[i][j];
    3. }
  15. }
  16. //menampilkan matriks A
  17. cout<<“Matriks A = \n”;
  18. for(i=0;i<3;i++)
  19. {
    1. for(j=0;j<3;j++)
    2. {
      1. cout<<A[i][j]<<” “;
    3. }
    4. cout<<“\n”;
  20. }
  21. //menampilkan matriks B
  22. cout<<“Matriks B = \n”;
  23. for(i=0;i<3;i++)
  24. {
    1. for(j=0;j<3;j++)
    2. {
      1. cout<<A[i][j]<<” “;
    3. }
    4. cout<<“\n”;
  25. }
  26. }

Jalankan dengan menekan Ctrl-F9 atau mengklik “Debug” – “Run”.

Berikutnya akan kita coba mengalikan dua matriks tersebut.

Algoritma Genetik

M.Kul: Matematika Diskrit :Fungsi & Relasi, Lab Hardware

Fungsi dan relasi merupakan inti dari komputasi. Karena komputasi melibatkan bilangan-bilangan maka pengetahuan terhadap jenis-jenis bilangan perlu dikuasai. Fungsi melakukan komputasi terhadap bilangan bilangan itu. Jika komputasi dilakukan berulang dalam suatu iterasi maka perlu ada relasi antara fungsi dengan jangkauan iterasi tersebut. Misal kita akan melakukan komputasi dengan fungsi:

y=(x-3)^2+10 dengan jangkauan x=1 hingga 10.

Buka Matlab dan buat fungsinya:

Terkadang kita tidak hanya diminta mencari nilai suatu fungsi saja, melainkan mencari nilai optimumnya. Pada fungsi di atas, misalkan kita diminta mencari hariga y terendah dalam rentang tersebut. Berbagai macam cara banyak ditempuh. Cara konvensional adalah dengan menyamadengankan nol fungsi turunannya, sehingga nilai x-nya, yang merupakan nilai yang menghasilkan y terendah, diketahui. Kita akan mencoba melakukan optimasi dengan Algoritma Genetik.

Buka toolbox optimasi dengan mengetik

>>optimtool(‘ga’)

Isikan fitness function dengan @fungsi

Bounds, batas bawah = [1] dan batas atas = [10]

Pada ‘Option‘ pilih plot function ‘Best Fitness‘ dan ‘Best Individual‘.

Klik’Start’, Lihat plot yang dibuat, Hasilnya Nilai Fitness 10, Individual terbaik 3.

Alur cerita mengapa bisa diperoleh nilai tersebut adalah dengan proses pembangkitan bilangan random, diuji nilai fitness-nya, dicari individu yang survive dan dilakukan proses crossover, mutasi, dan lain-lain dengan terlebih dahulu mengkonversinya menjadi biner.

Membuat Program Perhitungan Suhu

Jika hitungan matematis sudah berjalan dengan normal di ‘Command Window’, kita akan membuat aplikasinya. Aplikasi pertama berbasis Konsol (Command prompt)/DOS. Ketik nama program di ‘Command Window’, misalnya ‘kalor’ >> Edit kalor. Ketika ada peringatan bahwa nama tersebut tidak ada berarti kita tekan ‘Yes’.

Berikutnya Anda masuk ke Editor M-File (M-File Editor) tempat dimana kode program dibuat. Kita akan membuat program dengan masukkan suhu bagian atas, kanan, kiri, dan bawah. Jika dieksekusi, akan keluar informasi kalor di titik 1, 2, 3, dan 4. Masukan kode program berikut ini:

  1. function y=kalor()
  2. Qatas=input(‘Masukkan suhu bagian atas : ‘);
  3. Qbawah=input(‘Masukkan suhu bagian bawah : ‘);
  4. Qkiri=input(‘Masukkan suhu bagian kiri : ‘);
  5. Qkanan=input(‘Masukkan suhu bagian kanan : ‘);
  6. Q=[-1*(Qbawah+Qkiri); -1*(Qbawah+Qkanan);-1*(Qkanan+Qatas);-1*(Qatas+Qkiri)]
  7. M=[-4 1 0 1; 1 -4 1 0;0 1 -4 1;1 0 1 -4]
  8. T=inv(M)*Q
  9. pause

Baris kedua – lima bermaksud mengambil masukan kalor yang menempel di pinggir kotak, yang kemudian dikumpulkan dalam satu matriks Q dengan mengkonversi dari kombinasi kiri, atas, bawah, dan kanan. Baris 7 memasukan matriks kalor, dilanjutkan dengan menghitung Matriks suhu di baris 8. Hasilnya sebagai berikut:

>> 200

 

ans =

 

200

 

>> kalor

Masukkan suhu bagian atas : 300

Masukkan suhu bagian bawah : 500

Masukkan suhu bagian kiri : 400

Masukkan suhu bagian kanan : 200

 

Q =

 

-900

-700

-500

-700

 

 

M =

 

-4 1 0 1

1 -4 1 0

0 1 -4 1

1 0 1 -4

 

 

T =

 

400.0000

350.0000

300.0000

350.0000

 

 

 

 

Menghitung Kalor dengan Finite Elemen Hingga

Metode Elemen Hingga, Tgl. 15.10.12, Lab Software

Metode Elemen Hingga (Finite Element Method) merupakan metode komputasi yang membagi suatu bidang yang akan diukur tegangan, suhu, arus, debit, dan sejenisnya, menjadi bagian-bagian kecil yang sederhana. Misalnya kita akan melihat suhu di titik-titik tertentu suatu bangun di bawah ini:

Dengan persamaan kalor dihasilkan matriks persamaan sebagai berikut, analisa sendiri ya mengapa bisa begitu?

Untuk menghitung T1 hingga T4, cara mudahnya adalah membentuk matriks agar bisa diolah langsung dengan menggunakan Matlab.

  1. >> M=[-4 1 0 1; 1 -4 1 0;0 1 -4 1;1 0 1 -4]
  2. >> Q=[-900;-700;-500;-700]
  3. >> T=inv(M)*Q

    T =

    400.0000

    350.0000

    300.0000

    350.0000

Baris 1 merupakan matriks kalor tersebut, baris 2 matriks suhu, dan baris 3 adalah menghitung Suhu di tiap titik, dimana T1, T2, T3, dan T4 berturut-turut dari kolom 1 hingga kolom 4.

Bentuk Standar Sistem Diskrit

M.kul: Pengaturan II, Senin: 15.10.12, Lab. Hardware

Penambahan komponen Analog to Digital Converter (ADC) dan Digital to Analog Converter (DAC) mengakibatkan sistem yang sudah linear dengan transformasi Laplace kembali menjadi nonlinear. Untungnya, sistem non linear tersebut dapat dikembalikan menjadi linear kembali dengan transformasi Z. Akan tetapi ada sedikit perbedaan antara sistem dengan variabel s dan z, terutama untuk penggambaran di bidang kompleksnya.

Untuk sistem kontinyu (variabel s), letak kestabilan sistem adalah sebelah kiri sumbu imajiner. Ternyata, untuk sistem diskrit (variabel z) letak kestabilannya di dalam lingkaran berpusat di titik pusat (0,0i) dan jari-jari satu.

Menentukan Orde Sistem Diskrit

Berapakah orde sistem di bawah ini:

Untuk menjawabnya, perhatikan orde pembilang sistem di atas. Karena pangkatnya adalah -5 setelah kurung dibuka, maka untuk mencari harga pangkat tertinggi di penyebut sebagai penentu orde sistem, maka pembilang dan penyebut dikalikan z^5. Hasilnya:

Tampak pangkat penyebut tertinggi adalah 5, maka sistem tersebut adalah orde 5. Untuk menuliskan di Matlab, caranya sama dengan sistem kontinyu hanya saja ada variabel tambahan yaitu waktu cuplik. Misal untuk sistem di atas, a1=0.003, b1=0.004 dan b2=0.003, maka kita tulis di command window:

Ternyata ada masalah di fungsi ‘d2c’ dimana model ‘zoh’ tidak bisa jika ada pole dekat z=0. Oleh karena itu kita modif sedikit menjadi:

>> H=tf([0.004 0.003],[1 0.003 0 0 0 0.8],0.1)

Di sini ‘0.8’ adalah angka sembarang supaya z jauh dari nol.

Perhatikan Plot yang dihasilkan, walaupun ada error sedikit, tetapi grafik kontinyunya cukup mendekati harga diskritnya.

Penyelesaian Persamaan dengan Matriks

Operasi yang bisa diterapkan terhadap suatu matriks dapat dimanfaatkan untuk menyelesaikan persamaan linear. Misalnya ada suatu kasus tertentu. Dua buah buku ditambah empat buah tas berharga Rp 1000 dan sebuah buku ditambah delapan tas berharga Rp. 1700. Berapakah harga satu buku dan satu tas?

2x + 4y = 1000

x + 8y = 1700

Dua operasi matriks yang kita terapkan adalah perkalian matriks dan invers matriks. Persamaan di atas jika dituliskan dalam notasi matriks adalah sebagai berikut.

Berdasarkan teori, jika ruas kiri dikalikan invers matriks bobot harga begitu juga ruas kanan, maka diperoleh harga barang tersebut setelah dikalikan dengan matriks total. Asalahkan determinan matriks bobot harga tidak sama dengan nol. Jika sama dengan nol, maka harga barang tidak bisa ditentukan.

Membuat Folder di Email

 

Terkadang kita ingin mengumpulkan email di inbox kita dalam satu folder. Misalnya folder ‘facebook’ yang nanti isinya email-email dari facebook. Buka dan login ke email yahoo.com atau yahoo.co.id anda. Klik pada tombol ‘[tambah]’ untuk menambahkan satu folder baru tersebut.

Ketik nama folder, misalnya ‘Twitter’ lalu klik ‘Ok’. Maka di bawah ‘Chat & SMS’ akan muncul Folder saya dengan nama ‘Twitter’.

Berikutnya kita akan membuat ‘Rule’ yang membuat seluruh email dari ‘Twitter’ atau lainnya, misalnya ‘Facebook’, masuk ke folder tersebut. Pertama-tama klik ‘Opsi’ di pojok kanan atas email yahoo anda.

Setelah diklik ‘Opsi Email’ maka browser akan masuk ke jendela ‘Opsi’. Masuk ke menu ‘Fileter’ lalu klik ‘Tambah Filter’. Saya belum lihat jika browser Anda masih bahasa Inggris. Mungkin sama saja, hanya beda bahasa.

Isi form yang berisi indikator-indikator yang akan menjadi dasar filter email yahoo terhadap email yang masuk. Misal akan saya filter email dari ‘Twitter’ yang akan saya pindahkan ke folder ‘Twitter’ jika ada yang masuk.

Jika sudah selesai, klik tombol ‘Simpan Perubahan’ yang ada di sebelah kanan atas isian ‘Filter Baru’ tersebut. Jika sudah selesai, yahoo akan secara otomatis memindahkan email yang berisi ‘Twitter’ ke folder ‘Twitter’.

Kirim ke rahmadya.trias@yahoo.co.id hasil capture email Anda sebagai Attachment/lampiran. Perhatikan cara mengirim email berikut ini.

Creating a Matrix Using Turbo/Borland C++

Now we try to make a Matrix 3 x3 using Turbo/borlan C++. In C/C++, we use array algorithm for creating a matrix. Open Turbo/Borland C++, create new “cpp” file, type code like this:

Remember, if we use function ‘cout’ we must type at the header #include<iostream.h>. Look at carefully line int A[3][3]={1,2,3,4,5,6,7,8,9};. It means that we create a matrix 3×3 similar to matrix in matlab:

A=[1 2 3;4 5 6;7 8 9]

Loops ‘for’ at that code are only for showing the content of array/matrix A[3][3]. Try code for create matrix interactively using keyboard input. Use function ‘cin’ and loops ‘for’ for positioning the element of matrix.