Tag: Matlab

  • Peluruhan Zat Radioaktif dengan Simulasi Komputasi Matlab

    Peluruhan Zat Radioaktif dengan Simulasi Komputasi Matlab

    Berikut ini adalah contoh Simulasi Program Komputasi dengan Matlab untuk menghitung jumlah sisa Zat Radiokatif yang Meluruh.

    A. Contoh Kasus Peluruhan Zat Radiokatif

    Misalkan sebuah zat Radioaktif (X) melakukan peluruhan sehingga mengalami perubahan jumlah awal 1000 atom dengan waktu paruh 4,4 x 109 s. Buatlah sebuah program yang menunjukkan jumlah atom yang tersisa terhadap selang waktu!

    1. Solusi Analitik

    Untuk menghitung jumlah zat sisa dari atom yang meluruh maka digunakan model Persamaan diferensial pertumbuhan exponesial yakni

    \frac{dN}{dt}=-λN

    dengan solusi persamaaan

    N = N_0e^{-λt}

    dimana :

    N: Jumlah zat tersisah
    N0: Jumlah zat mula-mula
    -λ: paruh waktu
    t: Interval waktu

    2. Solusi Pemrograman

    % Latihan program Peluruhan Zat Radiokatif
    % Solusi dengan Persamaan Diferensial Pertumbuhan Exponensial
    
    N_awal = 1000;
    npoints = 100%
    Lamda = 4.4e9;
    dt = 1e7;
    
    N_zatradiokatif = zeros(npoints,1);
    time = zeros(npoints,1); 
    
    N_zatradiokatif(1) = N_awal; 
    time(1) = 0;
    
    for step = 1:npoints-1 
      N_zatradiokatif(step+1) = N_zatradiokatif(step)-  
      (N_zatradiokatif(step)/Lamda)*dt;
      time(step+1) = time(step) + dt;
    end
    
    t=0:1e8:10e9;
    N_analytical=N_awal*exp(-t/Lamda);
    plot(time,N_zatradiokatif,'r',t,N_analytical,'b'); 
    xlabel('waktu dalam tahun')
    ylabel('Jumlah Molekul')

    Hasil dari program akan berbentuk grafik seperti yang ada pada perintah terkahir. Hasilnya akan seperti berikut :

    Grafik Peluruhan Zat RAdiokatif dengan Matlab
  • Belajar Matlab – Diferensial Numerik dengan Metode Euler

    Belajar Matlab – Diferensial Numerik dengan Metode Euler

    Ahmaddahlan.NET – Metode Euler adalah solusi numerik untuk persamaan Diferensial biasa orde I. Persamaan dari Deret Taylor adalah :

    y(t_i+1)=y(t_i)+(t_{i+1}-t_i)y'(t_i)+\frac{(t_{i+1}-t_i)^2}{2}y"(ξ_i)

    jika :

    h = (t_{i+1}-t_i)

    maka persamaan di atas dapat ditulis :

    y(t_i+1)=y(t_i)+hy'(t_i)+\frac{h^2}{2}y"(ξ_i)

    Asumsi yang diterapkan pada Metode Eular adalah suku terakhir adalah turunan ke dua yang dapat diabaikan sehingga :

    y_{i+1}=y_i+y'h

    dimana y’ = f(xi,yi)

    Nilai turunan dari y dengan metode Eular didapatkan dari mengekstrapolasi garis linier diinterval h, sehingga semakin banyak interval nilai h maka semakin besar error yang didapatkan.

    A. Studi Kasus

    Misalkan sebuah persamaaan diferensial orde I seperti berikut :

    \frac{dy}{dx}=-2x^3+12x^2-20x +8,5

    dimana x = 0 sampai x = 4 dengan lebar langkah 0.5 dengan syarat awal y(0) = 1.

    Langkah 1. Hitung terlebih dahulu solusi analitik dari persamaan tersebut !

    Langkah 2. Tentukan f(x) = -2x3+12x3-20x+8.5, kemudian subtitusi nilai x ke dalam persamaan tersebut!

    Langkah 3. Hitung nilai y menggunakan persamaan : yi+1=yi+y’h

    y

    xy’y
    08,51
    0,5
    1
    4

    Langkah 5. Buat Algoritma dengan Metode tersebut di Matlab.

    Contoh Algortima dan Scriptnya di Matlab!

    clear all
    clc
    format long
    
    b = 4; % batas atas
    a = 0; % batas bawah
    h = 0.5; % semakin nilai semakin detail hasil yang ditunjukkan
    N = (b-a)/h;
    y0 = 1; % nilai y awal
    x0 = 0; % nilai x awal
    
    % inisialisasi array x dan y
    x = zeros(1, N+1);
    y = zeros(1, N+1);
    w = zeros(1, N+1);
    
    %perubahan t per step
    for i = 1:N+1
        x(i) = a + (i-1)*h;
    end
    
    %solusi y menggunakan metode Euler
    y(1) = y0;
    for i = 2:N+1
        y(i) = y(i-1) + h*(-2*x(i-1)^3 + 12*x(i-1)^2 - 20*x(i-1) + 8.5);
    end
    
    %solusi analitik
    for i = 1:N+1
        w(i) = -0.5*x(i)^4 + 4*x(i)^3 - 10*x(i)^2 + 8.5*x(i) + 1;
    end
    
    % Plot hasil
    plot(x, y, 'b', x, w, 'r');
    xlabel('x');
    ylabel('y');
    legend('Numerik', 'Analitik');
    title('Perbandingan Solusi Numerik dan Analitik');
    

    Silahkan Run Script tersebut, disana akan terlihat perbedaan solusi antara Metode Euler dan Metode Analitik.

    Tugas Latihan !

    Gambarlah Grafik antara hasil Analitik dan Metode Euler untuk persamaan diberensial biasa berikut :

    f(x,y)=\frac{y}{2x+1}

  • Belajar Matlab – Solusi Integral Metode Simpson

    Belajar Matlab – Solusi Integral Metode Simpson

    AhmadDahlan.NET – Metode Simpson adalah metode integral numerik yang digunakan untuk menghitung luas daerah yang dibatasi oleh persamaan garis f(x). Pendekatan yang dilakukan lebih detail dari Pendekatan Trapezoid dimana Daerah di bagi ke dalam dua bangun trapesium.

    Solusi Integral Metode Simpson

    Metode Indtegral dengan Pendekatan Simpson

    Gambar pada sisi kiri menunjukkan metode integral analitik untuk menghitung luas wilayah yang dibatasi oleh garis f(x) yang mulai dari a sampai b. Pada gambar pada sisi kanan adalah metode Simpson yang digunakan untuk menghitung luas daerah yang diarsis menggunakan metode numerik Simpson.

    Metode ini Simpson sama dengan metode Trapezoida namun luas wilayah di bagi ke dalam dua trapseium sehingga hasil perhitungan jauh lebih teliti dibandingkan dengan metode Simpson. Lebar trapesium di bagi menjadi dua bagian dengan lebar h.

    Metode Simpson dibagi ke dalam dua kelompok yakni :

    1. Metode simpson 1/3
    2. Metode simson 3/8

    A. Metode simpson 1/3

    Metode ini mengaproksimasi integral dengan menggunakan polinomial kuadrat. Rumus integral Simpson 1/3 untuk fungsi f(x) pada interval [a,b] adalah sebagai berikut:

    \int^b_a f(x).dx≈\frac{b-a}{6}\left[f(a)+4f\left(\frac{a+b}{2}\right)+f(b)\right]

    Untuk membagi ke lebih banyak sub-interval dapat digunakan:

    \int^b_a f(x).dx≈\frac{h}{3}\left[f(x_0)+4\Sigma^{n-1}_{i=1,3,5, ...}f(x_i)+2\Sigma^{n-2}_{i=2,4,6, ...}f(x_i)+f(x_n)\right]

    Di mana:

    • n adalah jumlah sub-interval (harus genap),
    • h=(b−a)/n
    • xi=a+ih

    Contoh Implementasi dengan Matlab

    function integral = simpson_1_3(f, a, b, n)
        if mod(n, 2) == 1
            error('n harus genap');
        end
        
        h = (b - a) / n;
        x = a:h:b;
        fx = arrayfun(f, x);
        
        result = fx(1) + fx(end);
        result = result + 4 * sum(fx(2:2:n));
        result = result + 2 * sum(fx(3:2:n-1));
        
        integral = result * h / 3;
    end
    
    % Contoh penggunaan
    f = @(x) sin(x);
    a = 0;
    b = pi;
    n = 100;  % harus genap
    
    integral = simpson_1_3(f, a, b, n);
    fprintf('Nilai integralnya adalah: %.6f\n', integral);

    B. Metode Simpson 3/8

    Metode ini mengaproksimasi integral dengan menggunakan polinomial kubik. Rumus integral Simpson 3/8 untuk fungsi f(x) pada interval [a,b] adalah sebagai berikut:

    \int^b_af(x).dx≈\frac{3h}{8}\left[ f(a)+3f(a)\left(a+\frac{h}{3}\right) +3f(a)\left(a+\frac{2h}{3}\right)+f(b)\right]

    Untuk lebih banyak sub-interval, rumus umum Simpson 3/8 adalah:

    \int^b_af(x).dx≈\frac{3h}{8}\left[ f(x_0)+3\Sigma^{n-1}_{i=1,2,4,5 ...}f(x_i)+2\Sigma^{n-3}_{i=3,6,9, ...}f(x_i)+f(x_n)\right]

    dimana n kelipatan bilangan 3.

    Contoh Implementasi dengan Matlab

    function integral = simpson_3_8(f, a, b, n)
        if mod(n, 3) ~= 0
            error('n harus kelipatan 3');
        end
        
        h = (b - a) / n;
        x = a:h:b;
        fx = arrayfun(f, x);
        
        result = fx(1) + fx(end);
        result = result + 3 * sum(fx(2:3:n));
        result = result + 3 * sum(fx(3:3:n));
        result = result + 2 * sum(fx(4:3:n-3));
        
        integral = result * 3 * h / 8;
    end
    
    % Contoh penggunaan
    f = @(x) sin(x);
    a = 0;
    b = pi;
    n = 99;  % harus kelipatan 3
    
    integral = simpson_3_8(f, a, b, n);
    fprintf('Nilai integralnya adalah: %.6f\n', integral);
    

    E. Tugas

    Buatlah sebuah solusi integral numerik metode trapzoida untuk fungsi berikut

    ∫_𝑎^𝑏(3𝑥3−5)𝑑𝑥

    dan

    ∫^b_a(cos⁡𝑥+2)𝑑𝑥

    keterangan

    1. ganti nilai b dengan tanggal lahir anda masing-masing dan nilai a dengan bulan lahir.
    2. Kerjakan masing-masing soal dengan metode 1/3 dan 3/8.
  • Belajar Matlab -Penyelesaian Integral dengan Metode Trapezoida

    Belajar Matlab -Penyelesaian Integral dengan Metode Trapezoida

    AhmadDahlan.NET – Penyelesaian Integral dengan Metode Trapezoida dilakukan dengan persamaan berikut :

    \int^b_af(x)dx=\frac{h}{2}[f(x_0)+f(x_1)]-\frac{h^3}{12}f''(ξ)

    dimana x0=a dan x1=b dan h = b – a. Pada umumnya turunan suku ke-2 f”, biasanya dapat diabaikan sehingga persamaan ini dapat disederhanakan menjadi :

    \int^b_af(x)dx=\frac{h}{2}[f(x_0)+f(x_1)]

    Pendekatan Trapezoida hanya bisa digunakan untuk persamaan yang turunan keduannya nol. Grafik dari pendekatan Trapezoida seperti berikut ini :

    Solusi persamaan integral dengan pendekatan Pendekatan Trapezoida

    Grafik pada bagian kiri adalah grafik yang menunjukkan persamaan f(x). Metode Trapezodia digunakan untuk menghitung luas daerah yang menyerupai bentuk trapesium di bawah garid f(x) dengan batas dari a sampai b.

    Perhatikan daerah antara garis f(x) dengan garis lurus antara f(x1) dan f(x0). Metode trapezodia tidak mempu menghitung luad daerah tersebut sehingga jika nilainya terlalu besar, Metode ini tidak menunjukkan hasil yang teliti.

    A. Studi Kasus Solusi Integral

    Misalkan ada sebuah persamaan f(x) = x2 dengan batas atas b = 6 dan a = 2. Bandingkan hasil keduanya dengan metode Trapezodia dengan Metode Analitik!

    a. Metode Trapezodia

    Nilai h = b – a = 6 – 2 = 4

    f(a) = a2 = 4
    f(b) = b2 = 36

    Integral Metode Trapezodia

    \int^6_2x^2dx=\frac{4}{2}[36+4]=80

    b. Metode Analitik

    \int^6_2x^2dx= \frac{1}{3}x^3|^6_2 = \frac{1}{3}(216-8) = 69,33

    Latihan

    Bandinkan hasil Metode Trapezodia dengan Metode Analitik untuk f(x) = x1 dan f(x) = x3!

    B. Membuat Script Metode Trapezodia

    Membuat script di Matlab

    clear all 
    clc
    
    a = ...
    b = ...
    
    x0=a;
    x1=b;
    h = b-a;
    
    Int_trapez = (h/2)*(f(x0)+f(x1))
    

    Fungsi external

    function y = f(x)
    y = ... 

    Tugas !

    Tuliskan script Metode Trapezodia dengan Matlab untuk menyelesaikan persamaan :

    f(x)=\sqrt{1-x}

    Bandingkan hasilnya dengan metode analitik, jika batas awal a = 1 dan batas akhir b = 3!

  • Belajar Matlab – Penyelesaian Turunan dengan Perintah syms

    Belajar Matlab – Penyelesaian Turunan dengan Perintah syms

    AhmadDahlan.NET – Misalkan ada sebuah fungsi x dengan bentuk y = axn. jika a dan n adalah sebuah konstanta maka turunan y terhadap x didapatkan sebagai berikut :

    \frac{dy}{dx} =n(a)x^{n-1}

    Contoh : Sebuah persamaan posisi sebuah partikel yt = 3t2-5t, tentukan persamaan kecepatan dari partikel tersebut!

    v_t = y' = \frac{dy}{dt}= 2(3)t^{2-1}-1(5)t^{1-1}
    v_t=6t-5

    Persamaan ini dapat diselesaikan dengan dengan fungsi Matlab.

    • Turunan di Matlab dapat dilakukan dengan perintah syms. jadi misalkan persamaan yt = 3t2-5t ingin diturunkan terhadap variabel t maka perintah syms t.
    • Perintah diff yang digunakan untuk turunan fungsi yang bersifat numerik.

    contoh perintahnya di Matlab dapat dilakukan dengan script

    syms x
    
    yt=3*t^2-5*t
    vt = diff(yt);

    Contoh Latihan di Matlab

    Sebuah partikel bergerak dengan persamaan posisi y = 5t3 – 2t2 + 7. Tentukan

    1. persamaan kecepatan partikel !
    2. kecepatan benda pada saat t = 5
  • Belajar Matlab – Simulasi Gerak Parabola

    Belajar Matlab – Simulasi Gerak Parabola

    AhmadDahlan.NET – Gerak Parabola adalah gerak yang dihasilkan dari perpaduan gerak lurus beraturan (GLB) di sumbu horisontal dan gerak lurus berubah beraturan (GLBB) di sumbu vertikal. Gerak ini bisa terjadi jika resistansi dari hambatan udara sangat kecil sehingga tidak mengubah lintasan bola, kalaupun ada maka resitansi hanya pada sumbu-sumbu x dan y.

    Contoh gerak ini paling sederhana adalah menendang bola dengan sudut elevasi tertentu.

    Lintasan gerak Parabola pada bola yang ditendang

    A. Analisis Fisis Gerak Parabola

    Gerak parabola terjadi pada sebuah benda yang bergerak dengan vektor kecepatan yang membentuk sudut elevasi θ yang lebih besar dari 0o dan lebih kecil dari 90o.

    Vektro dan Gerak Parabola

    a. Komponen Vektor y

    Pada komponen vektor y kecepatan :

    V0y = V0 cos θ

    t max

    Karena bergerak melawan gravitasi maka benda akan mencapai ketinggian maksimum pada saat Vy = 0

    v_y = v_0 cos \theta - gt

    karena Vy = 0, maka

    v0 cos θ = gt

    dengan demikian

    t = \frac{v_0cos\theta}{g}

    t max

    Lama waktu yang dibutuhkan sampai hmax adalah :

    h_{max}= v_0cos\theta.t-\frac{1}{2}gt^2

    masukkan kepersamaan tmax

    h_{max} = v_0cos\theta.(\frac{v_0cos\theta}{g})-\frac{1}{2}g(\frac{v_0cos\theta}{g})^2

    maka

    h_{max} = \frac{v_0^2cos^2\theta}{2g}

    b. Komponen Vektor x

    Pada komponen x

    vx = v0 sin θ

    maka jangkuan dapat dihitung dengan

    R = v_0sin \theta .\frac{v_0cos\theta}{g}

    karean sin 2θ = 2 sin θ cos θ, maka

    R = \frac{v_0^2 sin2\theta}{2g}

    B. Gerak Parabola dengan Matlab

    Persamaan gerak Parabola dengan Matlab

    v0 = str2double(get(handles.edit1,'String')); 
    theta = str2double(get(handles.edit2,'String'));
    theta = theta/180*pi; 
    g = 9.8;
    tmax = 2*v0*sin(theta)/g; 
    t = 0:0.01:tmax;
    y = v0*sin(theta).*t-0.5*g*(t.^2);
    x = v0*cos(theta).*t;
    axes(handles.axes1)
    plot(x,y,'r')
    grid on
    title('Grafik gerak parabola');
    xlabel('jarak (m)');
    ylabel('ketinggian (m)');
    xmax = ((v0^2)*(sin(2*theta)))/g;
    ymax = ((v0^2)*(sin(theta))^2)/(2*g); 
    set(handles.edit3,'string',strcat(num2str(xmax),' m'));
    set(handles.edit4,'string',strcat(num2str(ymax),' m'));

    Source code gerak Parabola

    function pushbutton1_Callback(hObject, eventdata, handles)
    v0 = str2double(get(handles.edit1,'String'));
    theta = str2double(get(handles.edit2,'String'));
    theta = theta/180*pi;
    g = 9.8;
    tmax = 2*v0*sin(theta)/g;
    t = 0:0.01:tmax;
    y = v0*sin(theta).*t-0.5*g*(t.^2);
    x = v0*cos(theta).*t;
    axes(handles.axes1)
    plot(x,y,'r')
    grid on
    title('Grafik gerak parabola');
    xlabel('jarak (m)');
    ylabel('ketinggian (m)');
    xmax = ((v0^2)*(sin(2*theta)))/g;
    ymax = ((v0^2)*(sin(theta))^2)/(2*g);
    set(handles.edit3,'string',strcat(num2str(xmax),' m'));
    set(handles.edit4,'string',strcat(num2str(ymax),' m'));
  • Operasi Matematika untuk Array di Matlab

    Operasi Matematika untuk Array di Matlab

    AhmadDahlan.NET – Array dapat didefenisikan sebagai sekumpulan nilai atau variable yang tersusun pada baris dan kolom. Array adalah sintaks untuk menunjukkan Matriks dalam bahasa pemograman.

    Dalam bahasa Pemograman Matlab, Semua nilai dari variable pada dasarnya disimpan dalam bentuk Array, misalnya

    >> B = 5 ;
    B =
      5

    angka 5 ini adalah matriks dengan dimensi 1 x 1. Array ini adalah array paling sederhana yang bisa disimpan dan dioperasikan di Matlab.

    A. Mendefenisikan Array di Matlab

    Misalkan kita memiliki sebuah vektor posisi dari sebuah partikel dengan persamaan x = 2 i + j – 7z

    Vektor ini dapat ditulisakan dengan sintak

    >> x = [ 2 1 -7]
    x = 
    2 1 -7

    Untuk membuat kolom, kita menggunakan pemisah ; seperti berikut

    >> y = [3; x+7; 4]
    y = 
    3
    x+7
    4

    Array dengan dimensi 2 x 3 dapat ditulis dengan bentuk

    >> y2 = [1 0 1; 2 0 u]
    y2 = 
    1 0 1 
    2 0 u

    Untuk membuat Array dengan deret tertentu juga bisa dilakukan dengan sintaks loop dari Matlab. Misalnya saya ingin membuat matriks deret yang dimulai dari 3 sampai 11 dengan interval 2.

    >> z = [3 : 2 : 11]
    z =
    3 5 7 9 11

    sintak lain jika deret kelipatan 1

    >> p = [ -3 ; 5]
    p = 
    -3 -2 -1 0 1 2 3 4 5

    B. Adressing Array

    Addressing Array adalah fasilitas yang digunakan untuk mendeklarasikan variable berdasarkan indek dari array yang ada. Misalkan saya memiliki Matriks 1 x 8 :

    >>y = [2 4 6 7 4 5 0 1]
    y =
    2 4 6 7 4 5 0 1

    kita bisa memangil dan mengoperasikan array pada posisi dan tertentu sesuai dengan kebutuhan. Proses pemanggilan dilakukan berdasarkan alamat elemen matriks yang ada :

    >>y = [2 4 6 7 4 5 0 1]
    y =
    2 4 6 7 4 5 0 1
    >> y1 = y(3:5)
    y1 = 
    6 7 4

    Kita juga bisa menyusun array dari colon yang diinginkan mengunakan fasilitas “:”. Misalkan

    >> a = [1 0 1; 2 3 4; b c d]
    a =
    1 0 1 
    2 3 4 
    b c d
    >>a1 = a(;2)
    a1 = 
    0
    3
    c 

    C. Operasi Matematis pada Array

    Operasi matematis pada array mengadopsi prosedur operasi matematis pada vektor.

    1. Pemjumlahan dan Pengurangan

    Penjumlahan dan pengurangan pada vektor bisa dilakukan jika dimensi vektor sama.

    \begin{bmatrix}a & b\\ c & d \end{bmatrix} - \begin{bmatrix}p & q\\ r & s \end{bmatrix} = \begin{bmatrix}a-p & b-q\\ c-r & d-s \end{bmatrix}

    Misalkan

    >> a = [1 -2; 3 4]; b = [2 3; 2 1];
    >> a - b =
    ans 
    -1 -5
     1  3

    2. Perkalian Skalar Pada Matriks.

    Perkalian skalar adalah perkalian yang mengalikan elemen skalar dengan vektor pada matriks atau kelipatan skalar dari elemen-elemen yang ada di Matriks.

    q\begin{bmatrix}a & b\\ c & d \end{bmatrix} = \begin{bmatrix}qa & qb\\ qc & qd \end{bmatrix}
    >> a = 2; b = [1 0; 2 3];
    >> a*b =
    ans 
    2 0 
    4 6

    3. Perkalian Vektor Pada Matrik

    Operasi perkalian pada matriks dapat dilakukan jika jumlah kolom pada matriks sama dengan jumlah baris yang sama. Misalnya kita mengalikan matriks dimensi a × s dan matriks dimensi s × b, maka hasilnya adalah matrik a × b.

    Milsalan kita mengalikan Matriks 1 x 3 dan 3 x 2 akan menghasilkan matriks 1 x 2

    a = \begin{bmatrix}1 & 2 & 3 \end{bmatrix}

    dan

    b=\begin{bmatrix}
    1 &2 \\ 
    3 &4 \\ 
     5& 5
    \end{bmatrix}

    maka a × b = [ (1*1+2*3+3*5) (1*2+2*4+3*5)] = [21 25]

    Latihan

    1. Buatlah Matriks dengan element sebagai berikut : 3, π, √ 10, 22/7, sin 34o, tan 27o
    2. tentukan nilai x dan y dari x + y + 2z= 11 dan x + 5y – z = 0
  • Belajar Matlab – Contoh Kasus dan Solusi Perhitungan Volume dengan Conditional Statement

    Belajar Matlab – Contoh Kasus dan Solusi Perhitungan Volume dengan Conditional Statement

    AhmadDahlan.NET – Contoh kasus ini didapatkan di artikel Conditional Statement.

    Seorang arsitek merancang sebuah bak penampung air dengan bentuk seperti di bawah !

    Contoh soal menghitung Volume bangun ruang

    Jika jari-jari bawah dari kerucut adalah 15 m dengan ketinggian asli kerucut adalah 7,5 m sebelum dipotong, maka buatlah program yang dapat digunakan untuk menghitung volume air berdasarkan ketinggian air dalam bak!

    Solusi

    1. h < 5

    Kondisi pertama adalah menghitung Volume Air jika ketinggian kurang dari 5 meter. Jika ketinggian air kurang dari 5 meter maka yang dipenuhi dari penampuangan air hanya bagian dasar lantai sehingga dapat di asumsikan

    Maka solusinya adalah ketinggian air dapat dihitung dengan rumus :

    V_{1}=V_{KB}-V_{KK}

    Dengan jari-jari kerucut kecil tidak lain adalah perbandingan antara Tinggi kerucut kecil dan kerucut besar yakni :

    r_h= \frac{h\times15}{7,5}

    Jadi volumenya adalah

    V_1= \frac{1}{3} \pi 15^2 \times7.5 - \frac{1}{3} \pi (\frac{h\times15}{7,5})^2 \times h
    V_1= \frac{1}{3} \pi (1687.5 - 4(h)^3 )

    Dalam bahasa program, solusi dapat ditulis :

    v = (1/3*pi*(1687.5-4*h^3)

    2. h > 5

    Pada saat H > 5, maka Volume air dalam tabung adalah penjumlahan antara volume Potongan kerucut dan Tabung.

    Volume potongan kerucut adalah :

    V_1= \frac{1}{3} \pi (15^2 \times7.5 - (\frac{5\times15}{7,5})^2 \times 5)

    Jadi Volume :

    V_1=\frac{1187.5 \pi}{3} 

    Volume Tabung

    V_2 = \pi \times 10^2 \times (h-5)

    Sehingga Volume totalnya adalah

    V_{total} = \pi (\frac{1187.5 }{3} + 10^2 \times (h-5))

    Dalam bahasa Program ditulis

    v = pi*(1187.5/3+100*(h-5))

    3. h > 15 dan h < 0

    Jika h > 15 maka programnya akan menulis “Tinggi air maksimal 15 meter” dan jika h < 0 maka akan tertulis “Program eror”.

    Solusi Umum dalam Bentuk program

    h=input('Masukkan ketinggian air dalam meter: ');
    if h>15
      disp('ketinggian tidak boleh lebih 15 meter')
    elseif h < 0
      disp('ketinggian tidak boleh minus')
    elseif h <= 5
      v = (1/3*pi*(1687.5-4*h^3);
      fprintf('Volume %7.3f meter kubik.\n',v)
    else
      v = pi*(1187.5/3+100*(h-5))
      fprintf('Volume %7.3f meter kubik.\n',v)
    end
    
  • Belajar Matlab – Conditional Statement : Program If-Else-end di Matlab

    Belajar Matlab – Conditional Statement : Program If-Else-end di Matlab

    AhmadDahlan.NET – Conditional Statement mungkin dapat diartikan harfiah sebagai “Pernyataan Bersyarat” artinya adalah sebuah pernyataan yang dapat dijadikan sebagai dasar atau syarat untuk mengeksekusi perintah lain. Jika syarat terpenuhi akan dilakukan perintah A jika salah maka dilakukan perintah B.

    Misalnya ketika seseorang sedang pergi ke KFC membeli ayam, jika ayam ada maka orang tersebut membeli ayam. Jika ayam tidak ada maka biasanya akan ada dua kemungkinan, misalnya langsung pulang atu bisa juga disambungkan dengan kondisi lain seperti membeli Berger setelah itu baru pulang.

    Dalam kasus ini Syarat yang dijadikan eksekusi adalah ketersediaan ayam untuk melakukan perintah membeli ayam. Sedangkan eksekuisnya bisa bercabang yakni pulang atau membeli produk lain, tapi dari setiap program harus ada ending instruksi yakni pulang. Namun syarat dalam kasus ini hanya ada satu conditional statement.

    Conditional Statement menjadi lebih powerfull dalam Matlab jika digabungkan dengan operator relational. Adapun contoh dan bentuk conditional Statement seperti berikut ini :

    1. if Fgs > w
    2. if price >= 5000
    3. if a == b
    4. if F ~= 0
    5. if (d<h)&(x>7)
    6. if (x~=13)|(y<0)

    Statement if secara umum digunakan dalam struktur pohon (three structures) seperti : (1) if – end, (2) if – else – end, (3) if-else-if-else-end dan seterusnya. Tingkat kerumitan dari struktur conditional statement bergatung dari programernya.

    A. Struktur if-end (Sequence)

    Struktur if-end ini adalah struktur conditional paling sederhana, dimana jika syarat terpenuhi (1) maka eksekusi akan dilakukan jika tidak (0) maka program berakhir. Tipenya lebih ke arah sequence seperti di bawah ini

    conditional statement di Matlab if els sequence

    Contoh masalah dan pemodelan kasus di Matlab :

    Sebuah benda bermassa m terikat dengan seutas tali dengan gaya tegangan maksimum 20 N, jika benda dan meja licin maka buatlah mengukur percepatan benda!

    Solusinya adalah memberikan input gaya ke dalam program dengan syarat jika F > 20 maka hitung percepatan dengan persamaan

     a= \frac {F - 20}{m}

    Contoh Programnya Seperti ini :

    F=input ('masukkan gaya');
    m=input ('masukkan massa');
    if F>20 
         a = (F-20)/m
    end
    fprintf('Percepatan benda %5.2f',a)

    B. Struktur if-else-end (Decision)

    Struktur if-else-end adalah struktur algoritma dimana syarat yang dijadikan sebagai logikal statement mengarahkan ke dua pilihan, jika masukan bernilai 1 maka mengeksekusi perintah A, jika pilihan bernilai 0, maka akan mengeksekusi perintah B, setelah perintah dieksekusi maka program akan berhenti.

    Bagan Struktur if-else-end sebagai berikut :

    The if-else-end structure provides struktur

    Struktur ini masih bisa digabungkan lagi dengan algoritma if-else-end. Umumnya struktur ini disebut dengan if-elseif-else-end. Strukturnya sebagai berikut :

    Struktur If Elseif else end dalam Algoritma Matlab

    Contoh program ini seperti pengimputan nilai mata kuliah dan IPK misalnya Jika skorenya Lebih besar dari 3,75 maka Nilai A, jika skornya lebih besar 3,25, maka nilai A-, jika tidak maka Nilainya B+, logika ini bisa diteruskan sesuai dengan kebutuhan.

    Skore=input ('masukkan skore');
    if Skore > 3,75
         fprint ('A')
    elseif Skore > 3,25
         fprint ('A-')
    else Skore > 2,75
         fprint ('B+')
    end

    Dalam struktur porgram diatas, program tidaklah power full dengan kata lain jika kita tidak memasukkan nilai yang terdapat dalam program maka program akan error.

    Misalnya kita masukkan Skore = 2,0. Skore 2,0 tidak masuk karena program hanya mengenal angka paling kecil >2,75. Skore 2,75 pun akan membuat program error. Untuk membuat struktur lebih baik sebaiknya perintah terkahir hanya berisi perintah yang tidak memenuhi syarat pertama dan kedua seperti :

    Skore=input ('masukkan skore');
    if Skore > 3,75
         disp ('A')
    elseif Skore > 3,25
         disp ('A-')
    else 
         disp ('B+')
    end

    Dengan demikian program sudah mencakup seluruh kemungkinan angka yang bisa dimasukkan.

    Latihan

    Seorang arsitek merancang sebuah bak penampung air dengan bentuk seperti di bawah !

    Contoh soal menghitung Volume bangun ruang

    Jika jari-jari bawah dari kerucut adalah 15 m dengan ketinggian asli kerucut adalah 7,5 m sebelum dipotong, maka buatlah program yang dapat digunakan untuk menghitung volume air berdasarkan ketinggian air dalam bak!

    Solusi di sini : Solusi Program Hitung Volum Bangun Ruang di Matlab

  • Operator Relasional dan Logika Pada Matlab

    Operator Relasional dan Logika Pada Matlab

    AhmadDahlan.NET – Operasi relasional dan logika dalam bahasa pemograman adalah layanan yang digunakan untuk melakukan operasi matematis dalam Matlab. Operasi relasional dan logika ini dilakukan dengan bantuan operator matlab.

    Matlab mengenai tiga jenis operator yakni :

    1. Operator Aritmatika
    2. Operator Relasional
    3. Operator Logika

    A. Operator Aritmatika

    Operator Aritmatika digunakan dalam melakukan operasi numerik, adapaun list Operatir Aritmatika dalam Matlab adalah :

    SimbolFungsi
    =Tanda sama dengan
    +Pemjulahan
    Pengurangan
    *perkalian
    /Pembagian
    \pembagian sisi kiri
    ./Pembagian array kakan
    .\pembagian array kiri
    ^Pangkat
    .^Pangkat pada array

    B. Operator Relasional

    Operator relasional adalah operator yang digunakan untuk melakukan operasi membandingkan dua varibel dalam bahasa pemrograman. Operator ini dapat dijumpai dalam bahasa pemograman tingkat tinggi dan menengah seperti Matlab.

    Adapaun list dan daftar dari Operator Matematis adalah :

    OperatorFungsi
    >Besar Dari
    <Kecil dari
    >=Sama dengan atau lebih besar dari
    <=Sama dengan atau kecil dari
    ==sama dengan
    ~=Tidak sama dengan

    Ouput dari operator rasional ini ditampilkan dengan nilai 0 atau 1, 0 berarti pernyatan salah dan 1 berarti pernyataan benar.

    Pada penggunaan operasi relasional dalam Array hanya bisa dilakukan pada Array dengan dimensi yang sama. Sistem kerjanya adalah membandingkan setiap elemen dari masing-masing array.

    >> x = 2; y=3;
    >> x > y
    
    ans =
      0

    Hasil 0 ini menunjukkan jika pernytaan yang disusun salah. Dalam Operasi relasional, outputnya bisa digunakan untuk mentriger program lain dalam matlabm misalnya jika x lebih besar dari y, maka jumlahkan P + Q.

    Contoh penggunaan operator relasional dalam pada Array

    >> x = [1 2 3]; y = [4 5 6 7]
    >> x == y
    
    Matrix dimensions must agree.

    Hasil eksekusi ini menunjukkan bahwa eksekusi opertor relasional tidak berjalan karena dimensi dari Matrix x dan y tidak sama. Jika dilakukan dengan cara yang sama.

    >> a = [2 3; 1 4]; b = [3 2; 1 2];
    >> a > b
    
    ans =
    0 1
    1 0

    C. Operator Logika

    Operator logika adalah perintah yang berisi logika kondisional. Logika ini bisa dilanjutkan di program looping dalam Matlab untuk maslaah komputasi yang lebih komplek.

    Adapun daftar operator logika

    OperatorSimbolKesimpulan
    AND&1 & 1 = 1
    1 & 0 = 0
    0 & 1 = 0
    0 & 0 = 0
    OR|1|1 = 1
    1|0 = 1
    0|1 = 1
    0|0 = 0
    NOT~~1 = 0
    ~0 = 1
    XOR*xor1 xor 1 = 0
    1 xor 0 = 1
    0 xor 1 = 1
    0 xor 0 = 0

    *built in function

    Contoh penggunaan Operator Logika di Matlab

    >> 2>3 & 3<2+4
    
    ans
      0
    >> 2>3 | 3<2+4
    
    ans
      1
    >> x = 2<3
    
    x =
    1
    
    >> ~x
    
    ans =
    0

    D. Urutan Operasi

    Dalam pemgoraman praktis operasi matematis memiliki urutan yang akan dikerjakan. Misalnya 2 + 3 x 2 hasilnya sama dengan 8 karena perkalian lebih dahulu sebelum pemjulahan. Pada matlab urutan operasi matematis berdasarkan 8 urutan.

    Urutan dari TertinggiOperator
    1Parentheses ( )
    2Exponensial
    3Logika NOT ( ~ )
    4Multiplication , Substarction
    5Addition , substarction
    6Relational operator
    7Logical AND ( & )
    8Logical OR ( | )

    Latihan

    Selesaikan permasalahan sederhana berikut dengan Matlab

    1. Sebuah mobil bergerak dipercepat dari kecepatan 10 m/s dengan percepatan 2 m/s2. Tentukan kecepatan dan jarak mobil, 10 detik kemudian!
    2. Sebuah benda jatuh bebas dan menyentuh permukaan tanah pada 10 detik setelah benda tersebut jatuh. Berapakah ketinggian awal benda?