Perpustakaan Nasional RI: Katalog Dalam Terbitan (KDT) PENGANTAR KOMPUTASI TEKNIK KIMIA DENGAN MATLAB DAN SIMULINK

Ukuran: px
Mulai penontonan dengan halaman:

Download "Perpustakaan Nasional RI: Katalog Dalam Terbitan (KDT) PENGANTAR KOMPUTASI TEKNIK KIMIA DENGAN MATLAB DAN SIMULINK"

Transkripsi

1

2 Hak cipta pada penulis Hak penerbitan pada penerbit Tidak boleh diproduksi sebagian atau seluruhnya dalam bentuk apapun Tanpa izin tertulis dari pengarang dan/atau penerbit Kutipan Pasal 7 : Sanksi pelanggaran Undang-undang Hak Cipta (UU No. 0 Tahun 0). Barang siapa dengan sengaja dan tanpa hak melakukan perbuatan sebagaimana dimaksud dalam Pasal ayat () atau Pasal (49) ayat () dan ayat () dipidana dengan pidana penjara masing-masing paling singkat (satu) bulan dan/atau denda paling sedikit Rp ,00 (satu juta rupiah), atau pidana penjara paling lama 7 (tujuh) tahun dan atau denda paling banyak Rp ,00 (lima miliar rupiah). Barang siapa dengan sengaja menyiarkan, memamerkan, mengedarkan, atau menjual kepada umum suatu Ciptaan atau hasil barang hasil pelanggaran Hak Cipta atau Hak Terkait sebagaimana dimaksud ayat () dipidana dengan pidana penjara paling lama 5 (lima) tahun dan/atau denda paling banyak Rp ,00 (lima ratus juta rupiah)

3

4 Perpustakaan Nasional RI: Katalog Dalam Terbitan (KDT) PENGANTAR KOMPUTASI TEKNIK KIMIA DENGAN MATLAB DAN SIMULINK Penulis: HERI RUSTAMAJI, S.T., M.Eng. Desain Cover & Layout Team Aura Creative Penerbit AURA CV. Anugrah Utama Raharja Anggota IKAPI No.003/LPU/03 x + 80 hal : 5,5 x 3 cm Cetakan, Juli 07 ISBN: Alamat Jl. Prof. Dr. Soemantri Brojonegoro, Komplek Unila Gedongmeneng Bandar Lampung HP redaksiaura@gmail.com Website : Hak Cipta dilindungi Undang-undang

5 KATA PENGANTAR Tujuan buku ini adalah untuk mengilustrasikan tentang () persoalan - persoalan dalam teknik kimia yang harus diselesaikan, () penyusunan model matematis persoalan teknik kimia, (3) program komputer yang digunakan untuk menyelesaikan persoalan teknik kimia secara numeris, dan (4) bagaimana mengoreksi untuk memastikan bahwa persoalan-persoalan tersebut sudah diselesaikan secara benar. Hal ini dilakukan dalam konteks bagaimana mahasiswa belajar dengan banyak menggunakan komputer. Program yang dicontohkan di sini adalah MATLAB dan Simulink. Metode penyelesaian numeris yang dijabarkan dalam buku ini adalah dengan menggunkan built in function yang sudah disusun dalam MATLAB. Penjelasan lebih detail tentang metode numeris untuk menyelesaikan berbagai bentuk persamaan yang muncul dalam teknik kimia adalah di luar ruang lingkup buku ini. Bab-bab dalam buku ini disusun berdasarkan model persamaan yang terbentuk dari persoalan-persoalan yang muncul dalam teknik kimia. Buku ini juga dapat digunakan dalam kuliah lain karena beberapa bab disusun untuk mengakomodasi kurikulum teknik kimia. v

6 Sebagai contoh, ketika kesetimbangan reaksi kimia telah dibahas pada mata kuliah Termodinamika Teknik Kimia, pengajar dapat melaksanakan sesi latihan yang mengajarkan aplikasi komputer, menggunakan bab pada kesetimbangan reaksi kimia. Materi pada pilihan model termodinamika juga dapat ditambahkan sedikit lebih realistis terhadap kuliah termodinamika. Bab lainnya dapat digunakan pada mata kuliah lain. Dengan cara ini mahasiswa akan menggunakan buku ini selama masa pembelajaran, dalam kuliah atau setelah kuliah Neraca Massa dan Energi, Transfer Momentum, Panas, dan Massa, Perancangan Reaktor, Optimasi Proses dan Pengendalian Proses. Harapannya adalah bahwa mahasiswa akan mampu lebih konsentrasi pada prinsip fundamental teknik kimia dan mampu menggunakan MATLAB dan Simulink sebagai suatu tool untuk menyelesaiakan persoalan dalam teknik kimia. Akhir kata, Penulis mengucapkan banyak terima kasih kepada Ir. Sufriadi Burhanuddin, M.Eng. dan Ir. Azhar. M.T., yang pertama kali mengenalkan dan mengajarkan beberapa topik materi yang terkandung dalam buku ini. HERI RUSTAMAJI vi KATA PENGANTAR

7 DAFTAR ISI BAB MEMULAI MENGGUNAKAN MATLAB. PENDAHULUAN. MENGENAL MATLAB.. Dekstop MATLAB 3.. Ruang Kerja MATLAB 3..3 M-files Aturan dan Sifat-Sifat Syntax Untuk Membuat Fungsi Perintah Global 9..4 Pemrograman MATLAB Membuat File Program..4. Script : Urutan Perintah MATLAB..4.3 Fungsi : Subrutin Matlab..4.4 Format Penampilan Angka 3.3 RANGKUMAN 5.4 LATIHAN 5.5 RUJUKAN 5 BAB KONTROL ALUR PROGRAM. PENDAHULUAN 6. PEMROGRAMAN MATLAB 7.. Konstruksi if else end 7 vii

8 .. Loop for 8..3 Loop while 9..4 Konstruksi switch case other wise 9..5 Operasi Vektor dan Matriks 0..6 Operasi Vektor dan Matriks pada Fungsi 4.3 RANGKUMAN 6.4 LATIHAN 7.5 RUJUKAN 8 BAB 3 VISUALISASI DATA DALAM MATLAB 3. PENDAHULUAN 9 3. VISUALISASI GRAFIK Pembuatan Grafik Sederhana Grafik Multiple Plot Grafik Tiga Dimensi Analisis Data Percobaan Menentukan Model dari Data Percobaan Membuat Polinom dan Mencari Akar Polinom RANGKUMAN RUJUKAN 44 BAB 4 PERSAMAAN LINIER SIMULTAN 4. PENDAHULUAN MODEL MATEMATIS PERSAMAAN LINIER SIMULTAN RANGKUMAN RUJUKAN 66 viii DAFTAR ISI

9 BAB 5 PERSAMAAN NON LINIER TUNGGAL 5. PENDAHULUAN MODEL MATEMATIS PERSAMAAN NON LINIER RANGKUMAN RUJUKAN 88 BAB 6 PERSAMAAN NON LINIER SIMULTAN 6. PENDAHULUAN PERSAMAAN NON LINIER MULTI VARIABEL RANGKUMAN LATIHAN RUJUKAN 0 BAB 7 PERSAMAAN DIFERENSIAL BIASA 7. PENDAHULUAN 7. MODEL PERSAMAAN DIFERENSIAL BIASA 7.3 RANGKUMAN RUJUKAN 76 BAB 8 PERSAMAAN DIFERENSIAL PARSIAL 8. PENDAHULUAN MODEL MATEMATIS RANGKUMAN RUJUKAN 9 BAB 9 OPTIMASI 9. PENDAHULUAN TOOLBOX OPTIMASI DALAM MATLAB OPTIMASI TANPA KONSTRAIN Optimasi satu variabel 97 DAFTAR ISI ix

10 9.3. Optimasi multivariabel OPTIMASI DENGAN KONSTRAIN PEMROGRAMAN LINIER 9.6 APLIKASI MATLAB DALAM OPTIMASI TEKNIK KIMIA RUJUKAN 43 BAB 0 SIMULINK 0. PENDAHULUAN SIMULINK LIBRARY RANGKUMAN RUJUKAN 80 x DAFTAR ISI

11 BAB MEMULAI MENGGUNAKAN MATLAB. PENDAHULUAN Apa itu MATLAB? Apa yang dapat dilakukan oleh MATLAB? Kemampuan apa yang dimilikinya? Bagaimana kita menggunakan MATLAB untuk menyelesaikan permasalahan-permasalahan komputasi? Mungkin kalimat tersebut adalah beberapa pertanyaan awal bagi mahasiswa yang baru pertama mengenal MATLAB. Namun bagi Anda yang sudah mengenal MATLAB pertanyaan di atas bukanlah hal yang baru dan tentu saja Anda dapat menjawabnya dengan mudah. Pada bab ini akan dibahas mengenai MATLAB dan beberapa hal yang harus dipahami untuk menjalankan MATLAB. Setelah mengikuti kuliah ini mahasiswa diharapkan akan mampu membuka dan menjalankan MATLAB serta mampu menjelaskan fungsi dan tampilan pada MATLAB. Menguasai bab ini merupakan prasayarat untuk menguasai bab-bab berikutnya pada bahan ajar ini. Bagi mahasiswa yang ingin cepat memahami dan menguasai MATLAB maka cara yang paling mudah adalah mem-

12 praktekan bahan ajar ini langsung dalam lembar kerja MATLAB. Penjelasan yang lebih luas dan mendalam tentang MATLAB dapat Anda peroleh dengan membuka menu help pada toolbar MATLAB.. MENGENAL MATLAB MATLAB (MATrix LABoratory) merupakan bahasa canggih untuk komputasi teknik. MATLAB merupakan integrasi dari komputasi, visualisasi dan pemrograman dalam suatu lingkungan yang mudah digunakan, karena permasalahan dan pemecahannya dinyatakan dalam notasi matematika biasa. Kegunaan MATLAB secara umum adalah untuk : Matematika dan komputasi Pengembangan dan algoritma Pemodelan, simulasi dan pembuatan prototype Analisa data, eksplorasi dan visualisasi Pembuatan apilikasi termasuk pembuatan graphical user interface MATLAB adalah sistem interaktif dengan elemen dasar array yang merupakan basis datanya. Array tersebut tidak perlu dinyatakan khusus seperti di bahasa pemrograman yang ada sekarang. Hal ini memungkinkan Anda untuk memecahkan banyak masalah perhitungan teknik, khususnya yang melibatkan matriks dan vektor dengan waktu yang lebih singkat dari waktu yang dibutuhkan untuk menulis program dalam bahasa C atau Fortran. Untuk memahami MATLAB, terlebih dahulu Anda harus sudah paham mengenai matematika terutama operasi vektor dan matriks, karena operasi matriks merupakan inti utama dari MATLAB. Pada intinya MATLAB merupakan sekumpulan fungsi-fungsi MEMULAI MENGGUNAKAN MATLAB

13 yang dapat dipanggil dan dieksekusi. Fungsi-fungsi tersebut dibagi-bagi berdasarkan kegunaannya yang dikelompokan di dalam Toolbox yang ada pada MATLAB. Untuk mengetahui lebih jauh mengenai Toolbox yang ada di MATLAB dan fungsinya anda dapat mencarinya di website Untuk memulai bekerja dengan MATLAB, maka bagi mahasiswa yang baru mengenal MATLAB perlu dijelaskan tentang beberapa hal yang terkait dengan tampilan dan beberpa fungsi dalam MATLAB sebagaimana diuraikan di bawah... Desktop MATLAB Ketika anda mulai membuka program MATLAB, akan muncul desktop MATLAB yang berisi tools (Graphical User Interface) untuk mengatur file, variabel dan aplikasi yang berhubungan dengan MATLAB. Sebagai ilustrasi dibawah ini digambarkan desktop yang pertama muncul di MATLAB. Gambar. menunjukkan desktop MATLAB. Untuk lebih jelas mengenai lingkungan kerja MATLAB perhatikan contoh pada Gambar.... Ruang Kerja MATLAB Saat anda bekerja di command window semua perintah, variabel dan data yang disimpan berada di dalam ruang kerja MATLAB. Ruang kerja default dari MATLAB yaitu di folder work di dalam folder MATLAB. Apabila kita menginstal MATLAB versi 7. di C maka folder work akan berada di C:/Matlab7p /work. Untuk merubah ruang kerja lakukan di Command Window, seperti anda merubah direktori di DOS. MEMULAI MENGGUNAKAN MATLAB 3

14 Coba anda ketik tes = pada command window, maka akan keluar output sebagai berikut : tes = Gambar. Desktop MATLAB Ini berarti variabel tes telah tersimpan di dalam ruang kerja kita. Untuk melihat data yang telah tersimpan coba anda ketik tes pada command window. Jika Anda tidak dapat mengingat nama setiap variabel, maka anda dapat meminta MATLAB untuk menampilkan namanya, menggunakan perintah who atau whos. whos Name Size Bytes Class tes x 8 double array tes x 8 double array Grand total is elements using 6 bytes 4 MEMULAI MENGGUNAKAN MATLAB

15 Untuk mengetahui isi variabel tersebut anda harus memasukkan nama variabelnya dalam command window. Untuk memanggil perintah sebelumnya, di MATLAB menggunakan tombol panah pada keyboard anda ( ). Untuk menghapus semua semua variabel yang sudah kita masukkan digunakan perintah clear all Untuk melihat keterangan dari function di MATLAB atau program yang kita buat digunakan perintah : ' help function ', sebagai contoh : >> help plot Maka akan muncul tampilan seperti Gambar.3. Gambar. Perintah dalam Command Window MEMULAI MENGGUNAKAN MATLAB 5

16 Gambar.3 Tampilan di command window dari help plot..3 M-files Ketika Anda menggunakan fungsi-fungsi di matlab seperti inv, abs, sqrt, exp, matlab menerima variabel yang anda berikan, menghitung hasil berdasarkan input dan mengembalikan hasil akhirnya pada Anda sendiri. Bila kita ibaratkan fungsi adalah sebuah kotak hitam dimana yang kita lihat hanyalah apa yang masuk dan apa yang keluar. Sifat-sifat demikian membuat fungsi dapat menjadi suatu alat yang baik untuk mengevaluasi perintah-perintah yang menggabungkan fungsi-fungsi matematika atau deretan perintah yang sering digunakan untuk memecahkan suatu masalah besar. Untuk itu matlab menyediakan suatu struktur untuk membuat fungsi Anda sendiri dalam bentuk m-file yang disimpan dalam komputer. M-files dapat berisi program, scripts, persamaan atau data yang dipanggil selama eksekusi. Jika m-files adalah definisi fungsi, selanjutnya bagian yang terpenting dari jenis m-file ini adalah baris pertama. Baris 6 MEMULAI MENGGUNAKAN MATLAB

17 pertama harus mengandung definisi fungsi sehingga MATLAB dapat menemukan M-files yang dipanggil. M- files tipe ini disebut dengan fungsi M-files atau fungsi file Aturan dan Sifat-Sifat Fungsi m-file harus mengikuti beberapa aturan dan sejumlah sifat penting. Aturan-aturan dan sifat-sifat tersebut meliputi : o Nama fungsi dan nama file harus identik misalnya anda membuat fungsi dengan nama pangkat maka anda memberi nama m-file anda pangkat juga. o Baris komentar sampai dengan baris bukan komentar yang pertama adalah teks help yang ditampilkan jika anda meminta help dari fungsi yang anda buat. o Setiap fungsi mempunyai ruang kerjanya sendiri yang berbeda dengan ruang kerja MATLAB. Satu-satunya hubungan antara ruang kerja matlab dengan variabelvariabel dalam fungsi adalah variabel-variabel input dan output fungsi. Jika suatu fungsi mengubah nilai dalam suatu variabel input, perubahan itu hanya tampak dalam fungsi dan tidak mempengaruhi variabel yang ada dalam ruang kerja MATLAB. Variabel yang dibuat oleh suatu fungsi tinggal hanya dalam ruang kerja fungsi. o Jumlah dari argumen input dan output yang digunakan jika suatu fungsi dipanggil hanya ada dalam fungsi tersebut. Fungsi ruang kerja memuat jumlah argument input. Fungsi kerja nargout memuat jumlah argumen output. Dalam praktek, variabel-variabel nargout dan nargin biasanya digunakan untuk mengatur variabel input standar dan menentukan variabel output yang diperlukan user. MEMULAI MENGGUNAKAN MATLAB 7

18 ..3. Syntax untuk membuat fungsi Syntax untuk membuat fungsi adalah sebagai berikut : function y = nama_fungsi(x) y adalah keluaran fungsi, keluaran ini dapat satu variabel atau lebih dari satu variabel, jika keluaran lebih dari satu variabel maka mempunyai bentuk sebagai berikut : function [y,z,a,b] = nama_fungsi(x) x adalah masukan dari fungsi, masukan ini dapat satu variabel atau lebih dari satu variabel, jika masukan lebih dari satu variabel maka mempunyai bentuk sebagai berikut : function y = nama_fungsi(a,b,c,d) nama_fungsi adalah nama sederhana M-file (nama file harus sama dalam definisi dan nama file). Baris script selanjutnya dalam M-file dapat mendefinisikan fungsi atau fungsi dan label beberapa variabel yang diperlukan. Gambar.4 adalah contoh suatu M-file yang digunakan untuk mengeplot fungsi logaritma bilangan natural. Gambar.4 Penulisan dalam M-files 8 MEMULAI MENGGUNAKAN MATLAB

19 Untuk menghasilkan plot fungsi ini, berikut ini kode yang damasukkan ke dalam command window: fplot ( example,[:5]) Ini akan mnghasilkan plot ln (x) antara x = dan x = 5. Hasil plot ditunjukkan Gambar.5. Dengan menggunakan menu insert kita dapat menambah judul, nama sumbu x dan y dan jika perlu legend Perintah global Command workspace adalah area di dalam memori komputer dimana tersimpan berbagai parameter dan variabel yang telah didefinisikan pada command line (baik pada command window ataupun pada m-file) MATLAB. Masing masing m-file memiliki workspace khusus yang masing masing tidak dapat berkomunikasi sampai kita membuatnya saling berkomunikasi. Salah satu cara untuk mengkomunikasikan masing masing workspace tersebut adalah dengan perintah global (Lihat Gambar.6). Gambar.5 Grafik hasil fungsi example MEMULAI MENGGUNAKAN MATLAB 9

20 Command window Mfile Mfile global a b c global a b global a c a b c a b a c Global workspace : a b c Gambar.6 Variabel global dan lokal...4 Pemrograman pada MATLAB Hampir seluruh operasi MATLAB dilaksanakan melalui script, yaitu urutan perintah-perintah yang dituliskan dalam bentuk teks. Seperti halnya script-script lainnya (misalnya filefile berekstensi.bat di sistem operasi DOS), script Matlab juga harus dijalankan dalam program MATLAB sebagai lingkungannya. Script ini dapat berupa urutan perintah seperti layaknya script-script lainnya, tetapi dapat juga merupakan sebuah fungsi atau subrutin. Sebagai fungsi, script matlab dapat menerima variabel dan menghasilkan suatu besaran. Dengan demikian, pekerjaan dapat dipecah-pecah menjadi beberapa pekerjaan kecil dan dilaksanakan dalam fungsi-fungsi tersebut sehingga penyelesaiannya menjadi lebih mudah. Berikut akan dipaparkan bagaimana membangun script dan fungsi, menempatkannya dalam lingkungan operasi MATLAB, mengeksekusinya, menangani variabel-variabel yang terlibat di dalamnya, melewatkan variabel melalui fungsi, dan mengatur aliran program. 0 MEMULAI MENGGUNAKAN MATLAB

21 ..4. Membuat File Program yang Dapat Dieksekusi pada MATLAB File script adalah sebuah file teks biasa dan bisa dibuat menggunakan editor teks biasa seperti notepad pada windows atau editor edit.exe pada DOS. Tetapi pada Matlab versi 7.x yang baru, editor khusus telah disediakan. Editor ini dilengkapi dengan pustaka kata-kata kunci MATLAB yang berwarna lain sehingga memudahkan penyuntingan program. Selain itu, editor dilengkapi juga dengan pemandu pasangan kurung (bracket), fungsinya menunjukkan pasangan kurung buka dan kurung tutup yang bersesuaian. Ini penting saat penyuntingan persamaan yang melibatkan kurung berlapis-lapis. Untuk mengeksekusi script atau fungsi, tuliskanlah nama fungsi tersebut pada prompt (»). Jangan gunakan huruf kapital karena nama fungsi di MATLAB diharuskan menggunakan huruf non-kapital...4. Script : Urutan Perintah MATLAB Untuk membuat script biasa, tuliskan perintah-perintah MATLAB dengan urutan yang benar. Perhatikan contoh berikut : % contoh.m : Menghitung perkalian matriks A = [ 3; 4 5 6] B = [ 3; 4 5; 6 7] C = A*B» contoh A = MEMULAI MENGGUNAKAN MATLAB

22 B = C = Script dapat menerima masukan melalui input dari keyboard, tetapi tidak dapat menerima masukan berupa argumen. Karena itu script hanya digunakan untuk program-program singkat, atau program induk Fungsi : Subrutin Matlab Penggunaan fungsi lebih fleksibel dibandingkan script biasa. Fungsi dapat menerima masukan berupa argumen. Walaupun fungsi juga dapat menerima masukan dari keyboard, tetapi pemrogram biasanya tidak menempatkan pekerjaan ini dalam fungsi kecuali ada tujuan khusus untuk itu. Sebuah fungsi harus memiliki header yang ditandai dengan kata-kunci function. Pada header tersebut terdapat variabel output, nama fungsi dan variabel input. Nama fungsi disini tidak selalu mencerminkan nama fungsi yang sebenarnya. Nama fungsi sebenarnya adalah nama file.m yang berisi fungsi tersebut. Walaupun demikian, nama fungsi pada header sebaiknya sama dengan nama file agar tidak membingungkan. Perhatikan contoh berikut : function R = contoh(p,q) % contoh.m : Menghitung perkalian matriks R = P*Q» A = [ 3; 4 5 6]; MEMULAI MENGGUNAKAN MATLAB

23 » B = [ 3; 4 5; 6 7];» C = contoh(a,b) C = Perhatikan bahwa nama variabel di dalam fungsi dan variabel pemanggil fungsi tidak harus sama. MATLAB membedakan variabel di luar fungsi dan variabel di dalam fungsi. Variabel di dalam fungsi bersifat lokal dan hanya berlaku di dalam fungsi. Hal ini akan dibahas pada sub-bagian lain Format Penampilan Angka Saat MATLAB menampilkan hasil proses numerik, MATLAB mengikuti beberapa aturan. Dalam keadaan biasa, jika hasilnya berupa bilangan bulat, MATLAB menapilkannya sebagai bilangan bulat. Jika hasilnya suatu bilangan real, MATLAB akan menampilkannya sebagai bilangan dengan empat digit desimal. Jika angka penting hasilnya di luar kisaran ini, MATLAB akan menampilkannya sebagai notasi lain seperti pada kalkulator sain. Anda dapat mengatur format penampilan ini dari item preference pada menu File jika ada atau dengan mengetikkan perintah MATLAB pada prompt command. Menggunakan variabel average_cost, format numerik yang tersedia adalah: MEMULAI MENGGUNAKAN MATLAB 3

24 MATLAB Command format short format long Average_cost Comments digits digits format short e format long e e e+0 5 digits plus eksponen 6 digits plus eksponen format short g format long g Better of format short or Format short e hexadecimal format hex format bank 40496aaaaaaaaaab hexadecimal decimals digits format Positive, negative, or zero format rat 305/6 Rational approximation Penting untuk diperhatikan bahwa MATLAB tidak mengubah representasi internal dari suatu bilangan sekalipun berbagai format penampilan dipilih untuk bilangan itu; hanya tampilannya saja yang berubah. 4 MEMULAI MENGGUNAKAN MATLAB

25 .3 RANGKUMAN MATLAB merupakan bahasa canggih untuk komputasi teknik kegunaannya secara umum adalah untuk matematika dan komputasi, pengembangan dan algoritma, pemodelan, simulasi dan pembuatan prototype, analisa data, eksplorasi dan visualisasi, pembuatan apilikasi termasuk pembuatan graphical user interface. Perintah MATLAB dapat dituliskan langsung pada prompt command window atau dalam bentuk M-file. Penulisan pada command window dilakukan hanya untuk operasi komputasi yang sederhana. Sementara untuk operasi komputasi yang panjang dan kompleks lebih sering dituliskan dalam M-file dimana file ini dapat diedit dan dipanggil setiap saat oleh MATLAB..4 LATIHAN Latihan. Buatlah script penulisan dengan M-file dan pada prompt command window untuk perhitungan berikut : y = x + 5x + 8 Tentukan niali y untuk setiap nilai x berikut: x= 5, 6, 7 dan 3.5 RUJUKAN ) Dan Hanselman dan Bruce Littlefield, 997. MATLAB: Bahasa Komputasi dan Teknis. hal 6-6. ANDI. Yogyakarta. ) MEMULAI MENGGUNAKAN MATLAB 5

26 BAB KONTROL ALUR PROGRAM. PENDAHULUAN Setelah kita membahas sekilas tentang cara kerja dan kemampuan MATLAB pada Bab, selanjutnya pada bab ini akan dijelaskan tentang kemampuan pemrograman MATLAB yang dijelaskan melalui beberapa konstruksi. Setelah menyelasaikan perkuliahan ini diharapkan mahasiswa akan mampu membuat alur program sederhana untuk menyelesaikan suatu permasalahan dalam bidang teknik kimia baik menggunakan kontruksi logika pemrograman maupun dengan pendekatan vector. Bahasan ini sangat penting mengingat penyelesaian permasalahan dalam teknik kimia yang kompleks membutuhkan suatu program penyelesaian yang terkadang juga kompleks. Sehingga pemahaman terhadap logika terhdap pemrograman menjadi prasyarat untuk mampu menyelesaikan berbagai permasalahan dalam bidang teknik kimia. 6

27 Pada bagian bab ini mahasiswa diharpakan banyak berlatih membuat alur program untuk menyelesaiakn soal-soal yang ada pada buku rujukan.. PEMROGRAMAN MATLAB Sebagaimana bahasa pemrograman pada umumnya, MATLAB juga memiliki perintah-perintah untuk mengatur atau mengontrol alur program. Kontrol program sangat berguna karena memungkinkan komputasi-komputasi yang lalu mempengaruhi komputasi berikutnya. MATLAB menyediakan empat struktur pengambilan keputusan atau struktur kontrol program. Keempatnya adalah konstruksi if-else-end, loop for, loop while, dan konstruksi switch-case-otherwise. Kontruksikontruksi tersebut seringkali melibatkan banyak perintah MATLAB, yang oleh karenanya konstruksi lebih sering terdapat dalam M-file daripada diberikan langsunng pada prompt MATLAB. Penjelasan singkat tentang kotruksikontruksi tersebut akan dijelaskan di bawah ini... Kontruksi if else - end Perintah ini adalah perintah klasik pemrograman. Identik dengan jika maka, perintah ini dapat digunakan untuk menguji suatu kondisi tertentu. Sintaks dari perintah ini diperlihatkan pada contoh berikut : % program : test.m a = input('a = '); if a == 0 disp('a sama dengan nol'); elseif a < 0 disp('a negatif'); else disp('a positif'); end KONTROL ALUR PROGRAM 7

28 » test a = 4 a positif» test a = -4 a negatif» test a = 0 a sama dengan nol.. Loop for Perintah ini juga merupakan perintah klasik bahasa pemrograman. Fungsi for adalah untuk melakukan loop sejumlah urutan yang telah ditentukan. Sintaks dari perintah ini diperlihatkan pada contoh berikut : % program : test.m for i=:0 for j=::0 A(i,j) = (i+j); end; end; A» test A = KONTROL ALUR PROGRAM

29 Urutan loop dapat sebuah vektor dengan bilangan-bilangan tertentu seperti contoh di atas : untuk i urutan dari sampai 0 dengan kenaikan, sedangkan untuk j dari sampai 0 dengan kenaikan. Jika x = [ ], maka for x = x akan memberikan harga-harga x seperti setiap elemen dalam vektor x ; x() =, x(3) = 5.4 dan seterusnya...3 Loop while Perintah ini akan mengulang perintah-perintah yang diapitnya selama kondisi pengujinya benar. Di dalam loop harus ada perintah-perintah yang membuat kondisi penguji menjadi salah, karena kalau tidak loop akan berlangsung terus. Contoh baik dapat dilihat para perhitungan epsilon mesin Matlab. % program : epsilon.m satu = inf; eps = ; while satu > eps = eps/; % nilai eps semakin lama % semakin kecil satu = + eps; % satu suatu saat akan sama % dengan end; eps = eps*» epsilon eps =.04e Kontruksi switch - case - otherwise Perintah ini mengarahkan alur program melalui sejumlah pilihan. Perintah ini untuk menggantikan perintah if elseif else yang bertumpuk. % program :Pilihan.m a = input('a = '); switch a case {0}, disp('a nol') KONTROL ALUR PROGRAM 9

30 case {}, disp('a satu') otherwise disp('a bukan nol atau satu'); end;» pilihan a = a satu» pilihan a = 0 a nol» pilihan a = -3 a bukan nol atau satu» pilihan a = 4 a bukan nol atau satu..5 Operasi Vektor dan Matriks Beberapa operasi vektor dan matriks yang penting antara lain adalah : Transposisi Transposisi vektor dan matriks dinyatakan dengan simbol apostrop ( ). Secara sederhana, definisi transposisi vektor dan matriks adalah mengubah posisi elemen-elemen kolom dalam vektor dan matriks menjadi elemen-elemen baris pada vektor dan matriks yang bersangkutan. Secara matematik dapat dinyatakan sebagai berikut. : A B' jika a ij b ji Pada Matlab, perintah ini dapat dilakukan dengan :» A = [ 3] A = 3» B = A' 0 KONTROL ALUR PROGRAM

31 B = 3» P = [ 3; 4 5 6; 7 8 9] P = » Q = P' Q = Perlu diingat bahwa Matlab selalu mendefinisikan sebuah array (vektor) sebagai vektor baris, kecuali didefinisikan terlebih dahulu. Misalnya A = :5 adalah vektor [ 3 4 5] dan bukan vektor kolom. Hal ini berbeda dengan definisi awal (default) vektor pada beberapa buku referensi komputasi. Penjumlahan dan Pengurangan Penjumlahan dan pengurangan vektor dan matriks adalah penjumlahan masing-masing elemennya. Pada Matlab, operasi penjumlahan dan pengurangan ditandai dengan tanda plus (+) dan minus (-).» A = [5 6 7] A = 5 6 7» B = [ 3] KONTROL ALUR PROGRAM

32 B = 3» A - B ans = Syarat penjumlahan dan pengurangan adalah dimensi kedua vektor atau matriks yang dijumlahkan harus sama. Perkalian Vektor dan Matriks Perkalian vektor dan matriks dilakukan menurut persamaan : C AB cik aij. bjk Syarat perkalian vektor dan matriks adalah jumlah baris vektor/matriks pertama harus sama dengan jumlah kolom vektor/matriks kedua.» A = [ 3; 4 5 6; 7 8 9] A = » B = [ 3; 4; 5 7] B = » A*B ans = KONTROL ALUR PROGRAM

33 Pembagian Matriks Terdapat dua macam pembagian matriks : Pembagian kiri : x = A\B diartikan sebagai penyelesaian A*x = B Pembagian kanan : x = A/B diartikan sebagai x = A*inv(B) Pemangkatan Matriks Pemangkatan n matriks adalah perkalian matriks tersebut n kali. Syarat pemangkatan matriks tentu saja adalah bahwa matriks yang akan dipangkatkan harus bujursangkar sehingga dapat dikalikan berulang-ulang. Operasi Elementer Beberapa operasi khusus terhadap elemen vektor dan matriks adalah : Perkalian/pembagian elemen vektor dan matriks Perkalian elementer vektor dan matriks lain dengan perkalian vektor dan matriks biasa. Perkalian elementer ini adalah perkalian antara elemen-elemen dari dua vektor atau matriks.» A = [ 3];» B = [4 5 6];» A*B' ans = 3 (perkalian vektor biasa)» A.*B KONTROL ALUR PROGRAM 3

34 ans = (perkalian elementer)» A./B ans = (pembagian elementer) Pemangkatan elemen vektor dan matriks Sama halnya dengan perkalian dan pembagian matriks, pemangkatan elementer juga berlaku untuk setiap elemen suatu vektor/matriks.» A.^ ans = 4 9 ( [^ ^ 3^] )» B.^A ans = ([4^ 5^ 6^3])..6 Operasi Vektor dan Matriks pada Fungsi Operasi fungsional pada Matlab dapat diaplikasikan pada vektor dan/atau matriks. Misalnya jika x = [ 3] dan y = x + x + 4, maka persamaan y(x) dapat dievaluasi secara vektor.» x = [ 3];» y = x.^ + *x KONTROL ALUR PROGRAM

35 y = 7 9 Beberapa fungsi bawaan dapat juga diaplikasikan secara vektor dan matriks misalnya sinus, cosinus, exponent, logatirma dan lainnya. Pemahaman tentang operasi pada vektor dan matriks ini akan sangat membantu menyelesaikan masalah menggunakan Matlab, karena beberapa kegiatan iteratif diganti dengan hanya sebuah atau beberapa buah perintah Matlab. Sebagai ilustrasi, simaklah contoh berikut ini : Contoh. : Untuk menentukan harga kapasitas panas suatu campuran gas pada suatu temperatur biasanya digunakan persamaan polinom kapasitas panas zat murni. Misalkan komposisi gas adalah yi dan Cp i = A i + B it + C it + D it 3 maka perhitungan kapasitas panas campuran pada T = 300 K dapat dilakukan dengan cara : cara pertama dengan pemrograman biasa : % test.m Cp = [ ; ] y = [ ] T = 300 Cpc = 0 for i=:length(y) Cpi = 0 for j=:length(cp) Cpi = Cpi + Cp(i,j)*T^(j-) KONTROL ALUR PROGRAM 5

36 end; Cpc = Cpc + y(i)*cpi end; Cpc» test Cpc = cara kedua dengan perhitungan vektor/matriks : % test.m Cp = [ ; ]; y = [ ]; T = 300; P = 0:3; % mendefinisikan pangkat % P = [0 3] TT = T.* ones(,4); % menghitung vektor % TT = [ ] TT = TT.^P % menghitung TT = [300^0 % 300^ 300^ 300^3] Cpc = y*(cp*tt')» test Cpc = RANGKUMAN MATLAB memiliki empat kontruksi untuk mengatur alur program yang lebih sering terdapat dituliskan atau dikodekan dalam M-file daripada diberikan langsunng pada prompt MATLAB. Sejumlah prosedur yang biasanya dikodekan iteratif 6 KONTROL ALUR PROGRAM

37 (menggunakan perintah for) dapat dihilangkan dan diganti dengan kode operasi matriks linier (tidak iteratif). Pemahaman penggunaan operasi-operasi vektor dan matriks, selain akan mempercepat perhitungan, juga akan mempermudah pengkodean program dan dokumentasi program..4 LATIHAN Latihan: Menghitung Entalpi Campuran Gas Melalui cara yang telah dibahas di atas, hitunglah entalpi suatu campuran gas CH 4, H O, H, CO, CO dengan komposisi masing-masing sebesar 0., 0., 0.4, 0.3, 0. pada temperatur 350 K. Data kapasitas panas dan entalpi pembentukan masing-masing gas murni adalah sebagai berikut : Gas Hf A B C D E CH E-.9098E E E- H O E E E E- H E E E E- CO E E E E- CO E E E E- Catatan : Hf dalam kkal/mol Cp = A + BT + CT + DT 3 + ET 4 [J/mol.K] dan T dalam K Entalpi campuran gas dapat dihitung berdasarkan persamaan : H n i y( i) H f, i T To Cp i dt KONTROL ALUR PROGRAM 7

38 .5 RUJUKAN ) Dan Hanselman dan Bruce Littlefield, 997. MATLAB: Bahasa Komputasi dan Teknis. ANDI. Yogyakarta. ) Himmelblau, D. M Basic Principle and Calculation in Chemical Engineering 6 th ed. Prentice hall PTR. New York. 8 KONTROL ALUR PROGRAM

39 BAB 3 VISUALISASI DATA DALAM MATLAB 3. PENDAHULAN Pada bab ini akan dibahas berbagai metode visualisasi data dalam MATLAB. Setelah menyelesaikan pokok bahasan bab ini mahasiswa diharapkan mampu membuat berbagai jenis grafik. Secara khusus mampu membuat grafik sederhana dua dimensi, membuat multiplot dari grafik tiga dimensi dan menentukan bentuk persamaan polinom dari sekumpulan data. Materi ini sangat berkaitan dengan pengolahan dan visualisasi data yang biasanya diperoleh mahasiswa dari hasil penelitan. Data yang diperoleh tersebut biasanya dibuat model dan simulasi hingga diperoleh visualisasinya, sehinga materi ini akan membantu mahasiswa khususnya yang berkaitan pengolahan data. 3. VISUALISASI GRAFIK MATLAB menyediakan berbagai fungsi untuk menampilkan data secara dua dimensi maupun tiga dimensi. Pada kasus 9

40 dimana Anda membuat grafik dalam tiga dimensi, Anda dapat menggambar permukaan dan menempatkan bingkai pada grafik tersebut. Warna digunakan untuk mewakili dimensi keempat. Untuk lengkapnya akan dibahas berikut. 3.. Pembuatan Grafik Sederhana Perintah plot sering digunakan untuk menggambarkan grafik dua dimensi. Perintah plot menggambarkan data dalam array pada sumbu yang bersesuaian dan menghubungkan titik-titik tersebut dengan garis lurus. Untuk keterangan lebih jelas mengenai fungsi plot ketik help plot di command window. Contoh.. Data reaksi berikut telah diperoleh dari reaksi peluruhan sederhana: A B Menggunakan MATLAB untuk mengeplot konsentrasi komponen A dalam mol/l terhadap waktu reaksi, dalam menit. Waktu (Menit) Konsentrasi (mole/l) Penyelesaian : Pertama, data harus dimasukkan ke dalam MATLAB sebagai dua vektor. Vektor x dan y didefinisikan dalam Command Window, diikuti dengan perintah untuk mengeplot data. Gambar 3. di bawah menunjukkan cara penulisan. 30 VISUALISASI DATA DALAM MATLAB

41 Gambar 3. Penulisan peritah plot Hasil grafik ditunjukkan Gambar 3. di bawah. Gambar 3.. Grafik hasil perintah Plot Matrix baris x (atau vektor) memiliki keluaran tampilan menggunakan ; pada akhir baris. Syntax dapat digunakan untuk menentukan judul dan labels, tetapi lebih mudah VISUALISASI DATA DALAM MATLAB 3

42 menggunakan pendekatan berdasarkan GUI (Graphical User Interface) untuk mengedit gambar. Pilih perintah Edit Plot pada menu Tools atau klick kursor pada gambar. Double click pada ruang putih dalam grafik. Hal ini memungkinkan untuk mengedit. Selanjutnya judul dan aksis dapat disisipkan di bawah perintah label. Sekarang klick langsung pada garis, dan property editor garis akan muncul. Selanjutnya warna garis, bentuk atau bentuk marker dapat diedit. Kurva akhir ditunjukkan Gambar 3.3 di bawah. Gambar 3.3 Hasil grafik akhir Untuk menampilkan data statistik sederhana, ikuti petunjuk. Tools Data Statistics dan nilai minimum, maximum, mean, median, standard deviation, and range x 3 VISUALISASI DATA DALAM MATLAB

43 and y akan tampil. Di dalam kotak ini setiap statistik dapat ditambahkan ke kurva sebagai titik data/garis. Anda dapat memilih sendiri style penandaan, warna dan bentuk garis dengan memberikan argumen ketiga pada fungsi plot untuk setiap pasangan array data. Argumen tambahan ini adalah suatu karakter string yang terdiri dari satu atau lebih karakter dari tabel di bawah ini: Tabel 3. Karakterik dalam MATLAB Simbol Warna Penandaan Simbol b Biru. Titik r Merah o Lingkaran g Hijau x Tanda x c Cyan + Tanda plus m Magenta * Tanda bintang y Kuning s Bujursangkar k Hitam d Diamon w Putih p pentagram h heksagram 3.. Grafik Multiple Plot Function subplot digunakan untuk membuat suatu figure yang dapat memuat lebih dari satu gambar. Perintah subplot didefinisikan sebagai : subplot(n,m,i) Perintah tersebut membagi suatu figure menjadi suatu matriks m x n, area grafik dan i berfungsi sebagai indeks penomoran gambar. Subplot dinomori dari kiri ke kanan dimulai dari baris teratas. Contoh. Untuk memplot grafik atas dan bawah >> income = [ ]; VISUALISASI DATA DALAM MATLAB 33

44 outgo = [ ]; subplot(,,); plot(income) title('income') subplot(,,); plot(outgo) title('outgo') 6 Income Outgo Grafik Tiga Dimensi (3D) Perintah menggambar grafik 3D surf(x,y,z) Misalkan: data berikut x y z(x=) z(x=) z(x=3) VISUALISASI DATA DALAM MATLAB

45 Syntax penulisan dalam MATLAB adalah: >> x=[ 3] x = 3 >> y=[ 3 4] y = 3 4 >> z=[ 5 0;5 8 3;0 3 8;7 0 5] z = Perintah untuk manmpilkan grafik tiga dimensi : >> surf(x,y,z) >> xlabel('x') >> ylabel('y') >> zlabel('z') z y.5 x.5 3 VISUALISASI DATA DALAM MATLAB 35

46 Untuk mempercantik tampilan dan mempermudah penafsiran grafik dengan menambah legenda warna ketikkan perintah berikut ini. >> shading interp >> colorbar Apabila penafsiran grafik 3D seperti tercetak di muka masih dirasakan sulit, MATLAB telah menyediakan perintah untuk membuat grafik 3D menjadi grafik D. Berikut syntax penulisan dalam MATLAB adalah: >> pcolor(x,y,z) >> xlabel('x') >> ylabel('y') >> zlabel('z') >> shading interp >> colorbar 36 VISUALISASI DATA DALAM MATLAB

47 3..4 Menganalisis Sekumpulan Data Percobaan Sekumpulan data pengukuran sebuah spesimen adalah sbb. : 67,5 65,7 68,4 65,3 69, 66, 68,3 63, 67,3 7,0 69,9 68,3 66,4 65,7 70, 64,9 69,6 67,9 66,5 68,4 Analisis data menggunakan Matlab : >> D = [ ] D = Columns through Columns 0 through 8 VISUALISASI DATA DALAM MATLAB 37

48 Columns 9 through >> max(d) % menentukan nilai maksimum ans = 7 >> min(d) % menentukan nilai minimum ans = >> mean(d) % menentukan nilai rata-rata ans = >> median(d) % menentukan nilai tengah ans = >> std(d) % menentukan standar deviasi ans =.003 >> sort(d) % mengurutkan data 38 VISUALISASI DATA DALAM MATLAB

49 ans = Columns through Columns 8 through Columns 5 through >> sum(d) % menjumlahkan data ans =.3496e+003 >> prod(d) % mengalikan data ans = e+036 >> cumsum(d) % menjumlahkan data secara kumulatif ans =.0e+003 * Columns through Columns 8 through 4 VISUALISASI DATA DALAM MATLAB 39

50 Columns 5 through Menentukan Model Polinom Dari Sekumpulan Data Percobaan Dari suatu hasil pengukuran diperoleh data sbb. x y Menurut teori, data ini bersesuaian dengan model polinom orde ketiga. Berikut langkah-langkah untuk mendapatkan model tersebut 40 VISUALISASI DATA DALAM MATLAB

51 >> x x = Columns through Columns 8 through Columns 5 through >> y y = Columns through Columns 8 through Columns 5 through >> polyfit(x,y,3) P = % koefisien polinom orde-3 >> yc = polyval(p,x) VISUALISASI DATA DALAM MATLAB 4

52 yc = Columns through Columns 8 through Columns 5 through Data Percobaan vs. Model Polinom Orde ke y x 4 VISUALISASI DATA DALAM MATLAB

53 3..6 Membuat Polinom dan Mencari Akar Polinom Matlab memiliki fungsi-fungsi untuk membentuk polinom dari akar-akarnya, dan sebaliknya, menentukan akar-akar polinom dari sebuah polinom. Simaklah contoh berikut. y = x 3 + x + 3x + 4 penyelesaian dengan MATLAB adal berikut : >> P = [ 3 4] P = 3 4 >> poly(p) ans = >> roots(ans) ans = Matlab juga dapat bekerja dengan bilangan kompleks. Untuk akar-akar yang mengandung bilangan kompleks, fungsi roots akan mengeluarkan jawaban berupa bilangan kompleks. >> roots(p) ans = i i VISUALISASI DATA DALAM MATLAB 43

54 3.3 RANGKUMAN Perintah plot menciptakan grafik suatu vector atau kolomkolom matriks. Bentuk perintahnya adalah plot (x, y, x, y, S, ), dengan (x n, y n) adalah himpunan data dan Sn adalah string tambahan yang menentukan warna, symbol penandaan, dan style garis Grid berfungsi sebagai toggle untuk titik tanda nilai sumbu pada grafik 3.4 RUJUKAN ) Dan Hanselman dan Bruce Littlefield, 997. MATLAB: Bahasa Komputasi dan Teknis. hal 80-0 dan Andi. Yogyakarta. ) Constantinidis dan Mustoufi,999, Numerical Methodes for Chemical Engineers with MATLAB Application, Prentice-Hall: Englewood Cfiffs, NJ 44 VISUALISASI DATA DALAM MATLAB

55 BAB 4 PERSAMAAN LINIER SIMULTAN 4. PENDAHULUAN Pada bab ini akan dibahas tentang persamaan linier simulatan, sehingga diharapakan mahasiswa akan mampu menyelesaikan persamaan linier simultan yang muncul dari permasalahan teknik kimia. Mahasiswa juga diharapkan mampu menyusun suatu persamaan linier simultan dari peristiwa fisis atau kimia dalam teknik kimia dan menyelesaikan persamaan tersebut dengan MATLAB. Topik ini sangat penting untuk dipelajari karena dalam permasalahan penyusunan neraca massa dan energi sering ditemukan persamaan yang mencerminkan perilaku dari sistem berupa seperangkat persamaan linier simultan yang kompleks. Untuk memperdalam pemahaman mahasiswa tentang topik ini disarankan untuk membaca kembali buku rujukan yang digunakan dalam buku ini. 45

56 4. MODEL MATEMATIS PERSAMAAN LINER SIMULTAN Analisis matematis dari sistem fisika-kimia yang linier sering menghasilkan model yang terdiri dari seperangkat persamaan aljabar linier. Selain itu, metode penyelesaian dari sistem persamaan nonlinier dan persamaan diferensial menggunakan teknik dari model linierisasi, sehingga membutuhkan penyelesaian berulang dari seperangkat persamaan aljabar linier. Masalah-masalah ini dapat berupa persamaan dengan kompleksitas yang tinggi yaitu dari seperangkat yang terdiri dari dua persamaan linear aljabar simultan sampai seperangkat yang melibatkan.000 atau bahkan persamaan. Penyelesaian dari seperangkat dua sampai tiga persamaan aljabar linear dapat diperoleh dengan mudah dengan metode eliminasi aljabar atau dengan penerapan aturan Cramer. Namun demikian, untuk sistem yang melibatkan lima atau lebih persamaan, metode eliminasi aljabar menjadi terlalu kompleks, dan aturan Cramer membutuhkan sejumlah operasi aritmatika tingkat tinggi, terlalu besar bahkan untuk saat ini dibutuhkan kecepatan komputer digital yang tinggi. Dalam bagian ini, diberikan beberapa contoh dari sistem yang menggambarkan aplikasi dari teknik kimia yang menghasilkan seperangkat persamaan aljabar linier simultan. Neraca massa dan energi adalah tools utama bagi insinyur kimia. Neraca tersebut misalnya diterapkan pada proses distilasi bertingkat atau multikomponen yang menghasilkan seperangkat persamaan yang dapat berupa persaman diferensial atau aljabar. Seringkali sistem yang dianalisis adalah persamaan nonlinier, sehingga menghasilkan seperangkat persamaan nonlinier. Namun, banyak prosedur telah dikembangkan dengan linearisasi persamaan dan menerapkan teknik iteratif konvergensi untuk sampai pada penyelesaian dari sistem 46 PERSAMAAN LINIER SIMULTAN

57 persamaan nonlinier. Sebuah contoh klasik dari penggunaan teknik ini adalah dalam analisis kolom distilasi, seperti yang ditunjukkan pada Gambar 4.. Neraca massa steady state diterapkan pada bagian rektifikasi kolom menghasilkan persamaan berikut: l oi v ji Kondensor Total v ji v j+,i l j-,i l ji j = j j + Reflux drum j = 0 d i D v Fi v f-, l Fi v ji l f-,i l j-,i j =f- j =f j v j+,i l ji j + j =N- Reboiler parsial j =N b i B Gambar 4. Kolom distilasi Neraca massa sekitar kondensor: V y i = L ox oi + D x Di (4.) Neraca massa di atas tahap j : V jy ji = L j-x j- + D x Di (4.) PERSAMAAN LINIER SIMULTAN 47

58 Asumsi bahwa tahap bearada dalam kesetimbangan dan kolom meggunakan kondensor total sehingga hubungan kesetimbangan berikut berlaku: y ji = K ji x ji (4.3) persamaan (4.3) disubtitusikan ke persamaan (4.) dan (4.) dan semuanya dibagi dengan D xdi maka dihasilkan persamaan : V j D x V y D x y i L z F i 0 jf x i i D x i j L K j j, i V j y D x i j, i (4.4) (4.5) Laju alir molal komponen tunggal didefinisikan sebagai: v ji = V y i (4.6) d i = D x Di (4.7) untuk beberapa tahap j, rasio adsorpsi didefinisikan sebagai: L j A i (4.8) K V j j dan untuk kondenser total : L 0 D (4.9) A i 0 Subtitusi persamaan (4.6)-(4.8) ke persamaan (4.4) dan (4.5) dihasilkan: v d i A0 i i (4.0) v d y i j, i Aj, i i di (4.) 48 PERSAMAAN LINIER SIMULTAN

59 Untuk setiap perhitungan percobaan yang diberikan A dianggap sebagai konstanta. Yang tidak diketahui dalam persamaan di atas adalah kelompok vji/di. Jika hal ini diganti dengan xji dan subskrip i, komponen menunjukkan komponen i yang dijatuhkan, seperangkat persamaan berikut dapat ditulis untuk kolom yang berisi lima tahap kesetimbangan di atas tahap/plat umpan. x = A o + -A x + x = -A x + x 3 = (4.) -A 3x 3 + x 4 + = -A 4x 4 + x 5 + = Ini adalah seperangkat persamaan aljabar linier simultan. Ini sebenarnya adalah seperangkat khusus yang hanya memiliki persyaratan bukan nol pada diagonal dan satu elemen yang berdekatan. Ini adalah satu set matrik bidiagonal. Bentuk umum persamaan linier simultan adalah: a x + a x + a 3x anxn = c a x + a x + a 3x a nxn = c a 3x + a 3x + a 33x a 3nxn = c (4.3) anx + anx + an3x annxn = cn di mana semua koefisien aij, dapat berupa nilai yang bukan nol. Seperangkat persamaan ini biasanya sering dinyatakan dalam vektor matrix dengan notasi sebagai berikut: A x = c (4.4) dimana A adalah koefisien matriks. PERSAMAAN LINIER SIMULTAN 49

60 (4.5) [ ] x adalah vektor dari variabel yang tidak diketahui nilainya (4.6) [ ] dan c adalah vektor konstanta (4.7) [ ] Ketika vektor c adalah vektor nol, maka seperangkat persamaan di atas disebut homogen. Di dalam MATLAB, jenis persamaan-persamaan di atas dapat diselesaikan dengan menggunakan fasilitas yang sudah tersedia yaitu operasi matrix. 50 PERSAMAAN LINIER SIMULTAN

61 5 PERSAMAAN LINIER SIMULTAN Contoh 4. Mencari beberapa variabel persamaan linier simultan Diketahui sebuah sistem persamaan linier sbb. : x x x x x x x x x x x x x (4..) Sistem persamaan linier ini dapat dinyatakan dalam bentuk persamaan matriks : x x x x (4..) Penyelesaian pada MATLAB :» A = [5-3 0; -3 ; ; - 0 -] A = » b = [5-5 0] b = 5-5 0» x = A\b' x = » A*x ans =

62 Contoh 4. : Neraca Massa Linier Rangkaian Proses. Suatu bahan A akan dikonversikan menjadi B dalam sebuah reaktor. Produk B keluar bersama reaktan A yang tidak bereaksi menuju pemisah sehingga reaktan A dapat dikembalikan ke reaktor. Skema proses tersebut ditunjukkan pada Gambar 4. di bawah. Gambar 4. Skema Rangkaian Proses Produk berupa zat A murni dengan laju 00 kmol/jam. Kendala proses adalah : () 80 % dari A dan 40 % dari B di dalam alur didaur-ulang. () Perbandingan mol A terhadap B di dalam alur adalah 5 :. 5 PERSAMAAN LINIER SIMULTAN

63 53 PERSAMAAN LINIER SIMULTAN Penyelesaian: Neraca massa Pencampur : N A N A3 = 00 (4..) N B N B3 = 0 (4..) Neraca massa reaktor : - N A + N A + r = 0 (4..3) - N B N B r = 0 (4..4) (r = laju reaksi) Neraca massa pemisah : - N A + N A3 + N A4 = 0 (4..5) - N B + N B3 + N B4 = 0 (4..6) Kendala-kendala (constraints) : Porsi cabang : 0.8 N A + N A3 = 0 (4..7) -0.4 N B + N B3 = 0 (4..8) Hubungan komposisi alur : N A 5 N B = 0 (4..9) Ada 9 persamaan linier dengan 9 variabel yang tak diketahui : N A, N B, N A, N B, N A3, N B3, N A4, N B4, dan r. Persamaan-persamaan di atas dapat dituliskan kembali dalam bentuk matriks sebagai berikut : A A A A A A A A A N N N N N N N N N (4..0) Script MATLAB dalam command window untuk menyelesaikan sistem persamaan ini adalah sebagai berikut:

64 %9x9 matriks A A=[ ; ; ; ; ; ; ; ; ]; %9x matriks B b=[ ]' %penyelesaian neraca massa dengan eliminasi Gauss x = A\b x = Contoh 4.3 Sistem Distribusi Steam Pabrik Kimia Gambar 4.3 di bawah merepresentasikan sistem distribusi steam dalam suatu pabrik kimia (Himmelblau et al, 0). Neraca massa dan energi untuk sistem ini diberikan sebagai berikut: 8,60-x 3 3,57 x 4 x 5 = y y +y 5+y 4 = 5, (4.3.a),7x 3 x 6 =0 (4.3.a) 3,57 0,745x 7 = 6, (4.3.3a) x 5+x 7-x 8- x 9 x 0+x 5 = y 7 +y 8-y 3 =99, (4.3.4a) 54 PERSAMAAN LINIER SIMULTAN

65 x 8 + x 9 + x 0 + x - x - x 3 = -y 7 = -8,4 x 6-x 5 = y 6 - y 5=4, (4.3.5a) (4.3.6a) -,5(8,60) + x 3 x 6 + x + x 6 =,5y y 9 + 0,4 = -9,7 (4.3.7a) 8,60 4,594x - 0,x 6 = -y +,035y 9 +,45 = 35,05 (4.3.8a) -0,043(8,60) + x = 0,043y =,88 (4.3.9a) -0,06(8,60) + x 4 = 0 (4.3.0a) x 8-0,47x 6 = 0 x 5-0,07x 4 = 0 (4.3.a) (4.3.a) -0,0805(8,60) + x 9 =0 (4.3.3a) x x 4 + x 6 = 0,4 y 9 = -97,9 (4.3.4a) Terdapat empat level steam pada pabrik ini yaitu: 680, 5, 70, and 37 psia. Ke- 4 x i, i = 3,..., i = 6 tidak diketahui nilainya dan yi adalah parameter yang diketahui untuk sistem ini. Kedua xi dan yi memiliki satuan 000 lb/jam. Tentukan 4 paremeter x i yang tidak diketahui dari i = 3,..., i = 6. PERSAMAAN LINIER SIMULTAN 55

66 Gambar 4.3 Sistem distribusi steam Penyelesaian: 4 persamaan ini menunjukan neraca disekitar 4 unit operasi, yaitu: Pers. () 680 psia header Pers. () Desuperheater Pers. (3) Alternator turbine Pers. (4) 70 psia header Pers. (5) 37 psia header Pers. (6) 5 psia steam Pers. (7) BFW balance Pers. (8) Condensate quench drum Pers. (9) Blow down flash drum Pers. (0) Boiler atomizing Pers. () Treated feedwater pump Pers. () Boiler feedwater pump Pers. (3) Boiler fan Pers. (4) Deaerator-quench. 56 PERSAMAAN LINIER SIMULTAN

67 Seperangkat persamaan yang dinyatakan dalam soal disederhanakan menjadi seperangkat persamaan yang mengandung 4 variabel yang tidak diketahui (x 3 - x 6). x 3 + x 4 + x 5 = 43,93 (4.3.b),7x 3 x 6 =0 (4.3.b) x 7 = 95,798 (4.3.3b) x 5+x 7-x 8- x 9 x 0+x 5 = 99, (4.3.4b) x 8 + x 9 + x 0 + x - x - x 3 = -8,4 (4.3.5b) x 6-x 5 =4, (4.3.6b) x 3 x 6 + x + x 6= 89,4 (4.3.7b) 4,594x + 0,x 6 = 46,55 (4.3.8b) x = 0,56 (4.3.9b) x 4 =,9056 (4.3.0b) x 8-0,47x 6= 0 (4.3.b) x 5-0,07x 4 = 0 (4.3.b) x 9 = 4,688 (4.3.3b) x x 4 + x 6 = -97,9 (4.3.4b) Untuk kemudahan dalam pemrograman, kita rubah urutan angka variabel sehigga x3 menjadi x, x4 menjadi x, dan seterusnya. x +x +x 3 = 43,93 (4.3.c),7x x 4=0 (4.3.c) (4.3.3c) (4.3.4c) (4.3.5c) (4.3.6c) (4.3.7c) 4,594x 0 + 0,x 4 = 46,55 (4.3.8c) x 9 = 0,56 (4.3.9c) x =,9056 (4.3.0c) x 6-0,047x 4 = 0 (4.3.c) x 3-0,07x = 0 (4.3.c) x 5 = 95,798 x 3+x 5-x 6- x 7 x 8+x 3 = 99, x 6 + x 7 + x 8 + x 9- x 0 - x = -8,4 x 4 - x 3 = 4, x x 4 + x 0 + x 4 = 89,4 PERSAMAAN LINIER SIMULTAN 57

68 x 7 = 4,688 x 0 x + x 4 = -97,9 (4.3.3c) (4.3.4c) Persamaan aljabar linier di atas dapat dinyatakan dengan: Ax = c (4.3.5) Dimana A adalah mariks bujur sangkar yang banyak mengandung nilai nol. Srcipt penyelesaian dalam MATLAB dpat dituliskan sebagai berikut: (4.3.5) P =[ ; ; ; ; ; ; ; ; ; ; ; 58 PERSAMAAN LINIER SIMULTAN

69 ; ; ]; Q =[ ]'; S=P\Q S= Berdasarkan hasil perhitungan di atas maka dapat dituliskan nilai penyeesaian untuk x sampai x4 sebagai berikut : x Nilai x x 4.00 x x 4.4 x x 6.4 x PERSAMAAN LINIER SIMULTAN 59

70 x Nilai x 8 0 x x x 8.04 x x x Contoh 4.4 Kolom Absorpsi Enam Plat Sebuah kolom absorpi enam plat/tray dioperasikan pada keadaan steady state (Raramirez, 998). Hubungan kesetimbangan linier yang terjadi antara cairan (xm) dan uap (ym) setiap plat dapat diasumsikan dengan persamaan: y m = ax m + b (4.4.) Komposisi umpan masuk ke kolom, xo dan y7 ditentukam bersama laju alir (mol/waktu) fasa cairan (L) dan gas (G). Sistem ditunjukkan gambar di bawah. Gambar 4.4. Kolom Absorpsi 60 PERSAMAAN LINIER SIMULTAN

71 Tentukan komposisi tray, jika diketahui: a. Cairan umpan adalah cairan murni (xo = 0) dan umpan gas mengandung 0. kmol gas terlarut/kmol gas inert (y 7 = 0.). b. Cairan umpan adalah cairan murni (x0 = 0) dan y7 = 0.3. Nilai : a = 0,7 ; L = 66,7 kgmol/menit b = 0 ; G = 40,8 kgmol/menit Penyelesaian: Untuk menyelesaikan soal di atas, neraca massa ditulis pada tray representative, ke-n, yang ditunjukkan gambar di bawah. Gambar 4.5. Tray tipikal Penerapan neraca massa makroskopis diperoleh: Rate of mass in Rate of mass out L x G y n n L x n G y n (4.4.) Menggunakan hubungan kesetimbangan linier pada neraca massa memberikan : L x G ax b L x G a x b (4.4.3) atau n n L Gax Gax 0 n n n n L x (4.4.4) Berikut seperangkat persamaan untuk kolom enam plat: n PERSAMAAN LINIER SIMULTAN 6

72 L x L x L x L x L x L Ga x Gax L Ga x L Ga x L Ga x L Ga x L Ga x Lx Gax 3 Gax Gax 5 Gax y Ga b a (4.4.5) L Ga L Ga L Ga L Ga L Ga L Lx0 x 0 x 0 Ga x3 0 L Ga Ga x4 0 L L Ga Ga x5 y7 b L L Ga x6 Ga a (4.4.5) Persamaan matriks adalah : A x b (4.4.6) Berikut script program penyelesaian soal di atas yang ditulis dalam command window. %baca parameter proses yang diketahui a=0.7; b=0; L=66.7;%kgmol/menit G=40.88;%kgmol/menit %baca kondisi awal x0=0;y7()=0.; y7()=0.3; %baca matriks A dan B A=zeros(6);%6x6 matriks berelemen nol A(,)=-(L+G*a);%elemen matriks pada baris ke- kolom ke- A(,)=L; A(,)=G*a; A(,)=-(L+G*a); A(3,)=L; A(,3)=G*a; A(3,3)=-(L+G*a); 6 PERSAMAAN LINIER SIMULTAN

73 A(4,3)=L; A(3,4)=G*a; A(4,4)=-(L+G*a); A(5,4)=L; A(4,5)=G*a; A(5,5)=-(L+G*a); A(6,5)=L; A(5,6)=G*a; A(6,6)=-(L+G*a); B=zeros(6,);%6x matriks berelemen nol B(,)=-L*x0;%elemen matriks pada baris ke- kolom ke- B(6,)=-G*a*(y7()-b)/a; B=zeros(6,);%6x matriks berelemen nol B(,)=-L*x0;%elemen matriks pada baris ke- kolom ke- B(6,)=-G*a*(y7()-b)/a; %penyelesaian komposisi tray dengan eliminasi Gauss x=a\b x = x=a\b x = PERSAMAAN LINIER SIMULTAN 63

74 Contoh 4.5 Penyelesaian Persamaan Reaksi Kimia dan Neraca Massa Suatu reaksi kimia dijalankan dalam serangkaian empat reaktor alir tangki berpengaduk (CSTR) yang disusun seperti gambar di bawah. 000 L/jam CAO = mol/l 00 L/jam 00 L/jam V CA k V CA k V3 CA3 k3 V4 CA4 k4 000 L/jam CA CA CA3 CA4 Gambar 4.6. Rangkain Reaktor CSTR Reaksi kimia adalah reaksi irreverible orde satu dengan persamaan reaksi: A B Kondisi temperatur dalam setiap reaktor sebagaimana nilai konstanta laju reaksi k i berbeda di setiap reaktor. Volume setiap reaktor, V i juga berbeda. Nilai k i dan V i diberikan pada tabel di bawah. Berikut asumsi yang dapat digunakan untuk sistem tersebut. a) Sistem adalah steady state b) Reaksi terjadi di fasa cair c) Tidak ada perubahan volume atau densitas cairan d) Laju pengurangan komponen A dalam setiap reaktor dinyatakan dengan : R i = V i k i C Ai (mol/jam) (4.5.) 64 PERSAMAAN LINIER SIMULTAN

75 Reaktor V i (L) k i (jam - ) 000 0, 500 0, , ,3 Susunlah persamaan neraca massa untuk keempat reaktor dan tentukan konsentrasi (C Ai) yang keluar dari tiap reaktor. Penyelesaian: Neraca massa unsteady state untuk setiap reaktor adalah: (4.5.) Karena sistem adalah steady state, maka laju akumulasi adalah nol, neraca massa dapat disederhanakan menjadi: Rate of input Rate of output Rate of Re action 0 (5.4.3) Penyusunan neraca massa untuk setiap reaktor menghasilkan persamaan: 000C A0-000C A - V k C A = C A +00C A3-00C A -V k C A = 0 (5.4.4) 00C A +00C A4-00C A3 - V 3 k 3C A3 = 0. 00C A3-00C A4 V 4 k 4C A4 = 0. Subtitusi nilai CA0, ki dan Vi diperoleh persamaan: 00C 000C A A 400C 00C A A 00C A3 40C 00C A A3 00C A4 50C A (4.4.5) PERSAMAAN LINIER SIMULTAN 65

76 Persamaan diatas disusun dalam matriks : C 00 C 50C C A (4.4.6) A A3 A Penyelesaian persamaan dengan MATLAB adalah berikut: %matriks A dan B A=[ ; ; ; ]; B=[000;0;0;0]; x=a\b x = RANGKUMAN Persamaan aljabar linier simultan dapat dinyatakan dalam vektor matriks Untuk dapat dinyatakan dalam bentuk vector/matrik jumlah variabel yang tidak diketahui harus sama dengan jumlah persamaan Matriks yang terbentuk dari persamaan linier simultan adalah matrik bujur sangkar Persaman aljabar linier simultan dapat diselesaiakan dengan MATLAB menggunakan operasi matriks 4.4 RUJUKAN ) Constantinidis dan Mustoufi Numerical Methodes for Chemical Engineers with MATLAB Application. hal Prentice-Hall: Englewood Cfiffs, NJ 66 PERSAMAAN LINIER SIMULTAN

77 ) Himmelblau, M. David and James B Riggs. 0. Basic Principles and Calculations in Chemical Engineering 8th Ed. Prentice-Hall: NJ 3) Cutlip, M. B., Shacham, M Problem Solving in Chemical Engineering with Numerical Methods. Hal 5-6. Prentice-Hall: Englewood Cfiffs, NJ. 4) Ramirez, W.F Computational Methods in Process Simulation. Hal: Elsevier Science & Technology Books. PERSAMAAN LINIER SIMULTAN 67

78 PERSAMAAN NON-LINIER TUNGGAL BAB 5 5. PENDAHULUAN Materi ini membahas tentang persamaan non-linier satu variabel. Setelah menyelesaikan bab ini diharapkan mahasiswa akan mampu menyelesaikan persoalan dalam teknik kimia yang dapat dinyatakan dengan persamaaan nonlinier. Secara khusus mahasiswa diharapkan mampu menyusun peristiwa fisis dan kimia dalam teknik kimia kedalam persamaan matematis yang berbertuk nonlinier dan mampu menyelesaikannya dengan fungsi MATLAB yaitu fzero. Materi ini sangat penting mengingat banyak peristiwa dalam bidang teknik kimia yang berkaitan dengan termodinamika memiliki bentuk persamaan nonlinier yang harus dipecahkan untuk proses evaluasi, optimasi dan perancangan. Sehingga memahami dan menguasai materi dari bab ini akan membantu mahasiswa dalam memecahkan persoalan perhitungan tentang termodinamika dan lainnya yang berkaitan dengan persamaan non linier. Pendalaman materi tentang topik yang dibahas pada bab ini dapat dibaca buku yang menjadi rujukan sebagaimana dituliskan halamannya. 68

79 5. MODEL MATEMATIS PERSAMAAN NON LINIER Banyak persoalan dalam bidang teknik dan sains memerlukan penyelesaian persamaan nonlinier. Beberapa contoh masalah yang menggambarkan dari bidang teknik kimia dan dari aplikasi bidang lain akan dibahas pada bagian ini. Metode penyelesaian akan yang dikembangkan dalam bagian bab ini, dan contoh-contoh spesifik penyelesaian akan didemonstrasikan menggunakan perangkat lunak MATLAB. Dalam termodinamika, hubungan tekanan-volume-suhu gas nyata dinyatakan dengan persamaan keadaan (equation of state). Ada beberapa persamaan semi teoritis atau empiris, seperti Redlich-Kwong, Soave-Redlich-Kwong, dan persamaan Benedicts-Webb-Rubin, yang telah digunakan secara luas dalam teknik kimia. Sebagai contoh, persamaan keadaan Soave- Redlich-Kwong yang memiliki bentuk: RT a P (5.) v b v v b Dimana P, v dan T adalah tekanan, volume molar, dan suhu. R adalah konstanta gas, merupakan fungsi temperatur, a dan b adalah konstanta yang spesifik untuk masing-masing gas. Pers (5.) adalah polinomial derajat tiga dalam V dan dapat dengan mudah diatur kembali menjadi bentuk kanonik dari polinomial, yaitu: 3 Z Z ( A B B ) Z AB 0 (5.) dimana Z = P v/rt adalah faktor kompresibilitas, A = ap/r T dan B = bp/rt. Oleh karena itu, masalahnya adalah mencari volume spesifik gas pada temperatur dan tekanan yang diberikan untuk menemukan akar yang tepat dari persamaan polinomial. Kasus lain, misalnya di dalam perhitungan pemisahan multikomponen, sering diperlukan untuk memperkirakan rasio PERSAMAAN NON-LINIER TUNGGAL 69

80 refluks minimum kolom distilasi multitahap. Suatu metode telah dikembangkan oleh Underwood (948) dan dijelaskan secara detil oleh Treybal (980), yakni persamaan berikut: n j j z jf F F j q 0 (5.3) dimana F adalah alju alir molar umpan, n adalah jumlah komponen pada umpan, zjf adalah mol fraksi setiap komponen dalam umpan, q adalah kualitas umpan αj adalah volatilitas relative setiap komponen pada kondisi rata-rata kolom, dan adalah akar persamaan. Laju alir umpan, komposisi umpan, dan kualitas biasanya diketahui, kondisi kolom rata-rata dapat diperkirakan. Sehingga hanya yang tidak diketahui. Karena persamaan ini adalah persamaan polynomial dalam dengan derajat n, maka ada beberapa kemungkinan nilai (akar) yang cocok menyelesaiakn persamaan (5.3). Semua persamaan non linier dapat dituliskan dalam bentuk umum : f(x) = 0 (5.4) dimana x adalah variabel tunggal dapat yang dapat memiliki akar banyak yang sesuai dengan persamaan ini. Fungsi f(x) mungkin menganggap berbagai fungsi nonlinier mulai dari persamaan polinomial yang kanonik berbentuk n n f x) a x a x... a x a 0 (5.5) ( n n o ke persamaan transendental, yang melibatkan bentuk trigonometri, eksponensial, dan logaritmik. Akar fungsi ini dapat berupa : ) real dan jelas ) real dan diulang 3) kompleks konjugat 4) kombinasi dari beberapa atau semua di atas Bagian real dari akar bisa positif, negatif, atau nol. 70 PERSAMAAN NON-LINIER TUNGGAL

81 MATLAB memiliki dua routin yang dapat menyelesaikan fungsi pengenolan untuk satu variabel. fzero digunakan untuk persamaan nonlinear umum, sementara roots dapat digunakan jika persamaan nonlinear adalah polinomial. 5. fzero Routine pertama yang kita gunakan adalah fzero. fzero menggunakan kombinasi metode numeris interval bisection dan regula falsi. Syntax yang digunakan untuk menuliskan fzero adalah z = fzero( function,initial guess) Untuk menggunakan fzero Anda harus terlebih dahulu menulis m-file MATLAB untuk menghasilkan fungsi yang sedang dievaluasi. Anggap suatu fungsi: f(x) = x - x 3 = 0. m-file MATLAB berikut untuk mengevaluasi fungsi ini (m-file dinamankan fcnl.m): function y=fcnl(x) y=x^-*x-3; Setelah menghasilkan m-file fncl.m, Anda harus menyediakan tebakan awal untuk menyelesaikan routin fzero. Perintah berikut memberikan tebakan awal x = 0. y =fzero('fcnl',0) MATLAB akan memberikan jawabannya: y = Untuk tebakan awal x =, Anda memasukkan: z =fzero('fcnl',) dan MATLAB kembali memberikan jawaban: z = 3 Kita temukan bahwa ada dua solusi untuk masalah yang sama (kita dapat menggunakan rumus kuadratik untuk memperolehnya). Solusi yang diperoleh tergantung pada tebakan awal. PERSAMAAN NON-LINIER TUNGGAL 7

82 5. roots Kita juga bisa menggunakan routine MATLAB roots untuk menemukan pengenolan suatu polynomial. Misal fungsi polinomial: x -x 3 = 0 Anda harus membuat vector koefisien polynomial dalam orde yang berurutan c = [ - -3] kemudian Anda dapat menuliskan perintah seperti berikut: roots(c) dan MATLAB akan menjawab: ans: 3 - Ini adalah penyelesaian yang kita harapkan. Berikut di bawah ini akan dijelaskan beberapa contoh penyelesaian persamaan non linier tunggal secara umum dan aplikasinya dalam teknik kimia. Contoh 5. Mencari akar persamaan Diketahui persamaan : f(x) = x 3 x 5, akan dicari nilai x yang menyebabkan fungsi f(x) sama dengan nol. Penyelesaian: Tulis dalam m-file : function y=f(x) y=x.^3-*x-5; Untuk mendapatkan nol mendekati, tuliskan : 7 PERSAMAAN NON-LINIER TUNGGAL

83 z=fzero( f,) z=.0946 Contoh 5. Mencari temperatur untuk suatu harga Cp tertentu Diketahui sebuah persamaan kapasitas panas sebagai berikut : kj Cp T dan T dalam K (5..) T kg. K Akan ditentukan temperatur pada saat Cp = kj/kg.k. Untuk itu, ubahlah persamaan di atas menjadi : f ( T) T 0 (5..) T Penyelesaian : Tahap : membuat fungsi yang dapat mengevaluasi persamaan (5..) function f=fungsi(t) %fungsi yang akan di-nol-kan. f = E-6*T /sqrt(T); Apabila fungsi ini diplot (fplot( fungsi,[00 300]) akan diperoleh grafik sebagai berikut: f(t) T (K) Gambar 5.. Grafik Cp terhadap suhu PERSAMAAN NON-LINIER TUNGGAL 73

84 Untuk mendapatkan harga pembuat nol dari fungsi tersebut digunakan fungsi fzero dengan tebakan awal 00 : >>fzero('fungsi',00) ans = Diperoleh T = K pada saat Cp = kj/kg.k. Contoh 5.3. Mencari volume spesifik gas n-butana Tentukan volume spesifik butana pada 500 K dan 8 atm menggunakan persamaan keadaan Redlich Kwong : RT a p (5.3.) v b v v b R Tc a 0,4748, RT b 0, p c p c Tr dan Tr, (5.3.) 0, 5 T c T r Penyelesaian : Persamaan (5.3.) dapat dituliskan : 3 v ( p) v ( RT ) v( a pb RTb ) ab 0 (5.3.3) Untuk mendapatkan nilai v maka: F(v) = 0 (5.3.4) Langkah penyelesaian soal di atas adalah diatas adalah : Tahap : Pertama kita perlu menyiapkan m-file yang akan menghitung f(v), dengan tekanan, temperatur, dan properti termodinamika yang diberikan. File ditunjukkan di bawah: % menghitungg vol gas butana function y=specvol(v) % in K atm l/gmol 74 PERSAMAAN NON-LINIER TUNGGAL

85 % parameters for n-butane Tc=45. pc=37.5 T=500 (:7) p=8 R= Tr=T/Tc alphark=/(tr)^0.5 ark=(0.4748*(r*tc)^/pc)*alphark brk= *(r*tc/pc) y=p*v^3-r*t*v^+(ark-p*(brk)^-r*t*brk)*v-rk*brk; Fungsi ini dinamakan specvol, mendefinisikan masalah yang akan diselesaiakan. Tahap. Untuk menguji fungsi specvol kita keluarkan juga perintah di commands window: feval( specvol,0.) ans=specvol(0.) Fungsi feval menyebabkan MATLAB menghitung nilai y menggunakan m-file yang diberi nama specvol ketika v = 0.. Output yang kita peroleh adalah: Tc= pc= T=500 p=8 (:9) R= ark=3.878 ark=.798 brk= y= Kita harus memeriksa hasil ini baris demi baris, khususnya perhitungan untuk ark, brk, and y. Tahap 3. Ketika kita menggunakan fzero, fungsi specvol akan dievaluasi untuk variasi v. Oleh karena itu, terlihat tidak nyaman jika konstanta ditampilkan pada layar untuk setiap iterasi. Untuk menghindari hal tersebut, kita rubah fungsi specvol dengan menambahkan PERSAMAAN NON-LINIER TUNGGAL 75

86 titik koma ; pada setiap baris. Lakukan hal ini dan simpan save m-file, specvol. Tahap 4. Selanjutnya, kita keluarkan perintah pada command window: v = fzero( specvol,0.) v =.0377 Dalam feval, 0. adalah nilai v yang digunakan dalam perhitungan, dimana dengan fzero, v adalah nilai tebakan awal. Untuk mengeceknya, kita dapat mengevaluasi fungsi untuk menemukan seberapa dekat dengan nol f(v). >> ans = specvol(v) ans = -.04e-5 Tentu kita berharap ini adalah nol (atau sangat dekat dengan nol) karena kita berharap MATLAB bekerja dengan baik. Jika MATLAB tidak menemukan jawaban, MATLAB akan memberitahu kita. Contoh 5.4. Pemisahan Campuran dengan Flash Drum Pada Tabel 5. di bawah diberikan data untuk empat komponen hidrokarbon. Di dalamya adalah daftar konstanta A, B, dan C untuk persamaan Antoine. Bi log 0 Pi * Ai Ci T (5.4.) Tabel 5. Konstanta Antoine Etilen () Etana () Propana (3) n-butana (4) A 3, ,9364 3,977 3,8443 B 584,46 659,739 89,96 909,65 C -8,307-6,79-4,47-36,46 z 0,0 0,30 0,40 0,0 dimana: Pi* T Ai, Bi, Ci = tekanan uap komponen i (atm) = temperatur (K) = konstanta Antoine 76 PERSAMAAN NON-LINIER TUNGGAL

87 F adalah laju umpan molar, dan z adalah mol fraksi masingmasing komponen dalam umpan, V adalah laju alir molar uap, dan y adalah mol fraksi setiap komponen dalam uap, L adalah laju alir molar cairan dan x adalah fraksi mol setiap komponen dalam cairan. Ingin dicari fraksi campuran dalam fasa uap ketika campuran umpan di-flash pada suhu 60 o C dan tekanan 40 atm. V, y i Flash drum F, z i valve L, x i Gambar 5.. Diagram skematik flash drum Penyelesaian : Asumsi campuran ideal (dimana berlaku hukum Raoult), berlaku persamaan kesetimbangan berikut: * yi Pi K i ; i,,, n (5.4.) c xi P Dimana ki adalah konstanta kesetimbangan untuk komponen i, P adalah tekanan total dan nc jumlah komponen. Persamaan neraca massa untuk flash drum selanjutya dapat dituliskan berikut: PERSAMAAN NON-LINIER TUNGGAL 77

88 i i F L V z F x L y V ; i,,, n (5.4.3) i n c x i i n c = y i Misalkan α = V/F, adalah fraksi umpan yang diflash ke fasa uap. Persamaan ini dapat dimodifikasi ke dalam persamaan non linier tunggal dalam fungsi α. nc n c zi Ki f yi xi (5.4.4) K i i i Setelah α diperoleh, fraksi mol cairan dan uap dapat diperoleh dari persamaan : y K x i i i i i c zi xi K (5.4.5) Berikut program MATLAB file flash_calculation.m untuk kasus di atas. function flash_calculation clear, clc, format short g, format compact global z z z3 z4 aguess = 0.5 ; z=0.;z=0.3;z3=0.4;z4=0.; disp('nilai variabel pada tebakan awal'); disp(['nilai alpha tebakan: ' numstr(aguess) ', Fungsi nilai : ' numstr(flash(aguess))]); asolv=fzero(@flash,aguess); %fungsi untuk mencari nilai alpha Pt =40;% dalam satuan atm T = 60+73;% dalam satuan K P = 0^( (584.46/( T))); P = 0^( ( /(-6.79+T))); P3 = 0^(3.977-(89.96/(-4.47+T))); P4 = 0^( (909.65/( T))); K = P/Pt; K=P/Pt; K3=P3/Pt; K4=P4/Pt; x = (z/(+asolv*(k-))); x = (z/(+asolv*(k-))); x3 = (z3/(+asolv*(k3-))); x4 = (z4/(+asolv*(k4-))); y = K*x; y = K*x; y3 = K3*x3; y4 = K4*x4; %Menampilkan hasil akhir alpha disp('nilai variabel pada penyelesaian'); disp(['nilai alpha: ' numstr(asolv) ', Fungsi nilai alpha: ' numstr(flash(asolv))]); %menampilkan hasil perhitungan komposisi setiap komponen disp(' ') disp(' Component Ethylene Ethane Propane n-butane '); disp(' ') disp([' Feed ' numstr(z) ' ' numstr(z) ' 78 PERSAMAAN NON-LINIER TUNGGAL

89 ' numstr(z3) ' ' numstr(z4)]); disp([' Vapor ' numstr(y) ' ' numstr(y) ' ' numstr(y3) ' ' numstr(y4)]); disp([' Liquid ' numstr(x) ' ' numstr(x) ' ' numstr(x3) ' ' numstr(x4)]); disp(' ') % function falpha = flash(alpha) global z z z3 z4 Pt=40;% dalam satuan atm T=60+73;% dalam satuan K P = 0^( (584.46/( T))); P = 0^( ( /(-6.79+T))); P3 = 0^(3.977-(89.96/(-4.47+T))); P4 = 0^( (909.65/( T))); K = P/Pt; K=P/Pt; K3=P3/Pt; K4=P4/Pt; x = (z/(+alpha*(k-))); x = (z/(+alpha*(k-))); x3 = (z3/(+alpha*(k3-))); x4 = (z4/(+alpha*(k4-))); y = K*x; y = K*x; y3 = K3*x3; y4 = K4*x4; falpha = x*(-k)+x*(-k)+x3*(-k3)+x4*(-k4); Hasil Running: Nilai variabel pada tebakan awal Nilai alpha tebakan: 0.5, Fungsi nilai : 0.9 Nilai variabel pada penyelesaian Nilai alpha: , Fungsi nilai alpha: e Component Ethylene Ethane Propane n-butane Feed Vapor Liquid Contoh 5.5. Mencari volume spesifik gas dengan persamaanvan der Wall Diketahui persamaan Van Der Waals sebagai berikut: a P v b RT v (5.5.) 7 R T c a 64 Pc (5.5.) RTc b 8P (5.5.3) c PERSAMAAN NON-LINIER TUNGGAL 79

90 Dimana : v = volum molar, L/mol T = suhu, K R = konstanta gas universal = 0,0806 atm.l/mol.k T c = suhu kritis, K (405,5 K untuk Amonia) P c = tekanan kritis, atm (,3 atm untuk Amonia) Diketahui : Tekanan reduksi P Pr Pc (5.5.4) Faktor kompresibilitas Pv Z (5.5.5) RT (a) Hitung volum molar dan faktor kompresibilitas untuk gas amonia pada P = 56 atm dan suhu = 450 K dengan menggunakan persamaan keadaan Van Der Waals? (b) Ulangi perhitungan untuk tekanan reduksi berikut : Pr =,, 4, 0, dan 0! (c) Bagaimana hubungan antara faktor kompresibilitas dan tekanan reduksi (gambarkan dalam sebuah grafik)? Penyelesaian : Persamaan (5.4.) perlu disusun kembali sehingga menjadi bentuk : Untuk mendapatkan nilai v maka: F(v) = 0 (5.5.6) Berikut penulisan program untuk penyelesaian soal di atas. % Program Utama : Contoh_55.m clear all % Membersihkan memory global P a b R T % Mendefinisikan variabel ini sebagai % variabel global sehingga dapat terbaca oleh 80 PERSAMAAN NON-LINIER TUNGGAL

91 % Sub_ProgramVol_Mol.m % Memasukkan konstanta & parameter keadaan Pc =.3; % Tekanan kritis dlm atm Tc = 405.5; % Suhu kritis dlm K R = ; % Konstanta gas dlm atm.l/mol.k T = 450; % dlm K P = 56; % dlm atm % Konstanta Van Der Waals a = 7/64*R^*Tc^/Pc; b = R*Tc/(8*Pc); volguess = R*T/P; % Memperkirakan nilai volum molar dengan % persamaan gas ideal vol = fzero ('Vol_Mol', volguess); Z = P*vol/(R*T); % Menghitung volum molar % Menghitung faktor % kompresibilitas disp('pada suhu (K) = ');T disp('dan tekanan (atm) = ');P disp('diperoleh volum molar (L) = ');vol disp('dan faktor kompresibilitas = ');Z % Nilai dari berbagai tekanan reduksi disimpan dalam bentuk vektor Pred = [ 4 0 0]; % Perulangan perhitungan dengan mem-variasi tekanan for k = : 5 P = Pc*Pred(k); volguess = R*T/P; vol = fzero ('Vol_Mol',volguess); Z = P*vol/(R*T); result(k,) = Pred(k); result(k,) = vol; result(k,3) = P*vol/(R*T); end disp('diperoleh vol molar dan faktor Z utk berbagai Pred sbb :') disp(' ') disp('===================================') disp(' Pred Molar Vol faktor Z ') disp('===================================') disp(result) disp('===================================') plot(result(:,),result(:,3),'or-') title('grafik Hubungan Faktor Kompresibilitas Terhadap Tekanan PERSAMAAN NON-LINIER TUNGGAL 8

92 Reduksi') xlabel('tekanan Reduksi, Pr') ylabel('faktor Kompresibilitas, Z') % Sub-Program : Vol_Mol.m function y = Vol_Mol(vol) global P a b R T y = P*vol^3-(P*b+R*T)*vol^+a*vol-a*b; Hasil Program >> Contoh_55 Pada suhu (K) = T = 450 dan tekanan (atm) = P = 56 Diperoleh volum molar (L) = vol = Dan faktor kompresibilitas = Z = Diperoleh vol molar dan faktor Z utk berbagai Pred sbb : =================================== Pred Molar Vol faktor Z =================================== =================================== 8 PERSAMAAN NON-LINIER TUNGGAL

93 3 Grafik Hubungan Faktor Kompresibilitas Terhadap Tekanan Reduksi.5 Faktor Kompresibilitas, Z Tekanan Reduksi, Pr Gambar 5.. Grafik kompresibilitas dan tekanan reduksi Contoh 5.6. Perhitungan laju Alir (Flow Rate) dalam suatu Pipa Gambar di bawah menunjukkan suatu pipa yang megiriman air pada suhu konstan T = 60 o C dari titik dimana tekanan P =50 psig dan elevasi adalah z= 0 ft ke titik dimana tekanan adalah atmosferik dan elevasi z = 300 ft. P = P z = z P = P z =z Gambar 5.3. Grafik sistem perpipaan fluida PERSAMAAN NON-LINIER TUNGGAL 83

94 Hitung kecepatan aliran dan laju alir untuk pipa dengan panjang efektif L = 500, 000, 0000 ft dan dibuat diameter nominal 4,5,6 dan 8 in dengan schedule 40 pipa baja komersial. Buatkan grafik kecepatan aliran, v vs D dan L juga grafik laju alir, q vs D dan L. Penyelesaian : Persamaan neraca energi mekanis pada cairan incompresible (tak mampu mampat) yang dapat diterapkan untuk kasus ini adalah: v gcp f F Lv g z D 0 (5.6.) Dimana v adalah kecepatan aliran dalam ft/s, g adalah perccepatan gravitasi diberikan dengan g = 3,74 ft/s, z =z - z adalah perbedaan elevasi (ft), gc adalah faktor konversi (dalam satuan British g c = 3,74 ft.lbm/lbf.s ), P = P - P adalah perbedaan tekanan (lbm/ft ), ρ adalah densitas fluida (untuk air pada T = 60 o F, ρ = 6,3 lbm/ft 3 ), ff adalah faktor gesekan Fanning, L adalah panjang pipa (ft) dan D adalah diameter dalam pipa (ft). Untuk menggunakan metode Successive Subtitution persamaan di atas harus dituliskan kembali: v g cp g z (5.6.) f F L 0,5 D Persamaan yang digunakan untuk menghitung faktor gesekan Fanning tergantung pada regim aliran. Regim aliran ditentukan oleh bilangan Reynold, Re. Bilangan Reynold adalah bilangan tak berdimensi Re = vρd/µ dimana µ adalah viskotitas (untuk air pada T = 60 o F, µ = 0.76 x 0-3 lbm/ft.s). Untuk aliran laminar (Re < 00) faktor gesekan Fanning dapat dihitung dari persamaan : 6 f F (5.6.3) Re 84 PERSAMAAN NON-LINIER TUNGGAL

95 Untuk liran turbulen (Re > 00) dapan digunakan persamaan : f F (5.6.4) / D 5,0 / D 5,0 6log log 3,7 Re 3,7 Re Berikut program MATLAB untuk kasus di atas. File flowvelocity.m untuk mengeksekusi persamaan utama. function flowvelocity clear, clc, format short g, format compact D_list=[4.06/ 5.047/ 6.065/ 7.98/];% Inside diameter of pipe (ft) T = 60; %Temperature (deg. F) for i = :4 D = D_list(i); j=0; for L=500:500:0000 j = j+; L_list(j)=L; % Effective length of pipe (ft) [v(j,i),fval]=fzero(@nlefun,[ 0],[],D,L,T); if abs(fval)>e-0 disp([' No Convergence for L = ' numstr(l) ' and D = ' numstr(d)]); end q(j,i) = v(j,i) * pi * D ^ / 4* 7.48 * 60; %Flow rate (gpm) end end disp(' Flow Velocity (ft/s) versus Pipe Length and Diameter'); disp(' Tabular Results'); disp(''); disp(' L\D D=4" D=5" D=6" D=8"'); Res=[L_list' v]; disp(res); plot(l_list,v(:,),'',l_list,v(:,),'+',l_list,v(:,3),'*',l_list,v(:,4),'x'); legend(' D=4"',' D=5"',' D=6"',' D=8"'); title(' Flow Velocity') xlabel('pipe Length (ft)'); ylabel('velocity (ft/s)'); pause disp(' Flow Rate (gpm) versus Pipe Length and Diameter'); disp(' Tabular Results'); disp(''); disp(' L\D D=4" D=5" D=6" D=8"'); Res=[L_list' q(:,) q(:,) q(:,3) q(:,4)]; disp(res); plot(l_list,q(:,),'- ',L_list,q(:,),'+',L_list,q(:,3),'*',L_list,q(:,4),'x'); legend(' D=4"',' D=5"',' D=6"',' D=8"'); title(' Flow rate') xlabel('pipe Length (ft)'); ylabel('flow rate (gpm)'); PERSAMAAN NON-LINIER TUNGGAL 85

96 File NLEfun sebagai persamaan utama. function fv = NLEfun(v,D,L,T) epsilon = ;%Surface rougness of the pipe (ft) rho = 6. + T * (0.0 + T * ( T * ( (T * )))); %Fluid density (lb/cu. ft.) deltaz = 300; %Elevation difference (ft) deltap = -50; %Pressure difference (psi) vis = exp( / (T )); %Fluid viscosity (lbm/ft-s) pi = 3.46; %The constant pi eod = epsilon / D; %Pipe roughness to diameter ratio (dimensionless) Re = D * v * rho / vis; %Reynolds number (dimesionless) if (Re < 00) %Fanning friction factor (dimensionless) ff = 6 / Re; else ff = / (6 * log0(eod / (5.0 * log0(eod / / Re) / Re)) ^ ); end fv = v - sqrt((3.74 * deltaz + deltap * 44 * 3.74 / rho) / (0.5 - ( * ff * L / D))); %Flow velocity (ft/s) Hasil perhitungan pada command window: Flow Velocity (ft/s) versus Pipe Length and Diameter Tabular Results L\D D=4" D=5" D=6" D=8" PERSAMAAN NON-LINIER TUNGGAL

97 Grafik yang dihasilkan: Flow Velocity D=4" D=5" D=6" D=8" Velocity (ft/s) Pipe Length (ft) Gambar 5.5 Grafik hasil perhitungan 5.3 RANGKUMAN Banyak peristiwa fisis dan kimia yang memiliki model persamaan berupa persamaan nonlinier Persamaan nonlinear polynomial akan memiliki akar persamaan untuk memenuhi penyelesaian persaman yang sesuai PERSAMAAN NON-LINIER TUNGGAL 87

98 Penyelesaian persamaan non linier tunggal dengan MATLAB menggunakan fungsi fzero akan diperoleh satu nilai yang memberikan penyelesaian yang tepat. Penyelesaian persamaan non linier tunggal dengan MATLAB menggunakan fungsi roots akan diperoleh akar-akar yang memberikan penyelesaian yang tepat. 5.4 RUJUKAN ) Constantinidis and Mustoufi,999, Numerical Methodes for Chemical Engineers with MATLAB Application, hal - 4. Prentice-Hall: Englewood Cfiffs, NJ. ) Finlayson, B.A., 006, Introduction to Chemical Engineering Computing, hal 5-5. John Wiley & Sons Inc., New Jersey 3) Ramirez, W.F Computational Methods in Process Simulation. Hal: Elsevier Science & Technology Books. 4) Sandler, S. I., 006.Chemical, Biochemical, and Engineering Thermodynamics,4 th.ed. John Wiley. NewYork. 88 PERSAMAAN NON-LINIER TUNGGAL

99 PERSAMAAN NON-LINIER SIMULTAN BAB 6 6. PENDAHULUAN Materi ini membahas tentang persamaan non-linier multivariabel. Setelah menyelesaikan bab ini diharapkan mahasiswa akan mampu menyelesaikan persoalan dalam teknik kimia yang dapat dinyatakan dengan persamaaan non-linier multivariabel. Secara khusus mahasiswa diharapkan mampu menyusun peristiwa fisis dan kimia dalam teknik kimia ke dalam persamaan matematis yang berbentuk nonlinier dan mampu menyelesaikannya dengan fungsi MATLAB yaitu fsolve, Materi ini sangat penting, mengingat banyak peristiwa dalam bidang teknik kimia yang berkaitan dengan termodinamika dan bidang lainnya memiliki bentuk persamaan non-linier yang harus dipecahkan untuk keperluan proses evaluasi, optimasi dan perancangan. Oleh karena itu, memahami dan menguasai materi dari bab ini akan membantu mahasiswa dalam memecahkan persoalan perhitungan tentang termodinamika (bubble point, dew point dan perhitungan isothermal flash untuk campuran multikomponen non-ideal, perhitungan adiabatic flash untuk campuran multikomponen), 89

100 distribusi aliran dalam jaringan pipa, perhitungan kesetimbangan kimia kompleks dan kasus lainnya yang berkaitan dengan persamaan non linier. Pendalaman materi tentang topik yang dibahas pada bab ini dapat dibaca buku yang menjadi rujukan sebagaimana dituliskan halamannya. 6. PERSAMAAN NON LINIER MULTIVARIABEL Pada bab 5 telah dibahas tentang penyelesaian persamaan non-linier variabel tunggal. Selanjutnya pada bab ini akan dibahas persamaan nonlier multivariabel atau simultan. Banyak persoalan dalam bidang teknik kimia memerlukan penyelesaian persamaan non-linier. Sebagai contoh, misalkan suatu reaktor continuous stirred-tank reactor (CSTR), dioperasikan secara isotermal dimana perubahan volum akibat reaksi diabaikan, dalam mode overflow dengan volume fluida konstan, dan dengan dua reaksi kimia (diasumsikan elementer) seperti gambar 6. di bawah. masuk C j, in keluar C j Gambar 6.. CSTR dengan dua reaksi kimia A + B C rr kc ACB C + B D rr kcccb (6.) Dalam CSTR, kita berasumsi bahwa reaktor bercampur secara sempurna sehingga konsentrasi komponen setiap bagian dalam reaktor dianggap seragam. Artinya, setiap titik dalam reaktor memiliki konsentrasi yang sama untuk setiap komponen, maka disusun seperangkat persamaan neraca massa: 90 PERSAMAAN NON-LINIER SIMULTAN

101 d dt d dt d dt d V C C C V k C C A A, in A V C C C V k C C k C C B B, in B A B (6.) V C C C V k C C k C C C C, in C A B V C C C V k C C D D, in D dt υ adalah laju alir volumetrik aliran umpan dan keluaran, V adalah volume tetap reaktor, Cj adalah konsentrasi spesies j dalam reaktor (dan pada aliran keluaran), Cj,in adalah konsentrasi spesies j di aliran masuk dan k, k adalah konstanta laju reaksi kimia dari masing-masing reaksi. Pada keadaan steady state, derivatif waktu di sebelah kiri pada persamaan (6.) adalah nol, dan konsentrasi setiap spesies dalam reaktor memenuhi seperangkat dari empat persamaan aljabar nonlinier. Untuk mendapatkan persamaan ini dalam bentuk standar, kita definisikan variabel yang tidak diketahui sebagai: x = CA x =CB x3 = CC x4 = CD (6.3) untuk memperoleh sistem persamaan aljabar. C A, in x V kx x C B, in x V kxx kx3x CC, in xc V kx x kx3x4 x Vk x = 0 C A = 0 (6.4) = 0 = 0 C D, in 4 3x Bentuk umum persamaan non-linier simultan adalah: f () = f (x, x, x 3,..., x n) = 0 f () = f (x, x, x 3,..., x n) = 0 f (3) = f 3 (x,x, x 3,..., x n) = 0... f (n) = f (x,x, x 3,..., x n) = 0 Dalam hal ini akan dicari harga x, x,, x n. B B C C B B PERSAMAAN NON-LINIER SIMULTAN 9

102 Fungsi fsolve pada MATLAB Optimization Toolbox digunakan untuk menyelesaikan sistem persamaan non-linier simultan. fsolve digunakan untuk meyelesaikan problem tertentu dengan bentuk persamaan F(x) = 0 Untuk x, dimana x adalah suatu vektor dan F(x) adalah fungsi yang mengembalikan nilai suatu vektor. Fungsi ini dapat dijalankan dengan beberapa pengaturan parameter input dan output yang berbeda. Syntax untuk fsolve adalah (bisa digunakan salah satunya): x = fsolve(fun,x0) x = fsolve(fun,x0,options) x = fsolve(problem) Penjelasan: fsolve menemukan akar suatu sistem persamaan nonlinier simultan. x = fsolve(fun,x0), mulai pada x0 dan mencoba untuk menyelesaikan persamaan yang dideskripsikan dalam fun x = fsolve(fun,x0,options), menyelesaikan persamaan dengan pilihan optimasi tertentu dalam struktur options. Menggunakan optimset untuk mengatur pilihan ini. x = fsolve(problem, menyelesaikan problem, dimana problem adalah sturktur yang dinyatakan dalam Input Arguments. Input Arguments Fun Sistem persamaan non linier untuk menyelesaikan fun adalah fungsi yang menerima suatu vektor x dan mengembalikan suatu vektor F, persamaan nonlinier dievaluasi pada x. Fungsi fun dapat dispesifikan sebagai fungsi yang menangani file x = fsolve(@myfun,x0) dimana myfun suatu fungsi MATLAB seperti fungsi 9 PERSAMAAN NON-LINIER SIMULTAN

103 F = myfun(x) F =... %menghitung nilai fungsi pada x fun dapat juga sebagai fungsi yang menangani suatu anonymous function. x = fsolve(@(x)sin(x.*x),x0); Jika pengguna mendefinisikan nilai untuk x dan F adalah matriks, mereka dikonversi ke suatu vektor menggunakan linear indexing. Contoh 6. Persamaan Non-Linier Dua Variabel Contoh berikut menyelesaikan sistem dua persamaan dengan dua variabel yang tidak diketahui: x x x e x x x e Mulai pencarian penyelesian pada xo =[-5-5] Penyelesaian: Persamaan di atas dituliskan kembali dalam bentuk F(x) = 0 : x x x e 0 x x x e 0 Pertama, tuliskan suatu file untuk menghitung F, nilai persamaan pada x. function F = myfun(x) F = [*x()-x()-exp(-x()); -x() + *x() - exp(-x())]; Simpan file fungsi ini sebagai myfun.m di lokasi path MATLAB. Selanjutnya, atur nilai awal dan options untuk memanggil fsolve x0 = [-5; -5];% tebakan awal untuk penyelesaian options=optimset('display','iter');%pilihan untuk enampilkan output dan iterasi [x,fval] = fsolve(@myfun,x0,options)% memanggil penyelesaian PERSAMAAN NON-LINIER SIMULTAN 93

104 Setelah beberapa iterasi, fsolve menemukan jawaban: Norm of First-order Trust-region Iteration Func-count f(x) step optimality radius e e e e e e Equation solved. fsolve completed because the vector of function values is near zeroas measured by the default value of the function tolerance, and the problem appears regular as measured by the gradient. x = fval =.0e-006 * Contoh 6. Menentukan nila x dan y dari persamaan x 3xy / 3 3 3x y y 3 / Langkah penyelesaian: Langkah : Buat terlebih dahulu fungsi sistem persamaan nonlinier dalam m-file. function f = sistem(x) f =[x()^3-3*x()*x()^-0.5 3*x()^*x()-x()^3-sqrt(3)/]; 94 PERSAMAAN NON-LINIER SIMULTAN

105 Langkah : Buat program pengeksekusi menggunakan fsolve pada m-file yang Langkah 3 : Jalankan program pengeksekusi. >>[x,fval] = fsolve('sistem',[ ]) Optimization terminated: first-order optimality is less than options.tolfun. x = fval =.0e-00 * Contoh 6.3 Stoikiometri Reaksi Kesetimbangan Reaksi reformasi steam (steam reforming) berlangsung menurut serangkaian reaksi kesetimbangan berikut: CH4(g) + HO(g) CO(g) + H (g) R- CO(g) + HO(g) CO(g) + H (g) R- Pada suhu 000 K harga konstanta kesetimbangan untuk masing-masing reaksi adalah,930 x 0-4 dan 5,58. Tentukan komposisi kesetimbangan komponen-komponen apabila Gas umpan berkomposisi 0% CH 4(g) dan 80% H O (g) berada pada kondisi suhu 000 K dan tekanan atm. Jawaban Misal ditetapkan basis perhitungan 0 mol gas umpan. = tingkat reaksi dari reaksi pertama = tingkat reaksi dari reaksi kedua PERSAMAAN NON-LINIER SIMULTAN 95

106 Fraksi mol kesetimbangan setiap komponen dapat dinyatakan sebagai berikut: y CO y H y 0 8 O 0 CO 0 y H y 3 0 CH 4 0 Persamaan konstanta kesetimbangan dinyatakan sebagai berikut: 3 yo y H P K y y CH4 H O yco y H K yco y H O Jika dinyatakan sebagin tingkat reaksi: 3 3 K K 8 Kedua persamaan di atas merupakan persamaan non-linier simultan. dan merupakan variable yang nilainya akan dicari. Berikut ini pemrograman MATLAB-nya. function y = equilibrium(e,k,k) %Sistem Pers.tak linier yang akan dinolkan y = [(e()-e())*(3*e()-e())^3 /((-e())*(8-e() - e())*(0+*e())^) - K e()*(3*e()+e()) / ((e()-e())*(8-e()-e())) - K]; clear,clc K = input( Masukan konstanta kst. reaksi = '); K = input( Masukan konstanta kst. reaksi = '); 96 PERSAMAAN NON-LINIER SIMULTAN

107 %Pencari nol fungsi KsT.m e = fsolve(@equilibrium (e,k,k),[ 0.5]) Eksekusi di MATLAB command window Masukan harga konstanta kst. reaksi =.93e-4 Masukan harga konstanta kst. reaksi = 5.58 Optimization terminated: first-order optimality is less than options.tolfun. e = Contoh 6.4 Reaksi Eksotermik Reversibel Suatu reaksi eksotermik dapat balik dengan dua reaktan dan dua produk dinyatakan dengan persamaan : A + B C + D Reaksi berlangsung dalam sebuah CSTR yang memiliki dua aliran umpan FA0 dan FB0 (m 3 /s), dengan komposisi CA0 dan CB0 (kmol/m 3 ) seperti Gambar 6.. F AO C AO F BO C BO Gambar 6.. CSTR dengan reaksi kimia reversible PERSAMAAN NON-LINIER SIMULTAN 97

108 Laju reaksi total adalah selisih laju reaksi forward dan reverse. Kita asumsikan order satu independen pada komposisi. r k F C A C B k R C C C D EF ER k0f exp C ACB k0r exp CCCD RT RT Ingin dicari komposisi keluaran reaktor pada suhu 300 sampai 400 K dengan incremental 0 K, jika diketahui parameterparameter sebagai berikut: Pada T = 333 K, nilai K eq = 0 k or = ((9, )/Keq) exp (39,4.0 6 /R/333) k F = 4, exp(-69,7.0 6 /RT ) m 3 s - kmol - k R = kor. exp (-39,4.0-6 /RT) m 3 s - kmol - Konstanta gas, R = 8.34 J/kmol. K Volume reaktor,vr = 00 m 3 Laju alir umpan, FAO = 0, m 3 /s Laju alir umpan, FBO = 0, m 3 /s Komposisi umpan, CAO = 8,0 kmol/m 3 Komposisi umpan, CBO = 8,0 kmol/m 3 Penyelesaian: Terdapat empat komponen dalam sistem ini, sehingga empat neraca komponen dapat dituliskan: Komponen A (kmol A/s): FA0C A0 FC A V FC V Komponen B (kmol B/s): F C FC V B0 A0 A B R R R r k k F F C C A A C C B B k k R R C C C C C C D D 98 PERSAMAAN NON-LINIER SIMULTAN

109 Komponen C (kmol C/s): 0 FC C V Komponen D (kmol D/s): 0 FC V D R R k k F F C C A A C C B B k k Asumsi bahwa kita mengetahui nilai kondisi umpan, volume reaktor, dan suhu reaksi (konstanta laju reaksi kf dan kr), sehingga ada lima variabel yang tidak diketahui dari empat persamaan di atas : F, CA, CB, CC dan CD. Karena itu diperlukan penambahan persamaan. Jika densitas semua komponen adalah sama, laju alir volumetrik keluaran akan sama terhadap laju alir volumetrik dua umpan. FA 0 FB 0 F Terdapat empat persamaan dan empat variabel yang tidak diketahui, sehingga persamaan di atas dapat diselesaikan. Namun penyelesaian persamaan aljabar non linier simultan ini sulit jika dilakukan dengan cara biasa, dan akan lebih sulit jika reaksi bukan order satu. Peyelesaian di atas mudah diselesaikan dengan fsolve function pada Matlab untuk menentukan empat variabel yang tidak diketahui. Berikut script program matlab file cstr_reversible.m untuk menyelesaikan soal di atas. Program utama: R R C C C C C C D D function cstrreverse clc, clear %function cstrreverse Keq=0; kor=((9.3e-6)/keq)*exp(39.4e6/834/333); %set VR dan TR vr=00; tre=[300:0:400]; n_tr=size(tre,); PERSAMAAN NON-LINIER SIMULTAN 99

110 for k=:n_tr tr=tre(k); kf=4.39e6*exp(-69.7e6/tr/834); kr=kor*exp(-39.4e6/834/tr); fa0= ;ca0=8.0;fb0= ;cb0=8.0; flow=fa0+fb0; parameters=[vr,kf,kr,fa0,ca0,fb0,cb0]; %tebakan awal untuk ca cb cc cd xo=[ ]; options=optimset('maxfunevals',000,'tolfun',e-8); %use fsolve to solve four nonlinier algebraic egquations [x,feval]=fsolve('reverse',xo,options,parameters); ca=x(); cb=x(); cc=x(3); cd=x(4); conversion=(fa0*ca0-flow*ca)/(fa0*ca0); result(k,)=tr; result(k,)=conversion; end disp(' Hasil perhitungan') disp(' ======================') disp(' Tr (K) konversi,x ') disp(' ') disp(result) disp(' ') plot(result(:,),result(:,),'-o') legend('vr=00'); title('konversi versus Tr ') xlabel('temperatur Reaksi, Tr (K)'); ylabel('fraksi konversi, x'); % function f=reverse(x,parameters) ca=x(); cb=x(); cc=x(3); cd=x(4); vr=parameters(); kf=parameters(); kr=parameters(3); fa0=parameters(4); 00 PERSAMAAN NON-LINIER SIMULTAN

111 ca0=parameters(5); fb0=parameters(6); cb0=parameters(7); flow=fa0+fb0; ratef=kf*ca*cb; rater=kr*cc*cd; %empat persamaan f(,)=fa0*ca0-flow*ca-vr*(ratef-rater); f(,)=fb0*cb0-flow*cb-vr*(ratef-rater); f(3,)=-flow*cc-vr*(-ratef+rater); f(4,)=-flow*cd-vr*(-ratef+rater); Hasil running di Command window: Hasil perhitungan ====================== Tr (K) konversi,x PERSAMAAN NON-LINIER SIMULTAN 0

112 Grafik yang dihasilkan: Konversi versus Tr Vr= Fraksi konversi, x Temperatur Reaksi, Tr (K) Gambar 6.3. Grafik hasil simulasi Contoh 6.5 Kesetimbangan Kimia Kompleks dengan Minimasi Energi Gibbs Gas etana bereaksi dengan uap air menghasilkan hidrogen dengan katalis perengkahan pada suhu T = 000 K dan tekanan P = atm. Umpan mengandung 4 mol HO per mol CH4. Balzisher et al. (97) menyatakan bahwa hanya komponen yang dicantumkan pada tabel 6. yang terdapat dalam kesetimbangan (asumsi bahwa tidak ada endapan carbon). Energi Gibbs pembentukan berbagai komponen pada suhu reaksi (000 K) diberikan pada tabel 6.. Ingin dicari komposisi kesetimbangan yang keluar dari reaktor berdasarkan data tersebut. 0 PERSAMAAN NON-LINIER SIMULTAN

113 Tabel 6-. Komponen yang Perengkahan ada pada keluaran Reaktor No Komponen Gibbs Energy (kcal/gmol) Umpan (gmol) Estimasi awal keluaran CH 4 4,6 0,00 C H 4 8,49 0,00 3 C H 40,604 0,00 4 CO -94,6 0,993 5 CO -47,94 6 O 0 0,00 7 H 0 5,99 8 H O -46, C H 6 6,3 0,00 Formulasikan kasus di atas sebagai masalah minimasi dengan konstrain. Nyatakan konstrain kedalam fungsi objective menggunakan Lagrange multiplier dan diferensiasikan fungsi tersebut untuk memperoleh sistem persamaan aljabar non liner simultan. Penyelesaian : Fungsi objective untuk meminimalkan energi Gibss diberikan dengan : c o G Gi ni min n i ln ni RT i RT ni Dimana ni adalah jumlah mol komponen i, c adalah jumlah komponen, R adalah konstanta gas, dan Gi adalah energi Gibbs komponen murni i pada suhu T. Minimisasi persaman di atas harus dilakukan dengan konstrain neraca atom: Neraca atom oksigen g = n 4 + n 5 + n 6 + n 7 4 = 0 Neraca atom hidrogen g = 4n + 4n + n 3 + n 7 + n 8 + 6n 9 4 = 0 Neraca atom karbon g 3 = n + n + n 3 + n 4 + n 5 + n 9 - =0 PERSAMAAN NON-LINIER SIMULTAN 03

114 Ketiga konstrain di atas dapat dikealkan kedalam fungsi objective menggunakan Langrange Multiplier : λ, λ, λ3. Fungsi objective yang diperluas adalah: min F n i, i c i o Gi ni ln RT n i n i 3 ji g Kondisi minimum untuk fungsi di atas pada titik tertentu adalah bahwa semua turunan parsial F terhadap ni dan λ sesuai pada titik tersebut. Turunan parsial F terhadap ni adalah : F n o G RT ni ln n Turunan parsial yang lainya terhadap ni dapat diperoleh dengan cara yang sama. Diharapkan bahwa jumlah komponen utama pada kesetimbangan mendekati nol, lebih dipilih untuk menuliskan persamaan dalam bentuk yang tidak memerlukan perhitungan logaritma angka yang sangat kecil. Penyusunan kembali persamaan di atas diperoleh : o G n ni exp RT Turunan parsial F terhadap λ, λ, dan λ3 masing-masing adalah g, g dan g3. Fungsi fsolve pada MATLAB Optimization Toolbox digunakan untuk menyelesaikan sistem persamaan nonlinier simultan. i j i 04 PERSAMAAN NON-LINIER SIMULTAN

115 Berikut program MATLAb untuk contoh 6.5 di atas. Main Program : function Gibbs_minimation clear, clc, format short g, format compact xguess = [ ]; % initial guess vector disp('variable values at the initial estimate'); fguess=mnlefun(xguess); disp(' Variable Value Function Value') for i=:size(xguess,); disp([' x' intstr(i) ' ' numstr(xguess(i)) ' ' numstr(fguess(i))]); end options = optimset('diagnostics','off','tolfun',e- 9,'TolX',e-6,'NonlEqnAlgorithm','gn'); xsolv=fsolve(@mnlefun,xguess,options); disp('variable values at the solution'); fsolv=mnlefun(real(xsolv)); disp(' Variable Value Function Value') for i=:size(xguess,); disp([' x' intstr(i) ' ' numstr(real(xsolv(i))) ' ' numstr(fsolv(i))]) end Sub Program : function fx = MNLEfun(x) lamda = x(); lamda = x(); lamda3 = x(3); H = x(4); HO = x(5); CO = x(6); CO = x(7); CH4 = x(8); CH6 = x(9); CH4 = x(0); PERSAMAAN NON-LINIER SIMULTAN 05

116 CH = x(); O = x(); R =.987; sum = H + O + HO + CO + CO + CH4 + CH6 + CH4 + CH; fx(,) = * CO + CO + * O + HO - 4; %Oxygen balance fx(,) = 4 * CH4 + 4 * CH4 + * CH + * H + * HO + 6 * CH6-4; %Hydrogen balance fx(3,) = CH4 + * CH4 + * CH + CO + CO + * CH6 - ; %Carbon balance fx(4,) = log(h / sum) + * lamda; fx(5,) = / R + log(ho / sum) + lamda + * lamda; fx(6,) = / R + log(co / sum) + lamda + lamda3; fx(7,) = / R + log(co / sum) + * lamda + lamda3; fx(8,) = 4.6 / R + log(ch4 / sum) + 4 * lamda + lamda3; fx(9,) = 6.3 / R + log(ch6 / sum) + 6 * lamda + * lamda3; fx(0,) = 8.49 / R + log(ch4 / sum) + 4 * lamda + * lamda3; fx(,) = CH - exp(-( / R + * lamda + * lamda3)) * sum; fx(,) = O - exp(- * lamda) * sum; Hasil running di command window: Variable values at the initial estimate Variable Value Function Value x x 0 0 x3 0 0 x x x x x x x x x e PERSAMAAN NON-LINIER SIMULTAN

117 Warning: The Gauss-Newton algorithm may be removed in a future release. Additionally, theoption NonlEqnAlgorithm will be ignored in a future release. Running the Gauss-Newton algorithm. Set option Algorithm to either 'trust-region-dogleg', 'trust-regionreflective',or 'levenberg-marquardt' instead. Maximum number of function evaluations exceeded. Increase OPTIONS.MaxFunEvals. Variable values at the solution Variable Value Function Value x x x x e-06 x e-05 x e-05 x e-05 x x9.6707e e-05 x0 9.54e e-05 x 3.57e e-05 x 5.459e e RANGKUMAN ) Banyak peristiwa fisis dan kimia yang memiliki model persamaan berupa persamaan nonlinier tunggal maupun simultan ) Persamaan nonlinear simultan akan memiliki akar-akar persamaan untuk memenuhi penyelesaian persaman yang sesuai. 3) Penyelesaian persamaan nonlinier simultan dengan MATLAB menggunakan fungsi fsolve akan diperoleh suatu nilai yang memberikan penyelesaian yang tepat. PERSAMAAN NON-LINIER SIMULTAN 07

118 6.4 LATIHAN Latihan 6. Selesaikan persamaan berikut: x x x 3 x 0 Latihan 6.. Beberapa reaksi setimbang berlangsung dalam reaktor batch (volume konstan) dengan persamaan reaksi sebagai berikut : A B C D B C X Y A X Z Tentukan konsentrasi masing-masing komponen pada saat setimbang jika diketahui CA0 = CB0 =.5, KC =.06, KC =.63 dan KC3 = 5. Lakukan perhitungan dengan estimasi nilai awal sebagai berikut : (a) C D = C X = C Z = 0 (b) C D = C X = C Z = (c) C D = C X = C Z = 0 Petunjuk Penyelesaian : Sistem persamaan aljabar menggambarkan kesetimbangan rekasi di atas. Hubungan kesetimbangan non-linier menggunakan kesetimbangan termodinamika dan hubungan linier diperoleh dari stoikiometri reaksi. K C CCC C C A D B K C C XC C C B Y C K C 3 C Z C C A X CA = CAO CD - CZ, CB = CBO CD CY CC = CD CY, CY = CX + CZ 08 PERSAMAAN NON-LINIER SIMULTAN

119 Pada sperangkat persamaan ini, CA, CB, CC, CD, CX, CY dan CZ adalah konsentrasi berbagai komponen pada kesetimbangan yang dihasilkan dari konsentrasi awal hanya CAO dan CBO. Konstanta kesetimbangan KC, KC dan KC3 telah diketahui nilainya. Latihan 6.3 Perhatikan reaktor CSTR pada gambar 6.3 di bawah. Q adalah laju alir volumetrik (L/s), V adalah volume rekator (L), dan Ci adalah konsentrasi masing-masing empat komponen (gmol/l). Misalkan reaksi hipotetik berikut berlangsung dalam CSTR : r A B A r r 3 C r 4 B D + C Gambar 6.3. Continuous Stirred Tank Reactor PERSAMAAN NON-LINIER SIMULTAN 09

120 0 PERSAMAAN NON-LINIER SIMULTAN Dimana : B C / A A C k r C k r C k r C k r k, k, k 3 dan k 4 adalah konstanta laju reaksi dengan satuan yang sesuai. Nilai untuk konstanta tersebut adalah berikut: s gmol L /, k s gmol L /, k s gmol / L, k s, k / / ri memiliki satuan gmol/l/s. Ingin dicari konsentrasi masingmasing komponen keluaran reaktor dengan tebakan awal konsentrasi keluaran masing-masing kompoeen adalah 0,5 gmol/l. Petunjuk Penyelesaian: Neraca massa untuk masing-masing empat komponen membentuk seperangkat persamaan nonlinier berikut: Q / C k C k C k V C C C / A A A A Q / C k C k V C C B A B B 4 0 Q / C k C k C k V C C B C / A C C Q / C k V C C B D D RUJUKAN ) Balzisher, R. E., Samuels, M. R., and Eliassen, J. D., 97. Chemical Engineering Thermodynamics, Englewood Cliffs, N.J.: Prentice Hall.

121 ) Fogler, H. S Elements of Chemical Reaction Engineering, 3rd ed., Englewood Cliffs, NJ: Prentice- Hall 3) Michael B. Cutlip and Moderchai Sacham Recent Advances in Chemical Engineering Problem Solving. ASEE Mathematical Software. PERSAMAAN NON-LINIER SIMULTAN

122 BAB 7 PERSAMAAN DIFERENSIAL BIASA 7. PENDAHULUAN Bab ini membahas tentang persamaan diferensial biasa. Setelah menyelesaikan pokok bahasan ini mahasiswa diharapkan akan mampu menyelesaikan persamaan diferensial biasa dengan MATLAB. Secara khusus mahasiswa diharapkan akan mampu menyusun permasalahan fisis dan kimia dalam Teknik Kimia dalam bentuk persamaan diferensial biasa, menyelesaiakan persamaan diferensial biasa dengan fungsi ode45 dalam MATLAB. Persamaan diferensial biasa banyak ditemukan pada pemodelan-pemodelan teknik reaktor, kinetika reaksi kimia, peristiwa-peristiwa perpindahan dan lain-lain. 7. MODEL PERSAMAAN DIFERENSIAL BIASA Persamaan diferensial muncul dari kajian dinamis proses fisis dan kimia yang memiliki satu variabel bebas. Variabel tersebut dapat berupa variabel jarak, x atau variabel waktu, t yang bergantung pada geometri sistem dan kondisi batasnya.

123 Sebagai contoh suatu reaksi kimia dengan bentuk: k A + B C + D E (7.) k Berlangsung dalam suatu reaktor, neraca massa dapat diterapkan : Rate of input Rate of output Rate of Re action (7.) Rate of Accumulation k 3 Untuk reaktor batch, aliran masuk dan keluar adalah nol, sehingga neraca massa disederhanakan menjadi: Rate of Re action Rate of Accumulation (7.3) Asumsi bahwa reaksi (7.) berlangsung dalam fasa cair dengan perubahan volum diabaikan. Jika persamaan (7.3) ditulis untuk setiap komponen yang bereaksi maka akan memiliki bentuk : dc A kc ACB kcccd dt dcb kc ACB kcccd dt dcc m n kc ACB kcccd k3cc CD (7.4) dt dcd m n kc ACB kcccd k3cc CD dt dce m n k3cc CD dt dimana C A, C B, C C, C D, and C E, menyatakan konsentrasi lima komponen pada reaksi kimia. Reaksi ini merupakan satu set persamaan diferensial non-linier order satu simultan, yang menggambarkan prilaku dinamis reaksi kimia. Dengan metode yang disusun pada bab ini, persamaan ini dengan satu set kondisi awal, dapat diintegrasikan untuk memperoleh profil waktu semua konsentrasi. PERSAMAAN DIFERENSIAL BIASA 3

124 Kasus lain, pada pertumbuhan mikroorgnisme, misalnya dalam fermentor kontinyu dengan tipe yang ditunjukkan Gambar 7. di bawah: F in X in S in V X S F out X out S out Gambar 7. Fermentor kontinyu Volume cairan dalam fermentor adalah V, laju alir nutrien ke dalam fermentor adalah F in, dan laju air produk keluar fermentor adalah F out. Neraca massa sel X adalah: Rate of input Rate of output Rate of Pr oduction Rate of Accumulation dvx Fin X in Fout X out rxv (7.5) dt Neraca massa untuk subtrat S diberikan dengan persamaan: d VS Fin Sin FoutS out rsv dt (7.6) Neraca volume total adalah: dv Fin Fout dt (7.7) Jika kita buat asumsi bahwa fermentor tercampur sempurna, yaitu konsentrasi di setiap titik dalam fermentor sama, maka : 4 PERSAMAAN DIFERENSIAL BIASA

125 X S in in F S Dan persamaan disederhanakan menjadi : out out (7.8) d VX Fin X in Fout X rxv dt dvs Fin Sin FoutS rxv (7.9) dt dv F in F out dt Asumsi berikutnya dibuat bahwa laju alir masuk dan keluar fermentor adalah sama, dan laju pembentukan sel dan penggunaan subtrat diberikan oleh : r x SX K S max (7.0) SX r S max (7.) Y K S Persamaan (7.9) disederhanakan menjadi: dx Fout SX X i X max (7.) n dt V K S ds Fout SX S i S max (7.3) n dt V Y K S Persamaan (7.) dan (7.3) adalah seperangkat persamaan diferensial biasa simultan, yang menggambarkan dinamik fermentasi kultur kontinyu. Berdasarkan ordenya persamaan diferensial biasa terdiri atas tiga jenis (paling umum ditemukan dalam permasalahan teknik kimia). PERSAMAAN DIFERENSIAL BIASA 5

126 Orde : Orde : dy y kx (7.4) dx d y dy y kx dx dx Orde 3 : 3 d y d y dy a b 3 dx dx dx kx (7.5) (7.6) Salah satu kegunaan MATLAB dalam teknik adalah aplikasinya untuk menyelesaikan secara numeris persamaan diferensial biasa. MATLAB memiliki penyelesaian ode yang berbeda-beda yang memungkinkan ode menyelesaikan secara akurat dan efisien tergantung pada tingkat kesulitan (stiffness) ode. Stiffness adalah perubahan relatif pada penyelesaian suatu persamaan diferensial. Terdapat beberapa cara berbeda untuk menyusun dan mengeksekusi penyelesaian ode, namun untuk kali ini suatu sistem yang menggunkanan m-files untuk setiap penyelesaian ode akan diberikan. Dua m-files utama yang diperlukan adalah file eksekusi (run) dan file fungsi. Untuk penyelesaian suatu ode dalam MATLAB, semua ode harus didefinisikan dalam suatu fungsi m-file. Ketika memasukkan ke dalam file fungsi, persamaan diferensial harus memiliki order satu berbentuk dy/dx = f(y,x). File fungsi harus berisi: ) Definisi fungsi seperti function dmdt = nama_file(t,m), dimana t adalah variable bebas dan m adalah variable tak bebas order satu. ) Jika variabel global digunakan, perintah global harus disisipkan setelah definisi fungsi 3) Persamaan diferensial harus dalam bentuk deskripsi di atas, misal: dmdt = f(m,t) Nama file, variable (m dan t), dan dmdt dapat berubah-ubah. 6 PERSAMAAN DIFERENSIAL BIASA

127 Contoh 7. Aliran Fluida Pada Tangki Suatu fluida dengan densitas tetap mengalir ke dalam tangki besar yang kosong dan tak tentu pada 8 L/s. Sebuah kran dipasang untuk mengatur aliran keluar pada laju tetap 4 L/s. Turunkan dan selesaikan persamaan diferensial yang menggambarkan proses ini sampai interval 50 detik. 8 L/s Gambar 7. Aliran fluida pada tangki Penyelesaian : Neraca massa: Laju Akumulasi = input Output d V 8 4 (7..) dt Karena densitas konstan, sehingga: dv (7..) dt dalam liter per detik. Kondisi awal pada waktu t = 0, volume dalam tangki = 0. Berikut penyelesaan persamaan di atas dengan program MATLAB: File fluida untuk fungsi utama: function dvdt = fluida(t,v) dvdt=4; 4 L/s File runfluida digunakan untuk mengeksekusi penyelesaian. List penulisan program adalah PERSAMAAN DIFERENSIAL BIASA 7

128 function runfluida to=0; tf=50; tspan=[to tf]; %interval integrasi v0=0 %kondisi awal [t,v]=ode45('fluida',tspan,v0) plot(t,v(:,)) Xlabel('Time (s)') Ylabel ('vol in tank(l)') Title('fluida') Grafik yang dihasilkan seperti Gambar fluida vol in tank(l) Time (s) Gambar 7.3 Plot waktu terhadap volum Contoh 7. Simulasi Reaktor Batch Reaktor batch adalah reaktor yang digunakan secara sekali tempuh. Artinya umpan dimasukkan satu kali di awal reaksi dan produk dikeluarkan pada akhir reaksi. Selama reaksi tidak ada umpan yang masuk ataupun produk yang keluar. 8 PERSAMAAN DIFERENSIAL BIASA

129 Kecepatan proses biasanya diukur dari kecepatan pengurangan umpan : dc A ra (7..) dt Apabila kecepatan reaksi dapat didefinisikan sebagai : k C A ra (7..) K C A maka persamaan diferensial di atas menjadi : dc dt k C K C A A (7..3) Jika harga k = 0.0, K =.03 dan C A pada t = 0 (awal reaksi) adalah 0.5 mol/liter, maka konsentrasi A setiap waktu dapat ditentukan dengan menyelesaikan persamaan diferensial di atas. Catatan : persamaan tersebut tidak dapat diselesaikan secara analitik karena bersifat tak linier, sehingga harus diselesaikan secara numerik. File run_rbatch.m sebagai penyelesaian soal di atas. fungsi utama. function run_rbatch clc,clear tspan=[0::0] %interval waktu dari 0 sampai 0 dengan increment %eksekusi persamaan diferensial [t,ca]=ode45(@rbatch,tspan,0.5); [t Ca]% untuk menampilkan t dan Ca dlm baris yg sama % function dcdt=rbatch(t,ca) % menghitung fungsi ruas kanan dari pers.neraca massa reaktor batch dcdt=0.*ca/(.03+ca); dcdt=dcdt'; Hasil run: ans = A PERSAMAAN DIFERENSIAL BIASA 9

130 Pada hasil diatas, kolom pertama menunjukkan waktu dan kolom kedua menunjukkan konsentrasi. Apabila harga k bergantung pada temperatur menurut persamaan Arhenius berikut : RT 8 k 0 e (7..4) dan reaksi yang terjadi bersifat eksotermik (H = 43 kj/mol) dan dilaksanakan pada temperatur 500 K, maka persamaanpersamaan neraca massa dan energi sistem adalah sebagai berikut : dc dt A dt dt RT e K C 8 RT 0 e K C A C C A (7..5) A C H (7..6) P A Jika dan Cp dianggap sama dengan air (000 kg/m 3 dan 4.3 kj/kg), maka program untuk solusi kasus di atas ditunjukkan file run_rbatch.m. function run_rbatch clc,clear [t,y]=ode3(@rbatch_,[0 50],[ ]) plot(t,y(:,),'-+r') title('konsentrasi dalam reaktor') xlabel('waktu (min)') ylabel('ca (mol/l)') 0 PERSAMAAN DIFERENSIAL BIASA

131 pause plot(t,y(:,),'-ob') title('temperatur dalam reaktor') xlabel('waktu (min)') ylabel('t (K)') % function dcdt=rbatch_(t,y) % menghitung fungsi ruas kanan dari pers.neraca massa reaktor batch Ca = y(); T = y(); dcdt()=-e8*exp( /(8.34*T))*Ca/(.03+Ca); dcdt()=e8*exp(- 5000/(8.34*T))*Ca/(.03+Ca)*(43*000)/(000*4.3 ); dcdt=dcdt'; Hasil running: ans = PERSAMAAN DIFERENSIAL BIASA

132 Grafik yang dihasilkan: 0.5 konsentrasi dalam reaktor Ca (mol/l) waktu (min) (a) 530 temperatur dalam reaktor T (K) waktu (min) (b) Gambar 7.4 Perubahan (a) konsentrasi dan temperatur (b) terhadap waktu PERSAMAAN DIFERENSIAL BIASA

133 Contoh 7.3 Pemanasan Pada Tangki Seri Tiga buah tangki yang disusun seri digunakan untuk memanaskan minyak mentah sebelum diumpankan ke fraksinator untuk pemisahan lanjut. W = 00 kg/min T O = 0 o C T T steam steam steam T T T 3 T 3 Gambar 7.5 Sistem pemanasan minyak Pada saat awal, masing-masing tangki diisi dengan 000 kg minyak pada suhu 0 o C. Steam jenuh pada suhu 50 o C dikondensasikan di dalam koil yang tercelup pada masingmasing tangki. Minyak diumpankan ke tangki pertama dengan laju 00 kg/menit dan dialirkan ke tangki kedua maupun tangki ketiga dengan laju yang sama. Suhu minyak umpan adalah 0 o C. Tangki dilengkapi pengaduk sehingga pencampuran di dalam tangki dapat dianggap sempurna, dan suhu di dalam tangki seragam. Demikian juga dengan suhu aliran keluar tangki sama dengan suhu di dalam tangki. Kapasitas panas minyak, Cp =.0 kj/kg. Laju perpindahan panas dari steam ke minyak tiap tangki dinyatakan dengan persamaan sebagai berikut : Q UaT steam T (7.3.) Dimana Ua = 0 kj/menit. o C yaitu perkalian antara koefisien transfer panas dan luas area perpindahan panas koil untuk masing-masing tangki. PERSAMAAN DIFERENSIAL BIASA 3

134 Tentukan suhu steady state di tiap tangki, dan berapa interval waktu yang dibutuhkan agar T3 mencapai 99% kondisi steady state-nya pada saat start-up? Penyelesaian : Asumsi : a) Laju alir minyak menuju masing masing tangki dianggap sama (W 0 = W = W = W 3 = W). b) Densitas minyak konstan, sehingga jumlah (massa dan volum) minyak di dalam masing masing tangki sama dan konstan (M = M = M 3 = M). Disusun neraca panas unsteady state untuk masing masing tangki. Untuk tangki : Panas Akumulasi = Panas masuk Panas keluar dt MC p WC pt0 UaT steam T WC pt (7.3.) dt Persamaan di atas dapat disusun kembali sebagai berikut : dt WC p T 0 T UaT steam T (7.3.3) dt MC p Analog untuk tangki : Untuk tangki 3 : T T UaT T WC p steam dt (7.3.4) dt MC p T T UaT T WC 3 p 3 steam dt 3 (7.3.5) dt MC Penyelesaian untuk kasus diatas dengan MATLAB ditunjukkan file runlatihan7_3.m berikut: function runlatihan7_3 clear, clc global W UA M Cp Tsteam To p 4 PERSAMAAN DIFERENSIAL BIASA

135 %nilai-nilai parameter yang diketahui W=00; % kg/min UA=0; % kj/min.c M=000; % kg Cp=.0; % kj/kg Tsteam=50; % C To=0; % C %nilai awal T, T, dan T3 Tawal=[0 0 0];%oC %increment waktu tmulai=0; % min takhir=90; % min tspan=[tmulai:5:takhir]; %fungsi untuk menjalankan fungsi MATLAB [t,y]=ode45(@latihan7_3,tspan,tawal); %plot grafik t vs T plot(t,y(:,),'*-r',t,y(:,),'o-b',t,y(:,3),'*-g') title('temperature dalam tangki berpengaduk') xlabel('waktu (min)') ylabel('t (C)') [t Y] % function dtdt=latihan7_3(t,y) global W UA M Cp Tsteam To T=Y(); T=Y(); T3=Y(3); %persamaan-persamaan diferensial yang terlibat dtdt()=((w*cp*(to-t))+ua*(tsteam-t))/(m*cp); dtdt()=((w*cp*(t-t))+ua*(tsteam-t))/(m*cp); dtdt(3)=((w*cp*(t-t3))+ua*(tsteam-t3))/(m*cp); dtdt=dtdt'; PERSAMAAN DIFERENSIAL BIASA 5

136 Hasil running: ans = T T T3 Temperature dalam tangki berpengaduk 45 T (C) waktu (min) Gambar 7.6 Grafik perubahan suhu terhadap waktu 6 PERSAMAAN DIFERENSIAL BIASA

137 Contoh 7.4. Reaksi Transesterifikasi Secara Batch Pada proses pembuatan biodiesel dengan reaksi transesterifikasi, minyak biji bunga matahari direaksikan secara batch dengan metanol dengan rasio molar metanol terhadap minyak adalah 6:. Reaksi dijalankan pada fasa cair dengan bantuan katalis NaOH. Menurut Klofutar (00) reaksi didekati dengan reaksi multitahap sebagai berikut: TG + CH3OH k k 4 DG + ME DG + CH3OH k k 5 DG + ME G + CH3OH k 3 k 6 DG + ME TG + 3CH3OH k 7 k 8 DG + ME dimana TG = trigliserida, CH 3OH = methanol, DG = digliserida, MG = monogliserida, G = gliserol, dan ME = metil ester. Ingin dicari konsentrasi setiap komponen setelah reaksi dijalankan selama 0 menit. Nilai konsentrasi mula-mula untuk trigliserida dan methanol adalah 0,47 dan 0,8 mol/l. Nilai konstanta laju reaksi pada suhu 50 o C adalah : k = 0.077; k = 0.569; k 3 = 0,0956; k 4 = 0,03; k 5 = 0,0638; k 6 = 0,0083; k 7 = ; k 8 = (L mol - min - ). Penyelesaian : Persamaan neraca massa untuk masing-masing komponen dapat dituliskan: dctg 3 3 kctgcmoh k4cdgcme k7ctgcmoh k8cgcme dt PERSAMAAN DIFERENSIAL BIASA 7

138 dc dt dc dt DG MG dc dt dc G MOH dt k k CTGCMOH kcdgc MOH k4cdgc ME CDGCMOH k3cmgcmoh k5cmgcme k C C k C C k k C 5 MG k C MG MOH 6 G ME 7 TG MOH 8 G ME dc dt ME C C 6 G k C C C ME ME C (7.4.) Dengan C TG, C DG, C MG, C G, C ME, C MOH masing masing adalah konsentrasi trigliserida, digliserida, monogliserida, gliserol, metil ester dan methanol. Berikut program MATLAB untuk meyelesaian contoh kasus di atas. function simulasicontoh7_4; clc,clear % menyelesaikan PD ordiner simultan %nilai awal Yo=[ ]; %interval waktu tspan=[0::0]; % menit [t,y]=ode45(@sub_simulasi4,tspan,yo); CTG =Y(:,); CDG =Y(:,); CMG =Y(:,3); CG =Y(:,4); CME =Y(:,5); CMOH =Y(:,6); plot(tspan,ctg,'-*g',tspan,cdg,'-*b',tspan,cmg,'-*r',... tspan,cg,'-*c',tspan,cme,'-*m',tspan,cmoh,'-*k') title('grafik konsentasi vs waktu'); xlabel('waktu, t (menit)'); ylabel('konsentrasi, C (mgek/cm3)'); legend('tg','dg','mg','g','me','moh') % function dydt=sub_simulasi4(t,y); k=0.077;k=0.569;k3=0.0956;k4=0.03;k5=0.0638;k6=0.0083; k7=0.0006;k8= ; CTG=Y();CDG=Y();CMG=Y(3);CG=Y(4);CME=Y(5);CMOH=Y(6); 8 PERSAMAAN DIFERENSIAL BIASA

139 dydt()=-k*ctg*cmoh+k4*cdg*cme-k7*ctg*cmoh^3+k8*cg*cme^3; dydt()=k*ctg*cmoh-k*cdg*cmoh-k4*cdg*cme+k5*cmg*cme; dydt(3)=k*cdg*cmoh-k3*cmg*cmoh-k5*cmg*cme+k6*cg*cme; dydt(4)=k3*cmg*cmoh-k6*cg*cme+k7*ctg*cmoh^3-k8*cg*cme^3; dydt(5)=k*ctg*cmoh+k*cdg*cmoh+k3*cmg*cmoh-k4*cdg*cmek5*cmg*cme- k6*cg*cme+3*k7*ctg*cmoh^3-3*k8*cg*cme^3; dydt(6)=-dydt(5); dydt=dydt'; Konsentrasi setiap komponen ditampilkan dalam bentuk grafik seperti terlihat pada gambar di bawah. 0.8 grafik konsentasi vs waktu 0.7 konsentrasi, C (mgek/cm3) TG DG MG G ME MOH waktu, t (menit) Gambar 7.7 Grafik perubahan suhu terhadap waktu Contoh 7.5. Produksi Asetat Anhidrid dengan PFR (Multitubular) Dalam perancangan reaktor untuk produksi asam asetat anhidrid salah satu kunci yang menentukan adalah tahap perengkangan endotermis fasa uap aseton menjadi ketene dan metana (Fogler, 999): PERSAMAAN DIFERENSIAL BIASA 9

140 CH3COCH3 CHCO + CH4 Reaksi ini adalah order satu terhadap aseton dan laju reaksi spesifik dinyatakan dengan persamaan: k 8, 0 exp (7.5.) T Dimana k memiliki satuan detik dan T dengan satuan kelvin. Dalam desain ini diperlukan umpan sebanyak kg eseton per jam ke dalam reaktor tubular. Reaktor terdiri atas susunan tube sebanyak 000 dengan ukuran inch schedule 40. Susunan 000 tube -inch schedule 40 dengan panjang,79 m setara dengan m 3 (0,00 m 3 /tube = dm 3 /tube) dan memberikan koversi 0%. Ketene tidak stabil dan cenderung meledak, sehingga kondisi tersebut menjadi alasan untuk menjaga kondisi reaktor pada konversi rendah. Namun demikian, material pipa dan ukuran schedule harus diperiksa untuk mempelajari bahwa material tersebut sesuai pada temperature dan tekanan operasi. Fluida penukar panas memiliki laju alir, mc, 0, mol/s, dengan kapasitas panas 34,5 J/mol.K. Kita harus mempertimbangakan empat kasus. Temperature dan tekanan masuk adalah sama untuk semua kasus pada.035 K dan 6 kpa (,6 atm) dan temperatur fluida pemanas tersedia pada.50 K. a) Kasus : Reaktor dioperasikan secara adiabatis b) Kasus : Temperatur fluida pemanas konstan, Ta =.50 K c) Kasus 3 : Fluida pemanas searah (co-current) dengan reaktan dengan, Tao =.50 d) Kasus 4 : Fluida pemanas berlawanan arah (counter-current) dengan reaktan Tao =.50 Informasi tambahan : CH 3COCH 3 (A) : H o T A 6,67 kj/mol CH CO (B) : H o T B 6,09 kj/mol R R 30 PERSAMAAN DIFERENSIAL BIASA

141 Penyelesaian : CH4 (C) : H o T C 74,8 kj/mol U = 0 J/s.m.K R Misalkan A = CH3COCH3, B = CHCO dan C = CH4, Persamaan rekasi dapat dituliskan : A B + C Urutan penyelesaian untuk PFR dengan Heat effect adalah :. Neraca mol steady state untuk reaktor PFR : dx dv r A (7.5.) FA0. Persamaan Laju reaksi : ra k C A (7.5.3) 3. Stoikiometri (Reaksi fasa gas tanpa hilang tekanan): C A C A0 X T0 (7.5.4) X T ε = y a0δ = (+-) = Kombinasi persamaan dan 7.5.4, dihasilkan : r A C A0 X T0 k (7.5.5) X T 4. Neraca Energi : a) Neraca Reaktor Perubahan temperatur reaktor sebagai fungsi volume reaktor: PERSAMAAN DIFERENSIAL BIASA 3

142 dt dv Ua F T a T ra H rxn A0 ic pi XC p (7.5.6) atau, dt dv T T r H Ua F C a A rxn (7.5.7) A pa F C B pb F C b) Heat Exchanger. Kita akan menggunakan fluida pemanas untuk aliran cocurrent sebagai basis kasus. Selanjutnya kita dapat memodifikasi program penyelesaian ODE untuk menyelesian kasus lain yang berkesesuaian dengan mengalikan nol atau minus. Untuk aliran co-current : dta UaT a T (7.5.8) dv m C 5. Parameter untuk Neraca Energi: Panas reaksi pada suhu tertentu terhadap suhu referensi (98 K) adalah : c pc β γ 3 3 T T T T T T 0 H rxn H rxn α R R 3 R (7.5.9) Kapasitas Panas komponen: Δβ β γ γ CpA = 6,63 + 0,83 T 45, T (J/mol K) CpB = 0,04 + 0,0945 T 30, T (J/mol K) CpC = 3,39 + 0,077 T 8,7 0 6 T (J/mol K) α α C C γ C β B 3,8 0 B γ 6 α β A B A α A C pc 3,9 0,04 6,63 6,8 0,007 0,0945 0,83 0,05 ( 8,7 0 J/mol.K 3 6 ) ( 30, J/mol.K J/mol.K ) ( 45, ) 3 PERSAMAAN DIFERENSIAL BIASA

143 Panas reaksi standar, H o rxn β 5,75 0 γ, H rxn : 3 6 o o o T H T H T H T R B R C R = (-6,09) + (-74,8) - (-6,67) kj/kmol = 80,77 kj/mol Heat Exchange. Luas area transfer panas per satuan volume pipa adalah : DL a D / 4 L 50 m 4 D 4 0,066 m U = 0 J/m.s.K Kombinasi koefisien transfer panas dengan area diperoleh: Ua = J/m 3.s.K 6. Perhitungan Parameter Neraca Mol pada Basis Per Tube: A R kg/jam F A0 0,35 kmol/jam 0, kg/kmol 000 tube mol/detik C A 0 P RT A0 6 kpa 3 kpa m 8,3.035 K kmol K kmol 0,088 8,8 3 m kmol 3 m v F dm /detik, 3 m V 000 tube A CA0 0,00 m tube 3 PERSAMAAN DIFERENSIAL BIASA 33

144 Kasus : Adiabatis Kita mulai dengan kasus adiabatis untuk menunjukkan pengaruh bagaimana reaksi hilang/terhenti pada saat temperatur drop. Pada kenyataannya kita akan menambah sampai volume 5 dm 3 untuk mengamati efek ini dan menunjukkan bagaimana kebutuhan penambahan suatu penukar panas. Untuk ilustrasi bagaimana reaksi endotermis secara virtual dapat terhenti secara total. Volume satu pipa ditambah dari dm 3 sampai 5 dm 3. Untuk adiabatis : Ua = x 0 Program Matlab ditunjukkan di bawah dan Gambar 7.8 menujukan grafik output. 34 PERSAMAAN DIFERENSIAL BIASA

145 0.4 konversi reaktor volume, m3 x 0-3 Temperature reaktor, K volume, m x 0-3 Gambar 7.8 Grafik perubahan terhadap volume (a) reaktor konversi (b) temperatur Kasus : Temperatur fluida pemanas konstan, Ta Program penyelesaian kasus sama seperti kasus, dengan merubah : dta UaT a T 0 dv m C c pc Ua = J/m 3 /s/k Program Matlab ditunjukkan di bawah dan Gambar 7.9 menujukan grafik output. PERSAMAAN DIFERENSIAL BIASA 35

146 36 PERSAMAAN DIFERENSIAL BIASA

147 konversi reaktor konversi reaktor volume, m x 0-3 (a) Profil Temperature Reaktor,T Pemanas,Ta Temperatur,K Volume, m3 x 0-3 (b) Gambar 7.9 Grafik perubahan terhadap volume reaktor (a) konversi dan (b) temperatur Kasus 3 : Fluida pemanas searah (co-current) dengan reaktan Neraca energi untuk fluida pemanas adalah : PERSAMAAN DIFERENSIAL BIASA 37

148 dta dv Ua Ta T m C c pc dengan Ta0 =.50 K pada V = 0. Program Matlab ditunjukkan di bawah dan Gambar 7.0 menujukan grafik output. 38 PERSAMAAN DIFERENSIAL BIASA

149 0.45 konversi reaktor konversi Volume, m3 x 0-3 (a) Profil Temperature Reaktor, T Pemanas, Ta 50 Temperatur,K Volume, m3 x 0-3 (b) Gambar 7.0 Grafik perubahan terhadap volume (a) konversi dan (b) temperatur PERSAMAAN DIFERENSIAL BIASA 39

150 Kasus 4: Fluida pemanas searah dengan reaktan Neraca energi untuk fluida pemanas sama dengan kasus 3, dengan mengalikan dengan - : dta UaT a T dv m C dengan Ta (V = 0) = 994,6 K untuk memperoleh T a0 =.50 K. Program Matlab ditunjukkan di bawah dan Gambar 7. menujukan grafik output. c pc 40 PERSAMAAN DIFERENSIAL BIASA

151 0.35 konversi reaktor konversi Volume, m3 x 0-3 (a) Profil Temperature Reaktor, T Pemanas, Ta 50 Temperatur,K Volume, m3 x 0-3 (b) Gambar 7. Grafik perubahan terhadap volume (a) konversi dan (b) temperatur PERSAMAAN DIFERENSIAL BIASA 4

152 Contoh 7.6 Reaksi Kompleks dengan Efek Panas dalam PFR Berikut reaksi kompleks fasa gas mengikuti hukum laju reaksi elementer (Fogler, 999): () A + B C () A + 3C D r k H C C A A A B Rx r k H B cal/mol C C 3 C C A C Rx A cal/mol B A Reaksi berlangsung pada reaktor PFR. Umpan adalah stoikiometri pada reaksi () terhadap A dan B dengan FA0 = 5 mol/menit. Volume reaktor adalah 0 dm 3 dan konsentrasi total yang masuk adalah CT0 = 0, mo/dm 3. Tekanan masuk adalah 00 atm dan temperatur masuk adalah 300 K. Laju alir pendingin adalah 50 mol/menit dan memiliki kapasitas panas CpCO = 0 cal/mol.k serta masuk pada suhu 35 K. 3 dm 40 menit pada suhu 300 K dengan mol E k A cal/mol 3 dm menit pada suhu 300 K dengan.000 cal/mol mol E CpA = 0 cal/mol/k Ua = 80 cal/min/k k C CpB = cal/mol/k CpC = cal/mol/k Ta0 = 35 K m = 50 mol/min CpD = cal/mol/k Plot FA, FB, FC, FD, y, T dan Ta sebagai fungsi V untuk : (a) Pertukaran panas searah (co-current) 4 PERSAMAAN DIFERENSIAL BIASA

153 (b) Pertukaan panas lawan arah (counter current) (c) Ta konstan (d) Operasi Adiabatis Penyelesaian : Reaski Fasa Gas pada PFR tanpa hilang tekan (y = ) Neraca mol : Persamaan laju : df A r = 5 mol/menit) (7.6.) A (FA0 dv df B r = 0 mol/menit) (7.6.) B (FB0 dv df C r = 0 dm3 (7.6.3) C Vi dv df D r (7.6.4) D dv r k C C (7.6.5) A A A B r k C C (7.6.6) 3 C C A C Laju relatif : r B r A (7.6.7) r C r A r A r D (7.6.8) 3 rc kcc ACC 3 3 (7.6.9) 3 rc kcc ACC 3 3 (7.6.0) PERSAMAAN DIFERENSIAL BIASA 43

154 44 PERSAMAAN DIFERENSIAL BIASA Laju total untuk komponen A, B, C dan D adalah : 3 3 C A C B A A A A A C C k C C k r r r (7.6.) B A A B B C C k r r (7.6.) 3 C A C B A A C C C C C k C C k r r r (7.6.3) 3 3 C A C D D C C k r r (7.6.4) Stoikiometri : y F F C C T A T A 0 (7.6.5) y F F C C T B T B 0 (7.6.6) y F F C C T C T C 0 (7.6.7) y F F C C T D T D 0 (7.6.8) y (7.6.9) D C B A T F F F F F (7.6.0) Parameter : min /mol dm exp 3 T R E k A (7.6.) min /mol dm 300 exp 4 3 T R E k C (7.6.) R =,987 cal/mol/k Neraca Energi : Perubahan suhu reaktor terhadap volume :

155 dt dv Q g Q j r F Cp j (7.6.3) F Cp j j F A Cp A F B Cp B F C Cp C F D Cp D (7.6.4) Panas yang diserap (Heat Romoved) : Q r T a Panas yang dibangkitkan (Heat Generated): Ua T (7.6.5) (7.6.6) Qr rij H Rxij r BH RxB r AH Rx A (a) Fluida pndingin searah (co-current) dengan reaktan Neraca pertukaran panas untuk aliran co-current adalah : dt dv Ua T T C CO a a (7.6.7) Program Matlab ditunjukkan di bawah dan Gambar 7. menujukan grafik output. m Cp PERSAMAAN DIFERENSIAL BIASA 45

156 46 PERSAMAAN DIFERENSIAL BIASA

157 profil konsentrasi reaktor Fa Fb Fc Fd konsentrasi volume,dm3 (a) Profil Temperatur T Ta 700 Temperatur,K volume,dm3 (b) Gambar 7. Grafik perubahan terhadap volume (a) laju alir molar dan (b) temperatur (b) Fluida pendingin berlawanan arah (counterr-current) dengan reaktan Neraca pertukaran panas untuk aliran co-current adalah : PERSAMAAN DIFERENSIAL BIASA 47

158 dt a dv Ua T T C CO a (7.6.7) m Cp Program Matlab ditunjukkan di bawah dan Gambar 7.3 menunjukkan grafik output. 48 PERSAMAAN DIFERENSIAL BIASA

159 profil laju alir molar Fa Fb Fc Fd laju alir, mol/min volume reaktor,dm3 (a) Profil Temperatur T Ta Temperatur,K volume reaktor,dm3 (b) Gambar 7.3 Grafik perubahan terhadap volume (a) laju alir molar dan (b) temperatur PERSAMAAN DIFERENSIAL BIASA 49

160 (c) Pertukaran panas dengan Ta konstan Neraca pertukaran panas untuk Ta konstan adalah : dt a dv Ua T T m Cp C CO a *0 Program Matlab ditunjukkan di bawah dan Gambar 7.4 menunjukkan grafik output. 50 PERSAMAAN DIFERENSIAL BIASA

161 profil laju alir molar Fa Fb Fc Fd laju alir, mol/min volume reaktor,dm3 (a) Profil Temperatur T Ta 700 Temperatur,K volume reaktor,dm3 (b) Gambar 7.4 Grafik perubahan terhadap volume (a) laju alir molar dan (b) temperatur PERSAMAAN DIFERENSIAL BIASA 5

162 (d) Proses Adiabatis 5 PERSAMAAN DIFERENSIAL BIASA

163 profil laju alir molar Fa Fb Fc Fd laju alir, mol/min volume reaktor,dm3 (a) T Profil Temperatur 00 Temperatur,K volume reaktor,dm3 (b) Gambar 7.5 Grafik perubahan terhadap volume (a) laju alir molar dan (b) temperatur PERSAMAAN DIFERENSIAL BIASA 53

164 Contoh 7.7 Fixed Bed Reactor Reaksi elementer fasa gas dijalankan dalam reaktor fixed bed. Terdapat penukar panas di sekeliling reaktor, dan terdapat pressure drop sepanjang reaktor. A Gas masuk reaktor pada suhu 450 K. C Gambar 7.6 Grafik perubahan terhadap volume (a) laju alir molar dan (b) temperatur Laju untuk reaksi katalisis di atas dinyatakan dengan persamaan : CC ra k C A (7.7.) K C Konstanta laju reaksi berdasarkan reaktan A dan mengikuti persamaan Arrhenius : E k k T 450 K exp (7.7.) R T0 T Kontanta kesetimbangan berubah terhadap suhu dan ditentukan dari persamaan van t Hoff s dengan Cp = 0. K C K T 450 K H exp R R T0 T (7.7.3) 54 PERSAMAAN DIFERENSIAL BIASA

165 Beberapa parameter lainnya diberikan di bawah : C PA = 40 J/g-mol.K R = 8,34 J/g-mol.K C PC = 80 J/g-mol.K F A0 = 5 g-mol/min H R = J/g-mol Ua/ρc = 0,8 J/kg cat.min.k E = J/g-mol.K T a = 500 K k 0 = 0.5 dm 6 /kg min 450 K α = 0,09/ kg katalis K 0 = dm K P 0 = 0 atm C A0 = 0,7 g-mol/dm 3 y A0 =, 0 (Pure A feed) T 0 = 450 K W f = 0 kg catalis (a) Buat grafik konversi (x), tekanan reduksi (y) dan temperatur (T x 0-3 ) sepanjang reaktor dari W = 0 kg sampai W = 0 kg katalis. (b) Buat grafik profil konsentrasi reaktan A dan produk C dari W = 0 kg sampai W= 0 kg katalis. Penyelesaian : Pada kasus di atas diasumsikan tidak ada gradien konsentrasi dan temperatur pada arah radial di beberapa titik dalam katalis. Desain reaktor akan menggunakan konversi A yang dinyatakan dengan X dan temperatur T yang keduanya sebagai fungsi lokasi di dalam bed katalis tertentu dengan berat katalis W. Neraca mol : dx dw r A (7.7.4) FAO Persamaan laju reaksi : r A k CC C A (7.7.) K C PERSAMAAN DIFERENSIAL BIASA 55

166 56 PERSAMAAN DIFERENSIAL BIASA Konstanta laju reaksi : T T R E k 0,5 exp 0 (7.7.5) konstanta kesetimbangan reaksi : T T R H K R C exp 0,5 0 4 (7.7.6) Stoikiometri : Konsentrasi dinyatakan sebagai fungsi konversi dan suhu yang mengalami perubahan volumetrik karena penurunan jumlah mol selama reaksi. Oleh karen itu : T T y X X C T T P P X X C C AO AO A , (7.7.7) T 0 P y T T y X X C C A C 0 0 0,5 0,5 (7.7.8) Neraca Energi : Neraca energi dapat dituliskan: p pi i A rxn A a c C X C F H r T T Ua dw dt 0 (7.7.9) Jika hanya reaktan A maka dapat disederhanakan :

167 dt dw Ua T T r H a A rxn c (7.7.0) F A0 C pa Pressure Drop : Pressure drop dapat dinyatakan sebagai persamaan diferensial: atau P d P 0 dw ε X P0 T (7.7.) P T 0 dy dw 0,5 X T (7.7.) y T 0 Penulisan program untuk penyelesaian kasus di atas dicantumkan di bawah dan grafik simulasi ditunjukkan pada Gambar PERSAMAAN DIFERENSIAL BIASA 57

168 58 PERSAMAAN DIFERENSIAL BIASA

169 .4. Konversi A Tekanan reduksi T/000 Profil Reaktor W, kg (a) Profil Reaktor CA CC 0.5 konsentrasi, C W, kg (b) Gambar 7.7 Grafik perubahan terhadap berat katalis (a) konversi, tekanan dan T/000, (b) konsentrasi A dan C PERSAMAAN DIFERENSIAL BIASA 59

170 Contoh 7.8. Oksidasi Sulfur Dioksida Dalam pembuatan asam sulfat dari belerang, tahap pertama adalah pembakaran belerang dalam suatu furnace untuk menjadi belerang dioksida (Fogler, 999): S + O SO Selanjutnya SO dikonversi menjadi sulfur trioksida menggunakan katalis : SO + O SO3 Persamaan laju reaksi untuk oksidaai SO dalam katalis tertentu adalah : P ' SO P SO3 r SO k P (7.8.) O P SO 3 K p PSO Dimana Pi adalah tekanan parsial komponen i. Persamaan ini dapat digunakan ketika konversi lebih besar dari 5%. Untuk konversi dibawah 5%, laju reaksi mengikuti persamaan : 0, r 76 ' SO k 0,848 (7.8.) K p Umpan ke SO konverter adalah 7900 lbmol/h, dan terdiri % SO, 0% O, dan 79 % inert (sebagai N). Konverter terdiri atas 4.63 tube dengan katalis padat, panjang masing-masing 0 ft. Tube memiliki 3 in O.D. dan,87 in I.D. Tube katalis akan didinginkan dengan cairan mendidih pada 805 o F sehingga temperatur pendingin konstan. Tekanan masuk reaktor atm. Untuk temperatur masuk 740 o F dan 940 o F, plot profil konversi, temperatur dan pressure drop. Diberikan data : = 0,45 U = 0 Btu/jam.ft.oR 60 PERSAMAAN DIFERENSIAL BIASA

171 ρ 0 = 0,054 lb/ft 3 Ac =0,044 ft P0 = atm T0 = 400 o R Dp = 0,05 ft gc = 4,7 x 08 lbm.ft/lbf.h μ = 0,090 lb/ft.h pada 400 o R Konstanta kesetimbangan pada T adalah 4.3 -/ K p exp,4 ( K p dalam atm, T dalam RT Kontanta laju reaksi dinyatakan dengan persamaan : o R) o k exp (0,ln T ) 9,8 ( k dalam lbmol SO /lbcat.s.atm, T dalam R) RT (7.8.3) (7.8.4) Terdapat efek difusional pada katalis pada suhu tersebut dan persaman di atas harus dipandang sebagai persamaan empiris yang memperkirakan konstanta laju rekais efektif dalam kisaran suhu 84 o -38 o F. Tabel JANAF digunakan untuk memberikan data berikut: CpSO = 7,08 + 5,633 x 0-3 T, T (7.8.5) CpO = 5,73 +,33 x 0-3 T 4, T (7.8.6) CpSO3 = 8,5 + 9,57 x 0-3 T 3, T (7.8.7) CpN = 6,48 + 8,778 x 0-4 T, T (7.8.8) Dengan Cp dalam Btu/lbmol. o R dan T dalam o R. HR(800 o F) = Btu/lbmol SO Penyelesaian : Neraca mol: dx dw ' ra (7.8.9) F AO PERSAMAAN DIFERENSIAL BIASA 6

172 Persamaan Laju: P ' SO P SO3 r SO k P O (7.8.) PSO 3 K p PSO Hubungan Stoikiometri : S + ½ O SO A + ½ B C Kita misalkan A menyatakan SO dan vi koefisien stoikiometri untuk komponen i: i i X RT P i i X RT P Pi Ci RT C AO P (7.8.0) A0 X T / T0 P0 X P 0 Subtitusi untuk tekanan parsial dalam laju reaksi dan kombinasi menghasilkan : dx dw r F ' A AO P P P0 k X 3 A0 FAO SO X K 3 p SO X 3 SO X εx X (7.8.) Dimana : ε = -0,055, PA0= 0, atm; ΘSO =,0; ΘO = 0,9; ΘSO3 = 0,0; ΘN = 7,7; FT0 = lb mol/h; FA0 = 869 lb mol/h Per tube : Berat katalis dalam satu tube = π D W ρc L 8,54 lb cat./tube F A 0 0,88 lb mo/tube PERSAMAAN DIFERENSIAL BIASA

173 Subtitusi nilai diatas diperoleh : dx X 0, 0, X P X 5,39 k (7.8.) dw X 0,055X P X Neraca Energi : dt dw 4U 0 ' T a T ra H R ( T) cd (7.8.3) FA0 ic pi X C p K p β γ 3 3 T T T T T T 0 H R ( T) H R ( T) α (7.8.4) R R R 3 Untuk oksidasi SO, S + ½ O SO, α αso αo αso 8,5 (0,5)(5,73) 7,08,563 3 β βso β O β 3 SO 0, (9, ) (, ) (5, ) Δγ γ SO γ O γ 3 SO 0, (, ) ( 4, ) (,343 0 Subtitusi ke persamaan (7.9.9) dengan TR = 60 o R diperoleh : H R ( T) 4.47 (,459 HR dalam Btu/lb mol, T dalam R 3,563 T 60,36 0 T ) T 60 6 ) (7.8.5) 6 i C pi 57,3 0,04T,94 0 T (7.8.6) Koefisien transfer panas : UπD 4U c A D c c o 40 Btu/h ft R 33,8lb/ft,78/ 5, Btu/h lb cat o R ft PERSAMAAN DIFERENSIAL BIASA 63

174 Persamaan (7.8.3) menjadi : dt dw ' T T r H ( T) 5, a 0,88 ic pi A R X C p (7.8.7) Pressure drop : Pressure drop diberikan dengan persamaan : dp dl ρ 0 φg εx P / P T / T g D 0 0 c p φ 3 50μ - φ Dp,75G (7.8.8) Dimana : dengan W G Fi 0M i / Ac 307,6 lb/ft h A c crosssectional area : D / 4 A L, maka diperoleh persamaan : ρ i c dp dw GTP c φ εx 50μ- φ 0 (7.8.9) 3 ρ A ρ T Pg D φ c 0 0 c p D p,75g Subtitusi parameter-parameter ke persamaan (7.8.)8 diperoleh : dp dw, 0 6 0,055 X P T 5500μ 88 (7.8.0) Persamaan (7.8.), (7.8.7) dan (7.8.0) diselesaikan secara simultan. Program MATLAB dan grafik hasil simulasi ditunjukkan di bawah. 64 PERSAMAAN DIFERENSIAL BIASA

175 PERSAMAAN DIFERENSIAL BIASA 65

176 .8 X P (atm) w (lb) (a) Temperature (R) w (lb) 66 PERSAMAAN DIFERENSIAL BIASA (b) Contoh 7.9. Distribusi Suhu Batang Logam Suatu batang logam dengan jari-jari, R = 0, m, panjang L= 0 m, kedua ujungnya melekat pada dinding yang suhunya berbeda, yaitu Ta = 300 K dan Tb = 400 K (Gambar 7.8). Suhu udara diketahui, T = 00 K. Diameter batang sangat kecil

177 dibanding dengan panjang batang dan konduktivitas panas batang besar [ k = 00 J/(s.m.K)] sehingga gradien suhu dalam batang arah radial bisa diabaikan. Koefisien perpindahan panas antara permukaan batang dan udara, h = J/m K s. Ingin dicari distribusi suhu batang pada keadaan steady state pada arah x untuk kondisi (a) hanya panas konveksi mengalir dari batang ke udara, (b) ada panas radiasi yang hilang dari batang ke udara denga σ =, K -3 m -. Penyelesaian : Pada kasus di atas terjadi dua amacam perpindahan panas, yaitu ) Perpindahan panas konduksi arah aksial dalam batang, dt q k A (7.9.) dx ) Perpindahan panas antar fasa dari permukaan batang ke udara batang, q h AT T (7.9.) Neraca Panas pada elemn volume sepanjang x pada batang : Gambar 7.8 Batang logam PERSAMAAN DIFERENSIAL BIASA 67

178 Rate of input Rate of output = Rate of Accumulation k r dt dx x k r dt dx xx h r x Modifikasi persamaan (7.5.3) menghasilkan : T T 0 (7.9.3) dt dx dt dx h T T 0 (7.9.4) x x x x k r Jika diambil x 0, maka menurut definisi matematika diperoleh: d dt h T T 0 (7.9.5) dx dx k r Persamaan matematis untuk persamaan ini adalah : d T h T T 0 (7.9.5) dx k r Dengan kondisi batas pada : x = 0 ; T = Ta (7.9.6) x = L ; T = Tb (7.9.7) Pada kenyataannya persamaan di atas secara fisik menyatakan kondisi kedua batas batang yang dikenal dengan istilah boundary condition. Penyelesaian persamaan (7.9.5) dengan keadaan batas pers (7.9.6) dan pers (7.9.7) akan menghasilkan T = f (x). (a) Persamaan diatas dapat diselesaikan dengan MATLAB dengan cara merubah persamaan (7.5.5) menjadi dua buah persamaan oder satu simultan. dt z (7.9.5) dx dz h T T (7.9.5) dx k r 68 PERSAMAAN DIFERENSIAL BIASA

179 Untuk harga T(0) = Ta, sementara harga z(0) tidak diketahui. Nilai z diveluasi dengan degan cara trial and error sehingga diperoleh Tb = f(z) = 400 menggunakan persamaan diferensial. function contoh75a clc, clear zaf=fzero(@subcontoh75a,-50); % function r=subcontoh75a(z0) T0 = 300; % K xspan = [0 0];% panjang batang [x,y]=ode45(@subsubcontoh75a,xspan,[300 z0]) plot(x,y(:,)) title('grafik temperatur vs jarak'); xlabel('jarak, z (meter)'); ylabel('temperatur, K '); r = y(length(x),)-400; % function dydx=subsubcontoh75a(x,y) T = y(); z = y(); h = ; %J/mK.s Tudara = 00; %K k = 00; %J/s m K r = 0.; % m dydx()= z; dydx()= *h*(t-tudara)/(k*r); dydx=dydx'; Grafik profil suhu terhadap jarak pada batang ditunjukkan Gambar di bawah PERSAMAAN DIFERENSIAL BIASA 69

180 400 grafik temperatur vs jarak temperatur, K jarak, z (meter) Gambar 7.9 Profil Suhu pada batang (b) Untuk sistem yang melibatkan panas radiasi, persamaan disusun sebagai berikut: dt z dx (7.9.5) dz h 4 4 T T T T dx k r (7.9.5) Program penyelesaian dengan MATLAB seabagai berikut: function contoh75b clc, clear zaf=fzero(@subcontoh75a,-50); % function r=subcontoh75a(z0) T0 = 300; % K xspan = [0 0];% panjang batang [x,y]=ode45(@subsubcontoh75a,xspan,[300 z0]) 70 PERSAMAAN DIFERENSIAL BIASA

181 plot(x,y(:,)) title('grafik temperatur vs jarak'); xlabel('jarak, z (meter)'); ylabel('temperatur, K '); r = y(length(x),)-400; % function dydx=subsubcontoh75a(x,y) T = y(); z = y(); h = ; %J/mK.s Tudara = 00; %K k = 00; %J/s m K r = 0.; % m sigma =.7E-9;%K/m dydx()= z; dydx()= *h*(t-tudara)/(k*r)+sigma*(t^4- Tudara^4); dydx=dydx'; Grafik profil suhu terhadap jarak pada batang ditunjukkan Gambar 7.0 di bawah 40 grafik temperatur vs jarak temperatur, K jarak, z (meter) Gambar 7.0 Profil Suhu pada batang dengan panas radiasi PERSAMAAN DIFERENSIAL BIASA 7

182 Contoh 7.0 Difusi dan Reaksi Kimia dalam Katalisator Reaksi fasa gas order satu : A B Berlangsung dipermukaan pori katalisator padat berbentuk bola berjari-jari R = cm. Sistem dianggap isotermis. Konsentrasi A pada fasa gas di permukaan luar bola CAS = 5,0 x 0-4 gmol/cm 3. Gas A mendifusi ke dalam bola melalui pori katalisator sambil sebagian bereaksi di permukaan katalisator dengan konstanta kecepatan reaksi k. Luas permukaan pori tiap volum katalisator = a. Haga ka =,0 x 0-3 /s. Harga difusivitas effektif, De =,0 x 0-4 cm /s. Konsentrasi di pusat katalis diasumsikan 4,5 x 0-4 gmol/cm 3. Kecepatan difusi A melalui pori dianggap mengikuti persamaan yang mirip dengan difusi gas, yaitu : dc A N A gmola De luas z waktu djarak (7.0.) Kecepatan reaksi di permukaan pori katalisator mengikuti persamaan : gmol A ra k C A (7.0.) waktu luas pori Ingin di cari konsentrasi gas A pada berbagai posisi dalam bola pada keadaan steady. Penyelesaian : Dalam menyusun model matematis, perpindahan massa A dalam bola dianggap ke arah r positif keluar walaupun sebenarya ke arah r negatif karena kedua keadaan tersebut akan memberikan hasil persamaan matematis yang sama. 7 PERSAMAAN DIFERENSIAL BIASA

183 R r r Gambar 7. Elemen volum setebal r dalam bola berpori Neraca massa A pada elemen volum: Rate of input Rate of output = Rate of Accumulation dc dc A De 4 r De 4 A dr dr r A r r k C a 4 r r r r (7.0.3) (4πr r menyatakan volume dari elemen volum, yaitu luasnya 4πr dan tebalnya r) Modifikasi persamaan (7.0.3) dihasilkan : rr dca dr r r r dc dr A r k a D e r C A 0 Jika diambil r 0, maka menurut definisi matematika diperoleh: dc k a (7.0.4) d A r r C A 0 (7.0.5) dr dr De d C dc r dr k a A A r r C 0 A dr De (7.0.6) d C A dc A k a C 0 A dr r dr De (7.0.7) PERSAMAAN DIFERENSIAL BIASA 73

184 Dengan kondisi batas pada : r = R ; CA = CAS (7.0.8) dc r = 0 ; CA = CA0 = A = 0 (7.0.9) dr Persamaan diatas dapat diselesaikan dengan MATLAB dengan cara merubah persamaan (7.0.7) menjadi dua buah persamaan oder satu simultan. dc A u dr (7.0.0) du u ka C A (7.0.) dr r De Untuk harga CA(0) = CAO, sementara harga u(0) tidak diketahui. Nilai u diveluasi dengan degan cara trial and error sehingga diperoleh CA = f(r) = CAS menggunakan persamaan diferensial. function contoh76 clc, clear cas=fzero(@subcontoh76,0.00); % function r=subcontoh76(u0) ca0= ;%gmol/cm3 r = ;%cm rspan = [0 r];%inteval jari-jari [x,y]=ode45(@subsubcontoh76,rspan,[ca0 u0]); plot(x,y(:,),'m') title('konsentrasi vs Jari-jari'); xlabel('jari-jari, r (cm)'); ylabel('konsentrasi,ca (gmol/cm3) '); %m=y(length(x),) r = y(end,)-5e-4; % function dydr=subsubcontoh76(x,y) ca = y();u = y(); r = ;% cm ka = E-3; %/s De = E-4; %cm/s dydr()= u; 74 PERSAMAAN DIFERENSIAL BIASA

185 dydr()= -(*u/r)+(ka*ca/de); dydr = dydr'; 6 x 0-4 Konsentrasi vs Jari-jari 5 konsentrasi,ca (gmol/cm3) jari-jari, r (cm) Gambar 7. Elemen volum setebal r dalam bola berpori 7.3 RANGKUMAN a. Persamaan Diferensial Biasa (PDB) merupakan persamaan diferensial dimana fungsi yang tidak diketahui (variabel terikat) adalah fungsi dari variabel bebas tunggal b. Dalam bidang Teknik Kimia Persamaan diferensial muncul dari kajian proses fisis dan kimia dinamis yang memiliki satu variable bebas. Variabel tersebut dapat berupa variable jarak, z atau variabel waktu, t yang bergantung pada geometri sistem dan kondisi batasnya. c. Penyelesaian persamaan diferensial biasa dapat diselesaikan dengan MATLAB menggunakan fungsi ode yang akan diperoleh nilai variabel terikat untuk setiap variabel bebas yang diberikan. PERSAMAAN DIFERENSIAL BIASA 75

186 7.4 RUJUKAN a. Constantinidis dan Mustoufi, 999, Numerical Methodes for Chemical Engineers with MATLAB Application, hal Prentice-Hall: Englewood Cfiffs, NJ. b. Finlayson, B.A., 006, Introduction to Chemical Engineering Computing, hal 5-3. John Wiley & Sons Inc., New Jersey c. Dan Hanselman dan Bruce Littlefield, 997. MATLAB: Bahasa Komputasi dan Teknis. hal 5 dan Andi. Yokyakarta. d. Fogler, H. S Elements of Chemical Reaction Engineering, 3rd ed., Englewood Cliffs, NJ: Prentice- Hall. e. B. Klofutar, J. Golob, B. Likozar, C. Klofutar,,E.Zagar,. Poljanšek D. 00. The transesterification of rapeseed and waste sunflower oils: Mass-transfer and kinetics in a laboratory batch reactor and in an industrial-scale reactor/separator setup. Bioresource Technology 0. Pp f. Sediawan, Wahyudi Budi Pemodelan Matematis dan Penyelesaian Numeris dalam Teknik Kimia. Andi. Yogyakarta. 76 PERSAMAAN DIFERENSIAL BIASA

187 BAB 8 PERSAMAAN DIFERENSIAL PARSIAL 8. PENDAHULUAN Bab ini membahas tentang persamaan diferensial parsial. Setelah menyelesaikan pokok bahasan ini mahasiswa diharapkan akan mampu menyelesaikan persamaan diferensial parsial dengan MATLAB. Secara khusus mahasiswa diharapkan akan mampu menyusun permasalahan fisis dan kimia dalam Teknik Kimia dalam bentuk persamaan diferensial parsial, menyelesaikan persamaan diferensial parsial dengan methode of line dalam MATLAB. Persamaan diferensial parsial banyak ditemukan pada pemodelan-pemodelan teknik kimia berbasis fenomena transpor (momentum, panas dan massa). 8. MODEL MATEMATIS Hukum konservasi massa, momentum dan energi membentuk basis penerapan fenomena transpor. Hukum ini berlaku pada aliran fluida yang menghasilkan persamaan perubahan (equation of change), yang menggambarkan perubahan kecepatan, temperatur dan konsentrasi terhadap waktu dan posisi. Dinamika 77

188 sistem, yang memiliki lebih dari satu variabel bebas dimodelkan dalam persamaan diferensial parsial (Constantinidis dan Mostoufi, 999). Sebagai contoh persamaan neraca massa: Rate of mass rate of rate of (8.) accumulation mass in mass in diterapkan pada volume elemen stasioner x, y, z melewati fluida murni yang sedang mengalir menghasilkan persamaan kontinuitas (equation of continuity): x y z (8.) t x x x Dimana adalah densitas fluida, vx, vy, vz adalah kecepatan komponen dalam tiga koordinat rektanguler. Aplikasi untuk neraca momentum: Rate of Rate of Rate of Sum of forces momentum momentum momentum action on (8.3) accumulation in out system Pada elemen volume x, y, z, untuk aliran fluida isotermal, menghasilkan persamaan gerak dalam tiga arah : ρ j ρ x j ρ y j ρ z j t x y z p xj yj zj ρ g j x y z j j x, y,atau z (8.4) Dimana xj adalah shear stress tensor, p adalah tekanan dan gi adalah percepatan gravitasi. 78 PERSAMAAN DIFERENSIAL PARSIAL

189 79 PERSAMAAN DIFERENSIAL PARSIAL (ρv x ) x (x,y,z) (ρv x ) x+ x (x+ x,y+ y,z+ z) Gambar 8. Elemen Volume x y z untuk Aliran Fluida Aplikasi untuk neraca energi adalah: surroundings on system by done work of Rate Net conduction by addition heat of Rate Net convection by out energy of Rate convection by in energy of Rate energy of accumulation of Rate (8.5) Pada elemen volume x, y, z, untuk aliran fluida nonisotermal dihasilkan persamaan neraca energi: y v z v x v z v x v y v z v y v x v z q y q x q T p T z q y q x q z T y T x T t T C z y yz z x xz y x xy z zz y yy x xx z y x z y x z y x v ρ (8.6) Dimana T adalah temperatur, C adalah kapasitas panas pada volume konstan, dan qi adalah komponen fluks energi yang diberikan hukum Fourier untuk panas konduksi : z y x i t T k q i atau,, (8.7) dimana k adalah konduktivitas termal.

190 80 PERSAMAAN DIFERENSIAL PARSIAL Untuk konduksi dalam padatan, dimana kecepatan adalah nol persamaan (8.6) dapat disederhanakan. Ketika dikombinasikan dengan pers. (8.7), menghasilkan persamaan konduksi panas non setady state tiga dimensioanal yang terkenal : ρ z T y T x T k t T C p (8.8) dimana Cp adalah kapasitas panas pada tekanan konstan, menggantikan Cv, dan k telah diasumsikan konstan di dalam padatan. Persamaan kontinuitas untuk komponen A dalam suatu campuran biner (komponen A dan B) dengan densitas fluida yang konstan, ρ dan koefisien difusi, DAB yang konstan adalah : A A A A AB A z A y A x A R z c y c x c D z c y c x c t c (8.9) Dimana ca = konsentrasi molar A dan RA = laju produksi molar komponen A. Persamaan ini mereduksi hukum kedua difusi Fick ketika RA =0 dan vx = vy = vz = 0. z c y c x c D t c A A A AB A (8.0) Persamaan diferensial yang paling umum muncul dalam teknik kimia adalah persamaan order satu dan order dua. Persamaan diferensial parsial diklasifikasikan berdasarkan order, linieritas dan kondisi batasnya. Order persamaan diferensial parsial ditentukan oleh order tertinggi turunan parsial dalam persamaan. Contoh persamaan diferensial parsial order satu, dua, tiga adalah : Order satu : 0 y u x u (8.) Order dua : 0 y u u x u (8.)

191 3 T u u Order tiga : 0 (8.3) t x y y Persamaan diferensial dikategorikan kedalam persamaan linier, quasilinier dan nonlinier. Sebagiai contoh, misalkan persamaan order dua berikut: u u u a. b. c. 0 (8.4) y x y x Jika koefisien adalah konstan atau fungsi variabel independen hanya [(.) (x,y)], maka persamaan (8.4) adalah linier. Jika koefisien adalah fungsi variabel terikat dan atau beberapa turunannya order yang lebih dari persamaan [(.) (x, y, u, u/ x, u/ y)] maka persamaanya adalah quasilinier. Jika koefisien adalah fungsi turunan yang ordernya sama seperti persamaan [(.) (x, y, u, u/ x, u/ y, u/ x y)] maka persamaanya adalah nonlinier. Berdasarkan definisi di atas, persamaan (8.) adalah linier, persamaan (8.) adalah quasilinier, dan pers (8.3) adalah nonlinier. Persamaan diferensial order dua linier dalam dua variabel bebas selanjutnya diklasifikasikan ke dalam tiga bentuk kanonik : elliptic, parabolic, dan hiperbolic. Bentuk umum persamaan jenis ini adalah : u u u u u a b c d e fu g (8.5) x xy y y y Dimana koefisien adalah konstan atau hanya fungsi variabel independen. Bentuk tiga kanonik ditentukan oleh kriteria berikut: b ac 0, elliptic (8.6a) b ac 0, parabolic (8.6b) b ac 0, hyperbolic (8.6c) Jika g = 0, maka persamaan (8.5) adalah persamaan diferensial homogen. Contoh klasik persamaan diferensial order dua yang PERSAMAAN DIFERENSIAL PARSIAL 8

192 membentuk kanonik tiga adalah : Persamaan Laplace (elliptic) u u 0 x y (8.7) Persamaan difusi atau konduksi panas : u u x t (8.8) Persamaan gelombang : u u x t (8.8) Contoh 8. Perpindahan Panas Unsteady state Pada suatu slab yang sangat luas, maka perpindahan panas hanya berlangsung pada arah x. Perpindahan panas unstaedy state dalam suatu slab pada arah x dinyatakan dengan persamaan diferensial parsial : T T (8..) t x dimana T adalah temperatur (K), t adalah waktu (s), dan adalah difusivitas (m /s) diberikan dengan k/ρcp. Dalam hal ini konduktivitas termal k (W/m.K) densitas, ρ (kg/m3) dan kapasitas panas, Cp (J/kg.K) adalah konstan (Geankoplis, 999). Misalkan material slab dengan ketebalan m dilindungi isolasi nonkonduksi. Slab ditunjukan Gambar 8.. Untuk penyelesaian numeris slab dibagi kedalam N bagian dengan N + titik ujung. Slab mula-mula memiliki temperatur seragam 00 o C. Hal ini memberikan kondisi awal bahwa semua temperatur di titik-titik internal diketahui nilainya pada saat t = 0. Tn = 00 untuk n = (N + ) pada t = 0 (8..) 8 PERSAMAAN DIFERENSIAL PARSIAL

193 Kondisi batas : (a) T dijaga pada nilai konstan (b) Transfer panas konveksi ke T o Batas Isolasi Gambar 8. Perpindahan Panas Konduksi Unstedy State pada Slab Satu Dimensi Jika pada waktu nol permukaan luar tiba-tiba terjadi pada temperatur konstan 0 o C, hal ni memberikan kondisi batas pada titik. T = 0 untuk t 0 (8..3) Kondisi batas lain adalah bahwa batas isolasi pada N + tidak ada konduksi panas. Sehingga : T N 0 untuk t 0 (8..4) x Sebagai catatan bahwa masalah ini sama dengan keadaan yang memiliki suatu slab dengan dua kali ketebalan terhadap temperatur awal kedua permukaan. Ketika konveksi dianggap hanya sebagai model transfer panas ke permukaan slab, neraca energi dapat dibuat di permukaan yang menghubungkan antara energi input dengan konveksi terhadap energi output dengan konduksi. Oleh karena itu kapanpun untuk transfer normal ke permukaan slab pad arah x adalah : T ht 0 T k untuk t 0 (8..5) x x0 PERSAMAAN DIFERENSIAL PARSIAL 83

194 dimana h adalah koefisien transfer panas konveksi dalam W/m.K dan T0 dalah temperatur embien. a) Selesaikan secara numeris persamaan (8..) dengan kondisi batas awal dan akhir persamaan (8..), (8..3) dan (8..4) untuk kasus dimana α = x 0-5 m /s dan permukaan slab dijaga konstan pada T = 0 C. Penyelesaian harus menggunkan numerical method of lines dengan N = 0 bagian. Plot temperature T, T3, T4, and T5 sebagai fungsi waktu sampai 6000 s. b) Ulangi bagian (a) untuk kasus dimana panas konveksi muncul pada permukaan slab dengan h = 5 W/m.K, dan k = 0 W/m.K. Penyelesaian: Untuk kasus (a) dengan N =0 dan dengan bagian panjang x = 0, m, pers (8..) dapat dituliskan menggunakan rumus central difference untuk turunan kedua sebagai: Tn T n Tn Tn untuk ( n 0) (8..6) t x Kondisi batas yang dinyatakan pers (8..4) dapat dituliskan menggunakan backward finite difference order dua sebagai : T 3T 4T T (8..7) t x yang dapat diselesaikan untuk T menghasilkan : 4T T 0 9 T 0 (8..8) 3 Penyelesaian kasus di atas dengan proram MATLAB disusun dan dijalankan sebagai berikut: function latihan_8a clear, clc, format short g, format compact tspan=[0:500:6000]; % Range independent variable Y0=[ ]; % nilai awal T-T0 [t,y]=ode45(@odefun,tspan,y0) 84 PERSAMAAN DIFERENSIAL PARSIAL

195 T=Y(:,); T3=Y(:,); T4=Y(:,3); T5=Y(:,4); T6=Y(:,5); T7=Y(:,6); T8=Y(:,7); T9=Y(:,8); T0=Y(:,9); plot(tspan,t,'-*r',tspan,t3,'-*b',tspan,t4,'-*m',tspan,t5,'- *g') title('grafik temperatur vs waktu'); xlabel('waktu, t (detik)'); ylabel('temperatur, oc '); legend('t','t3','t4','t5') % function dydt=odefun(t,y); T=Y(); T3=Y(); T4=Y(3); T5=Y(4); T6=Y(5); T7=Y(6); T8=Y(7); T9=Y(8); T0=Y(9); alpha =.0000; deltax =.; T= 0; T=(4.*T0 - T9)./ 3; dydt() = alpha / (deltax ^ ) * (T3 - ( * T) + T); dydt() = alpha / (deltax ^ ) * (T4 - ( * T3) + T); dydt(3) = alpha / (deltax ^ ) * (T5 - ( * T4) + T3); dydt(4) = alpha / (deltax ^ ) * (T6 - ( * T5) + T4); dydt(5) = alpha / (deltax ^ ) * (T7 - ( * T6) + T5); dydt(6) = alpha / (deltax ^ ) * (T8 - ( * T7) + T6); dydt(7) = alpha / (deltax ^ ) * (T9 - ( * T8) + T7); dydt(8) = alpha / (deltax ^ ) * (T0 - ( * T9) + T8); dydt(9) = alpha / (deltax ^ ) * (T - ( * T0) + T9); dydt=dydt'; PERSAMAAN DIFERENSIAL PARSIAL 85

196 grafik temperatur vs waktu T T3 T4 T5 70 temperatur, oc waktu, t (detik) Gambar 8.3 Profil Temperatur Konduksi Panas Unsteady State pada Slab Satu Dimensi Untuk kasus (b), neraca energi pada permukaan slab di atas dapat digunakan untuk menentukan hubungan antara temperatur permukaan slab T, temperatur ambien T0, dan temperatur pada titik-titik internal. Dalam kasus ini persaman second-order forward difference untuk turunan pertama dapat diterapkan pada permukaan : T T3 4T 3T x x0 x (8..9) dan disubtitusikan ke pers (8..5) menghasilkan : T3 4T 3T h T 0 T k x (8..0) Persamaan terdahulu dapat diselesaikan untuk memperoleh T : ht0x kt3 4kT T 3k hx (8..) 86 PERSAMAAN DIFERENSIAL PARSIAL

197 Penyelesaian kasus di atas dengan proram MATLAB disusun dan dijalankan sebagai berikut: function latihan_8b clear, clc, format short g, format compact tspan=[0:500:6000]; % Range for the independent variable Y0=[ ]; % nilai awal T-T0 [t Y] = ode45(@odefun,tspan,y0) T = Y(:,); T3 = Y(:,); T4 = Y(:,3); T5 = Y(:,4); T6 = Y(:,5); T7 = Y(:,6); T8 = Y(:,7); T9 = Y(:,8); T0 = Y(:,9); plot(tspan,t,'-or',tspan,t3,'-ob',tspan,t4,'-om',tspan,t5,'-og') title('grafik temperatur vs waktu'); xlabel('waktu, t (detik)'); ylabel('temperatur, oc '); legend('t','t3','t4','t5') % function dydt=odefun(t,y); T = Y(); T3 = Y(); T4 = Y(3); T5 = Y(4); T6 = Y(5); T7 = Y(6); T8 = Y(7); T9 = Y(8); T0 = Y(9); alpha =.0000; T0 = 0; h = 5;%W/m.K k = 0;% W/m.K deltax =.; T = (*h*t0*deltax-(k*t3+4*k*t))/(3*k+*h*deltax); T = (4*T0 - T9)/ 3; dydt() = alpha / (deltax ^ ) * (T3 - ( * T) + T); dydt() = alpha / (deltax ^ ) * (T4 - ( * T3) + T); dydt(3) = alpha / (deltax ^ ) * (T5 - ( * T4) + T3); dydt(4) = alpha / (deltax ^ ) * (T6 - ( * T5) + T4); PERSAMAAN DIFERENSIAL PARSIAL 87

198 dydt(5) = alpha / (deltax ^ ) * (T7 - ( * T6) + T5); dydt(6) = alpha / (deltax ^ ) * (T8 - ( * T7) + T6); dydt(7) = alpha / (deltax ^ ) * (T9 - ( * T8) + T7); dydt(8) = alpha / (deltax ^ ) * (T0 - ( * T9) + T8); dydt(9) = alpha / (deltax ^ ) * (T - ( * T0) + T9); dydt=dydt'; grafik temperatur vs waktu T T3 T4 T5 temperatur, oc waktu, t (detik) Gambar 8.4 Profil Temperatur Transfer Panas Unsteady State dengan Konveksi dalam Slab Satu Dimensi Contoh 8. Difusi Massa Unsteady state dan Reaksi pada Slab Gas CO pada tekanan satu atmosfer sedang diabsorpsi ke dalam larutan alkali yang mengandung katalis. Gas CO yang terlarut dinyatakan sebagai reaktan A yang mengalami difusi dan reaksi order satu, satu arah dalam larutan yang dinyatakan sebagai persamaan diferensial sebagai berikut. C A CA DAB k C A (8..) t x dimana CA adalah konsentrasi CO terlarut (kgmol/m 3 ), t adalah 88 PERSAMAAN DIFERENSIAL PARSIAL

199 waktu (detik), DAB adalah difusivitas CO dalam larutan alkali B (m /s), x adalah jarak dari atas larutan (m), dan k adalah konstanta laju reaksi order satu (/s). Tekanan parsial CO adalah PA0 =,03 x 0 5 Pa, dan kelarutan CO adalah S =,96 x 0-7 kg.mol/pa. Kondisi awal untuk persamaan (8..) diberikan dengan : CA = 0 pada awal waktu t = 0 untuk semua x (8..) dan kondisi batas adalah CA = CAS untuk t > 0 dan x = 0 (8..3) dan CA = 0 untuk t > 0 dan x = (8..4) Pada sistem tersebut, Geankoplis (993) menyediakan data berikut: CAS = PA0S = (,03 x 0 5 Pa)(,96 x 0-7 kg.mol/pa.) = 0,03 kg.mol/m 3 DAB =,5 x 0-9 m /s dan k = 35 s - a) Hitung konsentrasi A terlarut dalam larutan setelah 0,0 detik dengan menggunakan numerical methode of line dengan titik ( 0 interval dan interval antar node x 0-6 ). b) Hitung jumlah total A yang terserap sampai waktu 0,0 detik. Penyelesaian : Penyelesaian persoalan di atas dapat dilakukan dengan cara yang sama seperti Contoh 8.. Untuk 0 interval permukaan slab dapat dituliskan : C A DAB C C C k C untuk ( n 0) An An An An t x (8..5) Kondisi awal untuk persamaan (8..) dan (8..3) dapat dituliskan : PERSAMAAN DIFERENSIAL PARSIAL 89

200 dan CA = 0 pada t = 0 (8..6) CA = PA0S = (,03 x 0 5 Pa)(,96 x 0-7 kg.mol/pa.) = 0,03 kg.mol/m 3 untuk t > 0 (8..7) kondisi batas pada pers (8..4) dengan asumsi kondisi (a) menjadi: CA = 0 untuk t 0 (8..8) Penyelesaian kasus di atas dengan proram MATLAB disusun dan dijalankan seperti pada program function_latihan 8A: function latihan_8a clear, clc, format short g, format compact tspan=[0:0.0005:0.0]; % Range for the independent variable Y0=[ ]; % Nilai awal CA CA0 [t Y] = ode45(@odefun,tspan,y0) CA = Y(:,); CA3 = Y(:,); CA4 = Y(:,3); CA5 = Y(:,4); CA6 = Y(:,5); CA7 = Y(:,6); CA8 = Y(:,7); CA9 = Y(:,8); CA0 = Y(:,9); plot(tspan,ca,'-r',tspan,ca3,'-b',tspan,ca4,'-m',tspan,ca5,'-g') title('grafik konsentrasi A vs waktu'); xlabel('waktu, t (detik)'); ylabel('konsentrasi CA, kgm0l/m3 '); legend('ca','ca3','ca4','ca5') % function dcadt=odefun(t,y); CA = Y(); CA3 = Y(); CA4 = Y(3); CA5 = Y(4); CA6 = Y(5); CA7 = Y(6); CA8 = Y(7); CA9 = Y(8); CA0 = Y(9); DAB = ; k = 35; 90 PERSAMAAN DIFERENSIAL PARSIAL

201 if (t == 0) CA = 0; else CA =.03; end deltax =.00000; CA = 0; dcadt() = DAB / (deltax ^ ) * (CA3 - ( * CA) + CA)-k*CA; dcadt() = DAB / (deltax ^ ) * (CA4 - ( * CA3) + CA)-k*CA3; dcadt(3) = DAB / (deltax ^ ) * (CA5 - ( * CA4) + CA3)-k*CA4; dcadt(4) = DAB / (deltax ^ ) * (CA6 - ( * CA5) + CA4)-k*CA5; dcadt(5) = DAB / (deltax ^ ) * (CA7 - ( * CA6) + CA5)-k*CA6; dcadt(6) = DAB / (deltax ^ ) * (CA8 - ( * CA7) + CA6)-k*CA7; dcadt(7) = DAB / (deltax ^ ) * (CA9 - ( * CA8) + CA7)-k*CA8; dcadt(8) = DAB / (deltax ^ ) * (CA0 - ( * CA9) + CA8)-k*CA9; dcadt(9) = DAB / (deltax ^ ) * (CA - ( * CA0) + CA9)-k*CA0; dcadt=dcadt'; Grafik profil konsentrasi terhadap waktu ditunjukkan gambar berikut : CA CA3 CA4 CA5 grafik konsentrasi A vs waktu konsentrasi CA, kgm0l/m waktu, t (detik) Gambar 8.5 Profil difusi dan reaksi unsteady state dalam slab satu dimensi PERSAMAAN DIFERENSIAL PARSIAL 9

202 8.3 RANGKUMAN a. Persamaan Diferensial Parsial (PDP) merupakan persamaan diferensial dimana fungsi yang tidak diketahui (variabel terikat) adalah fungsi dari lebih dari satu variabel bebas. b. Penyelesaian persamaan diferensial parsial dapat diselesaikan dengan methode of line dan MATLAB menggunakan fungsi ode yang akan diperoleh nilai variabel terikat untuk setiap variabel bebas yang diberikan. 8.4 RUJUKAN a. Constantinidis dan Mustoufi.999. Numerical Methodes for Chemical Engineers with MATLAB Application. hal Prentice-Hall: Englewood Cfiffs. NJ. b. Finlayson, B.A Introduction to Chemical Engineering Computing. hal 5-3. John Wiley & Sons Inc. New Jersey c. Bird, R. B., Stewart, W. E., Lightfoot, E. N., Transport Phenomena, nd ed. Wiley: New York, 00 d. Geankoplis, C.J., 993. Transport Process and Unit Operation. Prentice-Gill. New Jerssey. 9 PERSAMAAN DIFERENSIAL PARSIAL

203 BAB 9 OPTIMASI 9. PENDAHULUAN Optimasi dapat diartikan sebagai suatu proses untuk mencari kondisi yang optimum, dalam arti paling menguntungkan. Optimasi bisa berupa maksimasi atau minimasi. Bila kita berhadapan dengan masalah keuntungan, keadaan optimum adalah yang memberikan keuntungan maksimum (maksimasi) sedang bila berhadapan dengan masalah pengeluaran pengorbanan keadaan optimum adalah yang memberikan pengeluaran/pengorbanan minimum (minimasi). Optimasi mencakup kegiatan yang dijalankan secara inovatif dan matematis. Optimasi inovatif bersifat strategis dalam arti mencari kondisi optimum dengan cara mencari prosesproses baru atau cara-cara baru atau flow diagram baru dan lain-lain, misalnya dengan mengubah proses ekstraksi dari cross current menjadi current current, atau mengubah cara pengambilan minyak atsiri dari stem distillation menjadi ekstraksi. Sebaliknya optimasi matematis bersifat taktis dalam arti prosesnya/caranya/flow diagramnya tetap sedang yang dicari adalah kondisi-kondisi operasi yang memberikan keadaan optimum secara matematis. 93

204 Dalam pelaksanaan optimasi, seringkali perhitungan alatalat dilakukan dengan cara kasar. Setelah kondisi optimum diketahui baru dilakukan perhitungan dengan alat-alat dijalankan dengan teliti, hitungan optimasinya menjadi sangat besar. Dalam kalkulus tersedia cara optimasi untuk satu perubah bebas maupun untuk perubah banyak. Yang diperlukan adalah turunan diferensialnya. Untuk optimasi dengan satu variabel y f (x) (9.) Maka harga y maksimum atau minimum terjadi pada : y 0 (9.) x y Dimana apabila 0 terjadi y maksimum sedang bila x y 0 terjadi y minimum. x Untuk optimasi dengan banyak perubah: y f x x, x,, x ) (9.3) (, 3 n Maka y maksimum atau minimum terjadi pada: y y y 0 ; 0 ;... ; 0 (9.4) x x x n Ada lagi suatu cara khusus untuk optimasi, yaitu dengan cara Langrange. Jika dijumpai maksimasi atau minimasi y f ( x, x, x3,, xn ) (9.5) sedang misal antar variabel bebas ada hubungan matematis g f x x, x,, x ) (9.6) g (, 3 n f ( x, x, x3,, xn ) (9.7) 94 OPTIMASI

205 maka keadaan optimum terjadi pada: y x y x y x g g 0 (9.8) x x g g 0 (9.9) x x n g g 0 (9.0) x x n n dengan λ dan β berupa konstanta. Dalam optimasi variabel yang akan dimaksimumkan atau diminimumkan (y) disebut objective function sedang variabel x, x,..., xn disebut variabel bebasnya atau design variable. Meskipun optimasi dapat diselesaikan secara analitis, namun sebagian besar praktek optimasi memerlukan metode numeris, penyelesaian dengan komputer. 9. TOOLBOX OPTIMASI DALAM MATLAB Toolbox optimasi harus diinstal dalam komputer sebagai tambahan MATLAB sebelum digunakan. Tabel 9. menunjukaan beberapa fungsi yang tersedia dalam toolbox optimasi. Sebagian besar routine optimasi ini memerlukan M-file (tersimpan dalam current directory) yang mengandung definisi persoalan yang akan diselesaikan, beberapa contoh file akan ditampilkan dan didiskusikan nanti. Default parameter optimasi digunakan secara luas, namun hal itu bisa dimodifikasi melalui suatu perintah options yang tersedia dalam program. Sintaks perintah suatu fungsi optimasi secara umum dalam bentuk : [x, FunValue] = fminx( ObjFun,..., options) OPTIMASI 95

206 Pernyataan di sisi kiri menyatakan kuantitas yang dijalankan oleh fuction. Argumen output ini dijelaskan Table 9.. Sisi kanan, fminx menyatakan salah satu fungsi yang diberikan Tabel 9.. Dapat terdiri beberapa argumen untu fungsi fminx, seperti nilai awal variabel, batas atas dan batas atas variabel, nama M-file yang mengandung fungsi dan gradien, lagoritma optimasi yang berkaitan dengan data, dan lainnya. Kegunaan fungsi ini dicontohkan dalam bagian berikutnya untuk beberapa tipe soal dan kondisi. Tabel 9. Toolbox Fungsi Optimasi Type of problem Formulation Fuction One variable Find x ϵ [xl, xu] to minimize f(x) fminbnd unconstrain minimization Uncontrain minimization Find x to minimize f(x) fminunc fminsearch Constrain minimization Find x to minimize f(x) Subject to nx = e, Ax b hj =0, j = to p g i =0, i = to m fmincon Linier Programming Quadratic programming 96 OPTIMASI xil xi xiu Find x to minimize f(x)=c T x Subject to Nx = e, Ax b Find x to minimize f(x)=c T x + ½ x T Hx Subject to Nx = e, Ax b Tabel 9. Argumen Fungsi Optimasi Argument x FunValue Exitflag Output linprog quadprog Description The solution vector or matrix found by optimization function. If exitflag > 0 then x is a solution, otherwise x is the latest value from optimization routine Value of the objective fundtion, ObjFun, at the solution x The exit condition for optimization function. If ExitFlag is positive, then the optimization converged to a solution x. If ExitFlag is negative, the the optimization routine did not converge to a solution The outputvector contain several pieces of information about the optimization process. It prvides the number of functions (output iteration) and the name of the algorithm used to solve the problem (output algorithm), etc.

207 9.3 OPTIMASI TANPA KONSTRAIN (UNCONSTRAINT OPTIMIZATION) 9.3. Optimasi Satu variabel Pada bagian ini akan dijelaskan teknik untuk menemukan nilai maksimum atau minimum suatu fungsi variabel tunggal f(x). Suatu gambar yang berguna dalam kaitan ini adalah roller coaster satu variabel seperti yang ditunjukkan Gambar 9.. Sebagaimana lokasi akar persamaan yang rumit dengan fakta bahwa beberapa akar persamaan dapat terjadi untuk fungsi tunggal, hal yang sama untuk local optimum dan global optimum keduanya dapat terjadi dalam optimasi Global optimum menyatakan penyelesaian yang sangat baik. Local optimum, meskipun tidak semua sangat baik, lebih baik daripada nilai terdekatnya (Chapra, 0). Kasus yang termasuk dalam local optimum disebut multimodal. Dalam kasus seperti itu, kita hampir akan selalu tertarik dalam menemukan global optimum. Tambahan pula, kita harus difokuskan pada kesalahan hasil nilai lokal untuk global optimum. f(x) Global maximum Local maximum x Global minimum Local minimum Gambar 9.. Suatu fungsi yang secara asimtot mendekati nol pada plus dan minus dan memiliki dua titik maksimum dan minimum. OPTIMASI 97

208 Pertama kita ilustrasikan penggunaan fungsi fminbnd untuk minimasi suatu fungsi varibel tunggal f(x) dengan batas pada x sebagai xl x xu. Contoh 9. Minimasi unconstraint dengan satu variabel Tentukan nilai x untuk meminimalkan f(x) = - 4x + e x, -0 x 0. Penyelesaian. Untuk menyelesaiakn soal, kita tuliskan dalam m-file yang mencari nilai dari fungsi objektif. function optm clc, clear Lb=-0;Ub=0; [x,fval,exitflag] = fminbnd(@objfun,lb,ub) % function f = objfun(x) f = -4*x+exp(x); The output from the function is given as : x =.3863 fval = exitflag = output = iterations: funccount: 4 algorithm: [x33 char] message: [x96 char] 9.3. Optimasi Multi variabel Selain fungsi satu variabel, optimasi juga berlaku untuk fungsi multivariabel. Untuk kasus dua variabel ditunjukkan 98 OPTIMASI

209 Gambar 9.. Contoh berikut menunjukkan kemampuan MATLAB untuk menvisualisasikan gambar fungsi dua variabel. Contoh 9. Minimasi unconstraint degan dua variabel Gunakan kemempuan grafik MATLAB untuk menampilkan fungsi berikut dan secara visual estimasi nilai minimumnya pada x 0 and 0 x 3: f (x, x) = + x x + x + xx + x Penyelesaian. Berikut script untuk membuat plot contour dan mesh dari fungsi di atas. x=linspace(-,0,40);y=linspace(0,3,40); [X,Y] = meshgrid(x,y); Z=+X-Y+*X.^+*X.*Y+Y.^; subplot(,,); cs=contour(x,y,z);clabel(cs); xlabel('x_');ylabel('x_'); title('(a) Contour plot');grid; subplot(,,); cs=surfc(x,y,z); zmin=floor(min(z)); zmax=ceil(max(z)); xlabel('x_');ylabel('x_');zlabel('f(x_,x_ )'); title('(b) Mesh plot'); OPTIMASI 99

210 3 (a) Contour plot (b) Mesh plot x.5 f(x,x ) x Gambar 9.. Grafik fungsi dua variabel dengan (a) Contour dan (b) mesh 0 3 x x 0 Seperti ditampilkan pada gambar di atas, kedua plot mengindikasikan bahwa fungsi memiliki nilai minimum f(x, x) = 0 sampai terletak pada sekitar x = and x =.5. Teknik untuk optimasi multivariabel tanpa konstrain dapat diklasifikasikan dalam beberapa cara yang dibagi berdasarkan kebutuhannya untuk menggunakan penurunan. Pendekatan yang memerlukan penurunan disebut metode gradient atau descent. Sementara pendekatan yang tidak memerlukan evaluasi penuruan disebut nongradient atau direct. MATLAB standar memiliki fungsi fminsearch dan fminunc yang dapat digunakan untuk menentukan nilai minimum fungsi multivariabel tanpa konstrain. Fungsi fminsearch mengunakan metode pencarian Simplex Nelder- Mead, yang merupakan metode direct yang hanya menggunakan nilai fungsi (tidak membutuhkan penurunan) atau tidak memerlukan nilai numeris atau gradien analisis fungsi obyektif. Sementara itu, fungsi fminunc memerlukan iniformasi 00 OPTIMASI

211 dan dengan option LargeScale diatur ke off, ini menngunakan metode BGF quasi newton dengan prosedur pencarian kombinasi quadratic dan cubik line. Formula DFP yang mendekati invers matrik Hessian dapat dipilih dengan mengatur pilihan Hessupdate menjadi steepdesc. Fminsearch umumnya kurang efisien daripada fminunc. Namun demikian, ini bisa menjadi efektif untuk persoalan yang evaluasi gradiennya mahal atau tidak mungkin (Arora, 0). Untuk menyelesaikan persoalan, kita menuliskan suatu m- file yang mencari nilai fungsi obyektif. Selanjutnya, fungsi minimasi tanpa konstrain fminsearch atau fminunc dijalankan dengan mengeksekusi M-file lainnya. Pernyataan sederhana sintaknya adalah : [xmin, fval] = fminsearch(function,x0) [xmin, fval] = fminunc(function,x0) Dimana xmin dan fval adalah lokasi dan nilai minimum, function adalah nama fungsi yang dievaluasi, dan x0 adalah tebakan awal. x0 dapat berupa scalar, vector atau suatu matrik. Berikut contoh sederhana penggunaan fminserach dan fminunc untuk menentukan nilai minimum dari grafik yang ditunjukkan Gambar 9. function optmulti clc, clear [x,fval] = fminsearch(@objfun,[-0.5,0.5]) % function f = objfun(x) f = +x()-x()+*x()^+*x()*x()+x()^; OPTIMASI 0

212 Hasil eksekusi ditampikan dibawah: x = fval = exitflag = output = iterations: 40 funccount: 76 algorithm: [x33 char] message: [x96 char] Untuk script fminunc ditampilkan dibawah: function optmulti clc, clear [x,fval,exitflag] = fminunc(@objfun,[- 0.5,0.5]) % function f = objfun(x) f = +x()-x()+*x()^+*x()*x()+x()^; Nilai variabel ditampikan dibawah: x = fval = exitflag = 0 OPTIMASI

213 output = iterations: 3 funccount: 5 stepsize: firstorderopt:.490e-008 algorithm: [x38 char] message: [x438 char] 9.4 OPTIMASI DENGAN KONSTRAIN (CONSTRAINT OPTIMIZATION) Persoalan optimasi dengan konstrain umum diselesaikan dengan fungsi fmincon seperti didefinsikan pada tabel 9.. Prosedur untuk menjalankan fungsi ini sama dengan soal tanpa konstrain tetapi pada fungsi ini harus disediakan M- file yang mengandung fungsi konstrain. Jika ekspresi gradien analitis diprogram dalam fungsi objektif dan M-file fungsi konstrain, maka fungsi ini dinyatakan melalui perintah option, jika tidak fmincon akan menggunakan perhitungan gradien numeris berdasarkan metode finite difference. fmincon menyelesaikan persoalan minimasi dalam bentuk : c( x) 0 ceq ( x) 0 min f ( x) A x b x Aeq x beq lb x ub, x, b, beq, lb, dan ub adalah vektor, A dan Aeq adalah matriks, c(x) dan ceq(x) adalah fungsi yang menjalankan vektor dan f(x) adalah fungsi yang menjalankan skalar. f(x), c(x), dan ceq(x) dapat berupa fungsi nonlinier. fmincon menerapkan empat algoritma yang berbeda, yaitu : OPTIMASI 03

214 interior point, SQP, activeset, dan trust region reflective. Memilih salah satunya melalui option Algorithm: sebagai contoh memilih SQP, atur options = optimset('algorithm','sqp'), dan selanjutnya masukan option ke fmincon. Penulisan syntax : x = fmincon(fun,x0,a,b) x = fmincon(fun,x0,a,b,aeq,beq) x = fmincon(fun,x0,a,b,aeq,beq,lb,ub) x = fmincon(fun,x0,a,b,aeq,beq,lb,ub,nonlcon) Deskripsi : f Fungsi yang diminimasi. fun is adalah fungsi yang menerima vektor x dan skalar, f adalah fungsi objektif yang dievaluasi pada x. x0 Nilai awal x A matrix for linear inequality constraints b vector for linear inequality constraints Aeq matrix for linear equality constraints beq vector for linear equality constraints c(x) nonlinear inequalities constrains ceq(x) nonlinear equalities constraints lb vector of lower bounds ub vector of upper bounds nonlcon nonlinear constraint function Untuk memperjelas pengunaan fungsi ini, diberikan contoh berikut: Contoh 9.3 Optimasi dengan linier inequality constraint Selesaikan soal minimasi berikut: min f ( x) x x x (9.3.) x 3 04 OPTIMASI

215 Terhadap konstrain: 0 x +.x + x3 7 (9.3.) dengan nilai tebakan awal x adalah (0; 0; 0) Penyelesaian: Pada soal di atas konstrain hanya berupa linier inequality, sementara konstrain lain tidak ada. Untuk menentukan nilai minimasi pada fungsi di atas dapat digunakan syntax yang paling sederhana. Penulisan script: function optconlin clc, clear x0=[0 0 0]; %nilai tebakan awal x() dan x() A=[- - -;... ] %matriks linier inequality constrain b=[0;7] %vektor linier inequality constrain %file eksekusi optimasi [x,fval] = fmincon(@objfun,x0,a,b) % function f = objfun(x) %objective function f = -x()*x()*x(3) Eksekusi program menghasilkan output: lower upper ineqlin ineqnonlin x = fval = e+003 OPTIMASI 05

216 Contoh 9.4 Optimasi dengan nonlinier inequality constraint dan bound constraint Selesaikan soal minimasi berikut: x min f ( x) e (4x x 4xx x x ) (9.4.) Terhadap konstrain: x.x x. - x -,5 (9.4.) x.x -0 (9.4.3) 0 x 0 (9.4.4) Penyelesaian: Karena kedua konstrainnya adalah nonlinier, kita tidak dapat melewati konstrain pada fmincon dalam satu file perintah. Sehingga kita dapat membuat file kedua, confun.m yang mencari nila kedua konstrain pada x saat ini dalam vektor c. Optimasi constrain fmincon selanjutnya dieksekusi. Karena fmincon meminta konstrain ditulis dalam bentuk c(x) 0, konstrain harus ditulis dalam bentuk : x.x x. - x +,5 0 (9.4.5) -x.x (9.4.6) Penulisan syntax M-file untuk soal di atas adalah : function optimcon clc, clear x0 = [- ]; %nilai tebakan awal x() dan x() A=[];b=[]; %linier inequality constrain Aeq=[];beq=[]; %linier equality constraints lb=[0 0];ub=[]; %lower dan upper bound options = optimset('algorithm','activeset'); %memilih algoritma [x,fval]=fmincon(@objfun,x0,a,b,aeq,beq,lb,u b,@confun,options) % function [c, ceq] = confun(x) 06 OPTIMASI

217 % Nonlinear inequality constraints c = [.5 + x()*x() - x() - x(); -x()*x() - 0]; % Nonlinear equality constraints ceq =[]; % function f = objfun(x) %onjective function f = exp(x())*(4*x()^ + *x()^ + 4*x()*x() + *x()+); Ouput program adalah : Active inequalities (to within options.tolcon = e-006): lower upper ineqlin ineqnonlin x = fval = Contoh 9.5 Optimasi dengan nonlinier inequality constraint, bound constraint dan gradients Selesaikan soal minimasi berikut: Minimasi f(x) = (x-0) 3 + (x 0) 3 (9.5.) Terhadap konstrain: g(x) = 00 - (x - 5) 3 - (x 5) 3 0 (9.5.) g(x) = 00 - (x - 5) 3 - (x 5) 3 0 (9.5.3) 3 x 00, 0 x 00 (9.5.4) OPTIMASI 07

218 Penyelesaian: Penyelesaian optimum untuk soal diketahui x = 4,095; 0,8496) dan f(x) = -696,9 (Arora, 98). M-file untuk soal ini diberikan di bawah: function optconnlingrad clc, clear % Set bounds for variables Lb = [3; 0]; Ub = [00; 00]; % Set initial design x0 = [ ]; % Invoke fmincon; four [ ] indicate no linear constraints in the problem options = optimset('algorithm','interiorpoint',... 'Display','iter','GradObj','on','GradConstr','o n') [x,funval, ExitFlag, Output] =... fmincon(@objandgrad9_5,x0,[],[],[],[],lb,ub,@co nstandgrad9_5) % %M-File for Objective Function and Gradient Evaluations function [f, gf] = ObjAndGrad9_5(x) % Re-name design variables x x = x(); x = x(); % Evaluate objective function f = (x-0)^3 + (x-0)^3; % Compute gradient of objective function if nargout > gf(,) = 3*(x-0)^; gf(,) = 3*(x-0)^; end % %M-File Constraint Functions and Their Gradients Evaluation function [g, h, gg, gh] = ConstAndGrad9_5(x) %Re-name design variables x = x(); x = x(); 08 OPTIMASI

219 % Inequality constraints g() = 00-(x-5)^-(x-5)^; g() = (x-6)^ + (x-5)^; % Equality constraints (none) h = []; % Gradients of constraints if nargout > gg(,) = -*(x-5); gg(,) = -*(x-5); gg(,) = *(x-6); gg(,) = *(x-5); gh = []; end Tabel Iterasi Output MATLAB dan hasil optimasi: First-order Norm of Iter F-count f(x) Feasibility optimality step e e e e e+00.3e e e+003.8e+00.e e e e e+00.37e e e e e e+003.8e e e e e e-00.70e e e-00.00e e e e-00.00e-00.04e e e-00.97e e e e-00.96e e e e e e e e e e e e e e e e e e e e e-00.3e e e e e e e e e-006 Local minimum found that satisfies the constraints. OPTIMASI 09

220 Optimization completed because the objective function is non-decreasing in feasible directions, to within the default value of the function tolerance,and constraints were satisfied to within the default value of the constraint tolerance. <stopping criteria details> x = FunVal = e+003 ExitFlag = Output = iterations: 7 funccount: 9 constrviolation: [x double] stepsize: [x double] algorithm: [x4 char] firstorderopt: [x double] cgiterations: 0 message: [x78 char] Interpretasi hasil optimasi : Berikut penjelasan dari tabel yang ditampilkan dari hasil optimasi: Kolom Pertama, kata Iter, adalah jumlah iterasi dari 0 sampai 9, Fmincon melakukan 7 iterasi untuk konvergen. Kolom kedua, kata F-count, melaporkan jumlah waktu kumulatif dari fungsi yang dievaluasi. Baris akhir menunjukkan F-count 9, menandakan bahwa fmincon mengevaluasi fungsi 9 kali dalam proses 0 OPTIMASI

221 untuk menemukan nilai minimum. Kolom ketiga, tanda f(x), menampilkan nilai objective function. Nilai final, e+003 adalah nilia minimum yang dilaporkan dalam optimasi dan dimunculkan pada pesan yang keluar dalam command window. Kolom keepat, Feasibility menjelaskan bahwa algoritma optimasi menemukan nilai parameter yang sesuai dengan semua konstrain terhadap toleransi tertentu namun tidak meminimalkan fungsi obyektif. Kolom kelima, First-order optimality adalah ukuran seberapa dekat suatu titik x terhadap nilai optimal. Kolom keenam, Norm of step, menjelaskan ukuran langkah saat ini (size is the Euclidean norm, or -norm) Pesan di bawah kolom menjelaskan bahwa pencarian untuk nilai optimum konstrain selesai karena turunan fungsi obyektif mendekati nol pada arah yang diizinkan oleh konstrain, dan konstrain tersebut sangat sesuai. 9.5 PEMROGRAMAN LINIER (LINIER PROGRAMMING) Persoalan optimasi yang memiliki fungsi objektif linier dan fungsi kontrain linier disebut program linier (Linier Programming, LP). Persoalan-persoalan dalam kelompok pemrograman linier adalah yang terpenting karena tiga alasan yang berbeda : ) Ini adalah salah satu ilustrasi kajian yang terpenting bagaimana ide dan algoritma berubah dari analisis klasik atau perhitungan manual menjadi program komputer modern OPTIMASI

222 ) Pemrograman linier mencakup persoalan yang luas. 3) Banyak algoritma diterapkan terhadap persoalan nonlinier yang mengeksploitasi penyelesaian perograman linier. Beberapa aplikasi metode program linier adalah untuk () penugasan, () pencampuran, (3) distribusi, (4) penentuan jaringan aliran, (5) penjadwalan, (6) transportasi dan (7) jadwal perjalanan penjualan. Aplikasi pada industri pertama kali dari program linier dibuat dalam fraksionasi minyak. Secara umum, fraksionasi minyak memiliki pilihan pembelian minyak mentah dari beberapa sumber yang berbeda dengan komposisi yang berbeda dan pada harga yang berbeda. Hal ini dapat membuat produk yang berbeda, seperti bahan bakar pesawat terbang, bahan bakar diesel, gasoline dalam jumlah yang bervariasi. Kemungkinan kendala muncul karena keterbatasan pada jumlah minyak mentah yang tersedia dari sumber utama, kapasitas fraksionasi untuk menghasilkan produk tertentu dan seterusnya. Kombinasi antara minyak mentah yang dibeli dan produk yang dihasilkan dicari yang menghasilkan keuntungan maksimum. Masalah umum program linier dapat dinyatakan dalam bentuk standar berikut : Bentuk Scalar : Minimasi f ( x, x,..., xn ) cx cx cnxn (9.4.) Terhadap konstrain : a x a x a x (9.4.) a n n b x ax an xn b (9.4.) OPTIMASI

223 3 OPTIMASI n m n mn m m x x x b x a x a x a (9.4.) m n mn m m b x a x a x a (9.4.) Dimana cj, bj, dan aij (i =,,..., m; j =,,..., n) adalah konstanta yang diketahui, dan xj adalah variabel desain. Bentuk Matriks : X c (X) Minimasi T f (9.4.) Terhadap konstrain 0 X b ax (9.4.) dimana : x n x x X, b m b b b, c n c c c mn m m n n a a a a a a a a a c Karakteristik persoalan program linier yang dinyatakan dalam bentuk standar adalah ;. Fungsi obyektif adalah tipe minimasi. Semua kontrain adalah tipe persamaan

224 3. Semua variabel bebas adalah non negatif Persoalan optimasi program linier diselesaikan dengan MATLAB menggunakan fungsi linprog. linprog menyelesaikan persoalan minimasi dalam bentuk : A x b min f T ( x) Aeq x beq x lb x ub, f,x, b, beq, lb, dan ub adalah vektor, A dan Aeq adalah matriks. Syntax program : x = linprog(f,a,b) x = linprog(f,a,b,aeq,beq) x = linprog(f,a,b,aeq,beq,lb,ub) x = linprog(f,a,b,aeq,beq,lb,ub,x0) x = linprog(f,a,b,aeq,beq,lb,ub,x0,options) Deskripsi : f Fungsi yang diminimasi. fun is adalah fungsi yang menerima vektor x dan skalar, f adalah fungsi objektif yang dievaluasi pada x. x0 Nilai awal x A matrix for linear inequality constraints b vector for linear inequality constraints Aeq matrix for linear equality constraints beq vector for linear equality constraints lb vector of lower bounds ub vector of upper bounds options struktur option dibuat dengan optimset Untuk memperjelas pengunaan fungsi ini, diberikan contoh berikut: 4 OPTIMASI

225 Contoh 9.6. Tentukan nilai minimum untuk persoalan program linier berikut dengan MATLAB. Minimasi f = - x x x3 Terhadap konstrain : x + x x3 x - x + 5 x3 6 4x + x + x3 6 x3 0; i =,,3 Penyelesaian : Pertama, ekspresi fungsi objektif dalam bentuk f T x dan identifikasi vektor x dan f sebagai : x x x dan f x 3 Eksperi konstrain dalam bentuk Ax b dan identifikasi matriks A dalam bentuk vektor b sebagai : c 5 dan b Kedua, Gunakan perintah untuk mengeksekusi program linier menggunakan metode simplex yang ditunjukkan script berikut: function contoh94_ clc clear all f=[-;-;-]; A=[ -; - 5;4 ]; b=[;6;6]; lb=zeros(3,); Aeq=[]; beq=[]; OPTIMASI 5

226 options = optimset('largescale','off','simplex', 'on'); [x,fval,exitflag,output] = linprog(f,a,b,aeq,beq,lb,[],[],... optimset('display','iter')) Hasil simulasi : Residuals: Primal Dual Duality Total Infeas Infeas Gap Rel A*x-b A'*y+z-f x'*z Error Iter 0:.03e e e e+00 Iter : 4.e+00.e-06.78e e+00 Iter :.6e-03.90e-05.85e e-00 Iter 3:.78e-05.80e e e-003 Iter 4: 7.48e-04.0e-05.99e e-007 Iter 5:.74e e-06.0e-0.98e-03 Optimization terminated. x = fval = exitflag = output = iterations: 5 algorithm: [x7 char] cgiterations: 0 message: [x4 char] constrviolation: 0 firstorderopt: e-03 6 OPTIMASI

227 9.6 APLIKASI MATLAB DALAM OPTIMASI TEKNIK KIMIA Pada bagian ini akan dibahas beberapa contoh penggunaan MATLAB untuk menyelesaikan persoalan dalam bidang teknik kimia. Contoh Optimasi Reaktor Batch Reaktor batch beroperasi secara adiabatis untuk reaksi fasa cair order : A B Dengan persamaan kecepatan reaksi : r k (9.7.) A C A Dengan E k Aexp (9.7.) RT Perubahan entalpi reaksi (AHR), volum reaktor (VR) dan kapasitas panas larutan (Cp) dianggap tetap. Waktu untuk bongkar pasang, tp. Umpan masuk pada suhu Tf, dan konsentrasi A = CA0. Reaksi dihentikan pada saat konversi XR. Konversi A mula-mula XA0. Ingin dicari konversi A yang memberikan kecepatan produksi B tiap waktu maksimum. Diketahui: VR = L; CAO = gmol/l; ρ = kg/l; Cp =,0 kcal/kg/k; A =,E-07 L/gmol/menit; E = 4 kcal/gmol; AHR = - 6 kcal/gmol; R = 0,00987 kcal/gmol/k ; Tf = 350 K; tp = 0 menit; XRo = 0. OPTIMASI 7

228 Penyelesaian : Dari Neraca mol A diperoleh persamaan (Sediawan dan Prasetya, 997): t C X out R X in k ( x A0 A ) dx (9.7.3) Dari neraca energi diperoleh persamaan : T T f C A0 H C p R x A (9.7.4) Produksi tiap batch = VRC A0 xr P (9.7.4) siklus batch Kecepatan produksi B adalah : VRC A0 xr B (maksimum) (9.7.4) t R t P Maksimasi kecepatan produksi B = f (XR) dengan cara optimasi satu variabel. function contoh9_7 clc,clear global Cao Cao = ; %gmol/l xopt = fminunc(@optbatch,0.,0.99); B = latihan8(xopt); tr = (./Cao).*quad(@sub_optbatch,0,xopt); disp( 'HASIL PERHITUNGAN ') disp(' ') disp(['x optimum = ' numstr(xopt)]) disp(['b maksimum = ' numstr(b),' gmol/menit']) 8 OPTIMASI

229 disp(['tr opt = ' numstr(tr),' menit']) disp(' ') % function B=optbatch(x) global Cao tp = 0; %menit xo = 0; %konversi awal x = 0.7; Vr = 0000; %L tr = (./Cao).*quad(@sub_optbatch,xo,x); B = (Vr.*Cao.*x)./(tr+tp); % function y=sub_ optbatch(x) global Cao Tf = 350; %K rho = ; %kg/l Cp = ; %kcal/kg/k A = e7; %L/gmol/menit delhr = -6; %kcal/gmol R = ; %kcal/gmol/k E = 4; %kcal/gmol T = Tf -((Cao.*delHr.*x)./(rho.*Cp)); k = A.*exp(-E./(R.*T)); y =./(k.*(-x).^); HASIL PERHITUNGAN x optimum = 0. B maksimum = gmol/menit tr opt = menit Contoh 9.8 Optimasi Reaksi Isotermis Reaksi fasa cair bolak-balik eksotermis : A B Dijalankan dalam reaktor batch adiabatis. Volume campuran dapat dianggap tetap. Suhu awal reaktor To. Kecepatan OPTIMASI 9

230 reaksi mengikuti persamaan: C B ra k C A (9.8.) K Dengan : E k Aexp (9.8.) RT K α exp (9.8.3) T Panas reaksi λ = kal/gmol, densitas campuran ρ = 00 g/l, kapasitas panas campuran Cp =, kal/g/k, konsentrasi mula-mula CA0 = gmol/l, konstanta tumbukan A = 5, energi aktivasi E = 0.000, konstanta gas universal R =,987; konstanta α = 750 dan β = Koversi awal Xo = 0 dan konversi akhir yang diinginkan XN = 0,3. Ingin dicari suhu awal yang memberikan waktu reaksi minimum. Penyelesaian : Dari Neraca mol A diperoleh persamaan : t X N X k ( x 0 ) A Kx dx Dari neraca energi diperoleh persamaan : C A0H R T T x A C 0 ( x0 p ) (9.8.4) (9.8.5) Nilai T0 dicari dengan meminimasikan t = f(t0), dan t dihitung dengan integrasi. 0 OPTIMASI

231 function soal98 clc to=latihan0(tsol); disp( 'HASIL PERHITUNGAN ') disp(' ') disp(['suhu optimum,t = ',numstr(tsol),' K']) disp(['waktu optimum,t = ',numstr(to),' menit']) % function t=latihan98(to) integral = quad(@sub_latihan98,0,0.3,[],[],to); t = integral; % function y=sub_latihan98(x,to) clc E=0000;A=5;R=.987;alpha=750;beta=-5000; lambda =-80000;rho=00;Cp=.;Cao=; T = To+((lambda.*Cao.*x)./(rho.*Cp)); k = A.*exp(-E./(R.*T)); K = alpha.*exp(beta./t); y =./(k.*((-x)-k.*x)); HASIL PERHITUNGAN Suhu optimum,t = K Waktu optimum,t = menit Contoh 9.9 Optimasi Temperatur reaksi multiple Suatu reaksi berurutan (series) fasa cair order. k A B C dijalankan dalam sebuah reaktor batch yang beroperasi secara isotermis. Harga-harga konstanta k dan k mengikuti k OPTIMASI

232 persamaan : E k A exp (9.9.) RT E k A exp (9.9.) RT Ingin dicari suhu optimum yang memberikan CB yang maksimum untuk waktu τ tertentu. Gunakan MATLAB untum memaksimasi CB = f(t) serta metode Runge Kutta untuk menyelesaikan persamaan-persamaan diferensial yang terbentuk. Data A = 0,45 (L/menit), A = 0,05 (L/menit), E = 67,8; E = 580,9 (kal/gmol); CA0=,0 gmol/l, τ = 60 menit, R =,987 cal/gmol/k, Kisaran suhu : K. Penyelesaian : Neraca mol masing komponen adalah : dc dt A k C (9.9.3) A dc dt B k k C (9.9.4) C A B dcc k CB (9.9.5) dt Script program untuk soal di atas adalah sebagai berikut: OPTIMASI function soal99 clc Topt=fminbnd(@latihan99,300,500); disp( 'HASIL PERHITUNGAN ') disp(' ') disp(['t optimum = ' numstr(topt)]) disp(' ')

233 % function CB=latihan99(T) Y0=[ 0 0]; tspan=[0:5:00]; [t Y]=ode45(@sub_latihan99,tspan,Y0,[],[],T) [t Y]; plot(t,y(:,),t,y(:,),t,y(:,3)) xlabel('waktu (menit)'); ylabel('konsentrasi (gmol/l)'); legend('ca','cb','cc') CAt=Y(end,); CBt=Y(end,); Cct=Y(end,3); CB=0-Y(end,); % function dcdt=sub_latihan99(t,y,flag,t) CA=Y();CB=Y();CC=Y(3); A=0.45; %l/min A=0.05; %l/min E=67; %cal/gmol E=580; %cal/gmol %gmol/l R=.987; %cal/gmol/k k=a.*exp(-e./(r.*t)); k=a.*exp(-e./(r.*t)); dcdt()=-k.*ca; dcdt()=k.*ca-k.*cb; dcdt(3)=k.*cb; dcdt=dcdt'; C = OPTIMASI 3

234 HASIL PERHITUNGAN T optimum = Gambar 9.3. Grafik perubahan konsentrasi terhadap waktu dengan 4 OPTIMASI

235 Contoh 9.0 Optimasi Suhu Masuk Reaktor Adiabatis Bolak-Balik Reaksi fasa gas bolak-balik eksotermis : SO +O SO3 dijalankan dalam reaktor tabung adiabatis dengan bantuan katalisator padat berbentuk butir-butir. Aliran gas dianggap plug-flow. Konversi SO keluar reaktor diharapkan X out : 0,64. Karena reaktor bekerja adiabatis, sedangkan reaksinya endotermis, maka sambil berjalan sepanjang reaktor suhu gas akan naik. Pada reaksi bolak-balik eksotermis, suhu perlu dioptimumkan, karena jika suhu terlalu rendah maka kecepatan reaksi akan sangat lambat; sebaliknya, jika suhu terlalu tinggi, kesetimbangan reaksi akan bergeser ke kiri (prinsip kesetimbangan). Karena reaktor adiabatis, yang bisa diatur hanyalah suhu umpan reaktor (T o). Jadi dalam hal ini ingin ditentukan suhu optimum umpan reaktor, agar untuk mencapai konversi SO, Xout: 0,64, diperlukan jumlah katalisator (W) yang minimum. Kecepatan reaksi mengikuti persamaan (Froment and Bischoff, 990) : P SO3 kpo P SO / PSO PO K p r (9.0.).44 K P K P SO 3 SO k exp,6 T (9. 0.) 8.69 K exp 9,953 T (9. 0.3) OPTIMASI 5

236 6 OPTIMASI K3 exp 7,745 T (9. 0.4). 300 K p exp 0,68 T (9. 0.5) Umpan reaktor berjumlah kg/jam dengan kompisisi mol SO = 7,8% O, = 0,8% dan N = 8,4%. Tekanan reaktor dianggap tetap atm. Penyelesaian : Berdasarkan Sediawan dan Prasetya (997) diperoleh beberapa persamaan berikut : Dari neraca massa diperoleh persamaan : x0,64 W 37,3 dx r x0 (9. 0.6) Tekanan parsial komponen : x P SO,8 0,5x P t (9. 0.7),3846 0,5x P O,8 0,5x P t (9. 0.8) x P SO,8 0,5x P t 3 (9. 0.9) Dari neraca energi diperoleh persamaan : T T 0 7x (9. 0.0) Script program untuk penyelesaian soal di atas diberikan berikut: function contoh9_9 clc,clear [Topt,f]=fminbnd(@optimasisuhu,600,750); disp( 'HASIL PERHITUNGAN ')

237 disp(' ') disp(['t optimum = ' numstr(topt),' K']) disp(['berat katalis = ' numstr(f),' kg']) disp(' ') % function w=optimasisuhu(to) w=37.3*quad(@sub_optimasisuhu,0,0.64,[],[],to); % function y=sub_optimasisuhu(x,to) T=To+4.7.*x; PSO=(-x)./( *x); PO=(.3846-x)./( *x); PSO3=x./( *x); k=exp(.6-(5473./t)); K=exp( (869./T)); K3=exp( (5956./T)); Kp=exp(-0.68+(300./T)); r=k.*po.*pso.*(-(pso3./(pso.*po.^0.5.*kp))); r=.44.*(+k.*pso+k3.*pso3).^; r=r./r; y=./r; Hasil perhitungan program adalah : HASIL PERHITUNGAN T optimum = K berat katalis = kg Contoh 9. Menetukan Parameter Konstanta Laju Reaksi Suatu reaksi seri dijalankan dalam reaktor secara batch. Reaksi yang terjadi dinyatakan dengan persamaan : OPTIMASI 7

238 Neraca mol masing komponen adalah : dc dt dc dt dc dt A R R k C (9..) A k k C (9..) C A R R k C (9..3) Berdasarkan hasil eksperimen, perubahan konsentrasi komponen (mol/l) terhadap waktu reaksi, t (jam) ditampilkan pada tabel di bawah: t C A C R C S Tentukan konstanta laju reaksi diatas berdasarkan data yang tersedia. Penyelesaian : Soal di atas diselesaikan dengan minimasi Sum Square of Errors (SSE) antara konsentrasi yang terhitung dengan konsentrasi data penelitian. 8 OPTIMASI

239 i n i C i C SSE (9..4), hitung i, data Penulisan program untuk soal di atas diberikan berikut. Script untuk program utama: function contoh9_ %Program optimasi parameter pada proses clc clear %tebakan awal kr = [ ]; khit = fminsearch('estparkinetik',kr,optimset('tolx ',e-3)) Script untuk Sub program: % function SSE = estparkinetik(kr) % menyelesaikan PD ordiner simultan k = kr(); k = kr(); Yo=[ 0 0]; %interval waktu tspan=[0:0.5:5]; [t,y]=ode45('sub_estparkinetik',tspan,yo,[],k,k) CAhitung=Y(:,); CRhitung=Y(:,); CShitung=Y(:,3); CAdata=[;0.364;0.33;0.0476;0.073;0.0063;0.003;0.0080;0.0030;0.000;0.0000]; CRdata=[0;0.3949;0.3077;0.80;0.0939;0.0459;0.06;0.0099;0.0045;0.000;0.0009]; CSdata=[0;0.47;0.560;0.773;0.8889;0.9478;0.976;0.9893;0.995;0.9979;0.999]; SSE=sum(CAhitung-CAdata).^+sum(CRhitung- CRdata).^+sum(CShitung-CSdata).^; plot(tspan,cadata,'ob',tspan,cahitung,'b',tspan,crdat a,'or',tspan,crhitung,'-r',... tspan,csdata,'og',tspan,cshitung,'-g') OPTIMASI 9

240 title('grafik C vs waktu'); xlabel('waktu'); ylabel('c'); legend('cadata','cahit','crdata','crhit','csdata','cs hit') Script untuk sub_sub program : function dcdt=sub_estparkinetik(t,y,flag,k,k) CA=Y();CR=Y();CS=Y(3); dcdt() = -k.*ca; dcdt() = k.*ca-k.*cr; dcdt(3) = k.*cr; dcdt = dcdt'; Hasil perhitungan : khit = Grafik simulasi : Gambar 9.4. Grafik perubahan konsentrasi terhadap waktu 30 OPTIMASI

241 Contoh 9. Pencocokan Data Kesetimbangan Uap-Cair dengan Regresi Non Linier Data kesetimbangan uap-cair sering dikorelasikan menggunakan dua parameter yang dapat diatur pada campuran biner (Edgar et al., 00). Dalam banyak kasus, kesetimbangan uap-cair multi komponen dapat diprediksi hanya dengan parameter biner. Untuk tekanan rendah, persamaan kesetimbangan adalah : sat xi i Pi yi P (9..) Dengan : P = tekanan total sat P i = tekanan uap jenuh komponen i x i i y i = mol fraksi fasa cair komponen i = koefisien aktivitas komponen i = fraksi mol fasa uap Model van Laar untuk campuran biner adalah : ln ln A (9..) A x Ax A x A (9..3) A x Ax A x Dimana A dan A adalah konstanta biner yang dicari dengan optimasi untuk mencocokkan data perhitungan untuk x. i Data kesetimbangan uap-cair suatu campuran Air () dan,4 dioksan () diberikan Tabel 9.. di bawah. Konstanta untuk persamaan Antoine juga diberikan pada tabel. OPTIMASI 3

242 Tentukan konstanta van Laar A dan A berdasarkan data eksperimen tersebut. Tabel 9.. Data Ekperimen sistem () Air dan (),4 Dioksane pada suhu 0 o C Data eksperimen Nilai Prediksi x p expt (mmhg) p cal p y calc 0,00 8,0 8,0 0,00 0,00 0,0 34,40 34,0-0,0 0,508 0,0 36,70 36,95 0,5 0,345 0,30 36,90 36,97 0,07 0,3493 0,40 36,80 36,75-0,05 0,3576 0,50 36,70 36,64-0,06 0,365 0,60 36,50 36,56 0,06 0,375 0,70 36,40 36,36-0,04 0,3965 0,80 3,90 3,84-0,06 0,4503 0,90 7,70 7,7 0,0 0,578,00 7,50 7,50 0,00,0 log P sat i a a T a 3 p sat : mmhg,t : a a a3 Range ()Air 8, ,630 33,46 (-00 o C) (),4 Dioksan 7, ,679 40,337 (0-05 o C) Note : Data reported by Hororka et al. (936) Penyelesaian : Tekanan total campuran dapat dituliskan : P y P yi P (9..4) Dengan menggunakan persamaan (9..) - (9..3) diperoleh persamaan : Ax sat Ax sat P x exp A P x exp A P A x Ax A x Ax (9..5) o C 3 OPTIMASI

243 Tekanan jenuh komponen dapat diprediksi dengan persamaan Antoine. Untuk temperatur yang diberikan dan sistem biner x ( x ) tekanan adalah : P P( x, A, A) (9..6) Dua koefisien biner ditentukan dari nilai ekperimen P terhadap x dengan regresi non liner yaitu dengan minimasi fungsi objektif : calc exp t P j P f (9..7) j Program MATLAB yang digunakan untuk menyelesaikan soal 9. diberikan berikut: function contoh9_ clc clear %tebakan awal x = [ ]; A = fminsearch(@activity,x,optimset('display','iter')) % function f = activity(x) A=x();A=x(); x=[0:0.:]'; T=0; x=(-x); Pdata=[ ]'; aw=8.073;ad=7.4355;aw= ;ad= ;a3w =33.46;a3d=40.337; p=0.^(aw-(aw./(t+a3w)));p=0.^(ad- (ad./(t+a3d))); gamma=exp(a.*(a.*x./(a.*x+a.*x)).^); gamma=exp(a.*(a.*x./(a.*x+a.*x)).^); Pcal=x.*gamma.*p+x.*gamma.*p; f=sum(pcal-pdata).^ y=x.*gamma.*p./pcal; plot(x,x,'-r',x,y,'-b') title('grafik x vs y') OPTIMASI 33

244 xlabel('x') ylabel('y') Hasil perhitungan : A = Setelah diperoleh nilai A =,405 dan A =,54 selanjutnya dihitung nilai y dan di plot terhadap x. Hasil plot situnjukkan Gambar 9.5 di bawah Gambar 9.5. Grafik perubaham fraksi fasa uap terhadap fraksi fasa cair Contoh 9.3 Optimasi Sistem Boiler-Steam Turbin Generator Desain dan operasi Sistem Boiler-Steam Turbin Generator dalam industri kimia ditunjukkan gambar 9.6 (Edgar et al., 34 OPTIMASI

245 00). Gambar tersebut menunjukkan sistem steam dan daya untuk power house kecil dengan bahan bakar pulp kayu. Untuk memproduksi daya listrik, sistem ini memiliki dua turbin generator yang karakternya tercantum pada Tabel Turbin berupa turbin double extraction dengan dua aliran intermediate kelur pada 95 dan 6 psi, stage terakhir menghasilkan kondensate yang digunakan sebagai air umpan boiler. Turbin adalah single extraction dengan satu aliran intermediate pada 95 psi dan aliran keluar pada 6 psi tanpa menghasilkan kondensate. Gambar 9.6. Sistem Boiler -Steam Turbin Generation Key : I i = inlet flowrate for turbine i (lbm/h) HE i = exit flow rate from turbin i to 95 header [lbm/h] LE i = exit flow ratefrom turbin i to 6 psi header [lbm/h] C = condensate flow rte from turbine [lbm/h] P i = power generated by turbine i [kw] BF = bypass flowrate from 635 psi to 95 psi header [lbm/h] BF = bypass flowrate from 95 psi to 6 psi header [lbm/h] HPS = flowrate through 635 psi header [lbm/h] MPS = flowrate through 95 psi header [lbm/h] LPS = flowrate through 6 psi header [lbm/h] OPTIMASI 35

246 PP = purchased power [kw] EP = excess power [kw] PRV = pressure reducing valve Turbin lebih efisien karena pelepasan energi dari kondensasi steam, namun tidak dapat menghasilkan power seperti turbin kedua. Steam berlebih dapat melewati turbin menjadi steam dua level melalui pressure reducing valve. Tabel 9.3. berisi daftar informasi tentang perbedaan level steam dan Tabel memberikan data kebutuhan steam. Untuk memenuhi kebutuhan daya listrik, kekurangan daya listrik boleh dibeli dari produsen lain dengan minimum nilai.000 kw. Jika daya listrik yang diperlukan memenuhi kebutuhan sistem lebih kecil dari nilai ini, daya yang tidak digunakan akan dikenakan biaya pinalti. Tabel memberikan data biaya bahan bakar untuk boiler dan tambahan daya listrik untuk mengoperasikan sistem utilitas. Maximum generative capacity Tabel 9.3. Data turbin Turbin Turbin 6.50 kw Maximum generative capacity kw Minimum load.500 kw Minimum load kw Maxium inlet flow lb m/h Maxium inlet flow lb m/h Maximum lb m/h Maximum 6 psi lb m/h condensate flow exhaust Maximum internal flow High pressure extraction at Low pressure extraction at lb m/h High pressure extraction at 9 psig Low pressure extraction at 6 psig 9 psig 6 psig 36 OPTIMASI

247 Header Tabel 9.3. Data steam header Pressure (psig) Temperature ( o F) Enthalpy (Btu/lbm) High pressure steam ,8 Medium pressure steam superheat 67,8 Low pressure steam 6 30 superheat 5,4 Feedwater (codensate) 93,0 Tabel Data kebutuhan sistem Sumber Kebutuhan Medium pressure steam (95 psig) lbm/h Low pressure steam (6 psig) lbm/h Electric power kw Tabel Data Energi Sumber Kebutuhan Fuel Cost lbm/h Boiler eficiency 0,75 Steam Cost (635 psi) $,4/0 6 Btu $,4(359,8-93)/0 6 Purchased electric power Demand penalty Base Purchased power $0,0064/lbm $0,039/kWh averege $0,00985/kWh.000 kw Ingin dicari biaya minimum sistem dengan memilih laju alir steam dan daya yang dibangkitkan atau dibeli terhadap kebutuhan dan batasan sistem. Fungsi objective adalah biaya operasi per jam : minimasi : f 0,006 HPS 0,039 PP 0, EP (9.3.) Konstrain disusun ke dalam serangkaian persamaan berikut: OPTIMASI 37

248 Turbin : Turbin : Neraca Massa : P 6.50 P.500 HE (9.3.) C I -HE P P HE (9.3.3) I LE HPS I I - BF = 0 I + I + BF C MPS LPS = 0 I HE LE C = 0 (9.3.4) I HE LE = 0 HE + HE + BF - BF - MPS = 0 LE + LE + BF LPS = 0 Daya yang dibeli (Power purchased) : EP + PP.000 (9.3.5) Kebutuhan (Demands) : MPS LPS (9.3.6) P + P + PP Neraca Energi.359,8 I.67,8 HE -.5,4 LE 9 C 3.43 P = 0 (9.3.7).359,8 I.67,8 I -.5,4 LE 9C 3.43P = 0 38 OPTIMASI

249 Penyelesaian : Persoalan ini diselesaikan dengan MATLAB menggunakan fungsi linprog. Berikut langkah penyelesaian untuk soal diatas. Kombinasi variabel dalam satu vektor Jumlah variabel sebanyak 6 yaitu : I, I, HE, HE, LE, LE, C, BF, BF, HPS, MPS, LPS, P, P, PP, dan EP. Buat variabel tersebut dalam satu vektor. Berikut kode membuat vektor menggunakan cell array of strings. Maisngmasing string adalah nama variabel. variables = {'I','I','HE','HE','LE','LE','C','BF',... 'BF','HPS','MPS','LPS','P','P','PP','EP'}; N = length(variables); % create variables for indexing for v = :N eval([variables{v},' = ', numstr(v),';']); end Konstrain batas Terdapat empat variabel dengan batas bawah dan enam variabel dengan batas atas berdasarkan persamaanpersamaan di atas. Batas bawah adalah : P.500 P MPS LPS Juga semua variabel adalah positif, yang artinya memiliki batas bawah nol. Buat vektor batas bawah sebagai vektor 0, kemudian tambahkan empat batas bawah lainnya. lb = zeros(size(variables)); lb([p,p,mps,lps]) =... [500,3000,7536,0063]; OPTIMASI 39

250 Linear Inequality Constraints Terdapat tiga linear inequalities dalam persamaan : I - HE 3,000 EP + PP,000 P + P + PP 4,550. Agar memiliki persamaan dalam bentuk A x b, letakkan semua variabel di sisi kiri inequality. Semua persamaan telah memiliki bentuk tersebut. Pastikan bahwa setiap inequality dalam bentuk lebih kecil dengan mengalikannya dengan (-). I - HE 3,000 -EP - PP -,000 -P - P - PP -4,550. Dalam lembar kerja MATLAB, buat matriks nol dengan 3 x 6, berkaitan 3 linier inequalities dalam 6 variabel. Buat vektor b dengan tiga komponen. A = zeros(3,6); A(,I) = ; A(,HE) = -; b() = 3000; A(,EP) = -; A(,PP) = -; b() = -000; A(3,[P,P,PP]) = [-,-,-]; b(3) = -4550; Linear Equality Constraints Terdapat delapan persamaan linier yaitu persamaan (9.3.4) dan persamaan (9.3.7). Bentuk persamaan adalah Aeq.x = beq. Selanjutnya tulis matrks Aeq dan vektor beq yang berhubungan dengan persamaan ini. Dalam lembar kerja MATLAB, buat matriks Aeq sebagai matriks nol dengan 8 x 6, berkaitan dengan 8 persamaan linier dalam 6 variabel. Buat vektor beq dengan 8 komponen semuanya nol 40 OPTIMASI

251 Aeq = zeros(8,6); beq = zeros(8,); Aeq(,[LE,HE,I]) = [,,-]; Aeq(,[LE,LE,BF,LPS]) = [,,,-]; Aeq(3,[I,I,BF,HPS]) = [,,,-]; Aeq(4,[C,MPS,LPS,HPS]) = [,,,-]; Aeq(5,[LE,HE,C,I]) = [,,,-]; Aeq(6,[HE,HE,BF,BF,MPS])= [,,,-,-]; Aeq(7,[HE,LE,C,P,I])= [67.8,5.4,9,343,-359.8]; Aeq(8,[HE,LE,P,I])= [67.8,5.4,343,-359.8]; Objective Fungsi objective adalah persamaan (9.3.) yang dapat dituliskan : f T x = HPS PP EP. Tulis ekspresi ini sebagai vektor f dikali dengan vektor x. f = zeros(size(variables)); f([hps PP EP]) = [ ]; Solusi soal dengan linprog Anda sekarang sudah memasukkan yang dibutuhkan linprog solver. Panggil solver dan cetak keluaran dalam bentuk format : [x fval] = linprog(f,a,b,aeq,beq,lb,ub); for d = :N fprintf('%.f \t%s\n',x(d),variables{d}) end Berikut program lengkp dari penjelasan di atas. function contoh9_3 clc,clear %variabel variables = {'I','I','HE','HE','LE','LE','C','BF',... OPTIMASI 4

252 4 OPTIMASI 'BF','HPS','MPS','LPS','P','P','PP','EP'} ; N = length(variables); % create variables for indexing for v = :N eval([variables{v},' = ', numstr(v),';']); end %lower and upper bound lb = zeros(size(variables)); lb([p,p,mps,lps]) =... [500,3000,7536,0063]; ub = Inf(size(variables)); ub([p,p,i,i,c,le]) =... [650,9000,9000,44000,6000,4000]; %linier inequality constraint A = zeros(3,6); A(,I) = ; A(,HE) = -; b() = 3000; A(,EP) = -; A(,PP) = -; b() = -000; A(3,[P,P,PP]) = [-,-,-]; b(3) = -4550; %linier equality constraint Aeq = zeros(8,6); beq = zeros(8,); Aeq(,[LE,HE,I]) = [,,-]; Aeq(,[LE,LE,BF,LPS]) = [,,,-]; Aeq(3,[I,I,BF,HPS]) = [,,,-]; Aeq(4,[C,MPS,LPS,HPS]) = [,,,-]; Aeq(5,[LE,HE,C,I]) = [,,,-]; Aeq(6,[HE,HE,BF,BF,MPS]) = [,,,-,- ]; Aeq(7,[HE,LE,C,P,I]) = [67.8,5.4,9,343,-359.8]; Aeq(8,[HE,LE,P,I]) = [67.8,5.4,343,-359.8]; %objective function f = zeros(size(variables)); f([hps PP EP]) = [ ]; %solver [x fval] = linprog(f,a,b,aeq,beq,lb,ub);

253 for d = :N fprintf('%.f \t%s\n',x(d),variables{d}) end fval Hasil simulasi: Optimization terminated I I HE HE 0.00 LE LE C 0.00 BF 0.00 BF HPS MPS LPS P P 39.9 PP EP fval =.703e+003 Hasil di atas adalah penyelesaian optimum terhadap program linier yang disajikan persamaan Biaya minimum adalah $.70/jam. 9.7 RUJUKAN a. Thomas E. Edgar, Himmelblau, D., and Lasdon, 00. Optimization of Chemical Processes. Mc. Graw Hill. New York. OPTIMASI 43

254 44 OPTIMASI b. Arora, Jasbir, 0, Introduction to Optimum Design, 3 rd ed. Elsevier. UK. c. Steven C. Chapra. 0. Applied Numerical Methods With MATLAB For Engineers And Scientists. 3rd ed. Mc. Graw Hill. New York. d. Sediawan, Wahyudi Budi Pemodelan Matematis dan Penyelesaian Numeris dalam Teknik Kimia. Andi. Yogyakarta

255 BAB 0 SIMULINK 0. PENDAHULUAN Bab ini membahas tentang Simulink dan penggunaanya untuk menyelesaikan persoalan-persoalan dalam Teknik Kimia. Setelah menyelesaikan pokok bahasan ini mahasiswa diharapkan akan mampu menggunakan Simulink untuk menyelesaikan persoalan model matematis yang terbentuk dari persoalan fisis dan kimia dalam perkuliahan maupun kejadian nyata di lapangan. 0. SIMULINK LIBRARY Apa itu Simulink? Simulink adalah paket software untuk pemodelan, simulasi dan analisis sistem dinamis. Software ini mendukung sistem linier dan nonliner, model waktu kontinyu, waktu tersample (diskrit) atau gabungan keduanya. Sistem juga dapat berupa multirate, yaitu memiliki bagian yang berbeda antara yang tersample atau ter-update pada laju yang berbeda. 45

256 Pemodelan Simulink menyediakan Graphical User Interface (GUI) untuk membuat model seperti blok diagram, menggunakan operasi clik dan drag mouse. Dengan fasilitas ini Anda dapat menggambar model seperti Anda akan menggambar dengan pensil pada kertas. Hal ini jauh dari paket simulasi sebelumnya dimana kita perlu memformulasikan persamaan diferensial dan persamaan yang berbeda dalam suatu bahasa atau program. Simulink memiliki block library of sinks, sources, linear and nonlinear components, and connectors yang lengkap. Anda dapat memodifikasi atau membuat blok sendiri. Model adalah hirarkis, sehingga Anda dapat membuat model menggunakan kedua pendekatan top-down atau bottom-up. Setelah Anda mendefinisikan suatu model, Anda dapat mensimulasikan menggunakan suatu pilihan metode integrasi, juga dari menu Simulink atau dengan memasukkan perintah di command window MATLAB. Menu-menu sangat nyaman untuk kerja interaktif, sementara pendekatan command line sangat bermanfaat/berguna untuk menjalankan simulasi batch (misal, Jika Anda sedang manjalankan simulasi Monte Carlo atau ingin menyapu parameter pada kisaran nilai tertentu). Dengan menggunakan Scope dan display blok lainnya, Anda dapat melihat hasil simulasi saat simulasi sedang berjalan. Tool analisis model terdiri linierisasi dan perangkat cepat yang dapat diakses dari MATLAB Command line, ditambah banyak tools dalam MATLAB dan aplikasi toolbox. Karena MATLAB dan Simulink terintegrasi, anda juga dapat melakukan simulasi, analisis dan revisi model dalam beberapa cara. Memulai Matlab dan Simulink Untuk memulai Simulink Anda dapat melakukan langkahlangkah berikut: ) Start MATLAB dan selanjutnya pada Command Window 46 SIMULINK

257 MATLAB ketik simulink. Maka akan muncul gambar seperti di bawah: Gambar 0. Tampilan command window MATLAB dan Simulink library ) Buka New Simulation Window dari menu file di pojok kiri atas dengan cara klik pada tanda seperti gamabar di bawah.. Akan dihasilkan menu Gambar 0. Simulink library dan new worksheet window SIMULINK 47

258 3) Anda dapat membuat block diagram sendiri dengan drag dan dropping block yang sesuai dari jendela Simulink utama. Beberapa block yang umumnya paling banyak dipakai : a. Commonly Used Bloks Gambar 0.3. Tampilan Blok pada menu tree Commonly Used Block Dari Commonly Used Block kita dapat menggunakan konstanta, perkalian dengan skalar, menampilkan beberapa sinyal keluar menjadi satu sinyal atau membagi satu sinyal input menjadi beberapa sinyal keluar dan lainnya. 48 SIMULINK

259 b. Continous Gambar 0.4. Tampilan Blok pada menu tree Continous Dari blok Continuous (klik dua kali pada tombol Continuous) Anda dapat menggunakan tipe blok yang sesuai untuk membuat sistem dinamis (misal fungsi transfer, time delay dan lainnya). c. Sink Dari Sink kita sering menggunakan Scope untuk menampilkan hasil simulasi. SIMULINK 49

260 Gambar 0.5. Tampilan Blok pada menu tree Sink. d. Source Dari Sources suatu fungsi Step digunakan untuk mensimulasikan perubahan step. Untuk mengetahui parameter yang harus dimasukkan pada masing-masing blok, Anda dapat melakukan drag pada worksheet window Simulink yang baru dan klik dua kali pada blok tersebut. Tampilan blok Source di tunjukan Gambar 0.6. Membuat Model Sederhana Contoh berikut menunjukkan bagaimana membuat suatu model menggunakan banyak model perintah dak aksi yang akan Anda gunakan untuk membuat model Anda sendiri. Instruksi untuk membuat model sederhana akan dijelaskan di bawah. Untuk penjelasan detail lainnya akan diberikan pada bab berikutnya. 50 SIMULINK

261 Gambar 0.6. Tampilan Blok pada menu tree Source. Model ini mengintegrasikan suatu gelombang sinus dan menampilkan hasil sepanjang gelombang sinus. Blok diagram untuk model seperti Gambar 0.7. Gambar 0.7 Blok diagram integrasi gelombang sinus Untuk membuat model, pertama ketik simulink dalam MATLAB Command Window. Pada Microsoft Window akan SIMULINK 5

262 muncul Simulink Library Browser Seperti Gambar 0.8. Tombol New Model Gambar 0.8. Jendela Simulink Library Browser Untuk membuat model baru pada Windows, pilih tombol New Model pada toolbar Library Browser. Simulink membuka jendela model baru seperti Gambar SIMULINK Gambar 0.9. Jendela Simulink baru

263 Untuk membuat model, Anda perlu mengkopi blok ke dalam model dari Simulink Bloks libarary berikut : Source library (blok Sine wave) Sink Library (blok Scope) Continous Library (blok Integrator) Signal & System libarry (blok Mux) Gambar 0.9. Menu Source Selanjutnya drag blok Sine Wave dari Source Window ke jedela model Anda. Gambar 0.0. Blok Sin wave SIMULINK 53

264 Kopi blok yang lainnya dengan cara yang sama dari masingmasing library ke model window sehingga tampak seperti gambar di bawah. Gambar 0.. Beberapa blok Simulink Jika Anda memperhatikan ikon blok, Anda melihat tanda kurungdi sisi kanan Sine Wave dan dua di sisi kiri blok Mux. Simbol > yang keluar dari suatu blok adalah output port dan jika simbol menuju blok maka disebut input port. Sinyal keluar dari ouput port dan masuk ke input port blok lainnya melalui garis hubung. Saat blok terkoneksi, simbol tdk muncul. Input port Output port Gambar 0.. Input dan output port suatu blok Kini saatnya menyambungkan blok. Sambungkan blok Sine Wave ke atas input port blok Mux. Posisi pointer di atas output port sisi kanan blok Sine Wave. Catatan bahwa bentuk kursor berubah melewati garis. 54 SIMULINK

265 Gambar 0.9. Susunan blok Simulink Tahan tombol mouse dan pindahkan kursor ke input port blok Mux, maka akan muncul garis putus-putus saat mouse di tekan. Gambar 0.9. Drag koneksi blok SIMULINK 55

266 Sekarang lepaskan mouse. Maka blok akan tersambung. Gambar 0.9. Koneksi blok Cara membuat garis cabang berbeda dari cara membuat garis sebagaimana yang atelah Anda lakukan. Untuk menyambungkan dengan garis yang ada, ikuti langkah berikut:. Pertama, posisi pointer pada garis antara blok Sin wave dan Mux. Gambar 0.9. Koneksi blok Sin wave dan mux 56 SIMULINK

267 . Tekan dan tahan tombol Ctrl. Tekan mouse dan drag pointer ke input port blok Integrator. Gambar 0.9. Membuat cabang blok Simulink 3. Lepaskan tombol mouse. Simulink menggambar suatu garis antara titik awal dan input port blok Integrator. Selesai membuat konensi blok. Jika sudah selesai, model Anda akan terlihat seperti gambar di bawah. Gambar 0.9. Model Simulink lengkap SIMULINK 57

268 Selanjutnya, buka blok Scope untuk melihat output simulasi. Jaga endela Scope tetap terbuka, atur Simulink untuk berjalan selama 0 setik. Pertama, atur parameter simulasi dengan memilih Parameters dari menu Simulation. Pada kotak dialog yang muncul, tulis Stop time adalah 0.0. Gambar 0.9. Menu Simulasi Gambar 0.9. Pengaturan menu simulasi 58 SIMULINK

269 Keluar dari Configuration parameter dengan klik tombol OK. Pilih Start Simulation untuk untuk melihat output simulasi dari blok Scope. Gambar 0.9. Jendela Simulink baru Hasil simulasi terlihat seperti gambar berikut. Gambar 0.9. Jendela Simulink baru SIMULINK 59

270 Untuk mengatur skala grafik secara otomastis klik Autoscale. Gambar 0.9. Jendela Simulink baru Untuk menyimpan Simulasi klik Save as dari menu File dan ketik nama file dan lokasi Pada bagian selanjutnya akan diberikan beberapa contoh pengunaan Simulink untuk menyelesaiakna beberapa kasus dalam Teknik Kimia. Contoh 0. Persamaan Diferensial Selesaikan dua persamaan diferensial berikut dengan Simulink. dca CA0 CA dt (0..) dca CA CA dt (0..) 60 SIMULINK

271 Penyelesaian : Untuk menyelesaikan kasus di atas, lakukan langkah yang telah dijelaskan di atas sehingga dihasilkan moel blok Simulink seperti Gambar 0... Gambar 0... Model blok Simulink untuk Contoh 0. Hasil Simulasi dapat dilihat pada Gambar di bawah. Gambar 0... Hasil plot Simulink untuk Contoh 0. SIMULINK 6

272 Contoh 0. Persamaan Diferensial Selesaikan seperangkat persamaan diferensail order biasa berikut dengan konsentasi A awal mol/l dan kosentrasi awal B adalah nol. dca CA C (0..) B dt dcb 3( CA CB) (0..) dt CA (0) = ; C B(0) = 0 Penyelesaian : Dengan cara yang sama dengan langkah pada Contoh 0. dihasilkan model blok Simulink seperti Gambar 0... Selanjutnya klik dua kali pada blok Integrator dan Integrator dan atur initial condition masing-masing dengan nilai dan 0, seperti ditunjukkan Gambar 0.. Gambar 0... Model Simulink untuk Contoh 0. 6 SIMULINK

273 Gambar 0... Pengaturan initial condition Klik Start Simulation dan selajutnya klik blok Scope dua kali untuk melihat output simulasi. Grafik hasil simulasi dari Scope terlihat seperti gambar di bawah. Gambar Hasil plot Simulink untuk Contoh 0. SIMULINK 63

274 Contoh 0.3 Reaksi Multiple dalam Reaktor Batch Berikut diberikan reaksi seri : k k A B C dc A kc A dt (0.3.) dcb kc A kcb dt (0.3.) dcc kcb dt ( 0.3.3) Penyelesaian : Blok Simulink untuk kasus di atas ditunjukkan gambar di bawah. Gambar Model Simulink untuk Contoh SIMULINK

275 Dengan mengikuti cara sebelumnya akan diperoleh output simulasi dari blok Scope seperti gambar di bawah. Gambar Hasil plot Simulink untuk Contoh 0.3 Contoh 0.4 Reaksi Katalisis Enzim Suatu enzim E, mengkatalisis subtrat S untuk membentuk produk P dengan formasi kompleks intermediat ES, seperti ditunjukkan reaksi berikut : S + E ES P + E Gunakan neraca masssa untuk menyederhanakan reaksi enzimatis untuk memperoleh persamaan diferensial yang menggambarkan dinamika reaksi. Gunakan nilai awal berikut dan konstana laju berikut untuk mengintegralkan persamaan diferensial dan plot profil waktu untuk semua vaiabel dalam model: Kodisi awal : [S] 0 =,0 μm [E] 0 = 0, μm SIMULINK 65

276 [ES] 0 = 0 [P] 0 = 0 Konstanta : k = 0, (μm) - s - k- = 0, s - k = 0,3 s - Tentukan waku (dalam detik) rekasi untuk mencapai 99,9% subtrat terkonversi. Penyelesaian : S d ks E kes dt (0.4.) d E ks E k ES kes dt (0.4.) d ES ks E k ES kes dt (0.4.3) d P kes dt (0.4.4) Kita integralkan dari 0 sampai 000 detik dengan mengatur batas integrasi pada Configuration parameter. Gambar Model Simulink untuk Contoh SIMULINK

277 Gambar Hasil plot Simulink untuk [S] dan [P] Gambar Hasil plot Simulink untuk [E] dan [S] SIMULINK 67

278 Contoh 0.5. Respon Dinamis Open Loop Sistem Oder Dua Misalkan sutau manometer seperti ditunjukkan seperti Gambar 0.5. digunakan untuk mengukur perbedaan tekanan antara dua instrument pada suatu garis udara. Fluida kerja dalam manometer adalah air. Tentukan respon manometer terhadap step change dalam tekanan yang melewati kaki manometer. Data : Gambar Tekanan manometer L : 00 cm, D : 0, cm; 0, cm; 0,3 cm g : 980 cm/s μ : cp = 0,0 g/cm.s ρ :,0 g/cm3 P 0 untuk t 0 g 0 untuk t 0 Penyelesaian : Persamaan diferensial untuk manometer adalah : L d h 6L dh P P P h (0.5.) 3g dt D g dt g g Dalam bentuk variabel deviasi yang ditrasformasi menjadi: τ s Y(s) + ζ τy(s) + Y(s) = X(s) (0.5.) 68 SIMULINK

279 dengan : Y = h hs dan P P X g g L 3g s 8 3L ρd g Time constant untuk manometer : L 3g 00 cm cm /s 0,369 s Damping coeeficient utuk tiga dimeter tube yang berbeda : 8 L 80,00 g/cm s 300 cm D 3g 3,0 g/cm D 0,0443 /s D 980 cm Diameter (cm) ζ 0, 3,66 0,,00 0,3 0,46 Dari data di atas jelas kita memiliki satu underdamped system (ζ <), satu critically damped system (ζ = ) dan satu overdamped system (ζ > ). Untuk memperoleh respon fungsi transfer Y/X terhadap input X digunakan MATLAB dan Simulink. SIMULINK 69

280 Y( s) 0 dan X X ( s) s s s Tiga fungsi transfer yang diperlukan sebagai berikut : Diameter (cm) τ ζ τ ζ τ Fungsi transfer 0, 0,369 3,66 0,36 3,66 0, 0,369,00 0,36,00 0,3 0,369 0,46 0,36 0,46 0,36 s,700s 0,36 s 0,738 s 0,36 s 0,340s Penyelesaian fungsi transfer di atas dengan Model Simulink ditunjukkan pada langkah di bawah. Pertama, Pada menu baru di lembar kerja drag dan drop beberapa blok. Pada masing-masing klik dua kali sehingga tampak seperti gambar di bawah. Gambar Pengaturan parameter blok Kedua, hubungkan semua blok sehingga diperoh sistem seperti gambar di bawah. 70 SIMULINK

281 Gambar Model Simulink untuk contoh soal 0.5 Ketiga, pada menu simulasi diatur stop time 0 menit. Gambar Pengaturan parameter simulasi Keempat, jalankan simulasi dengan menekan menu Start dan klik Autoscale pada tampilan scope. Diperoleh output simulasi seperti SIMULINK 7

282 gambar di bawah. Gambar Hasil plot simulink untuk Contoh 0.5 Contoh 0.6 Kontrol Temperatur Pemanas Tangki Alir Berpengaduk Tangki berpengaduk seperti Gambar 0.6., digunakan untuk memanaskan aliran proses sehingga pencampuran komponen mencapai seragam. Kontrol temperatur adalah penting karena temperatur tinggi cenderung mendekomposisi produk, sementara temperatur rendah menghasilkan pencampuran yang kurang sempurna. Tangki dipanaskan dengan steam di sisi koil. Digunakan Poportional Integral Derivative (PID) Controller untuk mengendalikan temperatur dalam tangki dengan memanipulasi posisi valve steam. Turunkan blok diagram lengkap dan fungsi transfer untuk data desain berikut: Proses. Umpan memiliki densitas, ρ sebesar 68 lb/ft 3 dan kapasitas panas, Cp adalah 0,8 Btu/lb- o F. Volume cairan dalam tangki dijaga konstan pada 0 ft 3. Koil terdiri atas pipa dengan panjang 05 ft, ukuran 4 inchi schedule 40 yang 7 SIMULINK

283 beratnya 0,8 lb/ft, memiliki kapasitas panas 0, Btu/lb- o F dan diameter luar 4,5 in. Koefisien tansfer panas keseluruhan U, berdasarkan luas area bagian luar koil, dan diperkirakan, Btu/min-ft - o F. Steam yang tersedia adalah steam jenuh pada tekanan 30 psia, dapat diasumsikan bahwa panas laten kondensasi adalah konstan pada 966 Btu/lb. Dapat juga diasumsikan bahwa temperatur masuk Ti adalah konstan. Umpan F(t) T i(t) T set (t) TCV 0 TIC 0 TT 0 Steam w(t) T s(t) Panas, q T(t) V Kondensat Produk F(t) T(t) Gambar 0.6. Kontrol temperatur pemanasan tangki berpengaduk Kondisi Desain. Aliran umpan F pada kondisi desain adalah 5 ft 3 /min, dan temperaturnya Ti adalah 00 o F. Isi tangki harus dijaga pada temperatur 50 o F. Kemungkinan gangguan adalah perubahan laju alir dan temperatur umpan. Sensor Temperatur dan Transmitter. Sensor temperatur memiliki kisaran kalibarasi o F dan time constant, τt adalah 0,75 menit. Control Valve. Control valve dirancang untuk 00% overkapasitas dan perubahan hilang tekanan dapat diabaikan. Valve sama dengan persentase valve dengan SIMULINK 73

284 parameter perubahan, α adalah 50. Aktuator memiliki time constant, τv sebesar 0, menit. Penyelesaian. Pendekatan dilakukan dengan menurunkan persamaan yang mendeskripsikan perilaku dinamis dalam tangki, control valve, sensor/transmitter dan controller. Selanjutnya kita akan mentransformasi Laplace persamaan untuk memperoleh loop blok diagram. Proses. Neraca energi untuk cairan dalam tangki, asumsi panas yang hilang diabaikan, pencampuran sempurna, volume konstan dan densitas konstan diperoleh persamaan : dt V C p FρC p ( Ti Tref ) UA( Ts T) FρC p ( T Tref ) (0.6.) dt Neraca energi pada koil, asumsi bahwa koil pada temperatur sama seperti steam, dihasilkan persamaan : dts CM w UA( Ts dt T) (0.6.) Untuk proses steady state: F C ( T T ) UA( T T ) FC ( T T ) (0.6.3) 0 p i ref s p ref 0 w UA( T T) (0.6.4) s V Persamaan (0.6.) dikurang persamaan (0.6.3) diperoleh persamaan : d( T T) FρC ( T T ) ( T T) UA ( T T ) ( T T) (0.6.5) C p dt p i i Persamaan (0.6.) dikurang persamaan (0.6.4) diperoleh persamaan : s s C M d( Ts Ts ) W UA[( Ts Ts ) ( T T)] (0.6.6) dt 74 SIMULINK

285 Variabel deviasi : T ' ( T T) T ' s ( T s T ) W ( w w) Persamaan (0.6.5) menjadi : dt ' ' ' ' ' V C p FρC p ( T T ) UA( Ts T ) (0.6.7) i dt dt ' ' ' ' V C p ( FρC p UA) T FρC pt UAT (0.6.8) i s dt VC p dt ' ' FρC p ' UA ' T T T (0.6.9) i s ( FρC UA) dt ( FρC UA) ( FρC UA) p Dimana : dt ' dt p s ' ' ' T KT KT i s (0.6.0) VC p (0.6.) ( FρC UA) p FρC p K (0.6.) ( FρC UA) K p p UA (0.6.3) ( FρC UA) Transformasi lapalace untuk persamaan (0.6.0) K ' K T '( s) Ti ( s) T '( s) (0.6.3) s s s Persamaan (0.6.6) menjadi : C C M M dt dt dt dt ' s CM dt UA dt dt dt p ' ' W UA( T T ) (0.6.4) s ' s ' ' UATs W UAT (0.6.5) ' s T ' s W T UA ' (0.6.6) ' s ' ' c Ts KwW T (0.6.7) SIMULINK 75

286 Dimana : C M c (0.6.8) UA K w (0.6.9) UA Transformasi lapalace untuk persamaan (0.6.7) ' K w Ts ( s) W ( s) T '( s) (0.6.0) c s c s Sensor Temperatur Dan Transmitter. Elemen pengukur temperatur, yang yang membaca suhu dan mengirimkan sinyal Tm ke controler, dapat menunjukkan dynamic lag. Fungsi transfer untuk sensor dan transmiter adalah: ' T m( s) G ( s) (0.6.) m T '( s) m s Control valve. Valve pneumatik selalu mempunyai dynamic lag, yang artinya posisi sistem tidak merespon secara instan terhadap suatu perubahan dalam tekanan dari controller. Hubungan antara aliran dengan tekanan valve untuk linier valve sering dinyatakan dengan fungsi transfer untuk control valve order satu adalah : W ( s) K v Gv ( s) (0.6.) M ( s) s Proporsional Integral Deriative (PD) Controller. Kontrol mode ini adalah kombinasi mode proportional, integral dan derivatif dan diberikan dengan persamaan : v PID Controller K c p K c ε I t 0 ε dt K c D d ε dt p s (0.6.3) 76 SIMULINK

287 ' ' Dalam hal ini, Kc adalah controller gain, I adalah integral time dan D adalah derivative time. Ketiga nilai tersebut dapat diatur di dalam controller. Fungsi transfer untuk controller ini adalah: Fungsi Transfer PID controller M ( s) Gc ( s) K ( s) c s D I s (0.6.4) Blok Diagram Loop. Gambar 0.6. menunjukkan blok diagram lengkap untuk control loop. Semua fungsi transfer dalam diagram telah diturunkan. Dengan menggunakan aturan untuk memodifikasi blok diagram, diperoleh diagram yang lebih sederhana seperti Gambar Ti(s) K s T set ( s) Ksp R(s) + E(s) M(s) Gc(s) Gv(s) W(s) - Kw s c + + T s ' ( s) K s + + T' ( s) c s T m ( s) Gm(s) Gambar 0.6. Blok diagram loop kontrol temperatur SIMULINK 77

288 Ti(s) Gd(s) ' T set ( s) Ksp R(s) + E(s) M(s) Gc(s) Gv(s) W(s) - Gp(s) + + T' ( s) T m ' ( s) Gm(s) Gambar Penyerderhanaan loop kontrol temperatur Fungsi Transfer dalam diagram adalah: K( cs ) Gd ( s) ( s )( s ) K K wk G p ( s) ( s )( s ) K c c (0.6.5) (0.6.6) Nilai numeris untuk parameter dalam fungsi transfer diberikan pada Tabel 0.6. yang dihitung dari data yang diberikan dalam soal. Tabel 0.6. Nilai parameter untuk Contoh 0.6. A = 4,5 ft τ = 4,93 menit CM = 65,7 Btu/ o F τc = 0,54 menit K = 0,6 o F(ft 3 /min) Kw =,905 of/(lb/min) K = 0,383 o F/ o F KT =,0 %TO/ o F Kv =,65 Ksp =,0%TO/ o F (lb/min)/%co τm = 0,75 menit τt = 0,0 menit Blok diagram Simulink untuk menyelesaikan soal di atas dan plot hasil simulasi simulink ditunjukkan Gambar dan Gambar SIMULINK

289 Gambar Blok diagram Simulink untuk kontrol temperatur Gambar Plot hasil simulasi Simulink untuk kontrol temperatur SIMULINK 79

MENYUSUN KONTROL ALUR POGRAM

MENYUSUN KONTROL ALUR POGRAM BAB 2 MENYUSUN KONTROL ALUR POGRAM A. PENDAHULUAN Setelah kita membahas sekilas tentang cara kerja dan kemampuan MATLAB pada Bab 1, selanjutnya pada bab ini akan dijelaskan tentang kemampuan pemrograman

Lebih terperinci

MEMULAI MENGGUNAKAN MATLAB

MEMULAI MENGGUNAKAN MATLAB BAB 1 MEMULAI MENGGUNAKAN MATLAB A. PENDAHULUAN Apa itu MATLAB? Apa yang dapat dilakukan oleh MATLAB? Kemampuan apa yang dimilikinya? Bagaimana kita menggunakan MATLAB untuk menyelesaikan permasalahan-permasalahan

Lebih terperinci

Data reaksi berikut telah diperoleh dari reaksi peluruhan sederhana: Menggunakan MATLAB untuk memplot konsentrasi komponen A dalam mol/l

Data reaksi berikut telah diperoleh dari reaksi peluruhan sederhana: Menggunakan MATLAB untuk memplot konsentrasi komponen A dalam mol/l Cara membuat Plot/ Grafik dengan Matlab Pada postingan kali ini akan dibahas membuat grafik visualisasi di MATLAB. Secara khusus mampu membuat grafik sederhana dua dimensi, membuat multiplot dari grafik

Lebih terperinci

KATA PENGANTAR. Penulis. Raizal Dzil Wafa M.

KATA PENGANTAR. Penulis. Raizal Dzil Wafa M. i KATA PENGANTAR Buku ini dibuat untuk memudahkan siapa saja yang ingin belajar MATLAB terutama bagi yang baru mengenal MATLAB. Buku ini sangat cocok untuk pemula terutama untuk pelajar yang sedang menempuh

Lebih terperinci

MODUL I PENGENALAN MATLAB

MODUL I PENGENALAN MATLAB MODUL I PENGENALAN MATLAB 1. Apa Matlab itu? Matlab merupakan bahasa pemrograman dengan kemampuan tinggi dalam bidang komputasi. Matlab memiliki kemampuan mengintegrasikan komputasi, visualisasi, dan pemrograman.

Lebih terperinci

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET 1 (TEKNIK KOMPUTASI)

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET 1 (TEKNIK KOMPUTASI) No. LSKD/EKO/DEL221/01 Revisi : 03 Tgl : 30/10/2012 Hal 1 dari 8 1. Kompetensi Setelah melakukan praktik, mahasiswa diharapkan memiliki kompetensi dapat memahami operasi matematika sederhana pada Matlab.

Lebih terperinci

Pengantar Pemrograman MATLAB

Pengantar Pemrograman MATLAB Pengantar Pemrograman MATLAB Pengantar Pemrograman MATLAB Amir Tjolleng, M.Sc. PENERBIT PT ELEX MEDIA KOMPUTINDO Pengantar Pemrograman MATLAB Amir Tjolleng, M.Sc. 2017, PT. Elex Media Komputindo, Jakarta

Lebih terperinci

METODE NUMERIK Modul I

METODE NUMERIK Modul I LABORATORIUM KOMPUTASIONAL FAKULTAS TEKNOLOGI INFORMASI UNIVERSITAS YARSI METODE NUMERIK Modul I a. Estimasi waktu: 100 menit b. Tujuan Istruksional Khusus: Mahasiswa dapat menggunakan Mathlab dengan baik

Lebih terperinci

MODUL I MENGENAL MATLAB

MODUL I MENGENAL MATLAB MODUL I MENGENAL MATLAB TUJUAN Mahasiswa dapat mengenal MATLAB Mahasiswa dapat menggunakan fungsi Help Mahasiswa dapat menggunakan operasi pada MATLAB TEORI Gambaran sederhana tentang MATLAB adalah sebuah

Lebih terperinci

BAB I PENDAHULUAN 1 BAB I PENDAHULUAN

BAB I PENDAHULUAN 1 BAB I PENDAHULUAN BAB I PENDAHULUAN 1 BAB I PENDAHULUAN 1.1. Apakah Maple itu? Maple adalah suatu program interaktif yang mengintegrasikan kemampuan komputasi baik numerik ataupun simbolik, visualisasi (grafik) dan pemrograman.

Lebih terperinci

A. Kompetensi Setelah mengiktui mata kuliah ini, mahasiswa diharapkan dapat memahami dan bisa melakukan:

A. Kompetensi Setelah mengiktui mata kuliah ini, mahasiswa diharapkan dapat memahami dan bisa melakukan: No. LST/EKA/PTI 236/07 Revisi: 01 April 2011 Hal 1 dari 9 A. Kompetensi Setelah mengiktui mata kuliah ini, mahasiswa diharapkan dapat memahami dan bisa melakukan: 1. Mengenal dan menggunakan matlab sebagai

Lebih terperinci

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET (TEKNIK KOMPUTASI)

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET (TEKNIK KOMPUTASI) No. LSKD/EKO/DEL221/01 Revisi : 02 Tgl : - Hal 1 dari 1. Kompetensi Setelah melakukan praktik, mahasiswa diharapkan memiliki kompetensi: dapat memahami vector dan komputasi vector. 2. Sub Kompetensi Setelah

Lebih terperinci

Pemrograman pada MATLAB

Pemrograman pada MATLAB Pemrograman pada MATLAB 5.1 Struktur dan Tipe Data Sebelum membahas tentang pemrograman, akan lebih baik jika kita mengetahui tentang struktur data dan tipenya dalam MATLAB. Tipe data yang digunakan pada

Lebih terperinci

Modul 1 Pengenalan MATLAB

Modul 1 Pengenalan MATLAB Modul 1 Pengenalan MATLAB MATLAB singkatan dari MATrix LABoratory, merupakan bahasa pemrograman yang dikembangkan oleh The Mathwork.inc (http://www.mathwork.com). Bahasa pemrograman ini banyak digunakan

Lebih terperinci

Penggunaan Metode Numerik dan MATLAB dalam Fisika

Penggunaan Metode Numerik dan MATLAB dalam Fisika Tugas Akhir Mata Kuliah Metode Numerik Dr. Kebamoto Penggunaan Metode Numerik dan MATLAB dalam Fisika Oleh : A. Arif Sartono 6305220017 DEPARTEMEN FISIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS

Lebih terperinci

MATLAB UNTUK STATISTIKA & TEKNIK OPTIMASI Aplikasi untuk Rekayasa & Bisnis

MATLAB UNTUK STATISTIKA & TEKNIK OPTIMASI Aplikasi untuk Rekayasa & Bisnis MATLAB UNTUK STATISTIKA & TEKNIK OPTIMASI Aplikasi untuk Rekayasa & Bisnis Oleh : Budi Santosa Edisi Pertama Cetakan Pertama, 2008 Hak Cipta 2008 pada penulis, Hak Cipta dilindungi undang-undang. Dilarang

Lebih terperinci

MODUL 1. Command History Window ini berfungsi untuk menyimpan perintah-perintah apa saja yang sebelumnya dilakukan oleh pengguna terhadap matlab.

MODUL 1. Command History Window ini berfungsi untuk menyimpan perintah-perintah apa saja yang sebelumnya dilakukan oleh pengguna terhadap matlab. MODUL 1 1. Pahuluan Matlab merupakan bahasa pemrograman yang hadir dengan fungsi dan karakteristik yang berbeda dengan bahasa pemrograman lain yang sudah ada lebih dahulu seperti Delphi, Basic maupun C++.

Lebih terperinci

Panduan Praktikum S1 Elins Eksp. Kontrol Digital 1

Panduan Praktikum S1 Elins Eksp. Kontrol Digital 1 1 Sistem Kontrol Digital Eksperimen 1 : Pengenalan Matlab dan Simulink pada Sistem Kontrol Digital Tujuan : Memperkenalkan Matlab, Simulink dan Control System Toolbox yang digunakan untuk mensimulasikan

Lebih terperinci

Pendahuluan. Praktikum Pengantar Pengolahan Citra Digital Departemen Ilmu Komputer Copyright 2008 All Rights Reserved

Pendahuluan. Praktikum Pengantar Pengolahan Citra Digital Departemen Ilmu Komputer Copyright 2008 All Rights Reserved 1 Pengenalan Matlab Pendahuluan Matlab adalah perangkat lunak yang dapat digunakan untuk analisis dan visualisasi data. Matlab didesain untuk mengolah data dengan menggunakan operasi matriks. Matlab juga

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI Pada bab ini akan dibahas beberapa konsep dasar yang akan digunakan sebagai landasan berpikir seperti beberapa literatur yang berkaitan dengan penelitian ini. Dengan begitu akan mempermudah

Lebih terperinci

PENGENALAN MATLAB UNIVERSITAS MUHAMMADIYAH JEMBER ILHAM SAIFUDIN PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK. Senin, 06 Maret 2017

PENGENALAN MATLAB UNIVERSITAS MUHAMMADIYAH JEMBER ILHAM SAIFUDIN PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK. Senin, 06 Maret 2017 PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS MUHAMMADIYAH JEMBER PENGENALAN MATLAB ILHAM SAIFUDIN Senin, 06 Maret 2017 Universitas Muhammadiyah Jember Ilham Saifudin MI MATEMATIKA DASAR

Lebih terperinci

SATUAN ACARA PENGAJARAN (SAP) A. Tujuan Instruksional 1. Umum Setelah mengikuti mata kuliah ini mahasiswa akan mengenal fitur MATLAB dan

SATUAN ACARA PENGAJARAN (SAP) A. Tujuan Instruksional 1. Umum Setelah mengikuti mata kuliah ini mahasiswa akan mengenal fitur MATLAB dan : 2 Waktu Pertemuan : 200 menit Pertemuan ke- : 1 dan 2 Setelah mengikuti mata kuliah ini mahasiswa akan mengenal fitur dan mengoperasakan. Setelah mengikuti perkuliahan ini mahasiswa akan dapat membuka

Lebih terperinci

WORKSHOP DAN PELATIHAN MATLAB : PENUNJANG PEMBELAJARAN MATEMATIKA DI SMU DALAM RANGKA IMPLEMENTASI CONTEXTUAL TEACHING LEARNING ABSTRAK

WORKSHOP DAN PELATIHAN MATLAB : PENUNJANG PEMBELAJARAN MATEMATIKA DI SMU DALAM RANGKA IMPLEMENTASI CONTEXTUAL TEACHING LEARNING ABSTRAK WORKSHOP DAN PELATIHAN MATLAB : PENUNJANG PEMBELAJARAN MATEMATIKA DI SMU DALAM RANGKA IMPLEMENTASI CONTEXTUAL TEACHING LEARNING Tim Pengabdi:. Agus Maman Abadi. Dhoriva UW. Sri Andayani 4. Karyati 5. Caturiyati

Lebih terperinci

Dasar-dasar MATLAB. by Jusak Irawan, STIKOM Surabaya

Dasar-dasar MATLAB. by Jusak Irawan, STIKOM Surabaya Dasar-dasar MATLAB by Jusak Irawan, STIKOM Surabaya Perintah-Perintah Dasar MATLAB akan memberikan respons secara langsung terhadap ekspresi apapun yang diketikkan pada editor MATLAB. Sebagai contoh: >>

Lebih terperinci

PRAKTIKUM ISYARAT DAN SISTEM TOPIK 0 TUTORIAL PENGENALAN MATLAB

PRAKTIKUM ISYARAT DAN SISTEM TOPIK 0 TUTORIAL PENGENALAN MATLAB PRAKTIKUM ISYARAT DAN SISTEM TOPIK 0 TUTORIAL PENGENALAN MATLAB A. Tujuan 1. Mahasiswa mengenal lingkungan MATLAB dan mampu menggunakannya. 2. Mahasiswa mampu menggunakan fungsi-fungsi dasar MATLAB yang

Lebih terperinci

A.Firmansyah 1. Pendahuluan. 2. Lingkungan Kerja Matlab. Lisensi Dokumen: 2.1 Beberapa Bagian dari Window Matlab

A.Firmansyah 1. Pendahuluan. 2. Lingkungan Kerja Matlab. Lisensi Dokumen: 2.1 Beberapa Bagian dari Window Matlab Dasar-dasar Pemrograman Matlab A.Firmansyah firman03@gmail.com Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial

Lebih terperinci

PRAKTIKUM 1 SINYAL, SYSTEM, DAN KONTROL PENGENALAN MATLAB 1. Percobaan 1 Vektor Penulisan vektor di MATLAB

PRAKTIKUM 1 SINYAL, SYSTEM, DAN KONTROL PENGENALAN MATLAB 1. Percobaan 1 Vektor Penulisan vektor di MATLAB PRAKTIKUM 1 SINYAL, SYSTEM, DAN KONTROL PENGENALAN MATLAB 1. Percobaan 1 Vektor Penulisan vektor di MATLAB Membuat vector dengan nilai antara 0 dan 16 dengan kenaikan 2. Menjumlahkan vector Menjumlakan

Lebih terperinci

BAGIAN 1 SINTAK DASAR MATLAB

BAGIAN 1 SINTAK DASAR MATLAB BAGIAN 1 SINTAK DASAR MATLAB Pada bagian 1 ini, akan diuraikan tentang bagaimana mendefinisikan data, operasi data dan teknik mengakses data pada Matlab. Untuk lebih memahami, pembaca sebaiknya mecobanya

Lebih terperinci

TIPE DATA. 2.1 String

TIPE DATA. 2.1 String TIPE DATA 21 Bab 2 TIPE DATA Software MATLAB mengenal 3 tipe data yaitu : string, scalar, dan matriks. Array merupakan matriks yang hanya memiliki satu baris. MATLAB juga memiliki banyak fungsi built-in

Lebih terperinci

Bab III Metodologi Penelitian

Bab III Metodologi Penelitian Bab III Metodologi Penelitian III.1 Umum Agar penelitian ini dapat dilakukan secara terstruktur dan sistematis, maka penelitian ini dilaksanakan dengan tahapan sebagai berikut: 1. Identifikasi masalah

Lebih terperinci

PRAKTIKUM 1. Dasar-Dasar Matlab. (-), perkalian (*), pembagian (/) dan pangkat (^). Simbol ^ digunakan untuk

PRAKTIKUM 1. Dasar-Dasar Matlab. (-), perkalian (*), pembagian (/) dan pangkat (^). Simbol ^ digunakan untuk PRAKTIKUM 1 Dasar-Dasar Matlab 1 Operator Dasar Aritmatika Operator dasar aritmatika antara lain adalah penjumlahan (+), pengurangan (-), perkalian (*), pembagian (/) dan pangkat (^). Simbol ^ digunakan

Lebih terperinci

PEMROGRAMAN TERSTRUKTUR MENGGUNAKAN MATLAB

PEMROGRAMAN TERSTRUKTUR MENGGUNAKAN MATLAB PETUNJUK PRAKTIKUM PEMROGRAMAN TERSTRUKTUR MENGGUNAKAN MATLAB Oleh Ahmad Kamsyakawuni JURUSAN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS JEMBER 2009 MODUL 1 MENGENAL MATLAB A.

Lebih terperinci

JURUSAN TEKNIK KIMIA FAKULTAS TEKNIK UNIVERSITAS LAMPUNG 2010

JURUSAN TEKNIK KIMIA FAKULTAS TEKNIK UNIVERSITAS LAMPUNG 2010 5 F(X,Y) -5 - Y - -3 - - X 3 Heri Rustamaji JURUSAN TEKNIK KIMIA FAKULTAS TEKNIK UNIVERSITAS LAMPUNG BAB Memulai Menggunakan MATLAB Matlab merupakan bahasa canggih untuk komputansi teknik. Matlab merupakan

Lebih terperinci

2.3 Algoritma Tidak Berhubungan dengan Bahasa Pemrograman Tertentu

2.3 Algoritma Tidak Berhubungan dengan Bahasa Pemrograman Tertentu DAFTAR ISI BAB 1 Pengantar Sistem Komputer Dan Pemrograman 1.1 Sistem Komputer 1.2 Program, Aplikasi, Pemrogram, dan Pemrograman 1.3 Kompiler dan Interpreter 1.4 Kesalahan Program BAB 2 Pengantar Algoritma

Lebih terperinci

MODUL PRAKTIKUM FISIKA KOMPUTASI. Disusun Oleh:

MODUL PRAKTIKUM FISIKA KOMPUTASI. Disusun Oleh: MODUL PRAKTIKUM FISIKA KOMPUTASI Disusun Oleh: JURUSAN FISIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS PGRI PALEMBANG 2017 i PRAKATA Puji syukur penulis ucapkan kepada Tuhan yang Maha

Lebih terperinci

Pemodelan dan Simulasi Penghitungan Matematika Menggunakan Aplikasi Matlab

Pemodelan dan Simulasi Penghitungan Matematika Menggunakan Aplikasi Matlab Pemodelan dan Simulasi Penghitungan Matematika Menggunakan Aplikasi Matlab Dwi Retnoningsih Program Studi Teknik Informatika, Universitas Sahid Surakarta Jl. Adi Sucipto 154, Jajar, Surakarta, 57144, Telp.

Lebih terperinci

Pemrograman dengan MATLAB. Pengantar

Pemrograman dengan MATLAB. Pengantar Pemrograman dengan MATLAB Pengantar Outline Pengenalan matlab Apakah MATLAB Sejarah MATLAB Cara Penulisan Program MATLAB Pengenalan variable Operasi pada matrik Logika pemrograman Pemrograman GUI Apakah

Lebih terperinci

BAB III PEMROGRAMAN MATLAB 2 Copyright by

BAB III PEMROGRAMAN MATLAB 2 Copyright by BAB III PEMROGRAMAN MATLAB 2 1 M-File M-file merupakan sederetan perintah matlab yang dituliskan secara berurutan sebagai sebuah file. Nama file yang digunakan berekstensi m yang menandakan bahwa file

Lebih terperinci

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA No. LSKD/EKO/DEL221/01 Revisi : 02 Tgl : - Hal 1 dari 12 1. Kompetensi Setelah melakukan praktik, mahasiswa diharapkan memiliki kompetensi: dapat memahami input, output dan grafik pada. 2. Sub Kompetensi

Lebih terperinci

Pemrograman PHP7 untuk Pemula

Pemrograman PHP7 untuk Pemula Pemrograman PHP7 untuk Pemula Sanksi Pelanggaran Pasal 113 Undang-Undang Nomor 28 Tahun 2014 tentang Hak Cipta 1. Setiap Orang yang dengan tanpa hak melakukan pelanggaran hak ekonomi sebagaimana dimaksud

Lebih terperinci

PRAKTIKUM 1. Dasar-Dasar Matlab. (-), perkalian (*), pembagian (/) dan pangkat (^). Simbol ^ digunakan untuk

PRAKTIKUM 1. Dasar-Dasar Matlab. (-), perkalian (*), pembagian (/) dan pangkat (^). Simbol ^ digunakan untuk PRAKTIKUM 1 Dasar-Dasar Matlab 1 Operator Dasar Aritmatika Operator dasar aritmatika antara lain adalah penjumlahan (+), pengurangan (-), perkalian (*), pembagian (/) dan pangkat (^). Simbol ^ digunakan

Lebih terperinci

Ada 5 GUI tools yang dapat dipergunakan untuk membangun, mengedit, dan mengobservasi sistem penalaran, yaitu :

Ada 5 GUI tools yang dapat dipergunakan untuk membangun, mengedit, dan mengobservasi sistem penalaran, yaitu : BAB V FUZZY LOGIC MATLAB TOOLBOX Agar dapat mengunakan fungsi-fungsi logika fuzzy yang ada paad Matlab, maka harus diinstallkan terlebih dahulu TOOLBOX FUZZY. Toolbox. Fuzzy Logic Toolbox adalah fasilitas

Lebih terperinci

BAB 4 PENYELESAIAN SISTEM PERSAMAAN LINEAR

BAB 4 PENYELESAIAN SISTEM PERSAMAAN LINEAR BAB 4 PENYELESAIAN SISTEM PERSAMAAN LINEAR A. Latar Belakang Persoalan yang melibatkan model matematika banyak muncul dalam berbagai disiplin ilmu pengetahuan, seperti dalam bidang fisika, kimia, ekonomi,

Lebih terperinci

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA No. LSKD/EKO/DEL221/01 Revisi : 02 Tgl : 27/11/2012 Hal 1 dari 14 1. Kompetensi Setelah melakukan praktik, mahasiswa diharapkan memiliki kompetensi: dapat memahami script files dan struktur pengaturan

Lebih terperinci

Andry Pujiriyanto

Andry Pujiriyanto Cepat Mahir Matlab Andry Pujiriyanto andrypuji@hmgm.geoph.itb.ac.id Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial

Lebih terperinci

SILABUS MATA KULIAH Program Studi : Teknik Industri Kode Mata Kuliah : TKI Nama Mata Kuliah : Praktikum Komputasi Industri Jumlah SKS :

SILABUS MATA KULIAH Program Studi : Teknik Industri Kode Mata Kuliah : TKI Nama Mata Kuliah : Praktikum Komputasi Industri Jumlah SKS : SILABUS MATA KULIAH Program Studi : Teknik Industri Kode Mata Kuliah : TKI - 217 Nama Mata Kuliah : Praktikum Komputasi Industri Jumlah SKS : 1 Semester : IV Mata Kuliah Pra Syarat : - Deskripsi Mata Kuliah

Lebih terperinci

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA No. LSKD/EKO/DEL221/1 Revisi : 2 Tgl : 27/11/212 Hal 1 dari 13 1. Kompetensi Setelah melakukan praktik, mahasiswa diharapkan memiliki kompetensi: dapat memahami script files dan struktur pengaturan aliran.

Lebih terperinci

MODUL 1 PENGANTAR PROGRAM MATLAB DAN PENGGUNAANNYA UNTUK ALJABAR MATRIKS SEDERHANA

MODUL 1 PENGANTAR PROGRAM MATLAB DAN PENGGUNAANNYA UNTUK ALJABAR MATRIKS SEDERHANA MODUL 1 PENGANTAR PROGRAM MATLAB DAN PENGGUNAANNYA UNTUK ALJABAR MATRIKS SEDERHANA KOMPETENSI: 1. Mengenal dan dapat mengoperasikan program MATLAB pada PC. 2. Memiliki ketrampilan dasar menggunakan MATLAB

Lebih terperinci

STRUKTUR PROGRAM MATLAB

STRUKTUR PROGRAM MATLAB STRUKTUR PROGRAM MATLAB Emy Setyaningsih, S.Si, M.Kom 1 Beberapa Bagian dari Window Matlab Current Directory menampilkan isi dari direktori kerja saat menggunakan matlab. Command History berfungsi untuk

Lebih terperinci

Sebelum membahas mengenai pemrograman LabVIEW, sebaiknya pembaca mengenal istilah istilah penting berikut ini.

Sebelum membahas mengenai pemrograman LabVIEW, sebaiknya pembaca mengenal istilah istilah penting berikut ini. Pemrograman LabVIEW 6.1 Istilah-Istilah Penting Sebelum membahas mengenai pemrograman LabVIEW, sebaiknya pembaca mengenal istilah istilah penting berikut ini. 1. G: dari kata graphical, merupakan sebutan

Lebih terperinci

Bab 2. Dasar-Dasar Pemrograman C

Bab 2. Dasar-Dasar Pemrograman C Bab 2. Dasar-Dasar Pemrograman C Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 Overview Tipe Data Standar (Standart Data Type) Aturan Pendefinisian Identifier Variabel Mendeklarasikan

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Lampu Lalu Lintas 2.1.1 Pengertian Lampu Lalu Lintas Menurut Penjelasan UU Lalu Lintas No. 14 tahun 1992 pasal 8 ayat 1 huruf c menyebutkan bahwa Pengertian alat pemberi isyarat

Lebih terperinci

PENDAHULUAN A. Latar Belakang 1. Metode Langsung Metode Langsung Eliminasi Gauss (EGAUSS) Metode Eliminasi Gauss Dekomposisi LU (DECOLU),

PENDAHULUAN A. Latar Belakang 1. Metode Langsung Metode Langsung Eliminasi Gauss (EGAUSS) Metode Eliminasi Gauss Dekomposisi LU (DECOLU), PENDAHULUAN A. Latar Belakang Persoalan yang melibatkan model matematika banyak muncul dalam berbagai disiplin ilmu pengetahuan, seperti dalam bidang fisika, kimia, ekonomi, atau pada persoalan rekayasa.

Lebih terperinci

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA BAB 2 TINJAUAN PUSTAKA 2.1 Simulasi 2.1.1 Pengertian Simulasi Simulasi merupakan salah satu cara untuk memecahkan berbagai persoalan yang dihadapi di dunia nyata (real world). Banyak metode yang dibangun

Lebih terperinci

Catatan Kecil Belajar MATLAB Untuk Matematika Terapan dan Teknik. Arif Muchyidin

Catatan Kecil Belajar MATLAB Untuk Matematika Terapan dan Teknik. Arif Muchyidin Catatan Kecil Belajar MATLAB Untuk Matematika Terapan dan Teknik Arif Muchyidin Kata Pengantar Buku berjudul Catatan Kecil Belajar MATLAB Untuk Matematika Terapan dan Teknik merupakan langkah kecil dalam

Lebih terperinci

BAB II LANDASAN TEORI. selanjutnya sebagai bahan acuan yang mendukung tujuan penulisan. Materi-materi

BAB II LANDASAN TEORI. selanjutnya sebagai bahan acuan yang mendukung tujuan penulisan. Materi-materi BAB II LANDASAN TEORI Pada bab ini akan dibahas tentang landasan teori yang digunakan pada bab selanjutnya sebagai bahan acuan yang mendukung tujuan penulisan. Materi-materi yang diuraikan berupa definisi-definisi

Lebih terperinci

LAPORAN PRAKTIKUM TEKNIK DAN INSTRUMENTASI KENDALI. M-File dan Simulink

LAPORAN PRAKTIKUM TEKNIK DAN INSTRUMENTASI KENDALI. M-File dan Simulink LAPORAN PRAKTIKUM TEKNIK DAN INSTRUMENTASI KENDALI M-File dan Simulink Disusun Oleh Nama : Yudi Irwanto NIM : 021500456 Prodi Jurusan : Elektronika Instrumentasi : Teknofisika Nuklir SEKOLAH TINGGI TEKNOLOGI

Lebih terperinci

PERTEMUAN 2 ALGORITMA & PEMROGRAMAN

PERTEMUAN 2 ALGORITMA & PEMROGRAMAN PERTEMUAN 2 ALGORITMA & PEMROGRAMAN POKOK BAHASAN 1. Pendahuluan 2. Tahapan Pembangunan Program 3. Pengenalan Algoritma 4. Cara Menyajikan Algoritma 5. Data Program 6. Elemen-Elemen Program PENDAHULUAN

Lebih terperinci

Silabus dan Rencana Pelaksanaan Pembelajaran (RPP)

Silabus dan Rencana Pelaksanaan Pembelajaran (RPP) Siswanto MODEL Silabus dan Rencana Pelaksanaan Pembelajaran (RPP) MATEMATIKA INOVATIF Konsep dan Aplikasinya 3A untuk Kelas XII SMA dan MA Semester 1 Program Ilmu Pengetahuan Alam Berdasarkan Permendiknas

Lebih terperinci

Artikel BERKENALAN DENGAN MAXIMA

Artikel BERKENALAN DENGAN MAXIMA Artikel BERKENALAN DENGAN MAXIMA Oleh Muda Nurul Khikmawati PUSAT PENGEMBANGAN DAN PEMBERDAYAAN PENDIDIK DAN TENAGA KEPENDIDIKAN (PPPPTK) MATEMATIKA 2010 Abstrak Maxima merupakan salah satu software open

Lebih terperinci

RENCANA PEMBELAJARAN SEMESTER (RPS) PEMROGRAMAN KOMPUTER

RENCANA PEMBELAJARAN SEMESTER (RPS) PEMROGRAMAN KOMPUTER RENCANA PEMBELAJARAN SEMESTER (RPS) PEMROGRAMAN KOMPUTER Mata Kuliah: Pemrograman Komputer Semester: 4, Kode: KMM 162 Program Studi: Pendidikan Matematika Dosen: Khairul Umam, S.Si, M.Sc.Ed Capaian Pembelajaran:

Lebih terperinci

TEKNIK PENGOLAHAN CITRA. Kuliah 8 Transformasi Fourier. Indah Susilawati, S.T., M.Eng.

TEKNIK PENGOLAHAN CITRA. Kuliah 8 Transformasi Fourier. Indah Susilawati, S.T., M.Eng. TEKNIK PENGOLAHAN CITRA Kuliah 8 Transformasi Fourier Indah Susilawati, S.T., M.Eng. Program Studi Teknik Informatika/Sistem Informasi Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta 2015

Lebih terperinci

Bab 2 Entri dan Modifikasi Sel

Bab 2 Entri dan Modifikasi Sel Bab 2 Entri dan Modifikasi Sel Pada Bab ini anda akan mempelajari cara: Memasukkan teks dan angka pada spreadsheet secara manual Menyimpan file spreadsheet Menggunakan fasilitas cepat Fill Series Memotong,

Lebih terperinci

1.1 Sistem Komputer... 2

1.1 Sistem Komputer... 2 PRAKATA... DAFTAR lsi... III V BAB 1 PENGANTAR SISTEM KOMPUTER DAN PEMROGRAMAN... 1 1.1 Sistem Komputer... 2 1.2 Program, Aplikasi, Pemrogram, dan Pemrograman... 3 1.3 Kompiler dan Interpreter.... 3 1.4

Lebih terperinci

BERKENALAN DENGAN MAXIMA

BERKENALAN DENGAN MAXIMA BERKENALAN DENGAN MAXIMA Muda Nurul K. Saat ini ada banyak software open source yang bisa dimanfaatkan untuk pembelajaran matematika., diantaranya adalah Maxima. Maxima merupakan salah satu software open

Lebih terperinci

PENGENALAN ALAT HITUNG: KALKULATOR DAN FUNGSI KALKULATOR PADA PROGRAM R STATISTIKA

PENGENALAN ALAT HITUNG: KALKULATOR DAN FUNGSI KALKULATOR PADA PROGRAM R STATISTIKA Praktikum Perancangan Percobaan 1 PRAKTIKUM 1 PENGENALAN ALAT HITUNG: KALKULATOR DAN FUNGSI KALKULATOR PADA PROGRAM R STATISTIKA A. Tujuan Instruksional Khusus Mahasiswa diharapkan mampu: a. Menggunakan

Lebih terperinci

1. MENGENAL VISUAL BASIC

1. MENGENAL VISUAL BASIC 1. MENGENAL VISUAL BASIC 1.1 Mengenal Visual Basic 6.0 Bahasa Basic pada dasarnya adalah bahasa yang mudah dimengerti sehingga pemrograman di dalam bahasa Basic dapat dengan mudah dilakukan meskipun oleh

Lebih terperinci

Entri dan Modifikasi Sel

Entri dan Modifikasi Sel BAB Entri dan Modifikasi Sel 6 Pada Bab ini anda akan mempelajari cara: Memasukkan teks dan angka pada spreadsheet secara manual Menyimpan file spreadsheet Menggunakan fasilitas cepat Fill Series Memotong,

Lebih terperinci

Chapter 1 KONSEP DASAR C

Chapter 1 KONSEP DASAR C Chapter 1 KONSEP DASAR C Sejarah Dan Standar C Akar dari bahasa C adalah BCPL (dikembangkan oleh Martin Richard tahun 1967). Kemudian Tahun 1970, Ken Thompson mengembangkan bahasa tersebut yang di kenal

Lebih terperinci

UNIVERSITAS NEGERI YOGYAKARTA FAKULTAS MIPA RENCANA PELAKSANAAN PEMBELAJARAN

UNIVERSITAS NEGERI YOGYAKARTA FAKULTAS MIPA RENCANA PELAKSANAAN PEMBELAJARAN UNIVERSITAS NEGERI YOGYAKARTA FAKULTAS MIPA RENCANA PELAKSANAAN PEMBELAJARAN 1. Fakultas/Program Studi : MIPA/Pendidikan Matematika. Mata Kuliah/Kode : Aplikasi Komputer/MAT33 3. Jumlah SKS : Teori = Praktek

Lebih terperinci

MODUL PERKULIAHAN. Aplikasi Komputer. Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh

MODUL PERKULIAHAN. Aplikasi Komputer. Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh MODUL PERKULIAHAN Aplikasi Komputer Ms. Excel 2010 Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh Mata Kuliah Ciri Universitas (MKCU) 09 Abstract Modul ini menjelaskan tentang Aplikasi Microsoft

Lebih terperinci

BAB 5. Kondisional Perulangan. Materi. Pengenalan Perulangan Perulangan For Perulangan While Perulangan dengan menggunakan Kondisional If

BAB 5. Kondisional Perulangan. Materi. Pengenalan Perulangan Perulangan For Perulangan While Perulangan dengan menggunakan Kondisional If BAB 5 Kondisional Perulangan Materi Pengenalan Perulangan Perulangan For Perulangan While Perulangan dengan menggunakan Kondisional If SESI / PERKULIAHAN KE 5 1. Standar Kompetensi Mahasiswa dapat membuat

Lebih terperinci

Silabus Jurusan Pendidikan Fisika

Silabus Jurusan Pendidikan Fisika Silabus Jurusan Pendidikan Fisika DEPARTEMEN PENDIDIKAN NASIONAL UNIVERSITAS NEGERI YOGYAKARTA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM JURUSAN PENDIDIKAN FISIKA Alamat Karangmalang Yogyakarta - 55281

Lebih terperinci

Pendahuluan. Komputasi Nuklir. 29 Oktober Komputasi Nuklir Pendahuluan 29 Oktober / 41

Pendahuluan. Komputasi Nuklir. 29 Oktober Komputasi Nuklir Pendahuluan 29 Oktober / 41 Pendahuluan Komputasi Nuklir 29 Oktober 2015 Komputasi Nuklir Pendahuluan 29 Oktober 2015 1 / 41 Outline 1 Pendahuluan 2 Algoritma 3 Bahasa Pemrograman 4 Implementasi aturan trapesium menggunakan bahasa

Lebih terperinci

PRAKTIKUM 1 PENGENALAN PROGRAM APLIKASI MATEMATIKA MAPLE 7

PRAKTIKUM 1 PENGENALAN PROGRAM APLIKASI MATEMATIKA MAPLE 7 PRAKTIKUM 1 PENGENALAN PROGRAM APLIKASI MATEMATIKA MAPLE 7 1. MINGGU KE : 1 2. PERALATAN : LCD, E-LEARNING 3. SOFTWARE : MAPLE 4. TUJUAN Mahasiswa dapat: Mengaktifkan Maple. Mengetahui lingkungan Maple.

Lebih terperinci

KONTRAK PERKULIAHAN. : Ruang kuliah Jurusan Teknik Mesin (DG.3) Fakultas Teknik Universitas Udayana : Team teaching Logika Pemrograman Komputer

KONTRAK PERKULIAHAN. : Ruang kuliah Jurusan Teknik Mesin (DG.3) Fakultas Teknik Universitas Udayana : Team teaching Logika Pemrograman Komputer Nama mata kuliah Kode Mata Kuliah Semester Hari pertemuan/jam Tempat pertemuan Pengajar KONTRAK PERKULIAHAN : Logika dan Pemrograman Komputer : MD3210 : 3(Tiga) : Senin 10.10 s/d 11.50 Wita : Ruang kuliah

Lebih terperinci

Bahasa FORTRAN. Saifoe El Unas. Apa FORTRAN itu?

Bahasa FORTRAN. Saifoe El Unas. Apa FORTRAN itu? Bahasa FORTRAN Saifoe El Unas Apa FORTRAN itu? FORTRAN = Formula Translation Merupakan bahasa pemrograman pertama (1957) untuk Scientists& Engineers. Perkembangan FORTRAN : FORTRAN 66 FORTRAN 77 FORTRAN

Lebih terperinci

Otodidak VBA MS Excel untuk Pemula

Otodidak VBA MS Excel untuk Pemula Otodidak VBA MS Excel untuk Pemula Otodidak VBA MS Excel untuk Pemula Jubilee Enterprise PENERBIT PT ELEX MEDIA KOMPUTINDO Otodidak VBA MS Excel untuk Pemula Jubilee Enterprise 2017, PT Elex Media Komputindo,

Lebih terperinci

Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C

Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C 1. Pendahuluan Lingkungan Turbo C++ 4.5 Turbo C++ 4.5 adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C++ 4.5. 1 2 3 4 1 : Menu Utama

Lebih terperinci

AP2B Dini Triasanti STRUKTUR PEMROGRAMAN PYTHON

AP2B Dini Triasanti STRUKTUR PEMROGRAMAN PYTHON STRUKTUR PEMROGRAMAN PYTHON 1. Aturan Penulisan Program-program yang ditulis dalam Python secara khas jauh lebih pendek dibandingkan dengan program-program C atau C++, karena beberapa pertimbangan: tipe

Lebih terperinci

Pertemuan Ke 2 SISTEM PERSAMAAN LINEAR (SPL) By SUTOYO,ST.,MT

Pertemuan Ke 2 SISTEM PERSAMAAN LINEAR (SPL) By SUTOYO,ST.,MT Pertemuan Ke SISTEM PERSAMAAN LINEAR (SPL) By SUTOYO,ST,MT Pendahuluan Suatu sistem persamaan linier (atau himpunan persaman linier simultan) adalah satu set persamaan dari sejumlah unsur yang tak diketahui

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI 2.1 Pengolahan Citra Pengolahan citra (image processing) merupakan proses untuk mengolah pixel-pixel dalam citra digital untuk tujuan tertentu. Beberapa alasan dilakukan pengolahan

Lebih terperinci

PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN

PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN Obektif: Praktikan mengetahui arra, percabangan, dan perulangan pada Java. Praktikan mengetahui bentuk umum

Lebih terperinci

BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS

BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS 29 BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS Dengan menggunakan Visual Basic 6.0 aplikasi perangkat ajar pengelolaan dan perhitungan ekspresi matematika yang akan dibangun dalam penelitian

Lebih terperinci

PENERAPAN METODE NUMERIK PADA RANGKAIAN LISTRIK

PENERAPAN METODE NUMERIK PADA RANGKAIAN LISTRIK Techno.COM, Vol. 1, No. 4, November 211: 145-152 PENERAPAN METODE NUMERIK PADA RANGKAIAN LISTRIK Yuniarsi Rahayu Program Studi Teknik Informatika, Fakultas Ilmu Komputer Universitas Dian Nuswantoro Jl.

Lebih terperinci

TEKNIK PENGOLAHAN CITRA. Kuliah 7 Transformasi Fourier. Indah Susilawati, S.T., M.Eng.

TEKNIK PENGOLAHAN CITRA. Kuliah 7 Transformasi Fourier. Indah Susilawati, S.T., M.Eng. TEKNIK PENGOLAHAN CITRA Kuliah 7 Transformasi Fourier Indah Susilawati, S.T., M.Eng. Program Studi Teknik Elektro Program Studi Teknik Informatika Fakultas Teknik dan Ilmu Komputer Universitas Mercu Buana

Lebih terperinci

RENCANA PEMBELAJARAN SEMESTER (RPS) PEMOGRAMAN KOMPUTER

RENCANA PEMBELAJARAN SEMESTER (RPS) PEMOGRAMAN KOMPUTER RENCANA PEMBELAJARAN SEMESTER (RPS) PEMOGRAMAN KOMPUTER Mata Kuliah: Pemograman Komputer Semester : 4 (Empat); Kode : KMM 162; SKS : 3 (Tiga) Program Studi : Pendidikan Matematika Dosen : Khairul Umam,

Lebih terperinci

BAB I PENDAHULUAN Pengantar Bahasa ISETL

BAB I PENDAHULUAN Pengantar Bahasa ISETL BAB I PENDAHULUAN 1.1. Pengantar Bahasa ISETL 1.1.1. Pemrograman Dewasa ini perkembangan teknologi berkembang dengan pesatnya dan dapat digunakan dalam segala bidang, diantaranya bidang kesehatan, bidang

Lebih terperinci

I. PENDAHULUAN 1.1. Latar Belakang Untuk mengungkapkan perilaku dinamik suatu sistem fisik seperti mekanik, listrik, hidrolik dan lain sebagainya, umumnya sistem fisik dimaksud dimodelkan dengan sistem

Lebih terperinci

Penghitungan Polusi Udara Dalam Ruangan dengan Metode Eliminasi Gauss

Penghitungan Polusi Udara Dalam Ruangan dengan Metode Eliminasi Gauss Penghitungan Polusi Udara Dalam Ruangan dengan Metode Eliminasi Gauss Tri Hastuti Yuniati (23515009) 1 Program Studi Magister Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung,

Lebih terperinci

BAB 1. PENDAHULUAN 1.1 Latar Belakang 1.2 Rumusan Masalah 1.3 Tujuan

BAB 1. PENDAHULUAN 1.1 Latar Belakang 1.2 Rumusan Masalah 1.3 Tujuan BAB 1. PENDAHULUAN 1.1 Latar Belakang Sering kita jumpai dalam kehidupan sehari-hari dalam penyajian data menggunakan bentuk grafik. Grafik sering juga disebut sebagai diagram, bagan, maupun chart. Pada

Lebih terperinci

Panduan Lengkap Otomatisasi Pekerjaan Menggunakan Macro Excel

Panduan Lengkap Otomatisasi Pekerjaan Menggunakan Macro Excel Panduan Lengkap Otomatisasi Pekerjaan Menggunakan Macro Excel Sanksi Pelanggaran Pasal 113 Undang-Undang Nomor 28 Tahun 2014 tentang Hak Cipta 1. Setiap Orang yang dengan tanpa hak melakukan pelanggaran

Lebih terperinci

Pembelajaran Kalkulus Integral dengan Mathematica. Wahyu Setyaningrum Jurusan Pendidikan Matematika FMIPA UNY

Pembelajaran Kalkulus Integral dengan Mathematica. Wahyu Setyaningrum Jurusan Pendidikan Matematika FMIPA UNY Kode Makalah PM-18 Pembelajaran Kalkulus Integral dengan Mathematica Wahyu Setyaningrum Jurusan Pendidikan Matematika FMIPA UNY Abstrak Pemanfaatan teknologi untuk meningkatkan efektivitas pembelajaran

Lebih terperinci

Konsep Dasar Perhitungan Numerik

Konsep Dasar Perhitungan Numerik Modul Konsep Dasar Perhitungan Numerik Drs. Mulyatno, M.Si. D PENDAHULUAN alam mata kuliah Kalkulus, Aljabar Linear, Persamaan Diferensial Biasa, dan mata kuliah lainnya, dapat Anda pelajari berbagai metode

Lebih terperinci

Modul Praktikum Ke-1

Modul Praktikum Ke-1 Bahasa Pemrograman Dasar Fathurrohman 1 Modul Praktikum Ke-1 (Tampilan VB, Event, Property, Objek Kontrol : form, text, label, command) Mengenal Visual Basic (VB) Visual Basic adalah salah satu perangkat

Lebih terperinci

BAB II KAJIAN TEORI. yang diapit oleh dua kurung siku sehingga berbentuk empat persegi panjang atau

BAB II KAJIAN TEORI. yang diapit oleh dua kurung siku sehingga berbentuk empat persegi panjang atau BAB II KAJIAN TEORI Pada bab ini akan diberikan kajian teori mengenai matriks dan operasi matriks, program linear, penyelesaian program linear dengan metode simpleks, masalah transportasi, hubungan masalah

Lebih terperinci

PENGANTAR KOMPUTER DAN TEKNOLOGI INFORMASI 1A

PENGANTAR KOMPUTER DAN TEKNOLOGI INFORMASI 1A PENGANTAR KOMPUTER DAN TEKNOLOGI INFORMASI 1A REPRESENTASI DATA ALUR PEMROSESAN DATA SISTEM BILANGAN TEORI BILANGAN KOVERSI BILANGAN OPERASI ARITMATIKA Representasi Data Data adalah sesuatu yang belum

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI 5 BAB II LANDASAN TEORI 2.1. Tipe Data Abstrak (TDA) Tipe data sebuah variabel adalah kumpulan nilai yang dapat dimuat oleh variabel ini. Misalnya sebuah tipe boolean hanya bernilai TRUE atau FALSE, tidak

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Pengenalan HTML 2.1.1 Pengertian Dokumen HTML HTML ( Hypertext Markup Language ) adalah suatu bahasa yang digunakan untuk menulis halaman web. HTML dirancang untuk digunakan tanpa

Lebih terperinci