115

[LOGIKA DAN PEMROGRAMAN KOMPUTER]...[LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA 2.1 Konsep Algoritma Algoritma merupakan pondasi yang harus dikuasai oleh setiap mahasiswa

  • Upload
    others

  • View
    38

  • Download
    2

Embed Size (px)

Citation preview

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    KATA PENGANTAR

    Dengan segala kerendahan hati, Puja dan Puji syukur kami panjatkan kehadapan Tuhan

    Yang Maha Esa karena atas berkat dan rahmat-Nya, DIKTAT Mata Ajar Pemrograman

    Komputer [MKK 236] ini dapat terwujud walaupun masih belum sempurna dan masih

    banyak kekurangan. Dengan segala kekurangan tersebut maka sangat diharapkan

    masukan dari berbagai pihak baik untuk perbaikan DIKTAT ini selanjutnya.

    DIKTAT mata kuliah pemrograman computer disusun dengan tujuan mempermudah

    mahasiswa dalam memahami mata kuliah bersangkutan khususnya di Teknik Mesin

    Universitas Udayana. DIKTAT mata kuliah ini didasarkan pada konsep Matlab dimana

    bahasa pemrograman yang digunakan adalah bahasa pemrograman Matlab. Diktat mata

    ajar ini dapat tersusun atas dukungan Jurusan Teknik Mesin Universitas Udayana,

    sehingga pada kesempatan ini penulis juga menyampaikan terima kasih yang sebesar

    besarnya kepada pihak Jurusan. Kedepan Diktat ini akan terus disempurnakan sehingga

    bisa mendukung proses pembelajaran khususnya pada mata kuliah terkait.

    Bukit Jimbaran, 2016

    Dr. Wayan Nata Septiadi, ST, MT

    Dr. Wayan Nata Septiadi, ST,MT Page i

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    DAFTAR ISI KATA PENGANTAR .......................................................................................................... i

    DAFTAR ISI ........................................................................................................................ ii

    2.1 Konsep Algoritma ..................................................................................................... 3

    2.2 Flowcharting.............................................................................................................. 8

    2.3 Analisa Algoritma ................................................................................................... 11

    2.4 Himpunan ................................................................................................................. 11

    3.1 Tipe Data ................................................................................................................. 13

    3.2 Variabel .................................................................................................................... 16

    3.3 Pemberian Nilai ........................................................................................................ 16

    3.4 Menampilkan Nilai ................................................................................................... 17

    4.1 Form/Window Matlab .............................................................................................. 21

    4.1.1. Windows Utama Matlab ................................................................................... 22

    4.1.2. Workspace Windows ........................................................................................ 22

    4.1.3. Current Directory Window ............................................................................... 23

    4.1.4. Comand History Window ................................................................................. 23

    4.1.5. Comand Window ............................................................................................. 23

    4.2. Cara Bekerja Dengan MATLAB............................................................................. 24

    BAB V KONSEP DASAR MATLAB .............................. Error! Bookmark not defined.

    5.1 Fungsi Matematika Umum ....................................................................................... 29

    5.1.1 Fungsi trigonometri ............................................................................................... 29

    5.1.2 Fungsi eksponensial ........................................................................................... 30

    5.1.3 Fungsi yang berkait bilangan kompleks ............................................................ 30

    5.1.4 Fungsi pembulatan dan sisa ............................................................................... 31

    5.2 Format Penampilan Angka ...................................................................................... 32

    Dr. Wayan Nata Septiadi, ST,MT Page ii

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    5.3 Array dan Matriks .................................................................................................... 32

    5.3.1 Pembentukan array dan matriks ........................................................................ 33

    5.3.2. Operasi array..................................................................................................... 35

    5.3.3 Operasi matriks .................................................................................................. 35

    5.3.4 Manipulasi array dan matriks ................................................................................ 35

    5.4 Konsep Dasar Kontrol Program ............................................................................... 36

    5.4.1 Statement if ........................................................................................................ 36

    5.4.2 Statement switch ................................................................................................ 37

    5.4.3 Statement for...................................................................................................... 38

    5.4.4 Statement while ................................................................................................. 38

    5.4.5 Statement break ..................................................................................................... 39

    BAB VI TEKNIK DASAR MANIPULASI DATA .......... Error! Bookmark not defined.

    6.1 Membangun Data .................................................................................................... 40

    6.2 Orientasi dan Augmentasi data ............................................................................... 43

    6.3 Pengurutan Data ...................................................................................................... 44

    6.4 Menyeleksi Data ...................................................................................................... 45

    BAB VII MENGGAMBAR GRAFIK DALAM MATLAB ............ Error! Bookmark not defined.

    7.1 Perintah Dasar menggambar Grafik ......................................................................... 47

    7.2 Memberi Judul dan Label Pada Grafik .................................................................... 49

    7.3 Memberi Grid dan Legend ....................................................................................... 50

    7.4 Membentuk Subplot ................................................................................................. 51

    7.5 Menggambar Grafik Tiga Dimensi .......................................................................... 52

    BAB VIII AKAR AKAR PERSAMAAN ......................... Error! Bookmark not defined.

    8.1 Akar persamaan ........................................................................................................ 57

    8.2 Metode Setengah Interval......................................................................................... 58

    Dr. Wayan Nata Septiadi, ST,MT Page iii

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    8.3 Metode Regulasi Falsi .............................................................................................. 62

    8.4 Metode Iterasi ........................................................................................................... 66

    BAB IX MEMBUAT FUNGSI DENGAN MATLAB ..... Error! Bookmark not defined.

    9.1 Fungsi Dalam M-File ............................................................................................... 70

    BAB X PEMROGRAMAN WINDOW ............................ Error! Bookmark not defined.

    10.1 Graphic User Interface (GUI) ................................................................................ 75

    BAB XI SIMULINK.......................................................... Error! Bookmark not defined.

    11.1 Pengertian Simulink ............................................................................................... 95

    11.2 Ruang kerja simulik ............................................................................................... 95

    11.3 Simulink Library Browsser .................................................................................... 96

    11.4 Tool Simulink Library Browser ............................................................................. 97

    DAFTAR PUSTAKA ...................................................................................................... 104

    SILABUS ......................................................................................................................... 105

    Dr. Wayan Nata Septiadi, ST,MT Page iv

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    Logika dan pemrograman computer merupakan salah satu mata kuliah dasar di

    Program Studi Teknik Mesin dengan bahasa pemrograman Matlab. Mata kuliah ini

    disajikan pada semester III yang meliputi pembahasan mengenai algoritma, logika dan

    bahasa pemrograman, matematika sederhana, operasi array, fungsi M-file, system GUI,

    Graphic, Simulink dan control sistem. Logika dan pemrograman komputer sangat

    ditunjang oleh mata kuliah tertentu khususnya kalkulus karena dalam pemrograman

    komputer sangat diperlukan pemahaman di bidang matematika sederhana dan matematika

    model. Logika dan pemrograman komputer merupakan penunjang yang sangat mendasar

    bagi mata kuliah teknik control.

    Bahasa pemrograman sebagai media untuk berinteraksi antara manusia dengan

    computer dewasa ini dibuat agar semakin mudah dan cepat. Banyak bahasa pemrograman

    yang bisa digunakan dalam pemecahan masalah keteknikan, seperti C++, Pascal, Delphi,

    Visual basic, Java dan yang lainnya. Semua itu mampu membantu kita dalam

    berinteraksi dengan computer dan masalah keteknikan. Dalam perkuliahan Logika dan

    Pemrograman Komputer khususnya di Teknik Mesin Universitas Udayana bahasa

    pemrograman yang dipakai adalah bahasa Matlab.

    Matlab dikembangkan sebagai bahasa pemrogrman sekaligus alat visualisasi yang

    menawarkan banyak kemampuan untuk menyelesaikan berbagai kasus yang berhubungan

    langsung dengan matematika, rekayasa teknik, fisika, statistika, komputasi dan modeling.

    Matlab dibangun dari bahasa induknya yaitu bahasa C, namun tidak dapat dikatakan

    sebagai varian dari C, karena dalam sintak maupun cara kerjanya sama sekali berbeda

    dengan C. Namun dengan hubungan langsungnya terhadap C, Matlab memiliki

    kelebihan-kelebihan bahasa C bahkan mampu berjalan pada semua platform Sistem

    Operasi tanpa mengalami perubahan sintak sama sekali.

    Dr. Wayan Nata Septiadi, ST,MT Page 1

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    Matlab merupakan singkatan dari Matric Laboratory, yakni merupakan bahasa

    pemrograman haig perpomace, bahasa pemrograman level tinggi yang khususnya untuk

    komputasi teknis. Bahasa ini mengintegrasikan kemampuan komputasi, visualisasi dan

    pemrograman dalam sebuah lingkungan yang tunggal dan mudah digunakan.

    Dr. Wayan Nata Septiadi, ST,MT Page 2

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    2.1 Konsep Algoritma Algoritma merupakan pondasi yang harus dikuasai oleh setiap mahasiswa yang ingin

    menyelesaikan suatu masalah secara berstruktur, efektif, dan efisien, teristimewa lagi

    bagi mahasiswa yang ingin menyusun program komputer untuk menyelesaikan suatu

    persoalan. Konsep dan dasar-dasar penyusunan algoritma akan dibahas dalam bab ini.

    Definisi

    Algoritma:

    1. Teknik penyusunan langkah-langkah penyelesaian masalah dalam bentuk kalimat

    dengan jumlah kata terbatas, tetapi tersusun secara logis dan sistematis.

    2. Suatu prosedur yang jelas untuk menyelesaikan suatu persoalan dengan

    menggunakan langkah-langkah tertentu dan terbatas jumlahnya.

    3. Algoritma adalah sekelompok aturan untuk menyelesaikan perhitungan yang

    dilakukan oleh tangan atau mesin.

    4. Algoritma adalah langkah demi langkah sebuh prosedur berhingga yang

    dibutuhkan untuk menghasilkan sebuh penyelesaian

    5. Algoritma adalah langkah –langkah perhitungan yang mentransformasikan dari

    nilai masukan menjadi keluaran

    6. Algoritma adalah urutan operasi yang dilakukan terhadap data yang terorganisir

    dalam struktur data

    7. Algoritma adalah sebuah program abstrak yang dapat dieksekusi secara fisik oleh

    mesin

    8. Algoritma adalah sebuah model perhitungan yang dilakukan oleh computer

    Catatan Sejarah

    Abu Ja'far Muhammad Ibnu Musa Al-Kwarizmi, penulis buku "Aljabar wal muclabala"

    beberapa abad yang lalu (pada abad IX), dianggap sebagai pencetus pertama

    Algoritma karena di dalam buku tersebut Abu Ja'far menjelaskan langkah-langkah

    Dr. Wayan Nata Septiadi, ST,MT Page 3

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA dalam menyelesaikan berbagai persoalan aritmetika (aljabar), Kemungkinan besar

    kata "Algoritma" diambil dari kata "Al-Kwarizmi" yang kemudian berubah menjadi

    "Algorism", selanjutnya menjadi "Algorithm".

    Ciri Algoritma

    Donald E. Knuth, seorang penulis beberapa buku algoritma abad XX, menyatakan bahwa

    ada beberapa ciri algoritma, yaitu:

    • Algoritma mempunyai awal dan akhir. Suatu algoritma harus berhenti

    setelah mengerjakan serangkaian tugas atau dengan kata lain suatu algoritma

    memiliki langkah yang terbatas.

    • Setiap langkah harus didefinisikan dengan tepat sehingga tidak memiliki arti

    ganda (not ambiguous).

    • Memiliki masukan (input) atau kondisi awal.

    • Memiliki keluaran (output) atau kondisi akhir.

    • Algoritma harus efektif; bila diikuti benar-benar akan menyelesaikan persoalan.

    Algoritma bisa ditemukan dalam kehidupan sehari-hari, misalnya sebagai berikut:

    Tabel 2.1 Contoh Algoritma dalam kehidupan sehari-hari Proses

    Algoritma Contoh langkah

    1. Membuat Kue Resep Kue Campurkan 2 butir telur ke dalam adonan,

    kemudian kocok hingga mengembung.

    2. Membuat Pakaian Pola pakaian Gunting kain dad pinggir kid bawah ke arah

    kanan atas sepanjang 15 cm.

    3. Praktikum Kimia Petunjuk Praktikum Campurkan 10 ml Asam Sulfat ke dalam 15 ml

    Natrium hidroksida.

    Sifat Algoritma

    Berdasarkan ciri algoritma yang dipaparkan oleh Donald Knuth dan definisi Algoritma

    maka dapat disimpulkan sifat utama suatu algoritma, yaitu sebagai berikut:

    • input: Suatu algoritma memiliki input atau kondisi awal sebelum algoritma

    dilaksanakan dan bisa berupa nilai-nilai pengubah yang diambil dari himpunan

    khusus.

    • output: Suatu algoritma akan menghasilkan output setelah dilaksanakan, atau

    algoritma akan mengubah kondisi awal menjadi kondisi akhir, di mana nilai output

    diperoleh dari nilai input yang telah diproses melalui algoritma.

    Dr. Wayan Nata Septiadi, ST,MT Page 4

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    • definiteness: Langkah-langkah yang dituliskan dalam algoritma terdefinisi

    dengan jelas sehingga mudah dilaksanakan oleh pengguna algoritma.

    • finiteness: Suatu algoritma harus memberi kondisi akhir atau output setelah

    melakukan sejumlah langkah yang terbatas jumlahnya untuk setiap kondisi awal

    atau input yang diberikan.

    • effectiveness: Setiap langkah dalam algoritma bisa dilaksanakan dalam suatu

    selang waktu tertentu sehingga pada akhimya memberi solusi sesuai yang

    diharapkan.

    • generality: Langkah-langkah algoritma berlaku untuk setiap himpunan

    input yang sesuai dengan persoalan yang akan diberikan, tidak hanya untuk

    himpunan tertentu.

    Agar bentuk algoritma dan proses penyusunannya dapat mulai dipahami maka

    berikut ini akan diuraikan proses pembuatan algoritma mulai bentuk yang menggunakan

    bahasa sehari-hari, disusul penjelasan format algoritma yang dapat dijadikan acuan, dan

    beberapa contoh pembuatan algoritma yang mengikuti format tersebut.

    Contoh: Susun algoritma untuk mencari angka terbesar (maksimum) dari suatu

    kumpulan

    bilangan bulat yang terbatas jumlahnya.

    Solusi:

    1. Anggaplah angka pertama dalam kumpulan tersebut adalah yang terbesar

    (maksimum).

    2. Bandingkan angka maksimum ini dengan angka berikutnya dalam kumpulan. Bila

    angka berikut tersebut lebih besar maka jadikanlah maksimum.

    3. Ulangi langkah 2 ini sehingga tidak ada lagi angka yang tersisa dalam himpunan.

    4. Hentikan pembandingan setelah semua angka selesai dibandingkan sehingga angka

    terbesar dalam himpunan tersebut adalah angka maksimum terakhir.

    Solusi tersebut dalam bentuk simbol instruksi adalah sebagai berikut:

    • andaikan N = banyaknya angka dalam himpunan

    • index = 1

    • maksimum = angka(index)

    • selama index < N , lakukan:

    o index = index + 1

    Dr. Wayan Nata Septiadi, ST,MT Page 5

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    o bila angka(index) > maksimum maka maksimum = angka (index)

    o ulangi lagi untuk index berikutnya

    • angka terbesar dalam himpunan adalah maksimum terakhir.

    Suatu algoritma tentu dapat ditulis dengan menggunakan bahasa sehari-hari seperti

    contoh di atas. Namun, algoritma seperti ini masih sulit untuk langsung

    diterjemahkan apabila akan diimplementasi ke dalam suatu bahasa pemrograman

    komputer. Setiap algoritma tentu saja memerlukan suatu langkah "peralihan" ke

    suatu bahasa program ketika akan dilaksanakan dengan menggunakan komputer

    sehingga semakin dekat bentuk algoritma ini ke bentuk program komputer maka

    semakin mudah diterjemahkan. Suatu algoritma juga dapat ditulis langsung dalam bentuk

    "bahasa program", tetapi algoritma seperti ini hanya bisa digunakan untuk bahasa

    program tertentu dan terpaksa diubah kembali untuk disesuaikan apabila akan

    diimplementasi dengan bahasa program yang lain. Suatu struktur tertentu akan

    diperkenalkan dalam buku ini agar algoritma dapat diterima secara umum dan cukup

    efisien apabila akan diterjemahkan ke dalam bahasa program.

    Struktur Algoritma

    Agar algoritma dapat ditulis lebih teratur maka sebaiknya dibagi ke dalam beberapa

    bagian. Salah satu struktur yang sering dijadikan patokan adalah berikut:

    • Bagian Kepala (Header): memuat nama algoritma serta informasi atau

    keterangan tentang algoritma yang ditulis.

    • Bagian Deklarasi/Definisi Variabel: memuat definisi tentang nama

    variabel, nama tetapan, nama prosedur, nama fungsi, tipe data yang akan

    digunakan dalam algoritma.

    o Bagian Deskripsi/Rincian Langkah: memuat langkah-langkah

    penyelesaian masalah, termasuk beberapa perintah seperti baca data,

    tampilkan, ulangi, yang mengubah data input menjadi output, dan

    sebagainya.

    Contoh 1: Berikut ini adalah contoh struktur sebuah algoritma: Algoritma Luas - lingkaran { menghitung luas sebuah lingkaran apabila jari-jari lingkaran tersebut diberikan } Deklarasi I Definisi nama tetapan }

    Dr. Wayan Nata Septiadi, ST,MT Page 6

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    const N = 10; const phi = 3.14;

    definisi nama peubah/variabel } real jari_jari, luas;

    Deskripsi read(jari-jari); luas =phi* jari_jari* jari_jari; write(luas);

    Contoh 2: Contoh berikut ini adalah algoritma untuk menghitung nilai rata sejumlah

    angka yang dimasukkan lewat keyboard. Algoritma Nilai_Rata ( menghitung nilai rata sejumlah bilangan yang dimasukkan lewat keyboard } Definisi Variabel

    integer x, N, k, jumlah; real nilai_rata;

    Rincian Langkah { masukkan jumlah data } read(N); k ←1; jumlah ← 0;

    while (k

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA Rincian Langkah

    ( memasukkan angka } write ("Masukkan angka 1:”); read (angka1); write ("Masukkan angka 2:”); read (angka2); ( periksa yang lebih besar } if (angka1 > angka2)

    then write("yang lebih besar=”,angka1); else write("yang lebih besar=”, angka2);

    endif.

    Contoh 4: Algoritma berikut ini mencari angka terbesar dari suatu himpunan

    angka. Algoritma Terbesar ( membentuk himpunan angka, kemudian mencari angka terbesar } Definisi Variabel

    integer N=25, max, indeks; integer Angka[N];

    Rincian Langkah ( memasukkan anggota himpunan angka } for( i = 1 to N step 1)

    write("Masukkan angka ke:",i); read( Angka[ i ] );

    endfor. {max adalah angka pertama} max ← Angka[ 1 ]; indeks ←1; ( bandingkan max dengan setiap angka dalam himpunan } while ( indeks < N) do

    indeks ← indeks + 1; if ( Angka[indeks] > max ) then max ← Angka[indeks];

    enddo. write ( "Angka terbesar=”,max );

    2.2 Flowcharting Flowchart adalah suatu teknik untuk menyusun rencana program telah diperkenalkan dan

    telah dipergunakan oleh kalangan programer komputer sebelum algoritma menjadi

    populer, yaitu flowcharting. Flowchart adalah untaian simbol gambar (chart) yang

    Dr. Wayan Nata Septiadi, ST,MT Page 8

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA menunjukkan aliran (flow) dari proses terhadap data. Simbol-simbol flowchart dapat

    diklasifikasikan menjadi simbol untuk program dan simbol untuk sistem (peralatan

    hardware).

    Gambar 2.1 Simbul program flowchart dan system flowchart

    Contoh : Gambarkan Flowchart dari proses pemilihan satu bilangan yang lebih besar di

    antara dua buah bilangan.

    Dr. Wayan Nata Septiadi, ST,MT Page 9

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA Contoh : Proses memilih satu bilangan terbesar dari tiga bilangan.

    Contoh : Jalan raga trans Sulawesi sepanjang 2000 Km akan segera ditingkatkan.

    Pada setiap jarak 65 Km akan dibangun fasilitas berupa pompa bensin, kafe, tempat

    istirahat, dan tempat ibadah. Tampilkan lokasi pada jarak kilometer berapa fasilitas

    tersebut akan dibangun.

    Dr. Wayan Nata Septiadi, ST,MT Page 10

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA 2.3 Analisa Algoritma Untuk suatu fungsi polynomial f(n) dengan n data masukan, terdapat tiga keadaan yang

    bisa muncul selama waktu tenpuh algoritma dan disebut kompleksitas waktu yaitu Worst

    Case, Average Case dan Best Case. Penjelasan masing-masing kompleksitas sebagai

    berikut:

    1. Worst Case merupakan waktu tempuh yang bernilai maksimum dari suatu fungsi f(n)

    untuk setiap input yang mungkin. Keadaan ini disebut sebagai keadaan terburuk

    (keadaan terjelek) dari sebuah algoritma.

    2. Average Case merupakan suatu keadaan dari waktu tempuh yang ekivalen dengan

    nilai ekspetasi dari fungsi f(n) untuk setiap input data yang mungkin. Fungsi f(n)=e

    dan didefenisikan e = n1p1 + n2p2 + … + nkpk dengan n1,n2 . . . nk merupakan nilai-

    nilai yang muncul, sedangkan p1,p2,…,pk merupakan probabilitas dari setiap nilai (n1)

    yang muncul.

    3. Best Case merupakan waktu tempuh yang bernilai minimum dari suatu fungsi f(n)

    untuk setiap input yang mungkin. Keadaan ini disebut sebagai keadaan terbaik dari

    suatu proses sebuah algoritma menyelesaikan permasalahan.

    Kompleksitas sebuah algoritma adalah fungsi g(n) yang berada diatas batas bilangan

    operasi (running time) yang dibentuk oleh algoritma ketika diberikan input berukuran n.

    Relatif sulit membuat statistic perilaku masukan, sehingga paling sering diberikan

    perilaku keadaan jelek (worst case). Waktu maksimum dari kompleksitas g(n) didekati

    dengan O(f(n)) dimana f(n) adalah salah satu dari fungsi berikut ini:

    f(n)=n (kompleksitas linier), f(n)=log n (kompleksitas logaritmatik), f(n)=na dimana a ≥ 2

    (kompleksitas polynomial), f(n)=an (kompleksitas eksponensial).

    2.4 Himpunan Dalam matematika himpunan adalah segala koleksi benda-benda tertentu yang

    dianggap sebagai satu kesatuan. Walaupun ini merupakan ide sederhana, himpunan

    merupakan salah satu konsep penting dan mendasar dalam matematika modern. Definisi

    lain dari himpunan adalah sekelompok obyek yang direpresentasikan dalam satu satuan

    (unit). Setiap objek dari himpunan disebut elemen atau anggota dan umumnya setiap

    elemen dalam himpunan mempunyai beberapa kesamaan sifat atau karakteristik. Unit

    Dr. Wayan Nata Septiadi, ST,MT Page 11

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA yang melingkupi beberapa anggota disebut semesta pembicaraan dan mempunyai paling

    sedikit satu elemen.

    SOAL

    1. Gambar flowchart untuk mengganti ban kempes sebuah mobil dengan ban reserve yang tersedia.

    2. Gambar flowchart untuk menyiapkan secangkir kopi manis di pagi hari (dimulai dari memasak air hingga menghidangkan kopi).

    3. Gambar flowchart untuk memilih satu bilangan terbesar dari empat bilangan.

    4. Gambar flowchart untuk memilih satu bilangan terbesar dari N buah bilangan.

    Dr. Wayan Nata Septiadi, ST,MT Page 12

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    Pada prinsipnya, suatu program komputer memanipulasi data untuk menjadi informasi

    yang berguna. Dengan demikian, perlu dipahami beberapa hal yang berkaitan dengan

    data, yaitu tipe data, variabel,dan nilai data sebagai berikut:

    • Tipe data: setiap data memiliki tipe data, apakah merupakan angka bulat

    (integer), angka biasa (real), atau berupa karakter (char), dan sebagainya.

    • Variabel: setiap data diwakili oleh suatu variabel, dan variabel ini diberi nama

    agar bisa dibedakan terhadap variabel lainnya.

    • Mai: setiap data memiliki harga atau nilai, misalnya umur seseorang

    diwakili oleh variabel UMUR yang bertipe bilangan, dan memiliki nilai 20 tahun.

    Perlu diketahui bahwa dalam representasi nilai data dada komputer, setiap tipe

    data memiliki batasan nilai masing-masing.

    3.1 Tipe Data Ada dua kategori dari tipe data, yaitu tipe dasar dan tipe bentukan.Tipe dasar adalah

    tipe data yang selalu tersedia data setiap bahasa pemrograman, antara lain bilangan

    bulat (integer), bilangan biasa (real), bilangan tetap (const), karakter (character

    atau char), logik (logic atau boolean). Tipe bentukan adalah tipe data yang dibentuk

    dari kombinasi tipe dasar, antara lain larik (array), rekaman (record), string (string).

    Tipe Dasar

    1. Bilangan bulat (integer)

    • Bilangan atau angka yang tidak memiliki titik desimal atau pecahan, seperti 10,

    Dr. Wayan Nata Septiadi, ST,MT Page 13

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    +255, -1024, +32767.

    • Tipe dituliskan sebagai integer atau int

    • Jangkauan nilai bergantung pada implementasi perangkat keras komputer,

    misalnya dari -32768 s/d +32767; untuk algoritma tidak kita batasi.

    • Operasi aritmetik: tambah + , kurang - , kali * , bagi /, sisa basil bagi

    • Operasi pembandingan : lebih kecil < , lebih kecil atau sama < = lebih besar > ,

    lebih besar atau sama > = sama=, tidak sama ><

    2. Bilangan biasa (real)

    • Bilangan atau angka yang bisa memiliki titik desimal atau pecahan, dan ditulis

    sebagai: 235.45, +1023.55, -987.3456 atau dalam notasi ilmiah seperti:

    1.245E+03, 7.45E-02, +2.34E-04, -5.43E+04, dsb.

    • Tipe dituliskan sebagai : real

    • Jangkauan nilai: bergantung pada implementasi perangkat keras komputer,

    misalnya dari -2.9E-39 s/d +1.7E+38, untuk algoritma tidak kita batasi.

    • Operasi aritmatik dan pembandingan juga berlaku bagi bilangan biasa.

    3. Bilangan tetap (const)

    • Bilangan tetap (const) adalah tipe bilangan, baik bernilai bulat maupun tidak,

    yang nilainya tidak berubah selama algoritma dilaksanakan.

    • Tipe dituliskan sebagai const.

    • Jangkauan nilai meliputi semua bilangan yang mungkin.

    4. Karakter (character)

    • Karakter adalah data tunggal yang mewakili semua huruf, simbol baca, dan juga

    simbol angka yang tidak dapat dioperasikan secara matematis, misalnya: 'A',

    ' B ' , . . , ' Z ' , 'a', ' b ' , . . , ' z ' , ' ? ' , ' ! ' , ' : ' , ' ; ' d s t .

    • Tipe dituliskan sebagai char.

    • Jangkauan nilai meliputi semua karakter dalam kode ASCII, atau yang tertera

    pada setiap tombol keyboard.

    • Operasi pembandingan dapat dilakukan dan dievaluasi menurut urutan kode

    ASCII, sehingga huruf 'A' (Hex 41) sebenarnya lebih kecil dari huruf 'a' (Hex 61).

    5. Logik (logical)

    • Tipe data logik adalah tipe data yang digunakan untuk memberi nilai pada

    hasil pembandingan, atau kombinasi pembandingan.

    Dr. Wayan Nata Septiadi, ST,MT Page 14

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    • Tipe dituliskan sebagai boolean

    • Jangkauan nilai ada dua: true dan false

    • Contoh: 45 > 56 hasilnya false, Amir < Husni hasilnya true

    • Ada beberapa operasi untuk data jenis logik, antara lain and, or, dan not

    Tabel 3.1 Operasi untuk data logik

    A B A and B A or B Not A

    False False False False True

    False True False True True

    True False False True False

    True True True True False

    Tipe Bentukan

    1. Array (larik)

    • Array adalah tipe data bentukan, yang merupakan wadah untuk menampung

    beberapa nilai data yang sejenis. Kumpulan bilangan bulat adalah array integer,

    kumpulan bilangan tidak bulat adalah array real.

    • Cara mendefinisikan ada dua macam, yaitu:

    • Nilai ujian : array [1 .. 10] of integer; atau

    • int nilai_ujian [0];

    • Kedua definisi di atas menunjukkan bahwa nilai_ujian adalah kumpulan

    dari 10 nilai bertipe bilangan bulat.

    2. String

    • String adalah tipe data bentukan yang merupakan deretan karakter yang

    membentuk satu kata atau satu kalimat, yang biasanya diapit oleh dua tanda

    kutip.

    • Sebagai contoh: nama, alamat, dan judul adalah tipe string.

    • Cara mendefinisikannya adalah:

    • String Nama, Alamat; atau

    • Nama, Alamat : String;

    3. Record (rekaman)

    • Record adalah tipe data bentukan yang merupakan wadah untuk menampung

    elemen data yang tipenya tidak perlu sama dengan tujuan mewakili satu jenis

    objek.

    Dr. Wayan Nata Septiadi, ST,MT Page 15

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    • Sebagai contoh, mahasiswa sebagai satu jenis objek memiliki beberapa

    elemen data seperti: nomer_stb, nama, umur, t4lahir, jenkel.

    • Cara mendefinisikan record mahasiswa tersebut adalah sebagai berikut:

    Type DataMhs : record

    < nomer — stb : integer,

    Nama_mhs : string,

    umur : integer,

    t4lahir : string,

    jenkel : char;

    3.2 Variabel Variabel adalah nama yang mewakili suatu elemen data seperti: jenkel untuk jenis enis

    kelamin, t4lahir untuk tempat lahir, alamat untuk alamat, dan sebagainya. Ada aturan

    tertentu yang wajib diikuti dalam pemberian nama variabel, antara lain:

    • Harus dimulai dengan abjad, tidak boleh dengan angka atau simbol.

    • Tidak boleh ada spasi di antaranya

    • Jangan menggunakan simbol-simbol yang bisa membingungkan seperti

    titik dua, titik koma, koma, dan sebagainya.

    • Sebaiknya memiliki arti yang sesuai dengan elemen data.

    • Sebaiknya tidak terlalu panjang.

    Contoh variabel yang benar: Nama, Alamat, Nilai_Ujian

    Contoh variabel yang salah: 4XYZ, IP rata, Var:+xy,458;

    3.3 Pemberian Nilai Ada dua cara yang dapat digunakan untuk memberi nilai pada suatu variabel, yaitu melalui

    proses assignment dan pembacaan.

    Pemberian nilai dengan cara assignment mempunyai bentuk umum sebagai berikut:

    • Variabel ← nilai;

    • Variabell ← variabel2;

    • Variabel ← ekspresi;

    Contoh assignment:

    • Nama ←"Ali bin AbuThalib";

    Dr. Wayan Nata Septiadi, ST,MT Page 16

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    • Jarak ←100.56;

    • X ← Jarak;

    • Rentang ←X+50-3*Y;

    Pemberian nilai dengan cara pembacaan dapat dilakukan melalui instruksi pembacaan

    dengan bentuk umum sebagai berikut:

    • read(variabel); atau

    • read( variabel1, variabel2,…);

    Contoh pembacaan data:

    • read(Nama);

    • read(Jarak, Rentang, X);

    3.4 Menampilkan Nilai Agar hasil pelaksanaan algoritma dapat dikomunikasikan atau ditayangkan maka nilai

    variabel yang telah diproses dalam algoritma dapat ditampilkan. Instruksi untuk

    menampilkan nilai variabel adalah: write(variabel,…);

    Contoh penampilan nilai adalah sebagai berikut:

    • write("nama anda :",Nama);

    • write("nilai ujian = ", nilai);

    • write("Jumlah variabel = ", X + Y + Z);

    3.5 Ekspresi (Expression)

    Ekspresi adalah transformasi data dan peubah dalam bentuk persamaan yang direlasikan

    oleh operator dan operand. Operand adalah data, tetapan, peubah, atau hasil dan suatu

    fungsi, sedangkan operator adalah simbol - simbol yang memiliki fungsi untuk

    menghubungkan operand sehingga terjadi transformasi. Jenis-jenis operator adalah

    sebagai berikut:

    • Operator aritmetika: operator untuk melakukan fungsi aritmetika seperti: +

    (menjumlah), - (mengurangkan), * (mengalikan), / (membagi).

    • Operator relational: operator untuk menyatakan relasi atau perbandingan

    antara dua operand, seperti: > (lebih besar), < (lebih kecil), >= (lebih besar

    atau sama), .

    Dr. Wayan Nata Septiadi, ST,MT Page 17

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    • Operator logik: operator untuk merelasikan operand secara logis, seperti &&

    (and), ║(or), dan ! (not).

    • Operator string: operator untuk memanipulasi string, seperti +

    (concatenation), len (panjang string), dan substr (substring, mencuplik).

    Berdasarkan jenis operator yang digunakan maka ada empat macam ekspresi, yaitu

    ekspresi aritmetika, ekspresi relational, ekspresi logik, dan ekspresi string.

    • Ekspresi Aritmetika: ekspresi yang memuat operator aritmetika, contoh:

    • T ←5 * (C + 32) / 9;

    • Y ← 5 * ( ( a + b ) / ( c + d ) + m / ( e * f ) ) ;

    • Gaji ←GaPok * ( I + JumNak * 0.05 + Lembur * 1.25);

    • Ekspresi Relational: ekspresi yang memuat operator relational, contoh:

    • Nilai_A > Nilai_B

    • (A+B)y)&&(5+z)

    o n ← ( !A ║ !(B&&C))

    • Ekspresi String: eskpresi dengan operator string, contoh:

    • Alamat ←"Jl. P. Kemerdekaan " + "Km 9 Tamalanrea"

    • Hasil←"Saudara:"+Nama+ "adalah mahasiswa"

    • Tengah ←Substr(Kalimat, 5, 10); Contoh Algoritma:

    1. Susun algoritma yang menghitung pajak pertambahan nilai (ppn) 12.50%

    dengan meminta harga barang yang dibeli dari pengguna program. Algoritma PPN { menghitung pajak pertambahan nilai 12.50% dari harga barang } Definisi Variabel real harga, pajak, total; Rincian Langkah

    write ("Masukkan harga barang : "); read(harga); pajak (-- 0.125 * harga;

    Dr. Wayan Nata Septiadi, ST,MT Page 18

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    total = harga + pajak; write("Harga ", harga, " pajaknya=”,pajak); write("Total = total);

    2. Susun algoritma yang meminta data dasar mahasiswa (mis: Nama, Alamat,

    e—mail, dan telepon) kemudian menampilkannya kembali secara tersusun. Algoritma Data_dasar {membaca dan menampilkan data dasar mahasiswa} Definisi Variabel:

    string nama, alamat, e–mail, telepon; Rincian Langkah: {proses input/perrnintaan data }

    write ("Masukkan nama Anda: "); read(nama); write("Di mans alamatnya: "); read(alamat); write("No telepon: “); read(telepon); write("Alamat e-mail: "); read(e_mail);

    {proses tamplian hasil input } write(nama); write(alamat, telepon); write(e_mail);

    SOAL:

    1. Definisikan sebuah record untuk data pegawai yang terdiri atas elemen

    Nomor_Pegawai (NIP), Nama, TgLahir, Tempat_Lahir, Jen_Kelamin, Agama,

    Status, Pangkat.

    2. Tulis algoritma sederhana untuk membaca dan menampilkan kembali data pegawai

    yang sesuai dengan struktur record pada Soal 1.

    3. Tulin algoritma yang meminta suhu dalam skala celcius dan menampilkan suhu

    tersebut dalam skala Fahrenheit. (F = 9/5 * C + 32).

    4. Tulis algoritma yang membaca tiga data, yaitu nilai tugas, nilai mid, dan nilai final,

    Dr. Wayan Nata Septiadi, ST,MT Page 19

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    kemudian menghitung nilai akhir = 20% nilai tugas + 30% nilai mid + 50% nilai

    final. Tampilkan nilai akhir ini.

    Dr. Wayan Nata Septiadi, ST,MT Page 20

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    4.1 Form/Window Matlab S e b a g a i m a n a b a h a s a

    p e m r o g - r a m a n l a i n n ya ,

    M AT LA B j u ga m e n ye d i a k a n

    l i ngkun gan ke r j a t e r padu yan g

    san ga t mendukung dalam

    pembangunan aplikasi. Pada

    setiap versi MATLAB yang

    terbaru, l i n gku n gan

    t e rpa du n ya aka n se -mak in

    dilengkapi. Lingkungan terpadu

    ini terdiri atas beberapa

    form/window yang memiliki

    ~egunaan masing-masing. Untuk

    memulai aplikasi Matlab, anda

    hanya perlu mengklik kon Matlab

    pada Dekstop window, atau bisa

    juga dengan menu start seperti

    pada aplikasi-aplikasi lainnya.

    Setiap pertama kali mulai membuka aplikasi Matlab, anda akan memperoleh

    beberapa form/window, yang sebenarnya menurut oenu l i s hanya membuat

    dekstop anda

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA 4.1.1. Windows Utama Matlab

    Window ini adalah window induk yang melingkupi seluruh lingkungan kerja

    MATLAB. Pada versi-versi pendahulu, window ini secara khusus belum ada

    namun terintegrasi dengan Command Window. Tidak ada fungsi utama yang

    ditawarkan oleh window ini selain sebagai tempat dock-ing bagi form yang lain.

    4.1.2. Workspace Windows Window ini juga barn diperkenalkan pada versi 6, berfungsi sebagai navigator

    bagi pemakai dalam penyediaan informasi mengenai 'eariabel yang sedang

    aktif dalam workspace pada saat pemakaian. Workspace adalah suatu lingkungan

    abstrak yang menyimpan seluruh . 'ariabel dan perintah yang pernah digunakan

    selama penggunaan MATLAB berlangsung.

    Dr. Wayan Nata Septiadi, ST,MT Page 22

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    4.1.3. Current Directory Window

    Window ini juga fasilitas yang diperkenalkan pada versi 6. Berfungsi sebagai

    browser direktori aktif, yang hampir sama dengan window explorer.

    4.1.4. Comand History Window

    Window ini berfungsi sebagai penyimpan perintah-perintah yang pernah

    dikerjakan pada suatu workspace. Juga barn ada pada Matlab versi 6 keatas.

    4.1.5. Comand Window

    Dr. Wayan Nata Septiadi, ST,MT Page 23

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    >>pjg = 5;

    >>lbr = 10;

    >>luas = pjg*lbr

    >>luas = 50

    Window ini berfungsi sebagai penerima perintah dari pemakai untuk

    menjalankan seluruh fungsi-fungsi yang disediakan oleh MATLAB. Pada

    dasarnya window inilah inti dari pemrograman MATLAB yang menjadi media

    utama satu-satunya bagi kits untuk berinteraks dengan MATLAB.

    4.2. Cara Bekerja Dengan MATLAB Dalam melakukan pekerjaan pemrograman menggunakan bahasa MATLAB.

    anda dapat menggunakan salah satu cara yaitu :

    Cara #1 : LanjZsunjZ di Command Window

    Zara ini adalah yang paling sering dilakukan oleh pemula, namun mar sulit

    bagi anda untuk mengevaluasi perintah secara keseluruhan q,z-=r.a biasanya

    perintah hanya dilakukan baris perbaris.

    Untuk membuat program, anda hanya perlu mengetikkan perintah pada prompt Matlab dalam Command Window, misalnya :

    tekan tombol enter, lalu ketikkan :

    tekan tombol enter, lalu ketikkan :

    untuk skrip terakhir sengaja tidak diberikan tanda (;) titik koma, sehingga

    anda bisa langsung melihat hasil akhir dilayar Command Window.

    Hasil akhir yaitu

    Program telah selesai.

    Cara #2 : Menjzkunakan File M

    Cara ini biasanya akan dipilih untuk digunakan oleh programmer yang lebih mahir

    (jangan khawatir dalam beberapa menit kedepan, anda pun akan menjadi salah

    Dr. Wayan Nata Septiadi, ST,MT Page 24

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    >>edit

    % ------------------------------------------------------------------------- % Program latihan 1 % Matlab Programing % Oleh : Wayan Made Komang %------------------------------------------------------------------------- clear all; clc; disp (‘---------------------------------------------‘)

    disp (‘Program Latihan 1’) disp (‘---------------------------------------------‘) pjg = 5; lbr = 10 ; luas = pjg * lbr; disp ([‘luas -> ‘ num2str(luas)]);

    satu dari kelompok ini (D ). Kelebihan cara ini a d a l a h k e m u d a h a n u n t u k

    m e n g -e v a l u a s i p e r i n t a h s e c a r a keseluruhan. Terutama untuk program

    yang membutuhkan waktu pengerjaan yang cukup lama serta skrip yang cukup

    panjang.

    Untuk contoh dapat kita gunakan program yang sebelumnya anda kerjakan

    dengan cara pertama, dengan tahapan sebagai berikut :

    1. Pada Command Window, ketikkan:

    2. Tekan enter, selanjutnya muncul Matlab Editor dan anda ketiklah program

    dibawah berikut :

    Anda bingung dengan apa yang barn anda ketikkan? Tidak masalah,

    kata orang pintar "bingung pertanda mulai belajar", pada bab-bab berikutnya

    akan anda pelajari dan anda. Akan sangat mengerti dengan apa yang anda

    ketik. Untuk tahap ini anda ikuti dulu oke!

    3. Setelah selesai mengetik program diatas, anda simpan di direktori c1latilhanku,

    dengan nama latihan0l.m.

    4. Anda kembal i ke Command Window. Agar Mat lab dapat mengenali

    lokasi tempat file anda tersimpan, pada prompt Matlab ketiklah direktori

    c:/latihanku pada prompt Matlab :

    >>cd c:\latihanku

    Dr. Wayan Nata Septiadi, ST,MT Page 25

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA 5. Tekan Enter, lalu ketiklah nama file latihan 01 tanpa ekstensi:

    6. Tekan Enter, selanjutnya program akan dijalankan dan menghasikan sebagai berikut:

    Jika tahap enam telah dicapai, maka program pertama telah sukses anda kerjakan.

    Selamat datang dan bergabung sebagai programmer Matlab.

    Manajemen File dan Direktori

    Matlab menggunakan metode path searching (pencarian direktori) untuk menemukan

    file dengan ektensi M yang mengandung skrip dan fungsi. File M MATLAB

    terorganisir dengan rapi pada beberapa folder/direktori. Urutan pencarian MATLAB

    dalam menjalankan perintah pada Command Window secara bertahap adalah sebagai

    berikut, misalnya ketika diberi perintah’kubus’:

    • MATLAB mencoba untuk mengenali apakah ‘kubus’ adalah variabel,jika ya,

    selesai. Jika tidak, maka MATLAB berasumsi bahwa ‘kubus’ adalah sebuah

    nama file dengan ekstensi M, lanjut ketahap berikutnya.

    • Matlab mencoba untuk mengenali apakah’kubus’ merupakan fungsi bawaan

    standar, jika ya, eksekusi. Jika tidak, lanjut kethp berikutnya.

    • Matlab akan mencari file M yang bernama kubus.m pada direktori aktif

    (current directory), jika ditemukan, eksekusi. Jika tidak lanjut ketahp

    berikutnya.

    • Matlab akan mencari file M yang bernama kubus.m diseluruh direktori yang

    terdaftar pada daftar pencariannya, jika ditemukan, eksekusi. Jika tidak,

    Matlab akan menyampaikan pesan sebagai berikut:

    Jika pesan diatas muncul kehadapan anda, maka kesimpulannya hanya ada 2,

    >> kubus ??? Undefined function or variabel ‘kubus’

    >>latihan01

    --------------------------------------------------------------

    Program Latihan 1

    -------------------------------------------------------------

    Luas -> 100

    Dr. Wayan Nata Septiadi, ST,MT Page 26

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    yaitu:

    1. Anda salah menulis nama file, atau

    2. File anda tidak berada dalam direktori yang diketahui oleh Matlab.

    Jika anda yakin nama file yang anda ketikkan benar, maka yang harus anda lkukan

    juga ada 2 pilihan, yaitu:

    1. Memindahkan direktori aktif ke direktori tempat file anda berada.

    Misalkan direktori tempa anda menyimpan file adalah c:/latihanku. Maka

    caranya adalah dengan perintah sebagai berikut:

    Tekan enter, maka selanjutnya direktori aktif adalah c:\latihanku.

    2. Menambahkan direktori anda ke dalam daftar pencarian direktori

    Matlab.

    Untuk membuka tool yang mengatur pencarian path ini dapat dilakukan

    dengan cara meng-klik set path pada menu File sebagai berikut:

    Selanjutnya akan muncul dialog set path sebagai berikut:

    Setelah melakukan pemilihan folder yang diinginkan dengan cara meng klik

    tombol Add Folder, lalu dilanjutkan dengan meng klik tombol save dan diakhiri dengn

    tombol Close. Maka direktori anda telah tersimpan didaftar pencarian direktori Matlab.

    >>cd c:\latihanku

    Dr. Wayan Nata Septiadi, ST,MT Page 27

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    Jika anda memilih menggunakan cara pertama , maka setiap anda membuka aplikasi

    Matlab anda harus melakukannya lgi. Tetapi, jika anda memilih cara kedua, maka anda

    tidak perlu melakukannya lagi pada kesempatan lainnya, kecuali kjika nama direktori

    anda telah berubah.

    Penting

    Pemahaman yang benar tentang cara kerja Matlab katika melakukan eksekusi program ini sangat

    penting. Dari pengalaman penulis, permasalahan yang paling banyak diajukan pada saat penulis

    melayani konsultasi program adalah yang berhubungan dengan penempatan file program dan

    penamaan file yang overlap dengan fungsi standar yang dimiliki Matlab.

    SOAL:

    1. Buatlah dengan program matlab dari luas ruangan pertemuan yang memiliki

    panjang 12 meter dan lebar 8 meter. Buat dengan menggunakan command

    windows langsung dan M-file.

    2. Buat dengan model M-file ! Suatu silinder memiliki jari-jari 60 cm, dan tinggi dari

    silinder tersebut 150 cm. hitung luas selimut silinder dan volume silinder jika nilai

    pi = 3,14.

    Dr. Wayan Nata Septiadi, ST,MT Page 28

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    5.1 Fungsi Matematika Umum Fungsi matematika umum dalam MATLAB terdiri atas fungsi trigonometri, fungsi

    eksponensial, fungsi berkait bilangan kompleks serta fungsi pembulatan dan sisa. Pada sub

    bagian berikut akan diuraikan fungsi-fungsi tersebut lengkap dengan syntax-nya dalam

    MATLAB. (note: tanda “ “ menunjukkan syntaxnya dan “x” adalah bilangan

    konstan).

    5.1.1 Fungsi trigonometri Fungsi dasar trigonometri terdiri atas sinus, cosinus dan tangen. Fungsi tersebut

    dikembangkan menjadi secan, cosecan dan cotangen. Lebih lanjut fungsi-fungsi

    trigonometri dapat dikembangkan menjadi bentuk hiperbolik. Operasi yang dapat

    dilakukan pada fungsi tersebut adalah pencarian nilai dan invers (Arcus disingkatArc).

    Dalam MATLAB, setiap fungsi trigonometri mempunyai syntax tersendiri. Fungsi

    trigonometri lengkap dengan syntaxnya akan diperlihatkan pads uraian berikut:

    • Fungsi sinus

    Sinus x sin (x) : Arc sinus x asin (x)

    Sinus hiperbolik x sinh (x) : Arc sinus hiperbolik x asinh (x)

    • Fungsi cosinus

    Cosinus x cos (x): Arc cosinus x acos (x)

    Cosinus hiperbolik x cosh (x) : Arc cosinus hiperbollk x acosh (x)

    • Fungsi Tangen Tangen x tan (x): rc tangen x atan (x)

    Tangen hiperbolik x tanh (x): Arc tangen hiperbolik x atanh (x)

    • Fungsi Secan Secan x sec (x): Arc secan x asec (x)

    Dr. Wayan Nata Septiadi, ST,MT Page 29

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    Secan hiperbolik x sech (x) : Arc secan hiperbolik asech (x)

    • Fungsi Cosecan Cosecan x csc (x) : Arc cosecan x acsc (x)

    Cosecan hiperbolik x csch (x):Arc cosecan hiperbolik x acsch (x)

    • Fungsi Cotangen Cotangen x cot (x) : Arc Cotangen x acot (x)

    Cotangen hiperbolik x coth (x) : Arc cotan hiperbolik x acoth (x)

    5.1.2 Fungsi eksponensial Fungsi eksponensial secara matematis mempunyai beberapa bentuk. Pada uraian

    berikut akan diperlihatkan beberapa fungsi eksponensial lengkap dengan syntax-nya.

    • Eksponensial : exp (x) , fungsi ini digunakan untuk mencari nilai ex, dengan e

    adalah bilangan natural (e=2,718281824459... ).

    • Logaritma berbasis bilangan natural (e): elog x atau In x log (x),

    fungsi ini digunakan untuk mencari nilai logaritma berbasis ex.

    • Logaritma berbasis bilangan konstan, misal y: ylog x’ 1ogy (x) , fungsi ini

    digunakan untuk mencari nilai logaritma berbasis y. Jadi, logaritma berbasis 10 tidak

    seperti biasanya yaitu ditulis dengan log x saja, tetapi dianggap sebagai bilangan y.

    Jadi, dalam MATLAB: 101og x ditulis log10 (x).

    • Akar pangkat dua: sqrt (x), fungsi ini berguna untuk mencari akar pangkat

    dua dari x.

    5.1.3 Fungsi yang berkait bilangan kompleks Fungsi yang berkait bilangan kompleks, dalam MATLAB dituliskan dengan

    penambahan "i" atau"j" dibelakang bilangan pokok. Bilangan kompleks dapat

    dinyatakan dalam bentuk real atau sebaliknya. Pada uraian berikut diperlihatkan

    beberapa fungsi eksponensial lengkap dengan syntax-nya.

    • Nilai mutlak: , digunakan untuk mencari nilai mutlak bilangan atau

    • Nilai riff , digunakan untuk mengambil nilai real dari bilangan

    kompleks

    Dr. Wayan Nata Septiadi, ST,MT Page 30

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    • Nilai imajiner , digunakan untuk mengambil nilai imajiner dari

    bilangan kompleks

    5.1.4 Fungsi pembulatan dan sisa Fungsi pembulatan dan sisa dalam MATLAB, digunakan untuk menuliskan

    bilangan rill dalam bentuk bilangan bulat positif atau negatif.

    • Pembulatan menuju integer terdekat: round (x) , fungsi ini digunakan

    untuk membulatkan x ke nilai integer terdekat.

    Misal:

    round (3.84) menghasilkan 4 dan round (-3.84) menghasilkan -4

    round (0. 52) menghasilkan 1 dan round (-0. 52) menghasilkan -1

    • Pendekatan menuju nol: fix (x), fungsi ini digunakan untuk

    membulatkan x ke nilai yang lebih dekat 0.

    Misal:

    fix (3. 84) menghasilkan 3 dan fix (-3. 84) menghasilkan -3

    fix (5.32) menghasilkan 5 dan fix (-5.32) menghasilkan - 5

    f ix (0. 52) menghasilkan 0 dan fix (-0.52) menghasilkan 0

    • Pembulatan menuju -∞: flor (x) , fungsi ini digunakan untuk

    membulatkan x ke nilai yang lebih mendekati -∞.

    Misal:

    flor (3. 84) menghasilkan 3 dan f lor(-3.84) menghasilkan -4

    f !or (5.32) menghasilkan 5 dan flor (-5.32) menghasilkan – 5

    flor (0.52) menghasilkan 0 dan f lor (-0.52) menghasilkan -1

    • Pembulatan menuju +∞: ceil (x), fungsi ini digunakan untuk

    membulatkan x ke nilai yang lebih dekat +∞.

    Misal:

    ceil (3.84) menghasilkan 4 clan ceil (-3.84) menghasilkan -4

    ceil (5.32) menghasilkan 5 clan ceil (-5.32) menghasilkan -5

    ceil (0.52) menghasilkan 4 clan ceil (-0.52) menghasilkan 0

    • Sisa setelah pembagian: rem (x, y), fungsi ini digunakan untuk mengambil sisa

    dari x/y dengan tanda yang sama dengan x.

    Misal:

    rem (15.2) menghasilkan 1 clan rem (-15.2) menghasilkan -1 Dr. Wayan Nata Septiadi, ST,MT Page 31

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    rem (-13.5) menghasilkan - 3 dan rem (13.5) menghasilkan 3

    5.2 Format Penampilan Angka Format penampilan angka dalam MATLAB, digunakan untuk mengatur tampilan

    hasil perhitungan pada Command Window. Jika hasil perhitungan berupa bilangan bulat,

    MATLAB akan menampilkan sebagai bilangan bulat, sedangkan bilangan rill,

    ditampilkan dengan empat bilangan desimal. Tampilan ini dapat diatur dengan format

    penampilan angka dalam MATLAB. Misal: y = 100/3, dalam kedaan biasa (tanpa

    pengaturan format) y akan ditampilkan dengan format 33.3333. Berikut ini diuraikan

    beberapa perintah untuk mengatur penampilan angka pada Command Window

    lengkap dengan syntax-nya.

    • format short: menghasilkan 33.3333

    • format long: menghasilkan 33 .333333333334

    • format short e: menghasilkan 3.3333e+001

    • format long e: menghasilkan 3.333333333334e+001

    • format short g: menghasilkan 33.333

    • format long g: menghasilkan 33. 333333333333

    • format hex: menghasilkan 4040aaaaaaaaaaab

    • format bank: menghasilkan 33.33

    • format +: menghasilkan +

    • format rat: menghasilkan 100/3

    Penting untuk diketahui bahwa format penampilan angka dalam MATLAB tidak

    mengubah representasi internal dari suatu bilangan.

    5.3 Array dan Matriks Array adalah kumpulan data-data scalar yang dinyatakan dalam bentuk baris, kolom

    dan gabungan antar keduanya. Kumpulan data dengan deret yang tidak teratur

    mengharuskan pemakai untuk menuliskan data satu per satu. Kumpulan data dengan

    deret yang teratur dapat diekspresikan dalam bentuk array, sehingga memungkinkan

    pemakai untuk tidak menuliskannya satu per satu.

    Matriks adalah array yang dibangun dari kumpulan persamaan linear. Operasi

    Dr. Wayan Nata Septiadi, ST,MT Page 32

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    matriks tidak seperti pada array biasa, melainkan sistem operasi aljabar matriks. Pada

    pembahasan selanjutnya, matriks diuraikan dengan array data yang teratur, karena akan

    sering dipergunakan pada pemograman tingkat lanjut.

    5.3.1 Pembentukan array dan matriks Array dan matriks ditampilkan dalam bentuk yang sama tetapi representasi

    internalnya berbeda. Berikut ini adalah perintah untuk membentuk array.

    • x=m: n, membuat baris dengan elemen awal m, kenaikan 1 dan elemen akhir n atau

    sebelum n.

    Misal:

    Perintah x=1: 10 akan membuat barisan dengan elemen dimulai dari 1, bertambah

    1 dan berakhir pada 10.

    • x=m: k: n, membuat baris dengan elemen awal m, kenaikan k dan elemen akhir n

    atau sebelum n.

    Misal:

    Perintah x=1:2:20 akan membuat barisan dengan elemen dimulai dari 1,

    bertambah 2 dan berakhir pada 19.

    • x=linspace (m, n, k) , membuat baris dengan elemen awal m dan elemen akhir, dengan

    jumlah elemen sebanyak k.

    Misal:

    Perintah x=linspace (1, 30,10) akan menampilkan baris dengan elemen awal bernilai

    1 dan elemen akhir bernilai 30 dengan jumlah elemen sebanyak 10.

    • x=logspace (m, n, k) , membuat baris dengan elemen awal m dan elemen akhir n

    dengan jumlah elemen sebanyak k dalam skala logaritma.

    Misal:

    Perintah x=logspace (1, 30,10) akan menampilkan bads dengan elemen awal bemilai 10 dan

    elemen akhir bemilai 10 dengan jumlah elemen 10.

    • x=ones (m) , membuat array segiempat ukuran m x m dengan semua elemennya

    bernilai 1.

    Misal:

    Perintah x=ones (5) akan menampilkan array segiempat ukuran 5 x 5 dengan semua

    Dr. Wayan Nata Septiadi, ST,MT Page 33

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    elemennya bernilai 1

    • x=ones (m, n) , membuat array segiempat ukuran m x n dengan semua elemennya bernilai

    1

    Misal:

    Perintah x=ones (2, 5) akan menampilkan array segiempat ukuran 2 x 5 dengan

    semua elemennya bernilai 1.

    • x=zeros (m) , membuat array segiempat ukuran in m x m dengan semua

    elemennya bernilai 0.

    Misal:

    Perintah x=zeros (5) akan menampilkan array segiempat ukuran 5 x 5 dengan semua

    elemennya bernilai 0.

    • x=zeros (m, n) , membuat array segiempat ukuran m x n dengan semua elemennya

    bernilai 0.

    Misal:

    Perintah x=zeros (2, 5) akan menampilkan array segiempat ukuran 2 x 5 dengan

    semua elemennya bernilai 0.

    • x=rand (m, n) , membuat array segiempat ukuran m x n dengan elemen-elemennya

    berupa bilangan random yang terdistribusi uniform dengan interval 0,0 sampai 1,0.

    Misal:

    Perintah x=rand (2, 5) akan menampilkan array segiempat ukuran 2 x 5 dengan

    elemen-elemennya berupa bilangan random yang terdistribusi uniform dengan

    interval 0,0 sampai 1,0.

    • x=randn (m, n) , membuat array segiempat ukuran m x n dengan elemen-elemennya

    berupa bilangan random yang terdistribusi normal dengan mean = 0 dan variasi =

    1.

    Misal:

    Perintah x=randn (2, 5) akan menampilkan array segiempat ukuran 2 x 5 dengan elemen-

    elemennya berupa bilangan random yang terdistribusi normal dengan mean = 0 dan

    variasi = 1.

    Array dapat dinyatakan dalam bentuk matriks dengan memasukkan semua perintah

    pada ruas kanan ke dalam kurung komutasi. Misal: array x=m: n dapat dinyatakan

    Dr. Wayan Nata Septiadi, ST,MT Page 34

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    dalam bentuk matriks dengan perintah x= [m: n] .

    5.3.2. Operasi array Operasi array merupakan operasi skalarterhadap elemen-elemennya. Misal diketahui

    suatu data:

    a= [a, a2 a3…an ] ;b = [bI b 2 b 3… bn.]; c = c, operasi array yang dapat dilakukan

    adalah:

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

    • Perkalian skalar: a*c= [al*c a2*c a3*c ... an*c]

    • Penambahan array: a+b= [al+bl a2+b2 a3+b3 ... an+bn]

    • Perkalian array: a. *b= [al*bl a2*b2 a3*b3...an*bn]

    • Pembagian kanan array: a. /b= [al/bl a2/b2 a3/b3...an/bn]

    • Pembagian kiri array: a. \b= [al\bl a2\b2 a3\b3 ... an\bn]

    • Pemangkatan array-skalar-.a.^c=[al^c a2^c a3^c ... an^c]

    • Pemangkatan skalar-array:c. ^a=[c^ai c^a2 c^a3 ... c^an]

    • Pemangkatan array-array: a. ^b= [al^bi a2^b2 a3 ^b3 ... an^bn]

    5.3.3 Operasi matriks Operasi pada matriks dilakukan dengan menggunakan prinsip aljabar matriks. Berikut ini

    diuraikan beberapa operasi matiks.

    • Transpose matriks: X = A => At X=A'

    • Penjumlahan matriks: X = A => At X=A+B.

    • Pengurangan matriks: X = A => At ---> X=A-B.

    • Perkalian matriks: X = A => At --->X=A*B.

    Operasi matriks lainnya seperti invers, determinan dan sebagainya dapat dilakukan

    jika syarat-syarat aljabar matriks terpenuhi. Bentuk seperti ini sering digunakan dalam

    analisis numerik untuk fisika komputasi.

    5.3.4 Manipulasi array dan matriks Manipulasi terhadap array dan matriks dapat mereduksi kerumitan metode

    Dr. Wayan Nata Septiadi, ST,MT Page 35

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    komputasi. Misal dalam perhitungan numerik diketahui array data dengan variable

    induk A yang terdiri atas gabungan antara baris dan kolom. Array tersebut dapat

    dimodifikasi dengan perintah pengalamatan.

    •A (i, j),mengalamati sub array A dengan indeks baris i dan kolom j.

    •A (i, :), mengalamati sub array A pada semua kolom j.

    •A(:, j), mengalamati sub array A dengan semua baris pada kolom j .

    • A(:), mengalamati sub array A dengan semua baris pada semua kolom.

    Pengalamatan yang dilakukan terhadap elemen array dapat digunakan untuk

    pangalamatan elemen matriks dengan ketentuan array tersebut sebelumnya telah

    dinyatakan dalam bentuk matriks.

    5.4 Konsep Dasar Kontrol Program Perhitungan komputasi dengan deret teratur dalam MATLAB dapat dilakukan dengan

    statement tertentu. Statement tersebut untuk menyatakan kondisi, pemberhentian

    operasi dan iterasi. Statement-statement ini sering dikenal dengan nama kontrol program.

    Kontrol program sangat berguna, karena memungkinkan perhitungan sebelum kondisi

    tertentu mempengaruhi perhitungan selanjutnya dalam satu kesatuan program. Kontrol

    program mempunyai fungsi dan keunggulan tersendiri bergantung pada kebutuhan

    pemrograman.

    5.4.1 Statement if Statement if akan mengeksekusi sekumpulan instruksi apabila suatu kondisi yang

    diisyaratkan bemilai benar. Statement if diakhiri dengan end. Jika ada kondisi yang

    berlawanan (false), statement if dapat diikuti dengan statement else atau elseif.

    Contoh 1:

    x=input('Masukan bilangan bulat x=')

    if rem(x,2)==0

    X= ' == GENAP==’

    else

    X= ' == GANJIL =='

    end

    Contoh 1 akan mengidentifikasi sifat bilangan X, apakah termasuk bilangan ganjil

    Dr. Wayan Nata Septiadi, ST,MT Page 36

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    atau genap.

    5.4.2 Statement switch Statement switch akan mengeksekusi sekumpulan instruksi didasarkan

    pada nilai dari suatu ekspresi atau variabel. Statement switch diikuti dengan case

    dan otherwise untuk menunjukan suatu group dalam looping. Statement ini diakhiri

    dengan end.

    Contoh 2:

    c l e a r ;

    X=input ('masukkan bilangan bulat X=');

    Y=input ( Imasukkan pembagi Y=');

    Sisa=rem(X,Y)

    swi tch Si sa

    c a s e 1 0

    N i l a i S i s a = ' A '

    case 11

    N i l a i s i s a ='B '

    Case 12

    N i l a i s i s a = ' C '

    case 13

    N i l a i s i s a =' D'

    case 14

    N i l a i s i s a =' E '

    o the rwi se

    N i l a i S i s a = i n t 2 s t r ( s i s a ) % k o n ve r s i integer ke s t r i n g end;

    Contoh 2 mengambil sisa pembagi dari X/Y kemudian dikelompokkan dalam bentuk

    abjad. Jika program tersebut dijalankan, pada Command Window akan tampil 6

    kemungkinan, yaitu:

    • Jika Sisa=10, maka Nilaisisa=A

    • Jika Sisa=11, maka Nilaisisa=B

    • Jika Sisa=12, maka Nilaisisa=C

    Dr. Wayan Nata Septiadi, ST,MT Page 37

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    • Jika Sisa=13, maka Nilaisisa=D

    • Jika Sisa=14, maka Nilaisisa=E

    • Jika Sisa=bilangan lain, Nilaisisa=Sisa

    5.4.3 Statement for Statement for digunakan untuk mengulang sekumpulan instruksi

    hingga n kali (notasi n adalah bilangan integer yang telah diidentifikasi

    sebelumnya). Statement for diakhiri dengan end.

    Contoh 3:

    X=rand(50,1)

    Xmax=realmin

    for i=1:50

    if X(i)>Xmax

    Xmax=X(i)

    end;

    end;

    Contoh 3 memperagakan cara mencad nilai terbesar dad array X. Nilai tersebut akan

    disimpan dalam variabel Xmax

    5.4.4 Statement while Statement while mengerjakan sekelompok perintah yang diulang secara tidak

    terbatas. Statement while diakhiri dengan end. Perintah antara loop while dan end

    dieksekusi berulang kali selama semua elemen dalam ekspresi bernilai benar.

    Contoh 4:

    hitungan=0; X=1:

    while (1+X)>l

    X=X/2

    hitungan=hitungan+l

    end

    Contoh 4 memperagakan cara menghitung nilai terkecil yang dapat ditambah pada 1

    Dr. Wayan Nata Septiadi, ST,MT Page 38

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    sedemikian hingga hasilnya lebih besar dari dengan menggunakan presisi hingga.

    Selama (1 +X) > 1 benar, perintah yang terdapat dalam loop while akan dikerjakan

    terns menerus. Karena X terus menerus dibagi 2, maka X semakin kecil hingga

    didapat suatu kondisi yang unik, yaitu penambahan X pada 1 tidak mendapatkan hasil

    yang lebih besar dari 1 menurut hitungan komputasi. Jika kondisi tersebut terpenuhi,

    maka loop while berhenti bekerja atau kondisi (1+X)> 1 bernilai salah. Kondisi

    tersebut dicapai pada hitungan ke-53.

    5.4.5 Statement break Statement break digunakan untuk keluar lebih awal dari suatu loop for

    dan while jika kondisi yang diinginkan sudah tercapai. Melanjutkan

    contoh sebelumnya untuk mencari nilai terkecil yang tidak merubah nilai 1 jika

    ditambah X, persoalan tersebut dikerjakan pada loop for dan if dengan

    urutan 1 sampai 1000. sebelumnya sudah diketahui bahwa kondisi yang diinginkan

    akan tercapai pada hitungan ke-53, tetapi komputer tidak berhenti karena loop for

    menginstruksikan perhitungan sampai pada step ke-1000. Statement break

    digunakan untuk menghentikan looping for.

    Contoh 5:

    X=1

    for hitungan=1:1000

    X=X/2;

    if (1+X)

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    6.1 Membangun Data Dalam beberapa kasus program sering ditemui penggunaan data inisial dalam bentuk

    matrik atau array, misalnya matrik nol, matrik identitas dan lain-lain.

    Secara sederhana MATLAB menyediakan beberapa teknik untuk membangun data

    dengan cepat, sebagai berikut:

    • Membangun data dengan elemen yang telah ditentukan

    Misalnya anda akan membangun data x dengan nilai yang telah diketahui, maka

    cara penulisannya sebagai berikut:

    Untuk data vektor baris

    Untuk data vektor kolom

    Untuk data bentuk matrik

    Dr. Wayan Nata Septiadi, ST,MT Page 40

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    • Membangun data dengan batas awal dan batas akhir

    Misalnya anda ingin membuat data sudut dari sudut 30 derajat samapi 35 derajat,

    maka cara penulisannya adalah sebagai berikut:

    • Membangun data dengan batas awal, increment dan batas akhir

    Misalnya anda ingin membuat data sudut dari sudut 30 derajat samapi 90 derajat

    dengan pertambahan 10, maka cara penulisannya adalah sebagai berikut:

    • Membangun data dengan batas awal dan batas akhir, tetapi jumlah data

    ditentukan.

    Misalnya anda ingin membuat data 5 buah sudut dalam interval sudut 30 derajat

    sampai 90 derajat, maka cara penulisannya adalah sebagai berikut:

    • Membangun data logaritma dengan batas awal dan batas akhir, tetapi

    jumlah data ditentukan.

    Misalnya anda ingin membuat data 5 nilai yang berada dalam interval 102 dan 104,

    maka caranya adalah sebagai berikut:

    Dr. Wayan Nata Septiadi, ST,MT Page 41

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    • Membangun data menggunakan standar matrik MATLAB.

    Cara membuat data matrik dengan semua elemen bernilai 1:

    Cara membuat data matrik dengan semua elemen bernilai 0:

    Membuat data matrik identitas, caranya sebagai berikut:

    • Membangun data Random

    Data random sangat penting digunakan dalam pemrograman, khususnya bidang

    pemodelan matemtika. MATLAB menyediakan cara cepat untuk membangkitkan

    data random sebagai berikut:

    Terlihat bahwa data random yang dihasilkan berada dlama interval 0 dan 1. Lalu

    bagaimana caranya untuk membangkitkan data random dengan interval lainnya,

    misalnya ineterval 5 dan 7?

    Berikut ini adalah sintak membangkitkan data random dengan interval:

    Variabel = (akhir-(rand()*(akhir-awal)))

    Dr. Wayan Nata Septiadi, ST,MT Page 42

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    Contoh pemakaian dalam program adalah sebagai berikut:

    6.2 Orientasi dan Augmentasi data Merubah orientasi dan menempelkan data (data augmented) sangat umum digunakan

    dalam program. Pada bahasa pemrograman yang lain mungkin hal tersebut menjadi

    gampang-gampang sulit. Tetapi tentu saja pada MATLAB hal tersebut menjadi sangat-

    sangat mudah.

    • Mengubah Orientasi data dengan Transpos

    • Menempelkan data pada baris

    Dr. Wayan Nata Septiadi, ST,MT Page 43

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    • Menempelkan data pada kolom

    6.3 Pengurutan Data Teknik pengurutan data sangat sering digunakan dalam program pengolahan data.

    MATLAB menyediakan fungsi khusus yaitu sort untuk melakukan pengurutan.

    Menggunakan sort dapat dengan dua cara. Cara pertama digunakan untuk mengurutkan

    data pada arah kolom, sintaknya sebagai berikut:

    var2=sort (var1,1)

    var1 adalah matrik atau vektor yang akan diurutkan. Berikut adalah cara

    menggunakannya dalam program:

    Cara kedua digunakan untuk mengurutkan data pada arah baris, sintaknya sebagai

    berikut:

    var2= sort(var1,2)

    Dr. Wayan Nata Septiadi, ST,MT Page 44

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    Var1 adalah matrik atau vektor yang akan diurutkan. Berikut adalah cara

    menggunakannya dalam program:

    6.4 Menyeleksi Data Melakukan pemrograman untuk pengolahan data, pasti tidak luput dari seleksi data.

    Menyeleksi data berarti menggunakan sebagian data dari sebuah data yang lengkap tanpa

    merusak ukuran maupun nilai data tersebut. Untuk melakukan seleksi data, anda dapat

    mempergunakan ekspresi matematika =, =,>,>=,< dan

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA Cara kerja seleksi data adalah membangkitkan matrik bernilai 0 dan 1, sesuai kondisi yang diberikan, jika memenuhi kondisi, elemen matrik bernilai 1, jika tidak, maka elemen matrik bernilai 0.

    Maka untuk mendapatkan nilai yang terseleksi, kalikan hasil diatas dengan data asal. Gunakan perkalian elemen!!

    Banyak kemudahan yang ditawarkan MATLAB, namun efektifitas pemrogramannya hanya akan tercapai jika kita mampu menerapkan metode-metode manipulasi data dalam skrip program. Umumnya programmer yang memiliki dasar pemrograman procedural mengabaikan hal ini, sehingga efektifitas penulisan skrip dan kecepatan proses runtime tidak diperoleh secara maksimal.

    Dengan menggunakan teknik-teknik manipulasi diatas, sebisa mungkin hindari pemakaian control flow (perulangan dan kondisional) yang melibatkan operasi elemen-elemen data seperti pada pemrograman konvensional. Karena walaupun MATLAB menyediakan fasilitas untuk itu, MATLAB tidak didesain untuk hal tersebut. Akibatnya waktu yang digunakan MATLAB untuk menjalankan program anda akan cukup lama.

    >> c = (a ~ =7)

    C =

    1 1 1

    1 1 0

    0 1 1

    >> c =(a~=7)*a

    c =

    2 3 1

    9 6 0

    0 9 5

    Dr. Wayan Nata Septiadi, ST,MT Page 46

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    7.1 Perintah Dasar menggambar Grafik Program MATLAB mempunyai fasilitas menggambar hasil perhitungan komputasi secara

    grafis. Instruksi yang bisa digunakan untuk menggambar grafik, sebagian diantaranya telah

    dibahas pads tutorial Bab 1. Pada bab ini akan dibahas berbagai Instruksi untuk menggambar

    grafik dalam MATLAB.

    Elemen dasar yang dibutuhkan untuk menggambar grafik adalah data dalam bentuk array.

    Misal, MATLAB diberi perintah membuat arraydalam bentuk sudut Ɵ dari 0 sampai 2

    sebanyak 30 data. Dalam MATLAB, array tersebut dinyatakan dengan variabel Theta untuk

    menentukan nilai x= sinƟ. Persoalan seperti ini dapat dibuat dalam MATLAB dengan listing

    program:

    Theta=linspace(0,2*pi,30)

    X=sin(Theta)

    Program ini dapat dilengkapi dengan syntax untuk menggambar grafik fungsi sinus.

    Instruksi yang boleh digunakan adalah:

    • Plot: (Theta): menggambar grafik Ɵ tehadap indeksnya.

    • Plot (Theta, x) : menggarnbar grafik x terhadap Ɵ, dengan syarat panjang array

    data Ɵ dan x sama.

    • Plot (Theta, x,bt-cing). menggambar grafikx, terhadap Ɵ, dengan karakter berupa

    string. Karakter string boleh berupa: warna, tipe titik data dan tipe garis

    penghubung titik data dari grafik yang di-plot.

    Sebagai contoh, akan digambar fungsi sinus 1 periode terhadap data Ɵ dengan karakteristik:

    warna: merah (r=red), tipe titik data: lingkaran (o) dan tipe garis penghubung data: titik-

    titik ( : ). Program sederhana untuk problem ini adalah:

    Dr. Wayan Nata Septiadi, ST,MT Page 47

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    Theta=linspace(0,2*pi,30)

    X=sin(Theta)

    Plot(Theta,x,'ro:')

    Grafik yang dihasilkan dipedihatkan pada Gambar dibawah:

    Gambar 7.1 Contoh plot grafik sinus

    Karakteristik grafik pada Gambar 5.1 dapat dimodifikasi dengan string seperti pada Tabel

    dibawah:

    Tabel 7.1 Karakter string pada grafik

    Warna Simbol Titik data Simbol Garis penghubung data Simbol

    merah r titik . garis lurus - biru b lingkaran o titik-titik :

    kuning y tanda silang x garis-titik -.

    hijau g tanda plus + garis putus-putus - -

    ungu M. tanda bintang * putih w tanda kotak s hitam k tanda berlian d

    biro muda c tanda pentagram tanda heksagram

    p h

    Dr. Wayan Nata Septiadi, ST,MT Page 48

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA 7.2 Memberi Judul dan Label Pada Grafik Grafik pads Gambar 5.1 belum mempunyai judul pada bagian atas dan label pada setiap

    sumbu. Perintah untuk memberi judul dan label adalah:

    • title('text','fontsize',size,'fontname','name')

    • xlabel('text','fontsize',size,'fontname','name')

    • ylabel(‘text’,’fontsize',size,’fontname’,’name’)

    • zlabel('text','fontsize',size,'fontname','name')

    Dengan text adalah nama judul atau label, fontsize adalah perintah pengaturan ukuran

    huruf, size adalah ukuran huruf, fontname adalah perintah pengaturan jenis huruf, name

    adalah jenis huruf. Sebagai contoh, grafik pada Gambar 5.1 dapat dilengkapi dengan

    instruksi berikut:

    Theta=linspace(0,2*pi,30)

    x=sin(Theta)

    plot(Theta,x,'ro:')

    title (‘Grafik fungsi sinus’,’fontsize’,12,’fontname’,’Arial’)

    x1abel (' Sudut dalam radian’,’fontsize',10,’fontname’,'Arial’)

    ylabel('Nilai sinus' ,'fontsize', 10, ‘fontname’, 'Arial’)

    Dengan menjalankan program ini, akan diperoleh sebuah grafik lengkap dengan keterangannya

    seperti pada Gambar dibawah:

    Gambar 7.2 Grafik fungsi sinus 1 periode lengkap dengan judul dan label

    Dr. Wayan Nata Septiadi, ST,MT Page 49

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA 7.3 Memberi Grid dan Legend

    Perintah grid dan legend digunakan untuk memberi grid dan legend pada grafik.

    Misal, diketahui fungsi sinus 1 periode y1 = sin t. Fungsi tersebut

    mengalami pergeseran se jauh y 2 =sin( t+1 /2 )dan y 3=sin( t+1 /4 ) .

    Ketiganya dapat digambarkan dalam satu grafik yang dilengkapi grid dan -

    legend.

    clear;

    t=0:pi/100:2*pi

    y1=sin(t)

    y2=sin(t+0.5)

    y3=sin(t-0.25)

    plot(t,y1,'r-',t,y2,'b:',t,y3,'m–')

    title (‘Grafik fungsi

    sinus','fontsize',16,'fontname','Arial')

    xlabel('Sudut dalam

    radian','fontsize',14,'fontname','Arial')

    ylabel('Nilai

    sinus','fontsize',14,'fontname','Arial')

    grid

    legend('t','t+0.5','t-0.25')

    Jika program tersebut dijalankan, akan diperoleh grafik seperti Gambar dibawah:

    Gambar 7.3 Grafik fungsi sinus lengkap dengan grid dan legend

    Dr. Wayan Nata Septiadi, ST,MT Page 50

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA 7.4 Membentuk Subplot

    Perintah subplot digunakan untuk menggambar lebih dari 1 grafik dalam 1 plot.

    Dalam MATLAB, perintah ini ditulis subplot (mnp). Elemen m dan n menunjukkan

    banyaknya baris dan kolom dalam ruang plot, sedangkan p menunjukkan posisi dalam

    ruang plot. Cara termudah untuk memahami posisi dalam ruang plot adalah

    menganggapnya sebagai elemen matriks Aij. Misal, diketahui 4 buah fungsi, yaitu:

    Fungsi-fungsi ini terdiri atas 4 buah. Jadi, harus di-plot dalam ruang 2 x 2 dengan

    perintah dasar subplot (22p). Posisi masing-masing subplot adalah p, dengan p=l, 2, 3,

    4. Setiap posisi p terletak pada elemen-elemen matriks secara berturut-turut dari baris 1

    kolom 1 ke kolom berikutnya, dilanjutkan dengan baris berikutnya dengan urutan

    yang sama dimulai pada baris 1.

    Fungsi-fungsi yi (i =1,2,3,4) pads kasus ini, mempunyai posisi: p=1: A11; p=2: A12 ;

    p=3: A21 ; p=4: A22.

    %Program dengan subplot

    %By: NAMA ANDA

    clear;

    x = 0 : 0 . 0 1 : 1 0

    yl.x+10*ones(l,length(x))

    Y2=x.'2+x+10*ones(l,length(x))

    Y3=x.'3+x.'2+x+10*ones(l,length(x))

    y4-x.'4+x.'3 +X.A 2+x+10*ones(l,length(x))

    %Grafik yl subplot(221) plot(x,yl);grid;

    title('Grafik fungsi linear') xlabel(IxI);Ylabel(Ix+101)

    %Grafik y2 subplot(222) plot(x,y2);grid;

    title('Grafik fungsi kuadrat')

    xlabel(lxl);ylabel (,XA 2+x+101)

    %Grafik y3 subplot(223) plot(x,y3);grid;

    Dr. Wayan Nata Septiadi, ST,MT Page 51

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    title('Grafik fungsi pangkat 3') xlabel(lxl);Ylabel(lx'3+x'2+x+101)

    %Grafiky4

    subplot(224) plot(x,y4);grid;

    title('Grafik fungsi pangkat 4') xlabel('x');ylabel('x'4+x.^3+x^2+x+101)

    Dengan menjalankan program tersebut, akan diperoleh 1 grafik dalam 1 Figure Window

    seperti pada Gambar dibawah:

    Gambar 7.4 Contoh Sub Grafik

    7.5 Menggambar Grafik Tiga Dimensi Bagian sebelumnya dalam bab ini, menguraikan cara menggambar grafik 2 dimensi.

    Selain graft 2-dimensi dikenal pula graft 3-dimensi. Syarat utama untuk menggambar

    grafik 3-dimensi adalah array yang terdiri atas 3 pasangan data dengan panjang yang

    sama. Berikut ini akan diuraikan beberapa syntax dasar untuk menggambar grafik 3--

    dimensi, yaitu:

    • plot (x, y, z) : menggambar grafik yang merupakan pasangan array data pada

    vektor x, y dan z.

    • plot (x, y, z, S) : menggambar grafik yang merupakan pasangan

    Dr. Wayan Nata Septiadi, ST,MT Page 52

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    array data pada vektor x, y dan z, serta menggunakan karakter s.

    • plot (X,Y,Z) : menggambar grafik yang merupakan pasangan array data berupa

    kolom pada matriks X, Ydan Z.

    • plot (X,Y,Z,S): menggambar grafik yang merupakan pasangan array data berupa

    kolom pada matriks X, Ydan Z, serta menggunakan karakter S.

    Karakter s adalah warna, tipe titik data dan tipe garis penghubung data. Uraian

    selengkapnya tentang karakter s diperlihatkan pada Tabel 7.1.

    7.1.1 Grafik garis tiga dimensi Grafik gari 3 dimensi merupakan pengembangan perintah dasar plot, dari 2-satuan

    data menjadi 3-satuan data. Program berikut akan menghasilka grafik seperti gambar

    5.5

    clear

    t=0:pi/50:10*pi;

    x=sin(t);

    y=cos(t);

    plot3(x,y,t);

    title(‘GRAFIK HELIX’,’fontsize’,20,’fontname’,’Arial’);

    xlabel(‘sin(t)’,’fontsize’,16,’fontname’,’Arial’);

    ylabel(‘cos(t)’,’fontsize’,16,’fontname’,’Arial’)

    xlabel(‘t’,’fontsize’,16,’fontname’,’Arial’)

    Gambar 7.5 Contoh Grafik Helix

    Dr. Wayan Nata Septiadi, ST,MT Page 53

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    7.1.2 Grafik jala dan permukaan Grafik jala merupakan koordinat z dari sebuah titik diatas grid segiempat pada bidang

    x-y yang menyerupai jala. Grafik jala dihasilkan dengan syntax mesh (z). Array data

    yang divisualisasikan adalah vector x berukuran n, vector y berukuran m dan matriks

    z berukuran m x n. Titik data yang tergambar merupakan pasangan {x(i),y(j),z(i,j)},

    dengan x berhubungan dengan kolom-kolom z dan y berhubungan dengan baris-baris

    z. Sebagai contoh, program berikut akan menghasilkan grafik seperti pada Gambar

    5.6

    x=-1:.1:2;

    y=0:.1:5;

    for i=1:length(x)

    for j=1: length (y)

    Z(i,j)=sin (x(i)*y(j))+cos(-x(i)*y(j))+10;

    end

    end

    surf(x,y,Z)

    mesh(Z)

    xlabel (‘x’,’fontsize’,14,’fontname’,’Arial’);

    ylabel (‘y’,’fontsize’,14,’fontname’,’Arial’)

    zlabel (‘z=sin(xy)+cos(-xy)+10’)

    Gambar 7.6 Grafik permukaan hasil surf(Z)

    SOAL:

    Dr. Wayan Nata Septiadi, ST,MT Page 54

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA 1. Lakukan modifikasi terhadap program pada tutorial nomor 1, kemudian buat program

    untuk menggambarkan fungsi sinus, cosinus, tangen dan cotangen untuk kasus 2

    periode dalam 1 Figure Window.

    2. Spektroskopi nuklir merupakan instrumen yang berfungsi untuk mengetahui karakteristik

    spektrum energi radiasi. Pengaruh energi yang dipancarkan nuklida radioaktif terhadap

    tegangan keluaran sistem spektroskopi nuklir diketahui melalui tinggi pulsa yang tampak

    pada osiloskop. Misal, diketahui data pengamatan seperti pada Tabel 5.2, sedangkan data

    energi pada Tabel 5.2 merupakan standar kalibrasi dari Laboratory Education and Training,

    National Atomic Energy Agency-From JRIA Book. Perkiraan kesetaraan energi

    disesuaikan dengan kecenderungan bahwa pulsa tertinggi pada osiloskop sama dengan

    tingkat energi tertinggi. Pengamatan selanjutnya dilakukan pada unsur yang belum

    diketahui (Tabel 5.3). Besaran yang diamarti adalah energi yang dipancarkan nuklida akibat

    perubahan tegangan keluaran sistem spektroskopi nuklir. Perkiraan kesetaraan

    ditentukan berdasarkan posisi puncak energi pada display layer terhadap tegangan yang

    terbaca pada osiloskop. Jika diketahui data pengamatan seperti Tabel 5.3, buatlah grafik

    hubungan antara besar energi nuklida radioaktif terhadap tegangan listrik yang ditimbulkan

    (Tabel 5.2) dan hubungan antara tegangan terhadap energi radiasi (Tabel 5.3).

    Gunakan perintah stem (X, Y) untuk menggambar kedua grafik tersebut. Gambarlah

    kedua grafik dalam 1 figure window dengan bantuan perintah hold on untuk

    menampilkan array data dalam 1 grafik. Lakukan analisis lebih lanjut untuk

    menentukan unsur yang belum diketahui (unknown). Tebaklah unsur apakah yang

    sedang diamati?. (Petunjuk: Gunakan X:Tegangan dan Y. Energi.!)

    Tabel 5.2: Pengaruh energi terhadap tegangan

    No Nuklida Energi (keV) Tegangan (Volt)

    1 Ba-133 302 1,8

    2 Cs-137 662 3,6

    3 Na-22 1275 5,8

    4 Co-60 1332 6,0

    Dr. Wayan Nata Septiadi, ST,MT Page 55

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA Tabel 5.3: Pengaruh Tegangan terhadap energy radiasi

    No Tegangan (Volt) Energi (keV)

    1 1,0 25

    2 1,5 49

    3 2,0 214

    4 2,5 276

    5 3,0 340

    6 3,5 390

    7 4 457

    8 5 571

    9 6 679

    10 7 819

    11 8 911

    Dr. Wayan Nata Septiadi, ST,MT Page 56

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA

    8.1 Akar persamaan Akar-akar persamaan adalah bilangan yang merepresentasikan titik potong kurva polinomial

    terhadap variabel bebasnya. Pada bagian ini akan diuraikan beberapa metode penentuan akar-

    akar persamaan. Polinomial berderajat dua atau biasa disebut persamaan kuadrat dinyatakan

    dalam bentuk

    y = ax2+bx+c ................................................................ (8.1)

    Akar-akar persamaan (4.1) dapat ditentukan secara analitik dengan formula

    ……………………………………………..(8.2)

    sedangkan persamaan dengan derajat lebih tinggi, akar-akarnya tidak dapat ditentukan

    dengan persamaan (4.2), misalnya:

    Persamaan-persamaan tersebut hanya bisa diselesaikan dengan metode numerik. Metode

    ini merupakan cara penyelesaian dengan teknik perkiraan tertentu sampai diperoleh hasil

    yang mendekati penyelesaian eksak. Penyelesaian numerik diselesaikan dengan

    pendekatan berurutan (iterasi) sedemikian hingga hasil yang diperoleh pada setiap step

    lebih teliti dari sebelumnya. Dengan melakukan sejumlah prosedur iterasi yang dianggap

    cukup, akan didapat hasil perkiraan yang mendekati nilai eksak dengan toleransi

    kesalahan yang diperkenankan.

    Metode paling sederhana untuk mendapatkan penyelesaiaan perkiraan adalah dengan

    menggambarkan fungsi f(x) kemudian menentukan titik potongnya terhadap sumbu x. Titik

    Dr. Wayan Nata Septiadi, ST,MT Page 57

  • [LOGIKA DAN PEMROGRAMAN KOMPUTER] TEKNIK MESIN UDAYANA potong tersebut menunjukan akar persamaan dari fungsi yang digambarkan (Gambar 4.1).

    Metode lain yang lebih sederhana untuk menyelesaikan persamaan kuadrat adalah metode

    coba banding. Prosedur metode ini adalah mencoba nilai x sebarang, kemudian dievaluasi

    apakah f(x) = 0. Jika nilai x tidak sama dengan nol, maka dicoba dengan nilai yang lain

    sedemikian hingga diperoleh nilai f(x) = 0. Nilai yang membuat f(x) = 0 merupakan akar

    persamaan. Kedua cara sederhana yang diuraikan sepintas tidak efisien dan sistematis. Ada

    beberapa metode yang juga merupakan perkiraan, tetapi lebih sistematis untuk menghitung

    akar-akar persamaan. Metode-metode tersebut akan diuraikan pada bagian-bagian berikutnya

    dalam bab ini.

    Gambar 8.1: Akar persamaan dari fungsi f(x)

    8.2 Metode Setengah Interval Metode setengah interval biasa disebut metode bagi dua atau metode bisection. Prosedur

    yang dilakukan untuk menyelesaikan persamaan dengan metode setengah interval adalah: