MODUL 1 OPERASI-OPERASI ARRAY 1. PENDAHULUAN Semua operasi yang akan dilakukan pada praktikum ini melibatkan bilanganbilangan tunggal yang disebut skalar. Operasi-operasi yang melibatkan skalar adalah dasar dari matematika. Pada saat yang bersamaan, ketika sebuah operasi yang sama pada lebih dari satu bilangan dilakukan seketika, maka operasi-operasi skalar cukup memakan waktu dan menjemukan. Untuk ini MATLAB menyediakan perintah untuk menghasilkan daftar bilangan-bilangan yang jumlahnya lebih dari satu, yang biasa dikenal dengan array. Satu contoh soal, komputasi nilai-nilai dari fungsi sinus pada setengah periode misalnya y = sin(x) pada batas-batas 0 x π. Oleh karena tidak mungkin menghitung sin(x) di semua titik-titik pada batas-batas ini, maka kita harus memilih sejumlah bilangan pada titik-titik tertentu untuk mewakilinya. Artinya, kita sedang melakukan sampling fungsi. Untuk melakukan sampling ini, bisa dilakukan dengan mengevaluasi sin(x), dimana x = 0, 0.1π, 0.2π, 0.3π,...,1.0 π. Jika memakai kalkulator scientific untuk menghitung nilai-nilai ini, maka perlu membuat sebuah daftar atau array dari nilai-nilai x, kemudian memasukkan masing-masing nilai x ke dalam kalkulator, mencari nilai sinus-nya dan menulis lengkap hasilnya sebagai array ke dua y. X 0 0.1π 0.2π 0.3π 0.4π 0.5π 0.6π 0.7π 0.8π 0.9π π Y 0 0.31 0.59 0.81 0.95 1.0 0.95 0.81 0.59 0.31 0 Tabel di atas diperoleh dari menghitung satu persatu memakai kalkulator. Jika jumlah data terbatas seperti contoh di atas, kita dapat membuat array sederhana tanpa kesulitan. Tetapi jika jumlah data mencapai jumlah dua puluhan atau lebih, maka pekerjaan membuat array sederhana terasa membosankan. Untuk mengatasi hal ini MATLAB menyediakan perintah untuk membuat array, dengan: - Menggunakan notasi titik-dua atau colon, yaitu : - Menggunakan perintah linspace - Menggunakan logspace Pekerjaan ini dikenal dengan konstruksi array (array construction). Setelah berhasil membuat array sederhana maupun array dengan konstruksi array, selanjutnya perlu mengetahui lokasi atau mendapatkan kembali masing-masing anggota array yang telah disimpan dalam ruang kerja MATLAB, untuk ini kita perlu mengenal suatu pekerjaan tentang peng-alamat-an array atau array addressing. Dalam MATLAB, elemen-elemen tunggal array dapat diperoleh kembali menggunakan subscript, misalnya x(1) adalah anggota pertama dari x, x(2) adalah anggota kedua dari x, dan seterusnya. Seperti halnya sebuat skalar atau sebuah bilangan, pada array juga berlaku operasi matematika, dalam operasi matematika ini akan berlaku operasi matematika scalar-array dan operasi matematika array-array. Ada dua macam array, yaitu array yang berorientasi baris (disebut vector baris) dan array yang berorientasi kolom (disebut vector kolom). Untuk menentukan orientasi suatu array, MATLAB menyediakan fasilitas yang berupa operasi transpose dan titik koma atau semicolon. Jika suatu array terdiri dari banyak baris dan banyak kolom, maka array tersebut disebut matriks yang juga dikenal dengan istilah array 2 Disusun oleh: Alex Haryanto,M.Si dan Albert Djoko L.,M.Si 1
dimensi. Pembuatan array dua dimensi atau matriks mengikuti aturan pembuatan vector-vektor baris dan kolom. Tanda baca seperti koma, atau spasi biasa di[pakai untuk memisahkan elemen-elemen pada suatu baris tertentu,. Sedangkan titik koma atau semicolon dipakai untuk memisahkan baris-baris yang tunggal. Operasi-operasi array dalam MATLAB ini merupakan dasar dan prasyarat utama untuk menyelesaikan pekerjaan dan problem yang menggunakan bahasa pemrograman MATLAB. 2. TUJUAN a. Membuat array sederhana b. Mengenal Peng-alamat-an array c. Mengenal konstruksi array d. Mengenal operasi matematika scalar-array e. Mengenal operasi matematika array-array f. Mengenal orientasi array 3. PELAKSANAAN KOMPUTASI Hal-hal yang perlu diperhatikan dalam melakukan komputasi menggunakan MATLAB dalam praktikum ini, adalah: - Tuliskan setiap pernyataan atau perintah MATLAB yang ditulis setelah tanda >> - Tekan ENTER untuk mengeksekusi perintah MATLAB dan memperoleh hasilnya pada layar monitor (jendela MATLAB) - Bila tidak menginginkan hasil eksekusi pada layar monitor, tuliskan tanda titik-koma (;) pada setiap akhir perintah yang akan dieksekusi - Manfaatkan fasilitas help jika ingin mengetahui perintah-perintah MATLAB, dan mengembangkan kemampuan dalam menggunakan perintah-perintah MATLAB lainnya. a. Pembuatan Array Sederhana Cobalah membuat array sederhana dari x memakai MATLAB, dengan cara sebagai berikut: >> x=[0.1*pi.2*pi.3*pi.4*pi.5*pi.6*pi.7*pi.8*pi.9*pi pi ] kemudian amati hasilnya, lanjutkan mencari nilai y=sin(x) dengan perintah berikut >> y = sin (x) amati hasilnya b. Peng-alamat-an Array Lanjutkan pekerjaan a. di atas untuk mencari elemen-elemen x dengan mencoba perintah-perintah berikut ini: >>x(3) >>y(3:-1:1) >>x(5) >>x(2:2:7) >>x(1:5) >>y([8 2 9 1]) Amatilah apa yang telah dihasilkan MATLAB di atas! c. Konstruksi Array Tuliskan perintah-perintah MATLAB berikut kemudian lakukan eksekusi untuk mendapatkan array dari variable x >>x=(0:0.1:1)*pi >>x=linspace(0, pi, 11) Disusun oleh: Alex Haryanto,M.Si dan Albert Djoko L.,M.Si 2
lanjutkan dengan perintah-perintah berikut: >>logspace(0,2,11) >>a=1:5, b=1:2:9 >>c = [a b] >>d=[a(1:2:5) 1 0 1] d. Operasi Matematika Skalar-Array Pada pekerjaan sebelumnya, telah dilakukan perkalian antara array dari x dengan skalar π, dimana masing-masing elemen array dikalikan dengan π. Dalam operasi penjumlahan, pengurangan, perkalian dan pembagian array dengan sebuah scalar dilakukan dengan operasi terhadap semua anggota array. Kerjakan operasi berikut (lanjutan dari pekerjaan sebelumnya) >>a-2 >>2*a-1 Amatilah apa yang dihasilkan MATLAB dari operasi tersebut! e. Operasi Matematika Array-Array Untuk mendapatkan kembali variable a dan b dari pekerjaan sebelumnya lakukan eksekusi berikut >>a,b >>a+b >>ans-b >>2*a-b >>a.*b >>a*b >>a./b >>a.\b Operasi berikut ini berbeda dengan operasi pembagian sebelumnya, >>a/b Memanggil kembali (recall) variable a dan b sebelumnya >>a, b Operasi perpangkatan >>a.^2 >>2*a.^2 >>b.^a >>b.^(a-3) f. Orientasi Array Pada pekerjaan sebelumnya, sebuah array memiliki sebuah baris dan banyak kolom. Array semacam ini biasa disebut vector baris, karena berorientasi pada baris. Vektor kolom yaitu array yang berorientasi pada kolom karena memiliki banyak baris dan sebuah kolom. Dengan MATLAB, array yang berorientasi baris dapat diubah menjadi array yang berorientasi kolom, dan sebaliknya, dengan menggunakan tanda baca. Kerjakan operasi berikut untuk mendapatkan vector-vektor baris dan kolom: >>c=[1; 2; 3; 4; 5] >>a=1:5 >>b=a >>c=b >>c=a. >>d=a+i*a >>e=d >>f=d. Amati hasil-hasil operasi di atas! Disusun oleh: Alex Haryanto,M.Si dan Albert Djoko L.,M.Si 3
Jika sebuah arra memiliki banyak baris dan kolom, maka array tersebut berupa daftar bilangan-bilangan berbentuk bidang persegi panjang dan lebih dikenal dengan istilah matriks atau array 2 dimensi. Berikut adalah operasi pembuatan matriks (arraydengan banyak baris dan kolom): >>g=[1 2 3 4; 5 6 7 8] >> g=[1 2 3 4 5 6 7 8 9 10 11 12] >>h=[1,2,3; 4,5,6; 7,8,9] Cobalah : >>k=[1 2 3; 4 5 6 7] Untuk mengetahui variable apa saja yang telah digunakan dalam ruang kerja MATLAB saat ini, lakukan operasi berikut: >>whos amatilah apa yang dihasilkan oleh perintah whos tersebut! 4. LATIHAN PENDAHULUAN Aktifkan diary anda dengan mengetikkan: >> diary ( Operasi Aray_Tanggal*_bulan_tahun.doc ) (*tanggal hari ini) >> % NAMA NIM Praktikum 1 Jarak dua buah titik dalam bidang X-Y masing-masing adalah A(2,3) dan B(4.1, 4.5) dapat dihitung dengan MATLAB sebagai berikut: >>A = [ 2 3 ]; >> B = [ 4.1 4.5]; Jarak antara A dan B dihitung dengan rumus: jarakab = (2 4.1) 2 (3-4.5) 2» jarak_ab = sqrt(sum(a-b).^2) Sebuah gelombang persegi yang simetrik di t = 0 dapat dijabarkan dengan deret Fourier berikut: 4A 1 1 1 x(t) = cos ωt - cos 3ωt + cos 5ωt - cos 7ωt +... π 3 5 7 A adalah amplitude gelombang dan dimana adalah frekuensi sudut. Jika A=1, ω = 2 π maka periodenya T = 2 π / ω = 1, sehingga komputasi terhadap tiga suku gelombang persegi dapat dilakukan sebagai berikut:» t = -2 : 0.05 : 2;» omega = 2*pi;» x1 = cos(omega*t);» x2 = -cos(3*omega*t)/3;» x3 = cos (5*omega*t)/5» xt = 4*(x1 + x2 + x3)/pi;» figure(1), plot(t, xt), grid % perintah plot dan tampilkan grid» title ( Pendekatan tiga suku gelombang persegi )»xlabel ( t )» ylabel( x ) Momen dan pusat gravitasi Disusun oleh: Alex Haryanto,M.Si dan Albert Djoko L.,M.Si 4
Gambar di bawah menunjukkan sebuah system masa kolinier. Massa dalam satuan kg dan jarak dalam satuan mm. Dalam pekerjaan ini akan dihitung pusat gravitasi dari sistim. Untuk ini perlu didefinisikan vector-vektor:» massa = [ 35 65 45 75 ];» jarak = [ 400 580 800 1000]; 1000 800 580 400 m1 m2 m3 m4 Vektor momen-momen terhadap sumbu referensi ditunjukkan dalam gambar, diberikan dengan hasil kali array (array product)» momen = massa.* jarak momen total (momen_t) dihasilkan dengan hasil kali scalar (scalar product)» momen_t = massa * jarak sedangkan massa total dihasilkan dari fungsi sum» M = sum (massa) selanjutnya pusat massa (cg) dari system didefinisikan dengan titik yang mana massa total M terkonsentrasi, sehingga momen sistim masa dengan jumlah momen yang diberikan oleh seluruh massa:» cg = momen_t / M juga dapat dihitung melalui:» cg = massa * jarak / sum(massa) atau» cg = jarak*massa / sum(massa) Peningkatan nilai resistansi listrik dengan temperatur. Resistansi R dari sebuah penghantar listrik berbanding lurus terhadap panjangnya L dan berbanding terbalik terhadap luas penampangnya A L R = ρ A Factor pembanding ρ disebut resistivitas. Bila resistivitas tembaga pada 20 0 C adalah ρ = 0,0170 0,0178 Ω mm 2 / m. Resistivitas adalah sebuah fungsi temperatur dan perubahannya dapat dinyatakan dengan : ρ0 = ρ (1+ α ΔT) dimana: ρ0 = resistivitas pada suhu T 0 C α = koefisien temperature, untuk tembaga α = 0,0039K -1 Disusun oleh: Alex Haryanto,M.Si dan Albert Djoko L.,M.Si 5
ΔT = beda temperatur di atas 20 0 C Wisseman(1989) memberikan hubungan yang lebih lengkap sebagai berikut: ρt = ρ20 (1 + α20 ΔT + β20 ΔT 2 ) dimana: ρ20 = 0,0170 Ω mm 2 / m α20 = 4,3 x 10-3 K -1 β20 = 0,6 x 10-6 K -2 Untuk membandingkan dua hubungan secara grafik, antara 20 0 C dengan 100 0 C, kita buat plot sebagai berikut: >> rho = 0.0178; alpha = 0.0039; >> T = 20 : 0.5 : 100; >> delta_t = T 20; >>rho1= rho * (1 + alpha * delta_t); >>rho_20 = 0.017; alpha_200.0043; beta_20 = 0.6*10^(-6); >>rho2 = rho_20*(1 + alpha_20*delta_t + beta_20*delta_t.^2); >> figure(2), plot(t, rho1,t, rho2) >>xlabel( temperature, derajat Celcius ) >>ylabel( Resistivitas, ohm*mm^2 / m ) 5. Rangkaian Diode Gambar di bawah menunjukkan sebuah rangkaian DC berisi sumber tegangan, resistor dan sebuah diode semikonduktor. Jika tegangan ujung-ujung diode adalah v, maka arus yang melewatinya dinyatakan sebagai: i = I0 ( e 40 v - 1 ) 2kΩ dimana I0 adalah arus jenuh balik. Vs = 10 V Untuk nilai v kecil dan negatif, berlaku i - I0. Persamaan di atas adalah nonlinier, untuk sebuah v tegangan negatif yang besar, dan akan diperoleh tegangan dadal. Karakteristik I v dari diode dapat dilukiskan sebagai berikut: >>Io = 1.0 e-6; >> v = -0.05 : 0.005 : 0.5 ; >> i = Io * (exp(40*v) 1); >> figure(3), plot (v, i) >>title ( Karakteristik diode semikonduktor ) >> xlabel ( Tegangan, v ), ylabel( Arus, i ) 6. Dalam rangkaian penyearah, sumber tegangan Vs berupa sumber tegangan AC denganfrekuensi 50 Hz, tegangan di hambatan R yaitu v = 0.4 sin (2π. 50 t). Untuk membuat plot grafik hasil penyearahan dilakukan sebagai berikut: >>Io = 1.0 e-6; >> t = 0: 0.0001: 0.05 ; >> v = 0.4 * sin (2*pi*50*t); >> i = Io * (exp(40*v) 1); Disusun oleh: Alex Haryanto,M.Si dan Albert Djoko L.,M.Si 6
>> figure(4), plot (t, i), grid >>title ( Rangkaian Diode Sebagai Penyearah Setengah Gelombang ) >> xlabel ( Waktu, s ), ylabel ( Arus, ma ) 5. TUGAS DI LABORATORIUM Selesaikanlah permasalahan-permasalahan berikut menggunakan perintah-perintah MATLAB a. Sebuah rangkaian tertutup DC terdiri dari dua sumber tegangan dan tiga resistansi. Tentukan besar arus I1, I2, dan I3. 20 ohm 10 ohm i1 i 3 80 volt 10 ohm 90 volt i 2 15 ohm catatan: Buatlah terlebih dahulu persamaan arus dan tegangan sesuai hukum Khirchoff b. Dua vektor yaitu A = 4i - 2j k dan B = i + 4j 4k dengan i,j,k tegak lurus satu sama lain. Carilah besar sudut antara vector tersebut. c. Ubahlah skala temperatur dari -50, -25, 0,, 200 o C ke dalam skala derajat Fahrenheit. d. Hitunglah dan buatlah plot dari persamaan-persamaan berikut: 1. y = 1 3x + 5x 2 x 3 ; pada 5 x 5 2. y = x / (x 1) 2 ; pada 5 x 5 3. y = cos x + 2 sin 2 x ; pada π x π. e. Toko I menjual 16 barang A dan 13 barang B seharga 770 ribu rupiah, sedangkan Toko II menjual 14 barang A dan 17 barang B seharga 730 ribu rupiah dan Toko III menjual 10 barang A dan 16 barang B seharga 560 ribu rupiah. Berapakah harga jual masing-masing barang A dan barang B? Setelah melakukan seluruh kegiatan, dan sebelum mengakhiri praktikum ini tutuplah lembar diary anda dengan mengetikkan >> diary off. Kirim file diary anda ke fisikomp@gmail.com berakhir sesuai jam kuliah anda Disusun oleh: Alex Haryanto,M.Si dan Albert Djoko L.,M.Si 7