Materi Algoritma Pemograman

MATERI ALGORITMA PEMOGRAMAN






DAFTAR ISI



KATA PENGANTAR

Puji syukur kehadirat Allah subhanahu wata’ala atas Rahmat dan HidayahNya Penysun dapat menyelesaikan penyusunan Buku Ajar Mata Kulialh Logika dan Algoritma ini. Penyusun menyadari, bahwa tanpa  bimbinga dan  bantuan  dari  berbagai  pihak,  sulit  rasanya penyusun dapat menyelesaikan penyusunan 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 Universitas Ibrahimy Sukorejo Situbondo yang telah memberikan kesempatan, dukungan kepada penyusun Buku Ajar untuk melaksanakan perkuliahan di Fakultas Sains dan teknologi. Semoga kebaikan dan bantuan beliau diberikan balasan oleh Allah SWT dengan balasan yang terbaik.
3.  Rekan-rekan dosen Fakultas Sains dan Teknologi Universitas Ibrahimy yang turut membantu atas terselesaikannya buku ajar ini, keluarga serta semua pihak yang selalu memberikan dukungan dan doa. Semoga amal baik yang telah diberikan kepada penyusun mendapatkan balasan yang terbaik dari Allah SWT.
Penyusun menyadari bahwa buku ajar ini masih jauh dari harapan. Oleh karena itu, saran dan kritik yang konstruktif sangat diharapkan demi penyempurnaan laporan ini. Akhir kata, semoga perangkat  pembelajaran  ini  dapat  memberikan  manfaat,  walaupun sekecil dzarrah untuk meningkatkan kualitas pendidikan di Indonesia.




Situbondo, Agustus 2018
Penyusun


Abd. Ghofur, M.Kom.








BAB 1
Pengertian Dasar Logika Dan Algoritma


Sejarah Algoritma
Asal  kata  Algoritma  berasal  dari  nama  Abu  Ja’far  Mohammed  Ibn  Musa al-Khowarizmi, ilmuan  Persia  yang  menulis  kitab  al  jabr  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 masalah urutan  langkah  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  seseorang  dapat berbeda dari algoritma orang lain.
tertulis, yang  artinya  dapat  berupa  kalimat,  gambar,  atau  tabel tertentu.

Dalam bidang komputer, algoritma sangat diperlukan dalam menyelesaikan      berbagai  masalah pemrograman, terutama dalam komputas numeris.  Tanpa  algoritma  yang  dirancang  baik  maka proses  pemrograman akan  menjadi  salah,  rusak,  atau  lambat  dan tidak efisien.

Note:
Algoritma Di butuhkan untuk   memerintah compute  mengambil langkah- langkah 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  sering  membingungkan  (ambigu)    sulit dipahami.
2.    Menggunakan Flowchart


Baik karena alur algoritma dapat dilihat secara visual, tetapi   repot pembuatannya jika algoritma panjang
3.    Menggunakan Pseudocode
Sudah  dekat  dengan  bahasa  pemrograman, tetap 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 lingkaran. Rumus :  ∏ . 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 suatu prosedur 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 dan  pemindahan data











p
5.   menunjukkan     proses     input
atau output
6.   untuk         mewakili         operasi perbandingan logika
7.   proses yang ditulis sebagai sub program,      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/diekspresikan menggunakan 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 dan  set  maks  sama  dengan  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++
1  #include <iostream>
2
3  using namespace std;
4
5  int main()
6  {
7      int        Bilangan_pertama,        Bilangan_kedua,
8  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 melihat effisiensi dan  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 sejumlah langkah terbatas
2.     Definite  setiap langkah  didefinisikan secara    tepat,  tidak  boleh membingungkan (ambigu)
3.    Input        sebua  algoritma   memiliki  nol/lebih  input   sebelum
dijalankan
4.     Output     algoritma  memiliki  satu/lebih  output,  yang  biasanya bergantung kepada input
5.     Effective setiap algoritma diharapkan memiliki sifat efektif. (setiap langkah harus sederhana
dan sehingga dapat dikerjakan dalam waktu yang masuk
akal)

    Langkah-langkah  yang  membentuk  suatu  algoritma  dapat  dibagi menjadi 3 kelompok proses:
1.     Sequence  Process    instruksi  dikerjakan  secara  berurutan  satu persatu dimulai dari langkah pertama sampai terakhir.
2.    Selection   Proces    instruks  pemilihan   prose  (percabangan),
sehingga  apabila  memenuhi  persyaratan  tertentu  maka  instruksi akan dikerjakan.
Contoh : jika pembayaran tunai diberi diskon 10%
Jika dilakukan secara redit maka diskon 0 %.
(dala  pernyataa  diatas  hanya   bole  melakuka  1 instruksi dari 2 alternatif instruksi.
3.     Iteration Process  suatu instruksi yang dikerjakan berulang-ulang selama beberapa kali selama masih memenuhi suatu kondisi.

Tugas 1 :
Buatlah  algoritma  (dengan  bahasa  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 B     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 yang benar.
Langkah di atas tidak logis, hasil pertukaran yang terjadi adalah percampuran
kedua larutan tersebut.

Penyelesaian :


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






A                                                          B                                               C 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.     Seorang  Petani  akan  berpergian  ke  kota  dengan     membawa  seekor kambing, 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 diperbolehkan membawa sekaligus bawaannya mengingat kapasitas kekuatan perahu tersebut, dan untuk melaluinya petani harus membawa satu persatu bawaannya. Ditanya: berapa 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 yang sedang 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.     Seorang  siswa  mendaftar  santri  baru  pada  bagian  registrasi,  setelah menyelesaikan penulisan biodata santri, siswa tersebut di diperkenankan untuk  pindah  ke  bagian  seleksi  untuk  diuji  baca  alQur’an,  jika  ujian


alQur’an lulus maka siswa tersebut melanjutkan ke bagian asrama untuk menentukan asrama, 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++

Share:

Tidak ada komentar:

Posting Komentar

Popular Posts

Recent Posts