Bab 2 Algoritma

download Bab 2 Algoritma

of 15

Transcript of Bab 2 Algoritma

  • 8/19/2019 Bab 2 Algoritma

    1/33

    ALGORITMADAN PEMROGRAMAN

    Oleh : Joko Trianto

    Email/fb :oko n am ahoo$%om

  • 8/19/2019 Bab 2 Algoritma

    2/33

    Pengertian Algoritma danPemrogramanIlustrasi :

    2

    Bagaimanacaranya agarmobil danpengemudisampai ditujuan

  • 8/19/2019 Bab 2 Algoritma

    3/33

    Pengertian Algoritma danPemrograman

    Dari gambar ilustrasi

    Berapa kemungkinan penyelesaian jalan yangdilalui ? (buat tanda panah sebagai petunjukarah)

    Anggap satu kemungkinan yang dipilih, tuliskantahapan yang harus dilalui

    Dari tahapan yang dibuat apakahmenyelesaikan masalah ?

    3

  • 8/19/2019 Bab 2 Algoritma

    4/33

    Pengertian Algoritma dan Pemrograman• Dari pertanyaan yang diajukan, ada suatu hipotesa :

     – ntuk menyelesaikan suatu permasalahan pastiharus memiliki alur yang jelas dan tepat!

     – Dari alur yang dibuat pasti susunan " tahapantersusun secara sistematis dan hirarkis

     –

    #usunan sistematis dan hirarkis pasti dapatmenyelesaikan masalah tertentu

    • $eyakinan yang didapat :

     – #etiap menyelesaikan masalah harus

    menggunakan cara%cara sistematis, terstruktur,dan hirarkis

     – &ara%cara tersebut harus bisa dituliskan secarabenar dan masuk akal! ('etode Ilmiah)

    4

  • 8/19/2019 Bab 2 Algoritma

    5/33

    Pengertian Algoritma danPemrograman

    5

    Bagaimana karateristik komputer ?

    $omputer terdiri dari rangkaian elektronik I&,$aat embaga, mainboard, dll

     erdiri dari ribuan transistor (tergabung dalam I&)yang berisikan gerbang%gerbang logika (A*D,+,*A*D, *+, dll)

    -ksekusi dipicu dari adanya masukan (input) listrikberkisar . /olt dan berupa - " 01A#-

    Aliran data berupa dijit biner 2 dan 3, yang tersusun sesuai instruk

    Instruksi dibuat secara sistematis dan hirarkis, dan masuk akal (sesuai l

    &e'tion :Bagaimana agar instruksi dapat dimengerti dan bisamenghasilkan keluaran (output) sesuai keinginan ?

  • 8/19/2019 Bab 2 Algoritma

    6/33

    Pengertian Algoritma danPemrogramanAnser :

    4arus ada instruksi yang dimengerti oleh komputer

    $omputer hanya terdiri dari rangkaian elektronik, karena ituhanya mengerti nilai 2 dan 3

    *ilai 2 dan 3, dapat berupa rangkaian instruksi jika disusun

    dengan susunan yang sistematis dan masuk akal untukmenyelesaikan masalah tertentu

    #usunan masuk akal dikenal dengan istilah urutan instruksi

    bahasa yang dikenal oleh komputer!

    $arena itu pasti komputer punya bahasa, dan kita harusmembuat bahasa yang dimengerti oleh komputer!

    Bahasa tersebut dikenal dengan istilah bahasapemrograman!

    Program komputer harus dibuat dengan urutan logika yangbenar dan sesuai dengan masalah yang ingin diselesaikan!

    6

  • 8/19/2019 Bab 2 Algoritma

    7/33

    Pengertian Algoritma danPemrograman

    7

    rutan logika untukmenyelesaikan masalah

    tertentu

    Algoritma

    Instruksi yang dikenal olehkomputer

    Istilah

    Diterjemahkan olehbahasapemrograma

    n&ontoh :PA#&A1, &,D-1P4I, dll4asil

  • 8/19/2019 Bab 2 Algoritma

    8/33

    Pengertian Algoritma dan Pemrograman

    #impulan :

    Algoritma : urutan%urutan logis dari suatu pernyataanuntuk menyelesaikan kasus " masalah tertentu

    Pemrograman : proses penterjemahan algoritma kedalambahasa yang dimengerti oleh komputer!

    Asal kata algoritma

    8

    Al%$h5ri6m7, Persian astronomer andmathematician,

    Algoritmi

    algorism

    Algorithm

    the techni8ue o9 per9orming basic arithmetic by riting numbers

    in place /alue 9orm and applying a set o9 memori6ed rules and9acts to the digits

    calculation method

    a se8uence o9 nite instructions, o9ten used 9or calculation anddata processing

  • 8/19/2019 Bab 2 Algoritma

    9/33

     ahapan PembuatanProgram

    ; 'endenisikan masalah dan menganalisanya!  'encakup : tujuan pembuatan program, parameter yang

    digunakan,  9asilitas yang disediakan, algoritma yang diterapkan danbahasa

      program yang digunakan!; 'erealisasikan dengan langkah%langkah sebagai berikut :

  • 8/19/2019 Bab 2 Algoritma

    10/33

    Algoritma

    ; Adalah inti dari ilmu komputer!

    ; Algoritma adalah urutan%urutan dari instruksi atau

    langkah%langkah untuk menyelesaikan suatumasalah!

    ; Algoritma adalah blueprint dari program!; #ebaiknya disusun sebelum membuat program!

    ; $riteria suatu algoritma:

    < Ada input dan output

    < -9ekti/itas dan esien< erstruktur

  • 8/19/2019 Bab 2 Algoritma

    11/33

    &ontoh Algoritma dalam kehidupan

    sehari%hari'engirim surat kepada teman:

    2! ulis surat pada secarik kertas surat!

    =! Ambil sampul surat!

    >! 'asukkan surat ke dalam sampul!! utup sampul surat menggunakan perekat!

    .! @ika kita ingat alamat teman tersebut, maka

    tulis alamat pada sampul surat!

    ! @ika tidak ingat, lihat buku alamat, kemudiantulis alamat pada sampul surat!

    ! empel perangko pada surat!

    C! Baa surat ke kantor pos untuk diposkan!

  • 8/19/2019 Bab 2 Algoritma

    12/33

    Dalam bidang komputer, algoritma sangatdiperlukan dalam menyelesaikan berbagai

    masalah pemrograman, terutama dalamkomputasi numeris!

     anpa algoritma yang dirancang baik makaproses pemrograman akan menjadi salah,rusak, atau lambat dan tidak esien!

    Pelaksana algoritma adalah $omputer!

  • 8/19/2019 Bab 2 Algoritma

    13/33

    'anusia dan komputer berkomunikasi dengancara: manusia memberikan perintah%perintah

    kepada komputer berupa instruksi%instruksiyang disebut program!

    Alat yang digunakan untuk membuat programtersebut adalah bahasa pemrograman!

    Bahasa pemrograman sangat bermacam%macam: &, &, Pascal, @a/a, &E, Basic, Perl,P4P, A#P, @#P, @E, @ dan masih banyakbahasa lainnya!

    Dari berbagai bahasa pemrograman caramemberikan instruksinya berbeda%beda namunbertujuan menghasilkan output yang sama!

  • 8/19/2019 Bab 2 Algoritma

    14/33

    $riteria Algoritma 'enurut Donald-! $nuth2! Input : algoritma dapat memiliki nol atau lebih

    inputan dari luar!

    =! +utput : algoritma harus memiliki minimal satubuah output keluaran!

    >! Deniteness (pasti) : algoritma memiliki instruksi%

    instruksi yang jelas dan tidak ambigu!! 0initeness (ada batas) : algoritma harus memiliki

    titik berhenti (stopping role)!

    .! -Fecti/eness (tepat dan esien): algoritma sebisa

    mungkin harus dapat dilaksanakan dan e9ekti9!&ontoh instruksi yang tidak e9ekti9 adalah: A G A 3atau A G A H 2

    *amun ada beberapa program yang memangdirancang untuk unterminatable: contoh #istem+perasi

  • 8/19/2019 Bab 2 Algoritma

    15/33

     @enis Algoritma2! (e)en%e Pro%e'': instruksi dikerjakan

    secara sekuensial, berurutan!

    =! (ele%tion Pro%e'': instruksi dikerjakan jikamemenuhi kriteria tertentu

    >! Iteration Pro%e'': instruksi dikerjakanselama memenuhi suatu kondisi tertentu

    ! *on%rrent Pro%e'': beberapa instruksidikerjakan secara bersama!

  • 8/19/2019 Bab 2 Algoritma

    16/33

    &ontoh Algoritma 2Algoritma menghitung luas persegi panjang:

    2! 'asukkan panjang (P)

    =! 'asukkan lebar (1)>! 1 P H 1

    ! ulis 1

  • 8/19/2019 Bab 2 Algoritma

    17/33

    Dalam Algoritma, tidak dipakai simbol%

    simbol " sintaks dari suatu bahasapemrograman tertentu, melainkan bersi9atumum dan tidak tergantung pada suatubahasa pemrograman apapun juga!

    *otasi%notasi algoritma dapat digunakanuntuk seluruh bahasa pemrogramanmanapun!

  • 8/19/2019 Bab 2 Algoritma

    18/33

    Denisi Pseudo%code$ode atau tanda yang menyerupai (pseudo)

    atau merupakan pejelasan caramenyelesaikan suatu masalah!

    Pseudo%code sering digunakan oleh manusiauntuk menuliskan algoritma!

  • 8/19/2019 Bab 2 Algoritma

    19/33

    Problem : mencari bilangan

    terbesar dari dua bilangan yangdiinputkan&ontoh Pseudo%code:2! 'asukkan bilangan pertama

    =! 'asukkan bilangan kedua>! @ika bilangan pertama J bilangan kedua

    maka kerjakan langkah , jika tidak, kerjakanlangkah .!

    ! ampilkan bilangan pertama

    .! ampilkan bilangan kedua

  • 8/19/2019 Bab 2 Algoritma

    20/33

    Problem : mencari bilangan

    terbesar dari dua bilangan yangdiinputkan&ontoh Algoritma2! 'asukkan bilangan pertama (a)

    =! 'asukkan bilangan kedua (b)>! i9 a J b then kerjakan langkah

    ! print a

    .! print b

  • 8/19/2019 Bab 2 Algoritma

    21/33

    &ontoh 1ain

  • 8/19/2019 Bab 2 Algoritma

    22/33

    &ontoh Algoritma ='encari akar bulat positi9 dari bilangan

    bulat (integer) positi9 a:

    'asukkan bilangan bulat positi9 aBerikan harga aal K sama dengan 24itung y sebesar K H K @ika y sama dengan a maka cetak K

    sebagai akar dari a! #elesai ambah nilai K dengan 2Pergi ke langkah >!

  • 8/19/2019 Bab 2 Algoritma

    23/33

    &ontoh Algoritma >'enentukan apakah suatu bilangan merupakan

    bilangan ganjil atau bilangan genap!

    'asukkan sebuah bilangan sembarang Bagi bilangan tersebut dengan bilangan =

    4itung sisa hasil bagi pada langkah =!

    Bila sisa hasil bagi sama dengan 3 maka

    bilangan itu adalah bilangan genap tetapi bilasisa hasil bagi sama dengan 2 maka bilanganitu adalah bilangan ganjil!

    # l 1 tih

  • 8/19/2019 Bab 2 Algoritma

    24/33

    #oal 1atihan2!Buatlah algoritma untuk menghitung kon/ersi suhu!dari

    &elcius menjadi eamur dan 0arenheit!Input: suhu dalam &elcius

    Proses: G ". H & dan 0 G L". H & >=+utput: suhu dalam eamur dan 0arenheit

    =!Buatlah algoritma untuk mencari sisi miring dari suatusegitiga siku%siku, jika diketahui panjang sisi yangmembentuk sudut siku%siku!Input: a dan b, yaitu panjang sisi pembentuk sudut siku%siku

    Proses:+uput: sisi miring (c)

    >!Buatlah algoritma untuk menentukan suatu bilangangenap atau ganjilInput: suatu bilangan+uput: genap " ganjil

    !Buatlah algoritma untuk menentukan suatu bilanganadalah bilangan prima atau bukan!

  • 8/19/2019 Bab 2 Algoritma

    25/33

    0lochartBagan%bagan yang mempunyai arus yang

    menggambarkan langkah%langkah penyelesaiansuatu masalah!'erupakan cara penyajian dari suatu algoritma!Ada = macam 0lochart :

    < #ystem 0lochart   urutan proses dalam system  dengan menunjukkan alat media input, outputserta

      jenis media penyimpanan dalam proses  pengolahan data!< Program 0lochart  urutan instruksi yang  digambarkan dengan symbol tertentu untuk  memecahkan masalah dalam suatu program!

  • 8/19/2019 Bab 2 Algoritma

    26/33

    &ontoh Program 0lochartS t a r t

    P r in t J u d u l

    R E A D

    D a t a

     A k h ir 

    f i le ?E n d

    K d e ! " P "

    P R #$ %

    $ a & a ' A la & a t

    " P e r e & ( u a n "

    ) a

    % i d a k

    ) a

    % i d a k

  • 8/19/2019 Bab 2 Algoritma

    27/33

    #imbol%simbol 0lochartFlow Direction Symbols (#imbol penghubungalur)

    Processing Symbols (#imbol proses)!

    Input-output Symbols (#imbol input%output)

  • 8/19/2019 Bab 2 Algoritma

    28/33

    #imbol%simbol 0lochart

  • 8/19/2019 Bab 2 Algoritma

    29/33

    #imbol%simbol 0lochart <

    Cont.

  • 8/19/2019 Bab 2 Algoritma

    30/33

    Pembuatan 0lochart idak ada kaidah yang baku!0lochart G gambaran hasil analisa

    suatu masalah0lochart dapat ber/ariasi antara satu

    pemrogram dengan pemrogram lainnya!#ecara garis besar ada > bagian utama:

    < Input< Proses

    < +utput

  • 8/19/2019 Bab 2 Algoritma

    31/33

    Pembuatan 0lochart <cont.4indari pengulangan proses yang tidak

    perlu dan logika yang berbelit sehingga

     jalannya proses menjadi singkat!

     @alannya proses digambarkan dari atas

    ke baah dan diberikan tanda panah

    untuk memperjelas!

    #ebuah Mochart diaali dari satu titik#A dan diakhiri dengan -*D!

  • 8/19/2019 Bab 2 Algoritma

    32/33

    &ontoh 2 0lochart

  • 8/19/2019 Bab 2 Algoritma

    33/33

    &ontoh = 0lochart