Buku Pemrograman Komputer

download Buku Pemrograman Komputer

of 242

Transcript of Buku Pemrograman Komputer

  • 8/10/2019 Buku Pemrograman Komputer

    1/242

    Adrian Nur

    Y.C. Danarto

    Bregas Siswahjono T.S.

    Paryanto

    Jurusan Teknik Kimia Fakultas Teknik

    Universitas Sebelas Maret

    Surakarta

  • 8/10/2019 Buku Pemrograman Komputer

    2/242

    LEMBAR PENGESAHAN

    1. Judul buku ajar : Penyelesaian Numeris dalamTeknik Kimia dengan Matlab

    2. Tim Penyusun : Adrian Nur, S.T., M.T.Y.C. Danarto, S.T., M.T.

    Bregas Siswahjono T.S., S.T., M.T.

    Ir. Paryanto, M.S.

    3. Waktu penulisan : 4 ( empat ) bulan.

    4. Biaya : Rp. 5.000.000,- ( lima juta rupiah ).

    Surakarta, 15 November 2005

    Mengetahui,

    Ketua Pelaksana Kegiatan SP4 Ketua Tim PenyusunJurusan Teknik Kimia UNS

    Fadilah, ST., MT. Adrian Nur, ST., MT.

    NIP 132 258 062 NIP 132 282 191

    Mengetahui/Menyetujui,Pembantu Rektor I UNS Dekan Fakultas Teknik UNS

    Dr. Ravik Karsidi, MS Ir. Sumaryoto, MT.NIP 130 906 766 NIP 131 471 452

  • 8/10/2019 Buku Pemrograman Komputer

    3/242

    Adrian Nur

    Y.C. Danarto

    Bregas Siswahjono T.S.

    Paryanto

    Jurusan Teknik Kimia Fakultas Teknik

    Universitas Sebelas Maret

    Surakarta

  • 8/10/2019 Buku Pemrograman Komputer

    4/242

    Penyelesaian Numeris dalam

    Teknik Kimia dengan Matlab

    Oleh : Adrian Nur

    Y.C.. Danarto

    Bregas Siswahjono T.S.

    Paryanto

    vi + 252 hlm. ; 15,5 x 23 cm

    10 9 8 7 6 5 4 3 2 1

    Hak Cipta @ 2005 pada penulisDilarang memperbanyak sebagian atau seluruh isi buku ini dalam

    bentuk apapun, tanpa izin dari penulis

    Edisi PertamaEdisi pertama, Cetakan pertama, November 2005

    Jurusan Teknik Kimia Fakultas Teknik

    Universitas Sebelas Maret

    Surakarta

  • 8/10/2019 Buku Pemrograman Komputer

    5/242

    KATA PENGANTAR

    Penggunaan MATLAB dalam penyelesaian persoalan dalam teknik

    kimia bukanlah hal yang baru. Namun penggunaan MATLAB tersebut sangatterbatas dan tanpa memperhatikan pengetahuan numeris yang digunakan.

    Buku ini menyajikan penggunaan bahasa pemrograman MATLAB

    untuk penyelesaian persoalan-persoalan dalam teknik kimia secara numeris. Bab

    awal buku berisi pengantar pemrograman dengan menggunakan MATLAB. Bab-

    bab selanjutnya diikuti dengan penyelesaian secara numeris berurutan :

    persamaan aljabar linier, persamaan aljabar non linier, integral, pencocokan

    kurva, optimasi, persamaan differensial ordiner, dan persamaan differensialparsial. Setiap bab berisi tentang metode-metode numeris yang digunakan,

    fungsi-fungsi MATLAB, contoh-contoh problem teknik kimia, dan program-

    program penyelesaiannya beserta keluaran program.Para mahasiswa sangat diharapkan menambah pengetahuan tentang

    pemanfaatan MATLAB dari berbagai buku dan internet yang diantaranya

    tercantum dalam daftar pustaka. Kerajinan dan ketekunan yang disertai doaakan membawa keberhasilan.

    Terima kasih tak lupa ditujukan kepada istri dan anak-anak tercinta

    yang rela kehilangan waktu bersama suami/ayahnya selama penyusunan buku

    ini. Buku ini tidak dapat tersusun tanpa bantuan teman-teman sejawat yang

    memberikan kritik dan komentar berguna. Segala kritik dan saran untukperbaikan buku ini masih sangat kami harapkan.

    Tim Penulis

  • 8/10/2019 Buku Pemrograman Komputer

    6/242

    iv

  • 8/10/2019 Buku Pemrograman Komputer

    7/242

    DAFTAR ISI

    Kata Pengantar iii

    Daftar Isi v

    I. PENGANTAR PEMOGRAMAN MATLAB 1

    1.1. Fungsi Umum Matlab 2

    1.2. Tipe Data 91.3. M-File 16

    II. PERSAMAAN ALJABAR LINIER 23

    2.1. Metode Eliminasi Gauss 23

    2.2. Metode Inversi Matriks 31

    2.3. Metode Dekomposisi LU 36

    III. PERSAMAAN ALJABAR NON LINIER 43

    3.1. Metode Bagidua (Bisection) 43

    3.2. Metode Newton-Raphson 48

    3.3. Fungsi fzero 52

    IV. INTEGRAL NUMERIS 75

    4.1. Aturan Trapesium 764.2. Aturan Simpson 80

    4.3. Kuadratur Gauss 85

  • 8/10/2019 Buku Pemrograman Komputer

    8/242

    vi

    V. PENCOCOKAN KURVA 99

    5.1. Regresi Kuadrat Terkecil 100

    5.1.1. Regresi Linier 1015.1.2. Regresi Polinomial 112

    5.1.3. Regresi Multivariabel 119

    5.2. Interpolasi 121

    5.2.1. Interpolasi Satu Dimensi 1225.2.2. Interpolasi Spline 1275.2.3. Interpolasi Dua Dimensi 131

    VI. OPTIMASI 133

    6.1. Pemograman Linier 1336.2. Metode Golden Section 136

    6.3. Optimasi Multivariabel 146

    VII. PERSAMAAN DIFFERENSIAL ORDINER 169

    7.1. Masalah Harga Awal 170

    7.1.1. Metode Euler 1707.1.2. Metode Runge-Kutta 173

    7.1.3. Metode Prediktor-Korektor 174

    7.1.4. Fungsi ode 1767.2. Masalah Harga Batas 206

    7.2.1. Metode Shooting 207

    7.2.2. Metode Beda Hingga (finite difference) 212

    VIII. PERSAMAAN DIFFERENSIAL PARSIAL 227

    8.1. Persamaan Differensial Eliptik 228

    8.1.1. Persamaan Laplace 228

    8.1.2. Persamaan Poisson 236

    8.2. Persamaan Differensial Parabolik 2378.2.1. Metode Eksplisit 237

    8.2.2. Metode Implisit 247

    Daftar Pustaka 251

  • 8/10/2019 Buku Pemrograman Komputer

    9/242

  • 8/10/2019 Buku Pemrograman Komputer

    10/242

  • 8/10/2019 Buku Pemrograman Komputer

    11/242

    3

    MATLAB Command Window/Editor merupakan jendela yang dibuka

    pertama kali setiap kali MATLAB dijalankan.

    Pada jendela ini dapat dilakukan akses-akses ke perintah-perintah

    MATLAB dengan mengetikkan ekspresi MATLAB, seperti mengakses help

    window, helpdesk, demo, dan lain-lainnya.

    Jika variabel-variabel dan perintah-perintah pada layar command

    window yang sedang aktif akan disimpan, maka dapat dilakukan dengan

    menggunakan perintah diary. Sebagai contoh, jika ingin menyimpan output

    m =1 2 34 5 6

    di direktori c:\coba dengan nama file data1.txt, maka dapat dilakukan dengan

    mengetik :

    m=[1 2 3;4 5 6]m =

    1 2 34 5 6

    diary 'c:\coba\data1.txt'

    Apapun yang tertulis di command window setelah perintah ini akan disimpan

    sampai kita menutup file ini dengan mengetikkan :

    diary off

    Command Windows juga digunakan untuk memanggil tool MATLAB

    seperti editor, debugger, atau fungsi. Window ini dicirikan dengan adanya

    prompt (>>) yang menyatakan MATLAB siap menerima perintah. Perintah dapat

    berupa fungsi-fungsi pengaturan file (seperti perintah DOS/UNIX) maupun

    fungsi-fungsi bawaan (toolbox) MATLAB. Berikut ini beberapa fungsi

    pengaturan file dalam MATLAB:

    dir atau ls: digunakan untuk mehhat isi dari sebuah direktori aktif.

    cd : digunakan untuk melakukan perpindahan dari direktori aktif

    ke direktori lainnya.

    pwd : digunakan untuk melihat direktori yang sedang aktif.

  • 8/10/2019 Buku Pemrograman Komputer

    12/242

    4

    mkdir : digunakan untuk membuat sebuah direktori.

    what : digunakan untuk melihat nama m-file (yang akan dibahas ke-

    mudian) dalam direktori aktif.

    who : digunakan untuk mehhat variabel yang sedang aktif.

    whos : digunakan untuk menampilkan nama setiap variabel yang

    sedang aktif.

    delete : digunakan untuk menghapus file.

    clear : digunakan untuk menghapus variabel.

    clc : digunakan untuk membersihkan layar.

    doc : digunakan untuk melihat dokumentasi The MathWorks, Inc.

    dalam format ht ml secara online.

    demo : digunakan untuk menampilkan demo yang disediakan oleh

    MATLAB.

    b. MATLAB Editor/Debugger (Editor M-File/Pencarian. Kesalahan)

    Jendela ini merupakan toolyang disediakan oleh MATLAB versi. 5 ke

    atas yang berfungsi sebagai editor script MATLAB (M-File). Walaupun

    sebenarnya script ini dalam pernrograman MATLAB dapat saja menggunakan

    editor lain seperti Notepad, Wordpad, bahkan Word. Untuk mengakses window

    M-File ini dapat dilakukan dengan cara:

    1. Memilih File kemudian pilih New,

    2. Pilih M-File, maka MATLAB akan menampilkan editor window.

    Selain cara di atas, untuk menampilkan editor M-File ini dapat juga

    dilakukan dengan mengetik: >> edit

    c. Figure Windows (Jendela gambar)

    Window ini adalah hasil visualisasi script MATLAB. Namun

    MATLAB memberi kemudahan bagi pemrogram untuk mengedit window ini

    sekaligus memberikan program khusus untuk itu sehingga window ini selain

    berfungsi sebagai visualisasi output dapat juga sekaligus menjadi media input

    yang interaktif.

  • 8/10/2019 Buku Pemrograman Komputer

    13/242

    5

    Coba anda ketikkan script berikut ini pada command window dan

    perhatikan hasilnya tergambar padafigure window.

    x=0:2:360; y=sin(x*pi/180); plot(x,y)

    d. MATLAB Help Window

    MATLAB menyediakan sistem help yang dapat diakses dengan

    perintah help. Misalnya, untuk mernperoleh informasi mengenai fungsi sin, coba

    anda ketikkan

    help sin

    dan kernudian menekan enter. Di layar akan muncul informasi dalam bentuk teks

    pada layar MATLAB yaitu:

    SIN Sine.SIN(X) is the sine of the elements of X.

    Overloaded methodshelp sym/sin.m

    Untuk mengetahui penggunaan perintah plot, cobalah ketikkan:

    help plot

    Selain helpdalam bentuk seperti di atas, MATLAB juga menyediakan

    demonstrasi kemampuan MATLAB dengan mengetikkan

    demo

    Untuk memperoleh informasi tentang konsep-konsep dasar bahasa

    MATLAB, dapat dilakukan dengan perintah

    intro

    Bentuk helpyang lain adalahHelp Windowyaitu dengan mengetikkan

    helpwinInformasi selengkapnya dapat diperoleh dengan mengklik dua kali salah satu

    baris yang ada di MATLABHelp Window atau dapat juga dengan mengetikkan

    informasi yang diinginkan pada kotak di sebelah kiri atas MATLAB Help

    Window.

    Help yang lain lagi adalah dalam bentuk Help Desk. Anda bisa

    mencoba sendiri menampilkanHelp Deskdengan mengetikkan perintah

    helpdesk

    dan anda akan dapatkan berbagai kemudahan dalam memperoleh informasi yang

    diinginkan.

  • 8/10/2019 Buku Pemrograman Komputer

    14/242

  • 8/10/2019 Buku Pemrograman Komputer

    15/242

    7

    help elfun

    MENYIMPAN DAN MEMANGGIL DATA

    Untuk menyimpan data gunakan menu File lalu pilih Save Workspace

    As. Untuk memanggil data gunakan pilihan Load WorkSpace As atau Open pada

    menu File. Sedangkan untuk import data, pada MATLAB versi 6 ke atas pilih

    Import Data. MATLAB juga menyediakan dua perintah - save dan load - yang

    jauh lebih fleksibel. Perintah save digunakan untuk menyimpan satu atau lebih

    variabel dalam file format sesuai dengan yang diinginkan.

    Contoh:

    clear all

    x=1:10; y=10:10:10:100; % membuat array baru

    save

    menyimpan semua varlabel MATLAB dalam format biner di file MATLAB.mat

    save data

    menyimpan semua variabel MATLAB dalam format biner di file data.mat

    save data x

    menyimpan variabel x dalam format biner di file data.mat

    save data x y /ascii

    menyimpan variabel x dan y dalam format biner di file data dalam format ASCII.

    Untuk membuka data gunakan perintah load.

    Contoh:

    load data.mat

    OPERATOR LOGIKA DAN RELASIONAL

    MATLAB menyediakan operasi logika dan relasional, hal ini

    diperlukan untuk menjawab pertanyaan benar atau salah. Salah satu manfaat

    yang penting dari kemampuan ini adalah untuk mengontrolurutan eksekusi

    sederetan perintah MATLAB (biasanya dalam M-File) berdasarkan hasil

    pertanyaan benar/salah.

    Sebagai masukan pada sernua ekspresi relasi dan logika, MATLAB

    menganggap sernua angka tidak nol sebagai benar dan nol sebagai salah. Hasil

  • 8/10/2019 Buku Pemrograman Komputer

    16/242

    8

    sernua ekspresi relasi dan logika adalah satu untuk benar dan nol untuk salah

    dengan tipe array logika, yaitu hasilnya mernuat bilangan 1 dan 0 yang tidak saja

    dapat digunakan untuk statemen matematika akan tetapi dapat juga digunakan

    untuk pengalamatan.

    Operator relasi MATLAB menunjukkan perbandingan:

    OPERATOR

    RELASIDISKRIPSI

    < Kurang dari

    > Lebih dari

    = Lebih dari atau sama dengan

    = Sama dengan

    ~= Tidak sama dengan

    Operator relasi MATLAB dapat digunakan untuk membandingkan dua array

    yang berukuran sama atau untuk membandingkan array dengan skalar.

    Operator logika menyediakan cara imtuk menggabung atau menegasi ekspresi

    relasi.

    Operator-operator logika dalam MATLAB adalah:

    OPERATOR

    LOGIKADISKRIPSI

    & AND

    | OR

    ~ NOT

    Untuk lebih jelasnya anda bisa mengetikkan :

    help +

    kemudian tekan enter.

    SUMBER-SUMBER INFORMASI MATLAB DI INTERNET

    Untuk lebih mendalami MATLAB, di bawah ini terdapat beberapa situs

    yang bisa dimanfaatkan.

  • 8/10/2019 Buku Pemrograman Komputer

    17/242

    9

    1. http://www.mathworks.com/ pada situs ini bisa didapatkan informasi

    tentang produk baru MATLAB seperti buku dan lain-lainnya.

    2. Newsgroup MATLAB:

    news://salukinews.siu.edu/comp.softsys.MATLAB/

    3. http://dir.yahoo.com/science/mathematics/software/matlab/

    merupakan sumber informasi tentang MATLAB dan langkah awal untuk

    memperoleh website MATLAB lainnya.

    4. http://www.cse.uiuc.edu/cse301/matlab.html situs ini merupakan situs

    University of Illinois di Champaign-Urbana yang menyediakan beberapa link

    untuk MATLAB di Internet

    5. http://www.eece.maine.edu/mm

    1.2. TIPE DATA

    MATLAB mengenal 3 tipe data yaitu string, skalar, dan matriks.

    merupakan matriks yang hanya memiliki satu baris. MATLAB juga memiliki

    banyak fungsi bawaan (build in) untuk memanipulasi tipe data tersebut. Berikut

    ini merupakan beberapa contoh yang menjelaskan ketiga tipe data di atas.

    String

    String dalam MATLAB adalah tipe data yang terdiri dari huruf-huruf

    dan/atau nilai-nilai ASCII yang ditampilkan representasinya. String adalah teks

    yang diawali dan diakhiri dengan tanda (......).

    Contoh:

    g='selamat datang'g =selamat datang size(g)ans =

    1 14 whosName Size Bytes Classans 1x2 16 double arrayg 1x14 28 char array

    Grand total is 16 elements using 44 bytes

  • 8/10/2019 Buku Pemrograman Komputer

    18/242

    10

    Setiap karakter dalam suatu string adalah satu elernen dalam array, dengan setiap

    elemennya berukuran 2 byte.

    Untuk melihat representasi ASCII karakter string dapat dilakukan

    dengan operasi aritmetik terhadap string atau mengkonversikannya

    menggunakan fungsi double.

    Contoh:

    double(g)ans =Columns 1 through 12115 101 108 97 109 97 116 32 100 97 116

    97Columns 13 through 14110 103

    abs(g)ans =Columns 1 through 12115 101 108 97 109 97 116 32 100 97 116

    97Columns 13 through 14110 103

    Fungsi charuntuk menampilkan karakter dengan nilai ASCII tertentu char(115)ans =s

    Karena string merupakan array numerik dengan atribut khusus, string dapat

    dimanipulasi menggunakan sernua metode manipulasi array yang tersedia, dalam

    MATLAB.

    t=g(1:5)t =selamKata selam dapat dibalik dengan cara:

    t=g(5:-1:1)t =males

    Angka -1 ditengah menunjukkan perhitungan mundur dari 5 sampai 1.

    Untuk menampilkan dalam format kolom gunakan operator transpose ()

    t=g(1:5)'t =selam

  • 8/10/2019 Buku Pemrograman Komputer

    19/242

    11

    Fungsi-fungsi string yang lain adalah:

    Fungsi input

    nama=input('Nama :','s')Nama : jojonnama =jojon

    Fungsi disp

    Fungsi disp memungkinkan untuk menampilkan string tanpa

    menampilkan nama variabelnya.

    disp(nama)jojon

    atau

    disp('jojon')

    jojon

    Syarat menggunakan dispadalah variabelnya harus berupa strings, jadi

    jika ingin menampilkan sebuah angka, terlebih dahulu. merubahnya ke dalam

    bentuk strings dengan menggunakan fungsi num2stro. Fungsi num2stro

    menghasilkan string, meskipun terlihat seperti angka (skalar). Perhatikan contoh

    berikut.

    c=234c =

    234 h=num2str(c)h =234 double(h)ans =

    50 51 52 h+2ans =

    52 53 54

    Jelas bahwa h+2 bukan 236, karena h mewakili nilai ASCII dari string 2, 3 dan 4

    yaitu masing-masing 50, 51 dan 52

    Skalar

    Skalar adalah sebuah bilangan tunggal yang secara matriks berukuran

    1x1. Operasi skalar merupakan dasar matematika. Kalkulator biasa melakukan

    perhitungan skalar. Tentu saja MATLAB bisa melakukan dengan lebih baik.

  • 8/10/2019 Buku Pemrograman Komputer

    20/242

  • 8/10/2019 Buku Pemrograman Komputer

    21/242

    13

    atau

    x=linspace(0,pi,11)

    Fungsi linspacedidefinisikan sebagai :

    linspace(nilai_pertama, nilai_akhir, jumlah_elemen)

    Dalam MATLAB elemen-elemen array diakses menggunakan subcript;

    misaInya x(1) adalah elemen pertama x, x(2) adalah elemen kedua x, dan

    seterusnya.

    Tabel berikut menunjukkan operasi-operasi array dasar.

    Data ilustrasi: a=[a1 a2 ... an], b=[b1 b2 ... bn], c=

    Penambahan skalar a+c=[ a1+c a2+c . . . an+c]

    Perkalian skalar a*c=[ a1*c a2*c . . . an*c]

    Penambahan array a+b=[ a1+b1 a2+b2 . . . an+bn]

    Perkalian array a. *b=[ a1*b1 a2+b2 . . . an+bn]

    Pembagian kanan array a. / b=[ a1/ b1 a2/ b2 . . . an/ bn]

    Pembagian kiri array a. \ b=[ a1/ b1 a2/ b2 . . . an/ bn]

    Pemangkatan array a. c=[ a1 c a2 c . . . an c]

    c. a=[ c a1 c a2 . . . c an]

    a. b=[ a1 b1 a2 b2 . . . an bn]

    Matriks

    Matriks merupakan bentuk utama MATLAB. Seperti haInya array,

    matriks juga didefenisikan elemen demi elemen. Untuk memahami operasi

    matriks dasar, perhatikan contoh-contoh berikut ini.

    a=[1 2 3] %penentuan matriks aa =

    1 2 3 b=[1 2 1; 3 2 1; 2 1 3] %penentuan matriks bb =

    1 2 13 2 12 1 3

  • 8/10/2019 Buku Pemrograman Komputer

    22/242

  • 8/10/2019 Buku Pemrograman Komputer

    23/242

  • 8/10/2019 Buku Pemrograman Komputer

    24/242

  • 8/10/2019 Buku Pemrograman Komputer

    25/242

  • 8/10/2019 Buku Pemrograman Komputer

    26/242

    18

    melibatkan pemanggilan ke fungsi M-File yang lain, fungsi M-File yang

    dipanggil itu juga akan dikompilasi ke dalam memori.

    3. Sembilan baris komentar yang pertama merupakan teks help yang

    ditampilkan. Jika anda meminta help, misalnya

    >>help fhitung

    menampilkan 9 baris komentar pertama fungsi fhitung. Baris komentar yang

    paling atas disebut baris H1, merupakan baris yang dicari oleh perintah

    lookfor.

    4. Setiap fungsi memiliki ruang kerja sendiri yang berbeda dengan ruang kerja

    MATLAB. Satu-satunya hubungan antara ruang kerja MATLAB dengan

    variabel-variabel dalam fungsi adalah variabel-variabel input dan output

    fungsi. Jika suatu fungsi mengubah nilai dalam bentuk suatu variabel input,

    perubahan itu hanya tampak dalam fungsi dan tidak mempengaruhi ruang

    kerja MATLAB.

    5. Jika suatu fungsi dipanggil, jumlah argument input dan output yang

    digunakan hanya terdapat dalam fungsi tersebut.

    6. Fungsi dapat berbagi variabel dengan fungsi lain, ruang ke.ja MATLAB,

    dan pemanggilan rekursi untuk dirinya sendiri jika variabelnya

    dideklarasikan sebagal variabel global.

    7. Fungsi M-File berhenti dieksekusi dan kernbali ke prompt jika telah

    mencapal akhir M-File atau jika menemui perintah return. Perintah return

    merupakan cara sederhana untuk menghentikan fungsi sebelum mencapai

    akhir M-File.

    8. Fungsi M-File dapat mernuat lebih dari sebuah fungsi.

    Jika perintah MATLAB tidak diakhiri dengan titik koma, hasil perintah

    serta nama variabelnya akan ditampilkan kembali dalam command window.

    Supaya tampilannya lebih bagus, untuk menampilkan nama variabel digunakan

    perintah disp. Perintah echo onmembuat perintah-perintah yang dibuat di M-

    File akan ditampilkan kembali di command window, sedangkan echo off

  • 8/10/2019 Buku Pemrograman Komputer

    27/242

    19

    berfungsi sebaliknya. Perintah inputmemungkinkan untuk meminta input dari

    pemakai saat M-File dijalankan.

    Secara umum fungsi M-File didefinisikan menggunakan command

    function. Sintaks standar untuk command function adalah:

    function[output1,output2,...]=NamaFunction(inputl,input2,..)

    Untuk memberi keterangan mengenai maksud dan tujuan M-File yang

    kita buat, agar orang lain juga paham dengan M-File tersebut, perlu adanya suatu

    keterangan (help) dan untuk membuatnya dapat dilakukan dengan menggunakan

    command % dari MATLAB.

    Contoh 12

    function [x,y]=gerak_parabola(sudut,V0,g,t);%[x,y]=gerak_parabola(sudut,V0,g,t)%Menghitung jarak (x, m) dan tinggi (y, m)%sebagai fungsi sudut lemparan (dalam radian),%kecepatan awal (V0, m/detik),%percepatan gravitasi (g, m/detik^2)%dan waktu (t, detik)x=V0*cos(sudut)*t;

    y=V0*sin(sudut)*t-g/2*t.^2;

    Jika kita menginginkan keterangan tentang M-file tersebut, kita ketikkan pada

    Command Window:

    help gerak_parabola

    Setelah ditekan enter muncul:

    [x,y]=gerak_parabola(sudut,V0,g,t)Menghitung jarak (x, m) dan tinggi (y, m)sebagai fungsi sudut lemparan (dalam radian),kecepatan awal (V0, m/detik),percepatan gravitasi (g, m/detik^2)dan waktu (t, detik)

    Menjalankan M-File

    Untuk memanggil atau mengeksekusi M File, yang perlu dilakukan

    adalah dengan memindahkan path search dari MATLAB compiler. Pada

    dasarnya, proses eksekusi compilerMATLAB adalah dengan mencan command

    atau definisi operator yang ada dan mengeksekusi definisi scriptatau operator

    pertama yang ditulis dan ditemui direktori MATLAB (di direkton bin atau

    toolbox).

  • 8/10/2019 Buku Pemrograman Komputer

    28/242

    20

    Set Path dapat dilakukan dengan cara membuka menu pull down di

    MATLAB command editor, pilih File kemudian pilih Set Path. Dari menu

    tersebut arahkan current directoryke direktori tempat di mana disimpan script

    yang ingin dieksekusi dengan cara mengetikkan atau browsing directory ke

    tempat penyimpanan scriptyang akan dieksekusi.

    Ada beberapa cara menjalankan fungsi M-File. Misalkan fungsi

    gerak_parabola (contoh 12) dapat dijalankan dengan cara, antara lain:

    [jarak,tinggi]=gerak_parabola(pi/4,40,9.8,1)x =

    28.2843y =

    23.3843

    atau bisa juga variabel waktunya bertipe array

    [jarak,tinggi]=gerak_parabola(pi/4,40,9.8,[1:3])jarak =

    28.2843 56.5685 84.8528tinggi =23.3843 36.9685 40.7528

    Hal ini dimungkinkan karena kita menggunakan operator pemangkatan dengan

    dot (titik)

    y=V0*sin(sudut)*t-g/2*t.^2;

    Bukan

    y=V0*sin(sudut)*t-g/2*t^2;

    atau dengan perintah feval

    [x,y]=feval('gerak_parabola',pi/4,40,9.8,1)

    x =28.2843

    y =23.3843

    Bentuk umum perintah fevaladalah

    feval('namafungsi', input1,input2,...)

    Perlu diketahui, MATLAB juga mempunyai command inline yang

    digunakan untuk mendefinisikan atau menuliskan suatu fungsi pada command

    window.

  • 8/10/2019 Buku Pemrograman Komputer

    29/242

    21

    Contoh 13

    g=inline('6-x 2')g =

    Inline function:g(x) = 6-x^2

    g(2)

    ans =2

    Contoh 14

    radius=inline('sqrt(x^2+y 2)','x','y')radius =

    Inline function:radius(x,y) = sqrt(x^2+y^2)

    radius(2,3)ans =

    3.6056

  • 8/10/2019 Buku Pemrograman Komputer

    30/242

    2PERSAMAAN ALJABAR

    LINIER

    Persamaan umum persamaan aljabar linier simultan adalah:

    a11x1+ a12x2+ . . . + a1nxn= b1

    a21x1+ a22x2+ . . . + a2nxn= b2

    .

    .

    .

    an1x1+ an2x2+ . . . + annxn= bn

    dengan a adalah koefisien konstanta dan b adalah konstanta.

    2.1. METODE ELIMINASI GAUSS

    Teknik yang dilakukan dalam metode ini meliputi kombinasi persamaan

    agar mengeliminasi yang tidak diketahui dan solusi melalui substitusi balik.

    Langkah-langkah penyelesaian dengan eliminasi Gauss secara umum adalah :

  • 8/10/2019 Buku Pemrograman Komputer

    31/242

    24

    3

    2

    1

    333231

    232221

    131211

    b

    b

    b

    |

    |

    |

    aaa

    aaa

    aaa

    ''3

    '

    2

    1

    ''33

    '

    23

    '

    22

    131211

    b

    b

    b

    |

    |

    |

    a

    aa

    aaa

    ''33

    ''3

    3a

    bx = ,

    ( )'22

    3'23

    '2

    2a

    xabx

    = ,

    ( )11

    31321211

    a

    xaxabx

    = .

    Persamaan dasar

    a11x1+ a12x2+ a13x3= b1 .... (2.1)

    a21x1+ a22x2+ a23x3= b2 .... (2.2)

    a31x1+ a32x2+ a33x3= b3 .... (2.3)

    Normalisasi pers. (2.1) dengan cara membagi a11

    x1+11a

    1a12x2+

    11a

    1a13x3=

    11a

    1b1 .... (2.4)

    Eliminasi a21pers. (2.2) dengan cara :

    [Pers.(2.2) - a21 x Pers.(2.4)]

    =

    +

    1

    11

    212313

    11

    2123212

    11

    2122 b

    a

    abxa

    a

    aaxa

    a

    aa

    '23

    '232

    '22 bxaxa =+ .... (2.5)

    Eliminasi a31pers. (2.3) dengan cara :

    [Pers.(2.3) - a31x Pers.(2.4)]

    =

    +

    1

    11

    313313

    11

    3133212

    11

    3132 b

    a

    abxa

    a

    aaxa

    a

    aa

  • 8/10/2019 Buku Pemrograman Komputer

    32/242

  • 8/10/2019 Buku Pemrograman Komputer

    33/242

    26

    % Eliminasi Gaussfor k=1:n

    for i=k+1:nm(i,k)=A(i,k)/A(k,k);for j=k:n

    A(i,j)=A(i,j)-m(i,k)*A(k,j);endB(i)=B(i)-m(i,k)*B(k);

    endend

    % Substitusi Balikx(n)=B(n)/A(n,n);for i=n-1:-1:1

    sum=B(i);for k=i+1:n

    sum=sum-A(i,k)*x(k);endx(i)=sum/A(i,i);

    end

    Contoh 2.1. Campuran Batubara

    Unit utilitas penyediaan energi membutuhkan batubara dengan kadar sulfur 0,61

    %, phospor 0,043 % dan abu 1,8 %. Ada 4 tipe batubara yang tersedia dengan

    komposisi yang dapat dilihat di tabel. Tentukan campuran ke empat tipe batubara

    tersebut !

    Tipe % S % P % abu

    1 0,2 0,05 2

    2 1,0 0,06 3

    3 0,5 0,03 1

    4 0,7 0,03 1

    Basis untuk 1 kg batubara campuranx1 + x2 + x3 + x4 = 1

    0,2x1 + x2 + 0,5x3 + 0,7x4 = 0,61

    0,05x1 + 0,06x2 + 0,03x3 + 0,03x4 = 0,043

    2x1 + 3x2 + x3 + x4 = 1,8

    Proses penskalaan

    x1 + x2 + x3 + x4 = 1

    2x1 + 10x2 + 5x3 + 7x4 = 6,1

    5x1 + 6x2 + 3x3 + 3x4 = 4,3

  • 8/10/2019 Buku Pemrograman Komputer

    34/242

    27

    2x1 + 3x2 + x3 + x4 = 1,8

    Program penyelesaian dengan eliminasi Gauss

    % Campuran Batubara% Hasil Penyusunan Persamaan Aljabar Linier% x1 + x2 + x3 + x4 = 1

    % 2x1 + 10x2 + 5x3 + 7x4 = 6.1% 5x1 + 6x2 + 3x3 + 3x4 = 4.3% 2x1 + 3x2 + x3 + x4 = 1.8% Penyelesaian dilakukan dengan Eliminasi Gauss%% --------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ********************************************************

    clear allclc

    % Penyusunan Matriks AA = [1 1 1 1

    2 10 5 75 6 3 32 3 1 1];

    % Penyusunan Matriks BB = [1 6.1 4.3 1.8]';

    n = 4; % Orde matriks

    x = elimgauss(A,B,n);

    disp(' ')disp('Fraksi masing-masing type batubara')disp('----------------------------------')x1 = x(1)x2 = x(2)x3 = x(3)x4 = x(4)

    Keluaran program

    Fraksi masing-masing type batubara----------------------------------x1 =

    0.2000x2 =

    0.3000x3 =

    0.4000x4 =

    0.1000

    Sehingga batubara type 1 = 20 %

    type 2 = 30 %

    type 3 = 40 %

    type 4 = 10 %

  • 8/10/2019 Buku Pemrograman Komputer

    35/242

    28

    Contoh 2.2. Komposisi Fraksi Mol Senyawa Hidrokarbon

    Tiga senyawa hidrokarbon berada dalam suatu tabung, dengan tekanan 2 atm dan

    berada dalam keadaan kesetimbangan fase cair-gas. Hitunglah komposisi fraksi

    mol cairan ketiga gas tersebut, dengan data-data dan rumus di bawah ini.

    xi= 1 (2.2.1)

    yi= 1 (2.2.2)

    yiPT= xiPio (2.2.3)

    H1 x1+ H2 x2+ H3 x3= H (2.2.4)

    dengan xi = fraksi mol cairan komponen i

    yi = fraksi mol gas komponen i

    Pio= tekanan uap murni komponen i

    PT= tekanan total

    Hi = panas pencampuran komponen iH = panas pencampuran total

    Data-data P10= 5/2 atm, P2

    0= 5/3 atm, P30= 5/4 atm

    H1= 20 kcal, H2= 30 kcal, H3= 55 kcal

    PT= 2 atm, H = 30 kcal

    Susunlah menjadi persamaan aljabar linier terlebih dahulu dan selesaikan!

    Penyelesaian :

    Persamaan (2.2.1)

    x1+ x2+ x3= 1

    Substitusi persamaan (2.2.3) ke persamaan (2.2.2)

    T

    O1

    P

    Px1 +

    T

    O2

    P

    Px2 +

    T

    O3

    P

    Px3= 1

    5/4 x1+ 5/6 x2+ 5/8 x3=1

    30 x1+ 20 x2+ 15 x1= 24 (2.2.5)

    Persamaan (2.2.4)

    20 x1+ 30 x2+ 55 x3= 30 (2.2.6)

    Persamaan aljabar simultan

  • 8/10/2019 Buku Pemrograman Komputer

    36/242

    29

    x1+ x2+ x3= 1 (2.2.1)

    30 x1+ 20 x2+ 15 x1= 24 (2.2.5)

    20 x1+ 30 x2+ 55 x3= 30 (2.2.6)

    Selanjutnya diselesaikan dengan Matlab

    % Komposisi Fraksi Mol Senyawa Hidrokarbon% Tekanan uap murni komponen 5/2 atm, 5/3 atm, 5/4 atm% Entaphi panas pencampuran 20 kcal, 30 kcal, 55 kcal% Tekanan total = 2 atm;% Entalphi total 30 kcal;% Penyelesaian dilakukan dengan Eliminasi Gauss%% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************

    clear allclc

    % Data-dataP = [5/2 5/3 5/4]; % atm

    H = [20 30 55]; % kcalPt = 2; % atmHt = 30; % kcal

    % Penyusunan Matriks AA = [1 1 1

    P(1)/Pt P(2)/Pt P(3)/PtH(1) H(2) H(3)];

    % Penyusunan Matriks BB = [1 1 Ht]';

    n = 3; % Orde matriks

    x = elimgauss(A,B,n);

    disp(' ')disp('Fraksi Mol masing-masing komponen')disp('---------------------------------')

    x1 = x(1)x2 = x(2)x3 = x(3)

    Keluaran program tersebut adalahFraksi Mol masing-masing komponen---------------------------------x1 =

    0.5000x2 =

    0.3000x3 =

    0.2000

  • 8/10/2019 Buku Pemrograman Komputer

    37/242

    30

    2.2. METODE INVERSI MATRIKS

    Persamaan umum persamaan aljabar linier simultan dapat dituliskan dalam

    bentuk matriks sebagai berikut

    nn3n2n1n

    n3333231

    n2232221

    n1131211

    a...aaa

    .

    a...aaa

    a...aaa

    a...aaa

    n

    3

    2

    1

    x

    .

    x

    x

    x

    =

    n

    3

    2

    1

    b

    .

    b

    b

    b

    . (2.9)

    A x = B

    Suatu matriks jika dikalikan dengan matriks identitas maka akan dihasilkan

    matriks itu sendiri. Matriks identitasadalah matriks bujursangkar yang terdiri

    dari bilangan 0 pada setiap elemennya kecuali pada diagonal matriks yangmempunyai bilangan 1.

    Contoh matriks identitas 3 x 3

    100

    010

    001

    = I

    Jika matriks identitas tersebut dikalikan dengan matriks lain maka akan

    dihasilkan matriks itu sendiri. Contohnya jika matriks tersebut dikalikan dengan

    B yaitu suatu matriks yang berukuran 1 x 3.

    100

    010

    001

    3

    2

    1

    b

    b

    b

    =

    3

    2

    1

    b

    b

    b

    I B = B

    Inversi matriks A adalah jika inversi matriks A tersebut dikalikan dengan A

    maka akan diperoleh matriks identitas.

    A-1

    A = I

    Penyelesaian persamaan linier simultan dengan inversi matriks adalah

  • 8/10/2019 Buku Pemrograman Komputer

    38/242

    31

    A x = B

    A-1

    A x = A-1

    B

    I x = A-1

    B

    x = A-1

    B (2.10)

    Inversi matriks A ukuran 2 x 2

    2221

    1211aaaa dapat ditentukan dengan cara

    A-1=

    1121

    1222

    21122211 aa

    aa

    aaaa

    1

    Matlab dengan mudah dapat menentukan inversi suatu matriks dengan

    menggunakan fungsi inv.

    Contoh 2.3. Konstanta Kecepatan Reaksi Phase Gas Nitrit Oksida dengan

    Oksigen

    Data konstanta kecepatan reaksi phase gas nitrit oksida dengan oksigen

    T, K 10-9

    k , cc/ (mol det)

    300 7,1

    413 4,0

    564 2,8

    Jika k sesuai dengan persamaan k = A Tmexp (-E/T)

    Tentukan A, m, dan E

    Penyelesaian

    k = A Tmexp (-E/T)

    ln k = ln A + m ln T E/T

    Dari data-data di atas

    22,68336 = ln A + 5,70378 m 0,00333 E

    22,10956 = ln A + 6,02345 m 0,00242 E

    21,75289 = ln A + 6,33505 m 0,00177 E

    untuk ln A = x1

    m = x2

  • 8/10/2019 Buku Pemrograman Komputer

    39/242

    32

    E = x3

    x1+ 5,70378 x2 0,00333 x3= 22,68336

    x1+ 6,02345 x2 0,00242 x3= 22,10956

    x1+ 6,33505 x2 0,00177 x3= 21,75289

    Dalam bentuk matriks

    =

    75289,21

    10956,22

    68336,22

    x

    x

    x

    00177,033505,61

    00242,002345,61

    00333,070378,51

    3

    2

    1

    Program penyelesaian dengan Matlab

    % Konstanta Kecepatan Reaksi Phase Gas Nitrit Oksida dg Oksigen% k = A T^m exp(-E/T)% ln k = ln A + m ln T + (-E)/T% Penyelesaian dilakukan dengan Inversi Matriks%

    % -------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% *************************************************************

    clear allclc

    % Data-dataT = [ 300 413 564]; % Kk = [ 7.1 4.0 2.8]*10^9; % cc/(mol.det)

    % Penyusunan Matriks AAAA = [ 1 log(T(1)) 1/T(1)

    1 log(T(2)) 1/T(2)1 log(T(3)) 1/T(3)];

    % Penyusunan Matriks BB

    BB = log(k);

    CC = inv(AA)*BB';

    disp(' ')disp('Parameter konstanta kecepatan reaksi')disp('------------------------------------')A = exp(CC(1))m = CC(2)E = -CC(3)

    Keluaran program di atas adalah

    Parameter konstata kecepatan reaksi-----------------------------------

  • 8/10/2019 Buku Pemrograman Komputer

    40/242

    33

    A =1.3509e+007

    m =0.6064

    E =-841.6950

    sehingga persamaan konstanta kecepatan reaksinya adalah

    k = 1,3509.107T0,6064exp(841,6950/T)

    Contoh 2.4. Parameter Transfer Massa

    Hubungan parameter-parameter transfer massa dapat dinyatakan sebagai

    kelompok tak berdimensi (KTD) sebagai berikut:

    3K

    e

    2KSp

    1e

    pf

    D

    VdK

    D

    dak

    =

    Sh = K1 (Re)K2(Sc)K3

    Tentukan K1, K2, dan K3dengan data-data berikut:Sh

    (Sherwood)

    Re

    (Reynold)

    Sc

    (Schmidt)

    1 43,7 10800 0,6

    2 21,5 5290 0,6

    3 24,2 3120 1,8

    Penyelesaian

    Sh = K1(Re)K2(Sc)K3

    log (Sh) = log (K1) + K2log (Re) + K3log (Sc)

    Dari tabel-tabel di atas, diperoleh

    1,64048 = x1+ 4,03342 x2 0,22185 x3

    1,33244 = x1+ 3,72346 x2 0,22185 x3

    1,38382 = x1+ 3,49415 x2+ 0,25527 x3

    disusun dalam bentuk matriks

  • 8/10/2019 Buku Pemrograman Komputer

    41/242

    34

    =

    38382,1

    33244,1

    64048,1

    x

    x

    x

    25527,049415,31

    22185,072346,31

    22185,003342,41

    3

    2

    1

    Program Penyelesaian

    % Parameter Transfer Massa% Sh=k1*(Re)^k2*(Sc)^k3% log(Sh) = log(k1) + k2*log(Re) + k3*log(Sc)% Penyelesaian dilakukan dengan Inversi Matriks%% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************

    clear allclc

    % Data-dataSh = [43.7 21.5 24.2];Re = [10800 5290 3120];Sc = [0.6 0.6 1.8];

    % Penyusunan Matriks AA = [1 log10(Re(1)) log10(Sc(1))

    1 log10(Re(2)) log10(Sc(2))1 log10(Re(3)) log10(Sc(3))];

    % Penyusunan Matriks BB = [log10(Sh(1))

    log10(Sh(2))log10(Sh(3))]

    k = A\B;disp(' ')disp('Konstanta Parameter Transfer Massa ')disp('-----------------------------------')k1 = 10^k(1)k2 = k(2)k3 = k(3)

    Keluaran Program

    Konstanta Parameter Transfer Massa-----------------------------------

    k1 =0.0058

    k2 =0.9938

    k3 =0.5853

    Persamaan hubungan parameter-parameter transfer massa menjadi :

    Sh = 0,0058 (Re)0,9938(Sc)0,5853

  • 8/10/2019 Buku Pemrograman Komputer

    42/242

    35

    2.3. METODE DEKOMPOSISI LU

    Modifikasi metode eliminasi yang lain adalah metode dekomposisi LU.

    Metode ini similar dengan metode eliminasi Gauss. Matriks koefisien konstanta

    diubah menjadi 2 matriks lain, yaitu L dan U; dengan L adalah matriks

    triangular bawah dengan diagonal 1 dan Uadalah matriks triangular atas.

    A = LU (2.11)

    Konsep dasar metode dekomposisi LU adalah

    A x = b

    L U x = L b*

    U x = b* (2.12)

    Matriks Adidekomposisi menjadi matriks Ldan U. Matriks Lhasil dekomposisi

    Adigunakan untuk mendekomposisikan matriks b, sehingga diperoleh matriks

    b*. Jika matriks U dikalikan dengan matriks x akan diperoleh matriks b*.

    Selanjutnya x diperoleh dengan substitusi balik karena U adalah matriks

    triangular bawah.

    Contoh 2.5. Neraca Massa Steady State pada Kolom Distilasi Bertingkat

    Xylena, styrena, toluena, dan benzena dipisahkan dengan kolom distilasi seperti

    ditunjukkan pada gambar 2.1.

    Tentukan kecepatan alir D1, D2, B1, B2, D, dan B.

  • 8/10/2019 Buku Pemrograman Komputer

    43/242

    36

    #1

    #2

    #3

    F = 70 mol/menit

    D

    B

    D2

    B2

    B1

    D1

    15 % Xylena

    25 % Styrena

    40 % Toluena

    20 % Benzena

    7 % Xylena

    4 % Styrena

    54 % Toluena

    35 % Benzena

    18 % Xylena

    24 % Styrena

    42 % Toluena

    16 % Benzena

    15 % Xylena

    10 % Styrena

    54 % Toluena

    21 % Benzena

    24 % Xylena

    65 % Styrena

    10 % Toluena

    1 % Benzena

    Gambar 2.1. Distilasi Bertingkat

    Program Matlab% Neraca Massa Steady State pada Kolom Distilasi Bertingkat% Xylena, styrena, toluena, dan benzena% dipisahkan dengan kolom distilasi bertingkat%% Penyelesaian dilakukan dengan Dekomposisi LU%% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************

    clear allclc

  • 8/10/2019 Buku Pemrograman Komputer

    44/242

    37

    % Penyusunan Matriks AA = [0.07 0.18 0.15 0.24

    0.04 0.24 0.10 0.650.54 0.42 0.54 0.10.35 0.16 0.21 0.01];

    % Penyusunan Matriks BB = [0.15*70 0.25*70 0.40*70 0.20*70]';

    disp(' ')disp('Penyelesaian untuk D1 B1 D2 B2 adalah : ')

    % Dekomposisi Matriks A[L,U] = lu(A);

    % Membentuk Matriks B*Bstar = inv(L)*B;

    % Menentukan Matriks xX = inv(U)*Bstar

    disp('Umpan kolom 2')D1 = X(1);B1 = X(2);D = D1 + B1X_Dx = (A(1,1)*D1+A(1,2)*B1)/DX_Ds = (A(2,1)*D1+A(2,2)*B1)/D

    X_Dt = (A(3,1)*D1+A(3,2)*B1)/DX_Db = (A(4,1)*D1+A(4,2)*B1)/D

    disp('Umpan kolom 3')D2 = X(3);B2 = X(4);B = D2 + B2X_Dx = (A(1,3)*D2+A(1,4)*B2)/BX_Ds = (A(2,3)*D2+A(2,4)*B2)/BX_Dt = (A(3,3)*D2+A(3,4)*B2)/BX_Db = (A(4,3)*D2+A(4,4)*B2)/B

    Keluaran program :

    Penyelesaian untuk D1 B1 D2 B2 adalah :

    X =

    26.250017.50008.7500

    17.5000

    Umpan kolom 2D =

    43.7500X_Dx =

    0.1140X_Ds =

    0.1200X_Dt =

    0.4920X_Db =

    0.2740

    Umpan kolom 3

  • 8/10/2019 Buku Pemrograman Komputer

    45/242

    38

    B =26.2500

    X_Dx =0.2100

    X_Ds =0.4667

    X_Dt =0.2467

    X_Db =0.0767

    Contoh 2.6. Persamaan Virial

    Selain hubungan gas ideal yang telah dikenal, ada banyak persamaan lain yang

    menghubungkan volume dan tekanan gas. Salah satunya adalah persamaan virial

    PV = a + bP + cP2

    Untuk mengevaluasi konstanta-konstanta a, b, dan c, telah dilakukan

    percobaan dengan data sebagai berikut :

    P (atm) V (L/mol)

    1 4

    2 9/2

    3 16/3

    Susunlah data-data di atas menjadi persamaan aljabar linier simultan

    dan selesaikan.

    Program Matlab

    % Persamaan Virial% PV = a + bP + cP^2% Untuk mengevaluasi konstanta-konstanta a, b, dan c,% telah dilakukan percobaan dengan data-data di bawah ini%

    % ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************

    clear allclc

    % Data-dataP = [1 2 3]; % atmV = [4 9/2 16/3]; % L/mol

    % Matriks AA = [1 P(1) (P(1))^2

    1 P(2) (P(2))^21 P(3) (P(3))^2];

    % Matriks BB = [P(1)*V(1)

  • 8/10/2019 Buku Pemrograman Komputer

    46/242

    39

    P(2)*V(2)P(3)*V(3)];

    C = A\B;

    disp(' ')disp('Konstanta persamaan virial adalah : ')disp('------------------------------------')a = C(1)b = C(2)c = C(3)

    Keluaran Program

    Konstanta persamaan virial adalah :------------------------------------

    a =1

    b =2

    c =1

    Contoh 2.7. Persamaan Kecepatan Reaksi

    Untuk kecepatan reaksi,= baa CCkr , dengan data ditunjukkan pada

    tabel.

    Tentukan persamaan kecepatan reaksi tersebut !

    Ca Cb r

    0,7 0,2 0,4567

    0,9 0,3 1,0707

    1,6 0,2 2,5917

    Penyelesaian dengan Program Matlab

    clear allclcecho on% Persamaan Virial% ra=k*(Ca)^a*(Cb)^b% log(ra) = log(k) + a*log(Ca) + b*log(Cb)% Untuk mengevaluasi konstanta-konstanta a, b, dan k,% telah dilakukan percobaan dengan data-data di bawah ini%% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************echo off

  • 8/10/2019 Buku Pemrograman Komputer

    47/242

    40

    % Data-dataCa = [0.7 0.9 1.6];Cb = [0.2 0.3 0.2];ra = [0.4567 1.0707 2.5917];

    % Matriks AA = [1 log10(Ca(1)) log10(Cb(1))

    1 log10(Ca(2)) log10(Cb(2))1 log10(Ca(3)) log10(Cb(3))];

    % Matriks BB = [log10(ra(1))

    log10(ra(2))log10(ra(3))];

    konst = A\B;disp(' ')disp('Konstanta adalah : ')disp('-------------------')k = 10^konst(1)a = konst(2)b = konst(3)

    Keluaran Program

    % Persamaan Virial% ra=k*(Ca)^a*(Cb)^b

    % log(ra) = log(k) + a*log(Ca) + b*log(Cb)% Untuk mengevaluasi konstanta-konstanta a, b, dan k,% telah dilakukan percobaan dengan data-data di bawah ini%% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************echo off

    Konstanta adalah :-------------------k =

    3.4990

    a =2.1000

    b = 0.7998

  • 8/10/2019 Buku Pemrograman Komputer

    48/242

    3PERSAMAAN ALJABAR

    NON LINIER

    Suatu penyelesaian persamaan aljabar non linier adalah menentukan nilai

    x, sehingga suatu fungsi x, f(x) akan sama dengan nol.

    Contoh, f(x) = e-x x, maka yang ingin diketahui adalah berapakah nilai x,

    sehingga f(x) = 0.

    Secara umum ada 2 metode yang digunakan, yaitu metode akolade dan metode

    terbuka.

    Metode akolade adalah metode yang menggunakan 2 titik awal tebakan, yang

    kedua titik tersebut harus mengapit jawaban yang dimaksud. Termasuk metode

    ini adalah metode Bisection (bagi dua).

    Berbeda dengan metode akolade, metode terbuka hanya menggunakan satu

    tebakan awal. Termasuk metode ini adalah metode Newton-Raphson.

    3.1. METODE BISECTION (BAGIDUA)

    Pada metode Bisection, mula-mula diperkirakan suatu interval sehingga

    akar persamaan yang akan diperoleh berada pada interval tersebut. Selanjutnya

  • 8/10/2019 Buku Pemrograman Komputer

    49/242

    44

    dicari nilai f(x) dari kedua titik dan dari titik tengah interval. Dengan

    menganalisa nilai f(x) ketiga titik maka kita dapat membuang setengah interval

    dalam setiap langkahnya.

    Langkah penyelesaian :

    1. Tentukan interval perkiraan awal, misalkan antara xAdan xB

    2. Hitung f(xA) dan f(xB)

    3. Interval yang benar akan menghasilkan f(xA) dan f(xB) pada daerah yang

    berbeda (sebelah kanan dan kiri akar persamaan yang dicari)

    xA xB

    Akar persamaan

    Gambar 3.1. Kurva Akar-akar Persamaan

    Uji apakah [f(xA)]x[f(xB)] < 0. Jika salah, maka ulangi langkah (1) dan

    (2).

    4. Hitung xM, yaitu titik tengah interval

    xM=2

    xx BA + . (3.1)

    5. Hitung f(xM)

    a. Jika [f(xA)]x[f(xM)] > 0, maka xAbaru = xMdan xBtetap

  • 8/10/2019 Buku Pemrograman Komputer

    50/242

    45

    xA xBxM= xA bar u

    Gambar 3.2. Penentuan xAdan xBbaru jika [f(xA)]x[f(xM)] > 0

    b. Jika [f(xA)]x[f(xM)] < 0, maka xAtetap dan xBbaru = xM

    xA xB

    xM= xA Baru

    Gambar 3.3. Penentuan xAdan xBbaru jika [f(xA)]x[f(xM)] < 0

    6. Uji apakah f(xm) < Toleransi. Jika tidak, ulangi langkah (4) untuk

    menentukan xmyang baru.

    Contoh 3.1. Konversi untuk disosiasi H2O

    Uap air didisosiasikan (dipecah) menjadi H2 dan O2 pada tekanan 0,2 atm

    sebagai berikut:

    H2O H2+ O2

    Fraksi molekul (x) dari H2O dapat dinyatakan sebagai berikut:

    ( ) ( )x2p2

    x1

    xkp +

    =

    Jika kp= 0,4568 tentukanlah x yang memenuhi persamaan di atas.

  • 8/10/2019 Buku Pemrograman Komputer

    51/242

    46

    Program matlab untuk metode bagidua :

    % Persamaan aljabar non linier%% Penyelesaian dilakukan dengan Metode Bagidua (bisection)%% --------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% **************************************************************clcclear all

    disp 'Masukkan Perkiraan Batas Bawah dan Batas Atas 'xa=input('batas bawah = ');xb=input('batas atas = ');fa = contoh31(xa);fb = contoh31(xb);

    x=[xa:(xb-xa)/50:xb];plot(x,contoh31(x));xlabel('x')ylabel('f(x)')grid on

    while fa*fb > 0disp 'Tebakan salah, ganti batas atas dan/atau batas bawah'disp 'Perhatikan grafik!! Perkirakan nilai x untuk f(x)

    mendekati nol'xa=input('batas bawah = ');xb=input('batas atas = ');fa=contoh31(xa);fb=contoh31(xb);

    endtol=0.000001;

    xm=(xa+xb)/2;fm=contoh31(xm);while abs(xa-xb)>tol

    xm=(xa+xb)/2;fm=contoh31(xm);if fa*fm H2 + 1/2 O2% x / 2p% kp = ------- / -----% (1 - x) \/ (2 + x)% p = 0,2 atm% kp = 0,4568

    % Nama File : contoh31.m% Surakarta, Oktober 2005% ---------------------------------------------------------------

  • 8/10/2019 Buku Pemrograman Komputer

    52/242

    47

    p = 0.2; %atmkp = 0.4568;f_x = x./(1-x).*sqrt(2*p./(2+x))-kp;

    Dalam memberikan masukan untuk batas bawah dan atas, secara teori nilai

    konversi berkisar antara 0 0,99. Untuk x = 1, nilai kpakan tak terdefinisi.

    Keluaran program :

    Masukkan Perkiraan Batas Bawah dan Batas Atasbatas bawah = 0batas atas = 0.99f(x)=0 untuk x = 0.53487

    Contoh 3.2. Faktor Kompresibilitas Gas Ideal

    Hubungan faktor kompresibilitas gas ideal dalam bentuk

    3

    32

    y1

    yyy1z

    +=

    dengan y = b/4v, untuk b adalah koreksi van der Waals dan v adalah volum

    molar. Jika z = 0,892 berapakah y ?

    Penyelesaian dilakukan dengan program bisection yaitu dengan mengganti

    fungsi disosiasi H2O dengan fungsi untuk persoalan faktor kompresibilitas gas

    ideal.

    function f_y = contoh32(y)% Faktor Kompresibilitas Gas Ideal% 1 - y + y^2 - y^3% z = -------------------% 1 - y^3% z = 0,896

    % Nama File : contoh32.m% Surakarta, Oktober 2005% --------------------------------------------------------------

    z = 0.892;f_y = (1-y+y.^2-y. 3)-z.*(1-y.^3);

    Secara umum ada 3 nilai yang memenuhi persamaan di atas karena f(y)

    merupakan persamaan orde 3. Tetapi nilai untuk y yang tepat adalah antara 0 1.

    Masukkan Perkiraan Batas Bawah dan Batas Atas

  • 8/10/2019 Buku Pemrograman Komputer

    53/242

    48

    batas bawah = 0batas atas = 1f(x)=0 untuk x = 0.1229

    3.2. METODE NEWTON-RAHPSON

    Metode Newton-Raphson adalah metode yang paling populer untuk

    mencari akar-akar suatu persamaan aljabar non linier. Metode ini merupakan

    metode terbuka, yaitu hanya menggunakan satu tebakan awal. Jika suatu tebakan

    awal adalah xi, maka garis singgung titik xipada f(xi), dapat diperluas sampai

    memotong sumbu x. Titik potong garis tersebut pada sumbu x kemudian menjadi

    perbaikan tebakan awal, xi+1.

    xi

    Akar per samaanf ( xi )

    xi +1

    f ( xi +1)Garissinggung

    Gambar 3.4. Menentukan Akar-Akar Persamaan dengan Newton Raphson

    Slope (kemiringan) garis singgung pada titik x i adalah turunan pertama fungsi

    f(x), didekati dengan

    f(x) =1ii

    i

    xx

    0)x(f

    +

    xi+1= xi-)x('f

    )x(f

    i

    i .(3.2)

    Langkah penyelesaian

    1. Tentukan tebakan awal xi

    2. Hitung f(xi) dan f(xi)

    3. Hitung xi+1dengan persamaan (26)

    4. Uji apakah | xi+1- xi| < toleransi atau

  • 8/10/2019 Buku Pemrograman Komputer

    54/242

    49

    | f(xi) | < toleransi,

    Jika ya, maka selesai.

    Jika tidak, xibaru = xi+1, ulangi langkah (2)

    Adakalanya f(x) sulit dicari dengan analitis. Untuk itu dapat dilakukan

    pendekatan secara numeris

    f(x)=

    +2

    )x(f)x(f 00 . (3.3)

    dengan adalah bilangan yang kecil.

    Persamaan di atas banyak digunakan untuk penyelesaian akar-akar persamaan

    aljabar non linier dengan pemograman komputer.

    Secara umum metode Newton-Raphson adalah metode yang sangat efisien.

    Tetapi metode ini mempunyai beberapa kelemahan untuk kasus-kasus tertentu,

    seperti konvergen yang sangat perlahan, atau bahkan bersifat divergen.

    Contoh 3.3. Temperatur Dew Point untuk Campuran Benzena dan Toluena

    Tentukan temperatur dew point (Titik Embun) dan komposisi liquid dari suatu

    campuran gas benzena dan toluena pada tekanan 1 atm (760 mmHg). Komposisi

    uap adalah 0,77 fraksi mol benzena dan 0,23 fraksi mol toluena.

    Campuran gas dan liquid diasumsikan sebagai campuran ideal. Kondisi

    kesetimbangan sesuai dengan Hukum Roult-Dalton, yiP=xiPiO Tekanan uap

    murni dihitung dengan persamaanCT

    BAplog O

    += untuk pOdalam mmHg

    dan T dalam OC

    Program Metode Newton-Raphson

    Benzena Toluena

    A 6,89745 6,95334

    B 1206,35 1343,94

    C 220,237 219,377

  • 8/10/2019 Buku Pemrograman Komputer

    55/242

    50

    % Persamaan aljabar non linier%% Penyelesaian dilakukan dengan Metode Newton-Raphson%% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************

    clcclear allxnew=input(' Nilai untuk tebakan awal = ');xold=0;tol=0.0001;eps=0.0001;

    disp ' x-old f(x-old) 'while abs(xnew-xold)>tol

    xold=xnew;fxold=contoh33(xold);t=[' 'num2str(xold) ' 'num2str(fxold) ];disp (t)fmin=contoh33(xold-eps);fplus=contoh33(xold+eps);dfx=(fplus-fmin)/2/eps;xnew=xold-fxold/dfx;

    endt=['akar persamaan, x = 'num2str(xold) ' f(x) = 'num2str(fxold)];

    disp(t)

    Proram penyelesaian

    function fT=contoh33(T)% Temperatur Dew Point untuk Campuran Benzena dan Toluena% Komposisi uap y1 = 0,77 dan y2 = 0,33% Tekanan uap murni% o ( B )% Pi = 10^( A + ------- )% ( (T + C) )% Hukum Roult-Dalton% yi * P% xi = --------% o% Pi% x1 + x2 = 1

    % Nama File : contoh33.m% Surakarta, Oktober 2005% ---------------------------------------------------------------

    P=760; % Konversi dari atm ke mmHgy1=0.77;y2=0.23;p1o=10^(6.89745-1206.35/(T+220.237));p2o=10^(6.95334-1343.94/(T+219.377));x1=y1*P/p1o;x2=y2*P/p2o;fT=x1+x2-1;

    Keluaran program

    Nilai untuk tebakan awal = 85x-old f(x-old)

  • 8/10/2019 Buku Pemrograman Komputer

    56/242

    51

    85 0.1702989.639 0.01405390.0946 0.000117690.0985 8.4065e-009

    akar persamaan, x = 90.0985 f(x) = 8.4065e-009

    Sehingga T = 90,0985 OC

    Contoh 3.4. Hubungan Faktor Friksi suatu Pelarut dengan Bilangan

    Reynolds

    Hubungan faktor friksi untuk aliran suatu pelarut dengan bilangan Reynolds (Re)

    secara empiris adalah

    ( )

    +

    =

    k

    6,514fReln

    k

    1

    f

    1

    dengan k = konsentrasi larutan dan f adalah faktor friksi. Tentukanlah f, jika Re

    = 3750 dan k=0,28

    Program penyelesaian dengan Metode Newton-Raphson. Karena bekerja pada

    bilangan yang lebih kecil, toleransi dapat kita turunkan sampai 10-7.

    function f_f = contoh34(f)% Hubungan faktor friksi suatu pelarut dengan bil Reynolds% 1 1 5,6% ------- = --- ln [ Re*sqrt(f) ] + [ 14 - ----- ]% sqrt(f) k k% Re = 3750% k = 0,28

    % Nama File : contoh34.m% Surakarta, Oktober 2005

    % ---------------------------------------------------------------

    Re = 3750;k = 0.28;f_f = ((1/k)*log(Re*sqrt(f))+(14-5.6/k))*sqrt(f)-1;

    Keluaran program

    Nilai untuk tebakan awal = 0.01x-old f(x-old)0.01 0.516760.0044847 -0.0801520.005105 -0.00207440.0051219 -1.4377e-006

    akar persamaan, x = 0.0051219 f(x) = -1.4377e-006

  • 8/10/2019 Buku Pemrograman Komputer

    57/242

    52

    sehingga f = 0,0051219

    3.3. FUNGSI fz ro

    Matlab mempunyai suatu fungsi untuk menyelesaikan persamaan aljabarnon linier. Fungsi ini disebut dengan fzero. Fungsi ini terdiri dari beberapa

    metode yang dipadukan untuk menyelesaikan berbagai persoalan secara cepat

    dan tepat. Penggunaan fungsi fzeroadalah :

    x = fzero(nama_fungsi,xo, tol, trace)

    dengan :

    nama_fungsi adalah nama suatu fungsi yang berisi persamaan yang

    akan dicari nilai nol-nya.

    xoadalah nilai perkiraan awal

    tol adalah ketepatan penyelesaian jika trace mempunyai nilai lebihdari 1.

    traceadalah jumlah iterasi yang dilakukan.

    Dua parameter terdepan harus diisi, sehingga alternatif untuk menggunakan

    fungsi ini adalah

    x = fzero(nama_fungsi,xo)

    Contoh 3.5. Persamaan Peng-Robinson

    Untuk menghitung volum CO2pada tekanan 1.104kPa dan temperatur 3400K,

    dapat digunakan persamaan EOS (equation of state) Peng-Robinson

    ( ) )bV(bbVVa

    bV

    RTP

    ++

    =

    dengan a = 364,61 m6kPa/(kgmol)2 dan b = 0,02664 m3/kgmol

    R=8,3137 m3kPa/kgmol K. Tentukanlah V dengan tebakan awal V, gunakan

    EOS gas ideal (PV=RT)

    % Persamaan Peng-Robinson%% Penyelesaian dilakukan dengan fungsi fzero%% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret

  • 8/10/2019 Buku Pemrograman Komputer

    58/242

    53

    % ***************************************************************

    % Data-data

    clear allclcglobal R T PR=8.3137; % m^3.kPa/(kgmol.K)T=340; % KP=10^4; % kPa

    % Sebagai nilai tebakan V digunakan pers Gas IdealVo=R*T/P;

    % Penentuan nilai V dengan fungsi fzeroV=fzero('F35',Vo)

    Fungsi penyelesaian Peng-Robinson

    function fV=F35(V)% Persamaan Peng-Robinson

    % R.T a% P = ------ - -------------------% V - b V(V + b) + b(V - b)% Parameter utk CO2

    % Nama File : F35.m% Surakarta, Oktober 2005% ---------------------------------------------------------------global R T P

    %Parameter Peng-Robinson untuk CO2a=364.61;b=0.02664;

    fV=R*T/(V-b)-a/(V*(V+b)+b*(V-b))-P;

    Keluaran program

    V =

    1.6792e-001

    Sehingga volum molar CO2adalah 0,16792 m3/kgmol

    Contoh 3.6. Penurunan temperatur karena pelepasan panas

    Suatu campuran gas mempunyai kapasitas panas

    Cp = 7,053 + 1,2242.10-3T 2,6124.10-7T2

    T dalam oF dan Cp dalam Btu/lbmol oF. Jika panas yang dilepaskan

    untuk menurunkan temperatur campuran gas panas tersebut dari 550oF adalah

    2616 Btu/lbmol gas sampai temperatur berapakah campuran gas tersebut dapat

    didinginkan.

  • 8/10/2019 Buku Pemrograman Komputer

    59/242

    54

    =T

    To

    dtCpq

    Sampai berapakah campuran gas tersebut dapat didinginkan ?

    function fT=contoh36(T)

    % Penurunan temperatur karena pelepasan panas% Cp = 7,053 + 1,2242.10(-3) T - 2,6124.10(-7) T^2% q = integral(cp dT)% Data% q = -2616 BTU/lbmol% To = 550 oF

    % Nama File : contoh36.m% Surakarta, Oktober 2005% ---------------------------------------------------------------

    q = -2616; % BTU/lbmolTo = 550; % oF

    % Integral secara analitisfT=7.053*(T-To)+1.2242*10 -3/2*(T^2-To 2)...

    -2.6124*10^-7/3*(T^3-To^3)-q;

    Fungsi tersebut dapat dijalankan dari jendela command>> T = fzero('contoh36',150)

    T =

    1.9992e+002

    Sehingga temperatur gas adalah 199,92 OF.

    Contoh-contoh lain

    Contoh 3.7. Debit Aliran dengan Pompa pada Pipa

    Suatu cairan akan dialirkan dari tangki 1 ke tangki 2 melalui pipa berdiameter D,

    dengan bantuan pompa. Panjang ekuivalen pipa, Le. Dari persamaan Bernoulli

    antara titik 1 dan titik 2 diperoleh persamaan berikut :

    0H2.g.D

    f.Le.vzz m

    2

    12 =+

    faktor friksi didekati dengan persamaan empiris :

    0,215Re

    0,0596f= dengan

    .v.DRe=

  • 8/10/2019 Buku Pemrograman Komputer

    60/242

    55

    Karakteristik pompa sentrifugal yang dapat dipakai berupa hubungan antara head

    pompa ( Hm, cm) dengan debit ( Q, cm3/dtk) dapat didekati dengan persamaan :

    Hm= 3718,5 2,34967.Q + 7,8474.10-4.Q2 9,5812.10-8.Q3

    Debit aliran dihitung dengan persamaan :

    .vD.4

    Q 2=

    Data-data yang diketahui : = 1 g/cm3; = 0,01 g/cm.dtk; g = 981 cm/dtk

    2; z1=

    300 cm; z2= 800 cm; D = 4 cm; Le = 20.000 cm. Hitung berapa kecepatan aliran

    dalam pipa (v) dan debitnya (Q).

    Penyelesaian Program Matlab

    % Debit Aliran dengan Pompa pada Pipa%% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************

    clear allclcglobal rho myu g z2 z1 D Le

    % Data-datarho=1; % Densitas, g/cm^3myu=0.01; % Viskositas, g/cm.dtkg=981; % grafitasi, cm/dtk^2z1=300; % tinggi titik 1, cmz2=800; % tinggi titik 2, cmD=4; % diameter pipa, cmLe=20000; % panjang ekivalen, cm

    % Perhitunganvhit=fzero(@F37,200)Qhit=pi/4*D^2*vhit

    Program terkait

    function fv = F37(v)% Langkah perhitungan% tebak v ---> hitung bil. Reynold ---> hitung faktor friksi% ---> hitung debit ---> hitung head pompa --->% hitung pers. Bernoulli% f Le v^2% z2 - z1 + -------- - Hm = 0% 2 g D

    % Nama File : F37.m% Surakarta, Oktober 2005% ---------------------------------------------------------------

    global rho myu g z2 z1 D Le

    Re=rho*v*D/myu; % Perhitungan Bil. Reynoldf=0.0596/Re^0.215; % Perhitungan faktor friksi

  • 8/10/2019 Buku Pemrograman Komputer

    61/242

    56

    Q=pi/4*D^2*v; % Perhitungan DebitHm=3718.5-2.3496*Q+7.8474e-4*Q^2-9.5812e-8*Q^3;

    % Perhitungan head pompafv=z2-z1+f*Le*v^2/(2*g*D)-Hm; % Persamaan Bernoulli

    Keluaran program

    vhit =227.6735

    Qhit =2.8610e+003

    Terhitung kecepatan aliran 227,6735 cm/detik dengan debit 2.861 cm3/detik.

    Contoh 3.8. Reaktor Adiabatis untuk Reaksi Eksotermis Fase Gas

    Reaksi eksotermis fasa gas A + 2B C dijalankan dalam reaktor adiabatik.

    Umpan berjumlah Fo gmol/j dan bersuhu TFmempunyai komposisi : 25 % A

    dan 75 % B. Tekanan sepanjang reaktor tetap P atm. Ingin dicari nilai konversi A

    pada kesetimbangan (z). Konversi kesetimbangan dapat dihitung dengan

    persamaan :

    Tkesetimbangan- Tneraca panas= 0

    Dari neraca panas diperoleh persamaan :

    0,25.C0,5.z).C(0,75z).C-0,25.(1

    H0,25.z.-TT

    pCpBpA

    F

    RF ++

    =

    dengan :

    )T).(T2.CC(CHH refFpBpApCo

    R

    F

    R +=

    Dari kesetimbangan diperoleh :

    =

    AKln

    BT

    dengan2

    BA

    C

    .PP

    PK=

    .P0,5.z)(1

    0,25.zP

    .P0,5.z)(1

    0,5.z)(0,75P

    .P0,5.z)(1

    z)0,25.(1P

    C

    B

    A

    =

    =

    =

  • 8/10/2019 Buku Pemrograman Komputer

    62/242

    57

    Data-data yang diketahui : HRo= - 20.000 cal/gmol; TF= 400 K; P = 20 atm;

    Tref = 298 K; A = 8.10-6 atm; B = 4500 K; CpA = 7 cal/mol.K; CpB = 8

    cal/gmol.K; CpC= 12 cal/gmol.K

    Program Matlab

    % Reaktor Adiabatis untuk Reaksi Eksotermis Fase Gas

    % Reaksi A + 2B --> C%% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************

    global dHr Tf P Tref A B Cpa Cpb Cpc

    % Data-datadHr=-20000; % Panas reaksi, kal/gmolTf=400; P=20; % Temperatur umpan, KTref=298; % Temperatur referensi, K% Parameter temperatur kesetimbanganA=8e-6; % atmB=4500; % K% Kapasitas panasCpa=7; % kal/mol.K

    Cpb=8; % kal/mol.KCpc=12; % kal/mol.K

    % Perhitungan konversi kesetimbangankonversi=fzero(@F38,0.6)

    Program terkait

    function fz = F38(z)% Langkah perhitungan% tebak konversi kesetimbangan z ---> hitung tekanan parsial% komponen a, b, dan c ---> hitung panas reaksi% ---> hitung temperatur reaktor ---> hitung temperatur% kesetimbangan ---> bandingkan T reaktor dan T ktmbgn% T kesetimbangan - T reaktor = 0%

    % Nama File : F38.m

    % Surakarta, Oktober 2005% ---------------------------------------------------------------

    global dHr Tf P Tref A B Cpa Cpb Cpc

    % Perhitungan tekanan parsial komponenPa=0.25*(1-z)*P/(1-0.5*z);Pb=(0.75-0.5*z)*P/(1-0.5*z);Pc=0.25*z*P/(1-0.5*z);

    % Panas reaksidHrf=dHr+(Cpc-Cpa-2*Cpb)*(Tf-Tref);

    % Temperatur reaktorT=Tf-0.25*z*dHrf/(0.25*(1-z)*Cpa+(0.75-0.5*z)*Cpb+0.25*z*Cpc);

    % Temperatur kesetimbanganK=Pc/Pa/Pb^2;Tstb=B/log(K/A);

  • 8/10/2019 Buku Pemrograman Komputer

    63/242

    58

    fz=Tstb-T;

    Keluaran program

    konversi =0.4143

    Contoh 3.9. Temperatur Titik Embun untuk Campuran Benzena, Toluena,

    dan Ortho-xylena

    Campuran uap dengan fraksi mol benzene (A) = 0,4; toluene (B) = 0,3; dan

    ortho-xylene (C) = 0,3; didinginkan pada tekanan tetap Pt = 76 cmHg. Ingin

    dicari pada suhu berapa (K) pengembunan terjadi. Sistem mengikuti hukum

    Roult-Dalton. Harga tekanan uap murni mengikuti persamaan

    =T

    376414,95expPoA

    =T

    449716,07expPoB

    =

    T493416,27expPoC

    Pengembunan terjadi jika

    01P

    .Pty

    P

    .Pty

    P

    .Ptyo

    C

    C

    o

    B

    B

    o

    A

    A =++

    Penyelesaian

    % Temperatur Titik Embun untuk Campuran Benzena,% Toluena, dan Ortho-xylena% ---------------------------------------------------------------% Surakarta, Oktober 2005

    % Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************

    global ya yb yc Pt

    % Data-data tekanan parsialya=0.4; yb=0.3; yc=0.3;

    % Tekanan total, cmHgPt=76;

    % Perhitungan temperaturT=fzero(@F39,300)

    Program terkait

  • 8/10/2019 Buku Pemrograman Komputer

    64/242

    59

    function fT=F39(T)% Tekanan uap murni% o ( B )% Pi = 10^( A + --- )% ( T )% Hukum Roult-Dalton% yi * P% xi = --------% o% Pi% x1 + x2 + x3 = 1

    % Nama File : F39.m% Surakarta, Oktober 2005% ---------------------------------------------------------------

    global ya yb yc PtPao=exp(14.95-3764/T);Pbo=exp(16.07-4497/T);Pco=exp(16.27-4934/T);fT=Pt*(ya/Pao+yb/Pbo+yc/Pco)-1;

    Keluaran program

    T =390.2252

    Temperatur titik embun 390,2252 K

    Contoh 3.10. Terminal Velocity untuk Partikel Jatuh dalam Fluida

    Partikel berbentuk bola yang bergerak dalam suatu fluida mempunyai terminal

    velocity sebagai berikut :

    ( )

    =

    D

    pp

    tC3

    Dg4v (3.10.1)

    dengan vt adalah terminal velocity (m/detik), g adalah percepatan grafitasi (=

    9,80665 m/detik2), padalah densitas partikel (kg/m3), adalah densitas fluida

    (kg/m3), Dpadalah diameter partikel bola (m) dan CDadalah koefisien drag (tak

    berdimensi).

    Koefisien drag partikel bola untuk terminal velocity bervariasi dengan bilangan

    Reynolds (Re) sebagai berikut :

    1,0ReuntukRe

    24CD

  • 8/10/2019 Buku Pemrograman Komputer

    65/242

    60

    CD= 0,44 untuk 1000< Re 35000

    CD= 0,19 8.104/Re untuk 35000 Re

    dengan

    = tp

    vDRe dan adalah viskositas (Pa detik atau kg/mdetik)

    Tentukan terminal velocity untuk partikel batubara dengan P= 1800 kg/m3dan

    Dp= 0,208.10-3m yang jatuh dalam air pada T = 298,15 K dengan = 994,6

    kg/m3dan = 8,931.10-4kg/mdetik.

    Penyelesaian

    Tebak vthitung ReTentukan CDCek vtdengan persamaan (3.10.1 )

    Program Matlab

    function fv_t = contoh310(v_t)% Terminal Velocity untuk Partikel Jatuh dalam Fluida% Tebak vt --> hitung Re --> Tentukan CD --> Cek vt% / 4.g.(rhop - rho).Dp% vt = / -------------------

    % \/ 3.CD.rho

    % Nama File : contoh310.m% Surakarta, Oktober 2005% ---------------------------------------------------------------

    % Data-datarho_p = 1800; %kg/m^3D_p = 0.208*10^-3; %mT = 298.15; %Krho = 994.6; %kg/m^3mu = 8.931*10^-4; %kg/m/sg = 9.80665; %m/s^2

    % Menghitung bilangan ReynoldRe = D_p*v_t*rho/mu;

    % Menentukan koef. drag (CD)if Re < 0.1

    C_D = 24/Re;elseif Re < 1000

    C_D = 24*(1+0.14*Re^0.7)/Re;elseif Re < 350000;

    C_D = 0.44;else

    C_D = 0.19-80000/Re;end

    % Membandingkan vt awal dan vt perhitunganfv_t = v_t^2*(3*C_D*rho)-4*g*(rho_p-rho)*D_p;

    Perintah dari jendela commanddan hasilnya :>> v_t_tebakan = 0.2;>> v_t = fzero('contoh310',v_t_tebakan)

    v_t =

  • 8/10/2019 Buku Pemrograman Komputer

    66/242

    61

    1.5782e-002

    Sehingga vtadalah 0,015782 m/detik

    Contoh 3.11. Volum Molar dan Faktor Kompressibilitas untuk

    Persamaan van der Waals

    Hukum gas ideal dapat menunjukkan hubungan tekanan, volum, dan temperatur

    (PVT) hanya pada tekanan gas rendah (mendekati tekanan atmosfer). Untuk

    tekanan tinggi persamaan yang harus digunakan lebih kompleks daripada hukum

    gas ideal tersebut. Perhitungan volum molar dan faktor kompressibilitas

    menggunakan persamaan yang lebih kompleks yang memerlukan penyelesaian

    secara numeris. Salah satu persamaan yang dapat digunakan adalah persamaan

    van der Waals

    ( )

    C

    C

    C

    2C

    2

    2

    P8

    RTb

    P

    TR

    64

    27adengan

    RTbV

    V

    aP

    =

    =

    =

    +

    dengan

    P = tekanan (atm)

    V = volum molar (L/gmol)

    T = temperatur (K)

    R = konstanta gas = 0,08206 atmL/gmolK

    TC = temperatur kritis (405,5 K untuk ammonia)

    PC = tekanan kritis (111,3 atm untuk ammonia)

    Tekanan tereduksi dinyatakan sebagaiC

    rP

    PP=

    Faktor kompressibilitas dinyatakan sebagaiRT

    PVZ=

    a. Tentukan volum molar dan faktor kompressibilitas untuk gas ammonia pada

    tekanan P = 56 atm dan temperatur T = 450 K menggunakan persamaan van

    der Waals !

    b. Ulangi perhitungan untuk Pr= 1, 2, 4, 10, dan 20 !

  • 8/10/2019 Buku Pemrograman Komputer

    67/242

    62

    c. Bagaimanakah hubungan faktor kompressibilitas untuk berbagai nilai Pr?

    Penyelesaian

    % Volum Molar dan Faktor Kompressibilitas utk Pers van der Waals% Varibel berubah P% Pr = -----

    % Pr% Dari data-data yang ada% Hitung P% Hitung V dengan terlebih dahulu menebak V,% lalu hitung dengan pers. van der Waals% Hitung Z P.V% Z = ------% R.T% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************

    clear allformat short eglobal P a b R T

    % Data-data

    Pc = 111.3; % atmTc = 405.5; % KR = 0.08206; % atm.L/gmol.KT = 450; % KP = 56; % atmPr = [P/Pc 1 2 4 10 20];a = 27/64*R^2*Tc 2/Pc;b = R*Tc/(8*Pc);

    % Perhitunganfor j = 1:6

    P = Pc*Pr(j);Vtebak = R*T/P;V = fzero('waals',Vtebak);z = P*V/(R*T);hasil(j,1)=Pr(j);hasil(j,2)=V;hasil(j,3)=P*V/(R*T);

    end

    % Menampilkan hasil perhitungandisp(' Pr Volum molar faktor Z')disp(hasil)plot(hasil(:,1),hasil(:,3))title('Faktor Kompresibilitas vs Tekanan Tereduksi')xlabel('Tekanan Tereduksi')ylabel('Faktor Kompresibilitas')

    Fungsi van der Waals

    function f_V = waals(V)% Persamaan van der Waals% [ a ]% [ P + ------ ] ( V - b ) = RT% [ V^2 ]% Parameter utk ammonia

  • 8/10/2019 Buku Pemrograman Komputer

    68/242

    63

    % Nama File : waals.m% Surakarta, Oktober 2005% ---------------------------------------------------------------global P a b R T

    % Modifikasi persamaan van der Waalsf_V = P*V^3-P*b*V^2-R*T*V^2+a*V-a*b;

    Hasil perhitungan

    Gambar 3.5. Keluaran Program Contoh 3.11

    >> Pr Volum molar faktor Z

    5.0314e-001 5.7489e-001 8.7183e-0011.0000e+000 2.3351e-001 7.0381e-0012.0000e+000 7.7268e-002 4.6578e-0014.0000e+000 6.0654e-002 7.3126e-0011.0000e+001 5.0875e-002 1.5334e+0002.0000e+001 4.6175e-002 2.7835e+000

    Contoh 3.12. Temperatur Batang Konduktor sebagai Fungsi Arus

    Suatu batang konduktor berdiameter D dan hambatan elektrik per satuan

    panjang RL. Batang tersebut mula-mula berada pada kesetimbangan termal

    dengan udara di sekitarnya. Aliran listrik I dilewatkan melalui batang tersebut.

    Untuk diameter batang yang kecil, dapat diasumsikan bahwa temperatur

    sepanjang batang seragam, dengan temperatur sebagai fungsi waktu T(t).

    Faktork

    ompresibilitas

  • 8/10/2019 Buku Pemrograman Komputer

    69/242

    64

    Neraca energi pada batang logam

    Eacc= Eg Eout

    Ecc= kecepatan energi tersimpan pada batang logam

    Eg= kecepatan pembangkitan energi dalam batang karena panas hambatan

    Eout = kecepatan aliran energi total keluar dari batang karena konveksi dan radiasi

    D, diameter

    I, kuat arus

    L, panjang pipa

    T lingkungan

    Panas yang dilepaskan

    Gambar 3.6. Batang Konduktor

    Energi dalam batang sepanjang waktu

    Ecv= cVdt

    dT

    Eg= I2RLL

    Dengan RL adalah hambatan per satuan panjang dan satuan persamaan di atas

    adalah (amp)2ohm.

    Eout= hA(T - T) + A(T4 T4sur)

    Dengan A adalah luas permukaan perpindahan panas

    Tadalah temperatur fluida

    Tsuradalah temperatur lingkungan karena perpindahan panas radiasi

    = emisivitas material

    = konstanta Stefan boltzmann = 5,67.108W/m2-K4

    Substitusi ke persamaan

    cVdt

    dT= I2RLL - hA(T - T) + A(T

    4 T4sur)

  • 8/10/2019 Buku Pemrograman Komputer

    70/242

    65

    dengan

    A = DL

    V = D2L/4

    Kondisi awal T(0) = T0

    Jika arus mula-mula adalah nol, kemudian temperatur awal T0maka didapatkanpersamaan

    hA(T - T) + A(T04 T4sur) = 0

    jika Tdan Tsursama, maka T0= T= Tsur.

    D = 1 mm

    = 0,8

    RL= 0,4 ohm/m

    h = 100 W/m2K

    T= Tsur= 25oC

    % Temperatur Batang Konduktor sebagai Fungsi Arus Listrik%% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************

    clear allglobal D emiss R_L sig h Tinf Tsur IsqD = 0.001; % Diameter kawat (m)emiss = 0.8; % EmisivitasR_L = 0.4; % Risistansi per satuan panjang (ohm/m)sig = 5.67e-8; % Konstanta Stefan-Bolzmann (W/m^2K^4)h = 100; % Koefisien transfer panas (W/m^2K)Tinf = 25+273.15; % Temperatur fluida (K)Tsur = Tinf; % Temperatur lingkungan untuk radiasi (K)

    NI = 21;I = linspace(0,10,NI);Tss = zeros(size(I));Isq = I(1)*I(1);Tg = Tinf;Tss(1) = fzero('neracaenergi',Tg);

    % Perhitungan Temperaturfor n=2:NI

    Isq = I(n)*I(n);Tss(n) = fzero('neracaenergi',Tss(n-1));

    endTssa = Tinf +I.*I*R_L/(h*pi*D);

    % Plot hasil perhitunganplot(I,Tss-273.15,'k',I,Tssa-273.15,'k-.','LineWidth',2), grid onrr = axis; rr(3) = 0; axis(rr);title('Temperatur Konduktor Steady State vs Arus')

  • 8/10/2019 Buku Pemrograman Komputer

    71/242

    66

    xlabel('Arus (amps)'), ylabel('Temperatur Steady State (C)')legend('T(ss) dengan radiasi','T(ss) tanpa radiasi')

    % Perhitungan neraca energiA = pi*D;gen = I.*I.*R_L;conv = h*A*(Tss-Tinf);rad = emiss*sig*A*(Tss.^4-Tsur^4);bal = (gen-conv-rad);

    % Menampilkan hasilfprintf(1,'\n\n')fprintf(1,' HASIL PERHITUNGAN \n')fprintf(1,' Parameter perancangan \n')fprintf(1,' Diameter kawat (m) = %8.3f \n',D)fprintf(1,' Emisivitas = %8.3f\n',emiss)fprintf(1,' Resistansi (ohm/m) = %8.3f\n',R_L)fprintf(1,' Konstanta Stefan-Bolzmann (W/m^2K^4)= %9.2e\n',sig)fprintf(1,' Koefisien Transfer Panas (W/m^2K) = %8.3f \n',h)fprintf(1,' Temperatur Fluida (C) = %8f\n',Tinf-273.15)fprintf(1,' Temperatur Lingkungan (C) = %8f\n',Tsur-273.15)fprintf(1,'\n')fprintf(1,' Komponen Neraca Energi vs Arus \n')fprintf(1,' I Energi yg Muncul Konveksi Radiasi Neraca

    Temperatur \n')fprintf(1,' (A) (W/m) (W/m) (W/m) (W/m)C \n')for n = 1:NIfprintf(1,' %4.1f %8.2f %8.2f %8.2f %8.4f %8.2f\n',...

    I(n),gen(n),conv(n),rad(n),bal(n),Tss(n)-273)end

    Fungsi neraca energi

    function F=neracaenergi(T)% Neraca Energi pada Batangan Konduktor% keadaan steady state% input - output = akumulasi% panas arus listrik - panas konveksi - panas radiasi = 0

    % Nama File : neracaenergi.m% Surakarta, Oktober 2005% ---------------------------------------------------------------

    global D emiss R_L sig h Tinf Tsur Isq

    A = pi*D;% Panas yang dibangkitkan arus listrikgen = Isq*R_L;

    % Panas konveksiconv = h*A*(T-Tinf);

    % Panas radiasirad = emiss*sig*A*(T^4-Tsur^4);

    % Neraca energiF = (gen-conv-rad);

  • 8/10/2019 Buku Pemrograman Komputer

    72/242

    67

    Keluaran program

    HASIL PERHITUNGANParameter perancangan

    Diameter kawat (m) = 0.001Emisivitas = 0.800Resistansi (ohm/m) = 0.400Konstanta Stefan-Bolzmann (W/m^2K^4)= 5.67e-008Koefisien Transfer Panas (W/m^2K) = 100.000

    Temperatur Fluida (C) = 25.000000Temperatur Lingkungan (C) = 25.000000

    Komponen Neraca Energi vs ArusI Energi yg Muncul Konveksi Radiasi Neraca Temperatur(A) (W/m) (W/m) (W/m) (W/m) C0.0 0.00 0.00 0.00 0.0000 25.150.5 0.10 0.10 0.00 0.0000 25.451.0 0.40 0.38 0.02 0.0000 26.361.5 0.90 0.86 0.04 -0.0000 27.882.0 1.60 1.52 0.08 0.0000 30.002.5 2.50 2.38 0.12 0.0000 32.733.0 3.60 3.43 0.17 0.0000 36.063.5 4.90 4.66 0.24 0.0000 39.984.0 6.40 6.08 0.32 -0.0000 44.504.5 8.10 7.68 0.42 -0.0000 49.605.0 10.00 9.47 0.53 -0.0000 55.305.5 12.10 11.44 0.66 -0.0000 61.576.0 14.40 13.59 0.81 -0.0000 68.41

    6.5 16.90 15.92 0.98 0.0000 75.817.0 19.60 18.42 1.18 0.0000 83.777.5 22.50 21.09 1.41 0.0000 92.288.0 25.60 23.93 1.67 0.0000 101.328.5 28.90 26.93 1.97 -0.0000 110.889.0 32.40 30.09 2.31 -0.0000 120.949.5 36.10 33.41 2.69 -0.0000 131.5010.0 40.00 36.88 3.12 0.0000 142.53

  • 8/10/2019 Buku Pemrograman Komputer

    73/242

  • 8/10/2019 Buku Pemrograman Komputer

    74/242

    69

    Neraca energi pada sistem pada keadaan steady :

    g2

    vz

    phhh

    g2

    vz

    p 221

    2LRA

    21

    11 ++

    =+++

    Tidak ada peralatan mekanik, sehingga hA= hR= 0, kecepatan pada permukaan

    nol, dan p1= p2.

    L21

    22 hzzg2

    v=

    untuk kasus di atas, h + L = z1 z2, dan V = v2. hLditentukan dengan persamaan

    g2D

    LVfh

    2

    L=

    Persamaan menjadi

    g2D

    LVfLh

    g2

    V 22+=

    ( )

    +

    +=

    D

    Lf1

    Lhg2V2

    Konstanta gravitasional 32,2 ft/detik2. Faktor friksi, f, untuk aliran turbulen

    didekati dengan korelasi Swamee-Jain.

    2

    9,010 Re

    74,5

    7,3

    D/log

    25,0f

    +

    =

    /D adalah kekasaran relatif dan Re adalah bilangan Reynold, Re = VD/

    Tentukan bagaimana kecepatan bervariasi sebagai fungsi panjang pipa L dan

    diameter D.

    Asumsikan fluida adalah air pada 60O

    F (= 1,21 x 10-5

    ft2

    /detik). Tangki cukup

    besar dan air keluar melalui pipa besi Sch 40 (= 1,5 x 10-4ft). h = 5 ft.

    Plotkan V(L) dengan kisaran 1/12 ft < L < 20 ft.

    Ukuran pipa Sch 40

    Pipa 1/2 D1= 0,0518 ft

    Pipa 1 D2= 0,0874 ft

    Pipa 1 D3= 0,1342 ft

    Pemograman Matlab

  • 8/10/2019 Buku Pemrograman Komputer

    75/242

  • 8/10/2019 Buku Pemrograman Komputer

    76/242

  • 8/10/2019 Buku Pemrograman Komputer

    77/242

    4 INTEGRAL NUMERIS

    Secara matematis integrasi dinyatakan oleh :

    =b

    a

    dx)x(fI . (4.1)

    yang dinyatakan sebagai integrasi fungsi f(x) terhadap variabel x, yang

    dievaluasikan antara batas x = a sampai x = b. Persamaan tersebut adalah jumlah

    total f(x) dx yang meliputi bentangan dari x = a hingga x = b. Gambar 4.1

    menunjukkan sebuah manifestasi grafik konsep tersebut.

    f (x)

    x

    a b

    Gambar 4.1. Konsep Integrasi

    Integrasi adalah menentukan luas di bawah kurva f(x) antara x = a dan x = b.

  • 8/10/2019 Buku Pemrograman Komputer

    78/242

    76

    4.1. ATURAN TRAPESIUM

    Aturan trapesium dapat digunakan untuk penyelesaian integral secara numeris .

    Caranya adalah dengan membagi bentangan x = a sampai x = b menjadi bagian-

    bagian yang lebih kecil yang besarnya masing-masing sebesar x berjumlah nbuah. Jumlah interval n semakin besar, hasil integrasi secara numeris akan

    semakin baik.

    f (x)

    x

    a bDx

    Gambar 4.2. Konsep Dasar Aturan Trapesium

    Masing-masing bagian dianggap berbentuk trapesium, sehingga luas masing-

    masing bagian adalah x tinggi x jumlah sisi sejajar. Harga integral diperoleh

    dari jumlah luasan total dari masing-masing bagian.

    b

    a

    dx)x(f ( ) ( ) ( ))b(f)x(f2x

    ......)x(f)x(f2

    x

    )x(f)a(f2

    x1n211 +

    +++

    ++

    =

    [ ])b(f)x(f2......)x(f2)x(f2)a(f2

    x1n21 +++++

    =

    [ ])b(f)x(f2......)x(f2)x(f2)a(fn2

    )ab(1n21 +++++

    =

    .(4.2)

    Dalam Matlab, metode perhitungan integrasi dengan aturan trapesium dapat

    menggunakan fungsi trapz.

  • 8/10/2019 Buku Pemrograman Komputer

    79/242

    77

    Penggunaan fungsi trapzadalah

    Z = trapz(x,y)

    yang menghitung integral y terhadap x menggunakan metode trapesium. x dan y

    merupakan vektor yang sama panjang.

    Contoh 4.1. Distilasi Batch di Laboratorium

    Sebuah distilasi dijalankan secara batch mula-mula diisi 20 lbmol umpan dengan

    fraksi mol umpan cair benzena xF = 0,32.Umpan kemudian dialirkan dengan

    kecepatan 10 lbmol/jam, dan input panas diatur agar isi destilasi tetap 20 lbmol.

    Tentukan waktu yang dibutuhkan untuk memperoleh destilat dengan fraksi mol

    fase uap yD= 0,4.

    Hubungan fraksi mol fase uap y dan fase cair x dianggap sesuai dengan Hukum

    Roult, dengan = 2,48.

    Gambar 4.3. Distilasi Batch di Laboratorium

    Penyelesaian

    Neraca massa total

    F D =dt

    dM = 0

    D = F = 10 lbmol/jam

  • 8/10/2019 Buku Pemrograman Komputer

    80/242

    78

    Neraca massa benzena

    F xF D yD=dt

    dxM w

    dt =w

    DF

    dxyDxF

    M

    Hukum Roult untuk kesetimbangan

    yD=w

    w

    x)1(1

    x

    pada yD= 0,4 akan diperoleh xw= 0,21

    Sehingga penyelesaian persamaan adalah

    =xw

    xwo

    wDF

    dxyDxF

    Mt

    dengan yDmengikuti kesetimbangan Roult.

    Program penyelesaian% Distilasi Batch di laboratorium% Distilasi secara batch%% xwn [ M ]% t = Integral [------------- ] dxw% xwo [ F xf - D yd ]% yd adalah fraksi mol benzena pada destilat% xw adalah fraksi mol benzena pada labu destilasi% Hubungan yd dan xw mengikuti Hukum Roult% alpha xw% yd = --------------------% 1 - (alpha - 1)xw%%% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik

    % Universitas Sebelas Maret% ***************************************************************

    % Data-dataF = 10 ; %laju alir umpan, lbmol/jamD = F ; %laju alir destilat, lbmol/jamM = 20 ; %massa labu destilasi, lbmolxf = 0.32; %fraksi mol benzena pada umpanxwo = xf ; %fraksi mol benzena pada labu destilasi mula-mulaalpha = 2.48; %konstanta Roultydn = 0.4; %fraksi mol benzena pada destilat akhir

    % Perhitungan xwn dr pers. Hukum Roultxwn = ydn/(alpha-(alpha-1)*ydn);

    % Nilai-nilai xwn = 100; %jumlah intervalxw=linspace(xwn,xwo,n);

  • 8/10/2019 Buku Pemrograman Komputer

    81/242

    79

    % Nilai t pada berbagai xwyd = alpha.*xw./(1+(alpha-1).*xw);ti=-M./(F.*xf-D.*yd);

    % Jumlah t pada seluruh bagiant=trapz(xw,ti)

    Diperoleh t = 1,5394 jam

    Contoh 4.2. Kecepatan accelerometer

    Accelerometer adalah alat yang digunakan untuk mengukur kecepatan suatu

    benda. Alat ini mengintegrasikan sinyal percepatan untuk menghasilkan suatu

    perkiraan jarak tempuh. Hubungan waktu (detik) dengan percepatan (m/detik2)

    ditunjukkan pada tabel di bawah.

    Perkirakan kecepatan pada 1, 2, , 10 detik

    Penyelesaian

    v(10) = 10

    0

    a(t) dt + v(0) = 10

    0

    a(t) dt

    Program Matlab

    % Kecepatan accelerometer% Hubungan waktu (t) dengan percepatan a (m^2/detik)% ditunjukkan pada tabel% Kecepatan secara numeris% v = int ( a dt)%% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************

    % Data-datat=[0:10]; % detika=[0 2 4 7 11 17 24 32 41 48 51]; % m^2/detik

    v(1)=0; % keadaan awal

    % Perhitungan secara numeris

    Waktu

    (detik)0 1 2 3 4 5 6 7 8 9 10

    Percepatan

    (m/detik2)

    0 2 4 7 11 17 24 32 41 48 51

  • 8/10/2019 Buku Pemrograman Komputer

    82/242

    80

    for k=[2:11]v(k)=trapz(t(1:k),a(1:k));

    end

    % Cetak Hasildisp(' ')disp(' t(detik) v(m/detik)')disp([t' v' ])

    Keluaran Program

    t(detik) v(m/detik)0 0

    1.0000 1.00002.0000 4.00003.0000 9.50004.0000 18.50005.0000 32.50006.0000 53.00007.0000 81.00008.0000 117.50009.0000 162.0000

    10.0000 211.5000

    4.2. ATURAN SIMPSON

    Aturan Simpson berdasarkan pada penggunaan pendekatan polinomial kuadratik

    suatu fungsi f(x) pada sepasang sub-interval.

    Integrasi polinomial kuadratik melalui titik (x0, f0), (x1, f1), dan (x2, f2) dengan f0

    = f(x0), f1= f(x1), dan f2=f(x2) mengikuti persamaan berikut :

    ( )2101x

    0x

    ff4f3

    hdx)x(f ++= .(4.3.)

  • 8/10/2019 Buku Pemrograman Komputer

    83/242

    81

    f (x)

    x

    x0 x2x1

    h

    f(x0)

    f(x1)

    f(x2)

    Gambar 4.4. Konsep Dasar Aturan Simpson

    Aplikasi aturan Simpson pada seluruh pasangan interval dalam kisaran x0sampai

    xn

    b

    a

    dx)x(f ( ) ( ) ( )n21n22n2432210 ffx4f3

    h......ff4f

    3

    hff4f

    3

    h+++++++++=

    [ ])f)f......ff(2)f......ff(4f3

    hn22n2421n2310 +++++++++=

    .(4.4)

    Untuk menggambarkan penggunaan aturan Simpson, akan ditampilkan dua

    alternatif yaitu fungsi simp1 dan simp2.

    simp1 menggunakan vektor koefisien v dan vektor fungsi nilai y serta

    mengalikan kedua vektor. simp2 menggunakan aturan Simpson secara

    konvensional (menggunakan loop).

    Alternatif 1

    function q = simp1(func,a,b,m)% Integrasi Numeris%% Penyelesaian dilakukan dengan Aturan Simpson% Menggunakan vektor% q = simp1(func,a,b,m)% integrasi fungsi func dr a sampai b dg m pembagian%% Nama File : simp1.m% Surakarta, Oktober 2005

  • 8/10/2019 Buku Pemrograman Komputer

    84/242

    82

    % ---------------------------------------------------------------

    if (m/2)~= floor(m/2)disp('m harus genap '); break

    end

    h = (b-a)/m;x = [a:h:b];y = feval(func,x);

    v = 2*ones(m+1,1);v2 = 2*ones(m/2,1);v(2:2:m) = v(2:2:m) + v2;v(1) = 1;v(m+1) = 1;

    q = y*v;q = q*h/3;

    Alternatif 2

    function q = simp1(func,a,b,m)% Integrasi Numeris%% Penyelesaian dilakukan dengan Aturan Simpson% Menggunakan loop% q = simp2(func,a,b,m)% integrasi fungsi func dr a sampai b dg m pembagian%% Nama File : simp2.m% Surakarta, Oktober 2005% ---------------------------------------------------------------

    if (m/2)~= floor(m/2)disp('m harus genap '); break

    end

    h = (b-a)/m;s = 0;y1 = feval(func,a);

    for j = 2:2:mx = a+(j-1)*h;ym = feval(func,x);x = a+j*h;yh = feval(func,x);s = s+y1+4*ym+yh;y1=yh;

    end

    q = s*h/3;

    Contoh 4.3 Program Penggunaan Aturan Simpson

    Kedua alternatif aturan Simpson tersebut digunakan untuk menyelesaikan

    dxxy

    1

    0

    7=

    fungsi persamaan tersebut dalam Matlab diberi nama f43

  • 8/10/2019 Buku Pemrograman Komputer

    85/242

    83

    function fv = f43(x)% Fungsi pangkat sederhana% f(x) = x^7%% Nama File : F43.m% Surakarta, Oktober 2005% ---------------------------------------------------------------

    fv = x.^7;

    Berikut program yang digunakan untuk menguji simp1

    % Integrasi Numeris dg Aturan Simpson% menggunakan vektor% integral x^7 dari 0 sampai 1%% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************

    n = 2; i = 1;t = clock;disp(' n nilai integral')while n

  • 8/10/2019 Buku Pemrograman Komputer

    86/242

  • 8/10/2019 Buku Pemrograman Komputer

    87/242

  • 8/10/2019 Buku Pemrograman Komputer

    88/242

    86

    f (x)

    x

    f (x)

    x

    (a)

    (b)

    Gambar 4.5. Konsep Dasar Kuadratur Gauss

    Penyelesaian 4 persamaan di atas memberikan

    c1= c2= 1 x1= -3

    1 x2=

    3

    1

    sehingga

    =1

    1

    dx)x(fI = f

    3

    1+ f

    3

    1

    Prosedur yang sama dapat dilakukan dengan penggunaan titik yang lebih banyak.

  • 8/10/2019 Buku Pemrograman Komputer

    89/242

    87

    Fungsi Matlab quad dan quad8 menggunakan konsep kuadratur

    Gauss. Kedua fungsi pengintegralan beroperasi dengan cara yang sama.

    Keduanya mengevaluasi nilai fungsi yang akan diintegralkan pada interval

    apapun yang diperlukan untuk memperoleh hasil yang tepat. Bahkan keduanya

    cenderung untuk membuat perkiraan tingkat tinggi daripada menggunakan

    trapezoid sederhana. quad8 lebih teliti dari quad.

    Tabel 4.1. Faktor Bobot c dan Argumen Fungsi x

    untuk Kuadratur Gauss

    Titik Faktor Bobot Argumen Fungsi

    2 c1 = 1, 000000000 x1 = - 0, 577350269

    c2 = 1, 000000000 x2 = 0, 577350269

    3 c1 = 0, 555555556 x1 = - 0, 774596669

    c2 = 0, 888888889 x2 = 0

    c3 = 0, 555555556 x3 = 0, 774596669

    4 c1 = 0, 347854845 x1 = - 0, 861136312

    c2 = 0, 652145155 x2 = -0, 339981044

    c3 = 0, 652145155 x3 = 0, 339981044

    c4 = 0, 347854845 x4 = 0, 861136312

    5 c1 = 0, 236926885 x1 = - 0, 906179846

    c2 = 0, 478628670 x2 = -0, 538469310

    c3 = 0, 568888889 x3 = 0

    c4 = 0, 478628670 x4 = 0, 538469310

    c5 = 0, 236926885 x5 = 0, 906179846

    6 c1 = 0, 171324492 x1 = - 0, 932469514

    c2 = 0, 360761573 x2 = -0, 661209386

    c3 = 0, 467913935 x3 = -0, 238619186

    c4 = 0, 467913935 x4 = 0, 238619186

    c5 = 0, 360761573 x5 = 0, 661209386

    c6 = 0, 171324492 x6 = 0, 932469514

    Contoh 4.4. Program Penggunaan fungsi qu d .

    % Integrasi Nume