MATERI KULIAH ALGORITMA PEMOGRAMAN








Disusun oleh:
 Abd. 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 Darie
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++Mat