• Posted by : diana Kamis, 03 Oktober 2019

    MATERI KULIAH ALGORITMA PEMOGRAMAN








    Disusun oleh:
     Abdul Ghafur, M.Kom.


    FAKULTAS SAINS DAN TEKNOLOGI PRODI TEKNOLOGI INFORMASI
    UNIVERSITAS IBRAHIMY SUKOREJO SITUBONDO
    2019

    DAFTAR ISI

    KATA PENGANTAR

    Puji syukur kehadirat Allah subhanahwata’ala atas Rahmadan HidayahNya Penysun dapat menyelesaikapenyusunan Buku Ajar Mata Kulialh Logika dan Algoritma ini. Penyusun menyadari, bahwa tanp bimbingan  dan  bantuan  dar berbagai  pihak sulit  rasanypenyusun dapat menyelesaikapenyusunan prangkat pembelajaran ini. Oleh karena itu penyusun mengucapkan banyak terima kasih kepada:
    1.    Rektor Universitas Ibrahimy Sukorejo Situbondo.
    2 Civitas akademika Fakultas Sains dan Teknologi UniversitaIbrahimy Sukorejo Situbondo yang telah memberikan kesempatandukungakepada penyusun Buku Ajar untuk melaksanakaperkuliahan di Fakultas Sains dan teknologi. Semoga kebaikan dan bantuabeliau diberikan balasan oleh Allah SWT dengan balasan yang terbaik.
    3 Rekan-rekadosen Fakultas Sains dan Teknologi Universitas Ibrahimy yanturut membantu atas terselesaikannya bukajar inikeluarga serta semupihak yanselalu memberikan dukungan dan doa. Semogamal baik yang telah diberikan kepada penyusumendapatkan balasan yang terbaik dari Allah SWT.
    Penyusun menyadarbahwa buku ajar ini masih jauh darharapan. Oleh karena itu, saran dan kritik yang konstruktif sangat diharapkan demi penyempurnaan laporan ini. Akhir kata, semogperangka pembelajaran  in dapat  memberikan  manfaat,  walaupusekecil dzarrah untuk meningkatkan kualitas pendidikan di Indonesia.




    Situbondo, Agustus 2018
    Penyusun


    Abd. Ghofur, M.Kom.







    BAB 1
    PengertiaDasar Logika DaAlgoritma


    Sejarah Algoritma
    Asa kata  Algoritma  berasa dar nama  Ab Ja’fa Mohamme Ib Musal-Khowarizmi, ilmua Persia  yan menulis  kita a jab w’al-muqabala (rules of restoration and reduction) sekitar tahun 825 M
    A.    Algoritma
      Urutan langkah-langkah untuk memecahkan masalah
      Urutan logis pengambilan putusan untuk memecahkan masalauruta langka logis berarti  algoritma  harus  mengikuti  suatu urutan tertentu, tidak boleh melompat-lompat.
      Alur    pemikiran    dalam    menyelesaikan    suatu    pekerjaan    yang
    dituangkan secara tertulis.
    Alur  pikiran yang artinya algoritma  seseoran dapat berbeda daralgoritma orang lain.
    tertulis, yan artinya  dapa berupa  kalimat,  gambar ata tabel tertentu.

    Dalam bidang komputeralgoritma sangat diperlukan dalam menyelesaikan      berbagai  masalah pemrograman, terutama dalakomputasi  numeris Tanpa  algoritma  yan dirancan baik  maka prose pemrograman aka menjadi  salah,  rusak ata lamba dan tidak efisien.

    Note:
    Algoritma Di butuhkan untuk   memerintah computer   mengambil langkahlangkah tertentu untuk menyelesaikan masalah

    Algoritma  Pemrograman  Program

    Agar algoritma dapat memerintah (diproses) komputer, maka dirubah menjadi bentuk program (melalui proses pemrograman).

    Penulisan Algoritma :
    1.     Menggunakan bahasa natural (Bahasa manusia: Indonesia, Inggris) Kelemahannya     masih  serin membingungka (ambigu)  /   sulit dipahami.
    2.    Menggunakan Flowchart

    Baik karena alur algoritma dapat dilihat secara visual, tetapi   repot pembuatannya jika algoritma panjang
    3.    Menggunakan Pseudocode
    Suda deka denga bahasa  pemrograman, tetapi  sulit  dimengerti oleh orang yang belum tahu pemrograman
    B.    Tahap Analisa Algoritma
    1.    Bagaimana merencanakan algoritma
    Dengan Mendefinisikan masalah.
    Contoh : Permasalahan menghitung luas lingkaran,
    dengan data yang diketahui adalah diameter lingkaranRumus :  ∏ . r2 dengan Phi = 3.14 atau 22/7.
    2.    Bagaimana menyatakan suatu algoritma (menulis algoritma)
    Dengan flowchart / diagram alir
    Program Flowchart
    Yaitu bagan yang menggambarkan urutan logika dari suatprosedur pemecahan masalah.
    1.   Simbol yang digunakan :
    2.   menunjukkan awal dan akhir dari program
    3.   memberikan niai awal pada suatu variabel atau counter
    4.   menunjukkan pengolahan aritmatika da pemindahadata











    p
     
    5.   menunjukkan     proses     input
    atau output
    6.   untuk         mewakili         operasperbandingan logika
    7.   proses yang ditulis sebagai suprogram,      yaitu      prosedur/
    fungsi
    8.   penghubung     pada     halaman yang sama
    9.
    enghubung     pada      halaman yang berbeda

    Contoh :
















    Atau flowchart yang dibuat dengan program raptor




























    Dengan psudocode

    suatu cara  penulisan algoritma agar ide dan logika dari algoritma dapat disampaikan/diekspresikamenggunakan gaya bahasa pemrograman pemrograman tertentu.







    Dengan statement program /penggalan program :
    Dari algoritama yang telah dibuta dapat diterjemahkan ke dalam
    Statemen program C++ sebagai berikut :

    1
    #include <iostream>

    2

    3
    using namespace std;
    4

    5
    int main()
    6
    {
    7
    float phi = 3.14;
    8
    float Diameter, Radius, Luas_Lingkaran;
    9
    cout << "Masukkan Nilai Diameter : ";
    10
    cin >> Diameter;
    11
    Radius = Diameter / 2;
    12
    Luas_Lingkaran = phi * Radius * Radius;
    13
    cout  <<  "Luas  Lingkaran  adalah  :
    "
    << 
    14
    Luas_Lingkaran;


    15
    return 0;


    }


    3.    Bagaimana validitas suatu algoritma
    4.    Bagaimana menganalisa suatu algoritma
    5.    Bagaimana menguji program dari suatu algoritma

    Studi Kasus :
    Buatlah Algoritma untuk memilih bilangan terbesar dari 3 buah bilangan
    ?

        Dengan Bahasa Natural
    1.    Memasukkan bilangan pertama
    2.    Memasukkan bilangan kedua
    3.    Memasukkan bilangan ketiga
    4.     Ambil  bilangan pertama da se mak sama  denga bilangan pertama
    5.    Ambil bilangan kedua dan bandingkan dengan maks

    6.     Apa bila bilangan kedua lebih besar dari maks, set maks sama dengan bilangan kedua
    7.    Ambil blangan ketiga dan bandingan dengan maks
    8.     Apabila bilangan ketiga lebih besar dari maks, set maks sama dengan bilangan ketiga
    9.    Variabel maks berisi bilangan terbesar
    10.  Tampilkan hasil bilangan terbesar
    11.  Selesai

        Dengan Flowchart

        Dengan Pseudo-code

    Input (Bilangan_pertama)

    Input (Bilangan_kedua) Input (Bilangan_ketiga) maks  bilangan_pertama
    if (maks < bilangan_kedua) then maks  bilangan_kedua
    if (maks < bilangan_ketiga) then maks  bilangan_ketiga
    output (maks)
    End.

        Dengan Bahasa Pemrogaraman C++
     #include <iostream>
    2
     using namespace std;
    4
     int main()
     {
    7      int        Bilangan_pertama,        Bilangan_kedua,
     Bilangan_ketiga, maks;
    9
    10      cout << "Masukkan bilangan yang pertama : ";
    11      cin >> Bilangan_pertama;
    12      cout << "Masukkan bilangan yang kedua : ";
    13      cin >> Bilangan_kedua;
    14      cout << "Masukkan bilangan ketiga : ";
    15      cin >> Bilangan_ketiga;
    16
    17      maks = Bilangan_pertama;
    18      if (maks < Bilangan_kedua) {
    19          maks = Bilangan_kedua;
    20      }
    21      if (maks < Bilangan_ketiga) {
    22          maks = Bilangan_ketiga;
    23      }
    24      cout << "Bilangan terbesar adalah : " << maks;
    25      return 0;
    }



    C.    Tahap Proses Uji Algoritma
    1.    Pengujian Tahap Debuging
    Untuk mengecek kesalahan program, Baik sintaksis maupun logika.
    2.    Pengujian tahap profiling.
    Untuk menentukan waktu tempuh dan banyak nya memori program yang digunakan.
    D.    Analisis Algoritma

    Untuk melihaeffisiensi da efektifitas dari suatu algoritma, dapat dilihat dari:
    1.    Waktu Tempuh dari Suatu Algoritma
    2.    Jumlah memori yang digunakan

    E.    Sifat-sifat Algoritma
    Aspek Penting Algoritma :
    1.     Finite       algoritma harus berhenti setelah mengerjakan sejumlalangkah terbatas
    2.     Definite  setiap langka didefinisikan secara    tepat,  tida boleh membingungkan (ambigu)
    3.    Input        sebuah   algoritma   memilik nol/lebih  input   sebelum
    dijalankan
    4.     Output     algoritma  memilik satu/lebih  output,  yan biasanya bergantung kepada input
    5.     Effective setiap algoritma diharapkan memiliki sifat efektif. (setialangkah harus sederhana
    dan sehingga dapat dikerjakan dalam waktu yang masuk
    akal)

        Langkah-langka yang  membentu suat algoritma  dapa dibagi menjadi 3 kelompok proses:
    1.     Sequenc Proces   instruks dikerjaka secar beruruta satu persatu dimulai dari langkah pertama sampai terakhir.
    2.    Selection   Process     instruksi   pemilihan   proses   (percabangan),
    sehingga  apabil memenuhi  persyarata tertentu  mak instruksakan dikerjakan.
    Contoh : jika pembayaran tunai diberi diskon 10%
    Jika dilakukan secara redit maka diskon 0 %.
    (dalam   pernyataan   diatas,   hanya   boleh   melakukan   1 instruksi dari 2 alternatif instruksi.
    3.     Iteration Process  suatu instruksi yang dikerjakan berulang-ulanselama beberapa kali selama masih memenuhi suatu kondisi.

    Tugas 1 :
    Buatla algoritma  (denga bahas natural Flowchart,  pseudocode dan program C++):
    1.    Menampilkan bilangan ganjil dari 1 sampai dengan 10.
    2.    Menghitung jumlah deret : 1 + 2 + 3 + 4 + .... + N
    N = jumlah maksimum suatu nilai yang dimasukkan.

    BAB 2
    Konsep Algoritma

    KONSEP ALGORITMA

    Studi Kasus:

    Algoritma TUKAR ISI BEJANA






    A                                     B Diberikan dua buah bejana A dan B,
    bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru.
    Pertukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi
    larutan
    berwarna biru dan bejana B berisi larutan berwarna merah.

    algoritma :
        Tuangkan larutan dari bejana A ke dalam bejana     Tuangkan larutan dari bejana B ke dalam bejana A.




    Apakah cara di atas BENAR ?
    Apakah hasil yang didapat sesuai dengan penyelesaian masalah? Apa hasil yang didapat ?


    Algoritma TUKAR ISI BEJANA di atas tidak menghasilkan pertukaran yanbenar.
    Langkah di atas tidak logis, hasil pertukaran yang terjadi adalah percampuran
    kedua larutan tersebut.

    Penyelesaian :

    Untuk mempertukarkan isi duah bejana, diperlukan sebuah bejana tambahasebagai tempat penampungan sementara, misalnya bejana C.






    A                                                          B                                               Algoritma yang menghasikan pertukaran yang benar sebagai berikut:
    1.    Tuangkan larutan dari bejana A ke dalam bejana C.
    2.    Tuangkan larutan dari bejana B ke dalam bejana A.
    3.    Tuangkan larutan dari bejana C ke dalam bejana B. TUGAS 2 :
    1.     Seoran Petan aka berpergia k kota  dengan     membaw seekokambing, Anjing dan Rumput Yang ketiganya memliki berat yang tidak jauh berbeda, ditengah jalan petani harus menyebrangi sungai dengan menggunakan perahu dan untuk melaluinya petani tersebut tidak diperbolehkamembawa sekaligus bawaannya mengingat kapasitakekuatan perahu tersebut, dan untuk melaluinya petani harus membawsatu persatu bawaannya. Ditanyaberapa kali petani tersebut harus melalui sungai   dengan memperhatikan bahwa kambing makan rumput, anjing makan kambing ?.
    Buatlah Algoritma Dengan Bahasa Natural dan flowchart dokumen Dari
    Cerita di atas!

    2.     Bagaimana caranya untuk menyeberangkan tiga orang missionaris yansedang dikejar oleh Tiga orang kanibal ke sisi pulau yang ada diseberangnya
    Dengan catatan : Bila misionarisnya Lebih sedikit dari dari kanibal, maka
    misionaris tersebut akan dimakannya.
    Buatlah Algoritma Dengan Bahasa Natural dan flowchart dokumen Dari
    Cerita di atas!


    3.     Seoran sisw mendafta santr bar pada  bagia registrasi,  setelah menyelesaikan penulisan biodata santri, siswa tersebut di diperkenankan untuk  pinda k bagia seleks untuk  diuji  bac alQur’an jik ujian

    alQur’an lulus maka siswa tersebut melanjutkake bagian asrama untuk menentukaasrama, jika ujian alqur’an tidak lulus maka siswa tersebut berstatus waiting list (daftar tunggu ) dan bisa kembali 1 minggu setelahnya.
    Dari cerita di atas lakukan analisa dan buatlah :
    a. Flowchart Proses
    b. Flowchart Dokumen
    c. Flowchart dengan program Raptor!
    d. Program dengan bahasa C++

    Leave a Reply

    Subscribe to Posts | Subscribe to Comments

  • - Copyright © PENGALAMAN BERPROSES - Powered by Blogger - Designed by Johanes Djogan -