Sabtu, 20 Mei 2017

Algoritma dan Pemrograman


WELCOME TO STMIK MUHAMMADIYAH JAKARTA
Website : http://www.stmikmj.ac.id



Assalamualaikum Warahmatullahi Wabarakatuh
Bissmillahirohmanirohim.

Selamat siang pembaca Blogger STMIK Muhammadiyah Jakarta. Kali ini saya akan
memposting tugas kuliah sebagai berikut :

Mata Kuliah                 : Algoritma dan Pemrograman
Dosen                          : Ibu Habibah Nur Fauziah Syafa, S.kom M.Si
Tugas                           : UAS 1
Judul                            : "Materi Algoritma dan Pemrograman"


Baiklah berikut postingan saya mengenai materi Algoritma dan Pemrograman.

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

I.       Definisi Algoritma
Serangkaian langkah yang terstruktur secara sistematis yang akan dikerjakan untuk menyelesaikan suatu masalah dengan bantuan computer. Serta alur pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis.
v Alur pikiran, sehingga algoritma seseorang dapat juga berbeda dari algoritma orang lain.
v Tertulis, artinya dapat berupa kalimat, gambar atau table tertentu.

Contoh Algoritma :
v Jika seseorang ingin mengirim surat kepada kenalannya ditempat lain, maka langkah yang harus dilakukan adalah :
1.  Menulis surat.
2.  Surat dimasukkan kedalam amplop tertutup.
3.  Amplop ditempeli perangko secukupnya.
4.  Pergi ke kantor pos terdekatuntuk mengirimkannya.
Dalam suatu bidang computer, algoritma sangat diperlukan dalam menyelesaikan berbagai suatu masalah pemrograman terutama dalam komputasi numeris.
Tanpa algoritma yang dirancang dengan baik, maka proses pemrograman akan menjadi salah, rusak, lambat dan tidak efisien.

II.       Kriteria Algoritma
v Input, algoritma dapat memiliki nol atau lebih inputan dari luar.
v Output, algoritma harus memiliki minimal satu buat output (keluaran).
v Definiteness (Pasti), algoritma memiliki intruksi-intruksi yang jelas dan tidak ambigu.
v Finiteness (ada batas), algoritma harus memiliki titik berhenti (stopping role).
v Effectiveness (tepat dan efisien), algoritma sebisa mungkin harus dapat dilaksanakan dan efektif. Contoh intruksi yang tidak efektif adalah :
A = A + 0 atau A = A * 1

III.       Jenis Proses Algoritma
v Sequence Process, intruksi dikerjakan secara sekuensial, berurutan.
v Selection Process, Intruksi dikerjakan jika memenuhi kriteria tertentu.
v Iteration Process, Intruksi dikerjakan  selama memenuhi suatu kondisi tertentu.
v Concurrent Process, beberapa intruksi dikerjakan secara bersamaan.
Contoh :
Algoritma menghitung luas persegi panjang :
·      Masukkan panjang (P)
·      Masukkan Lebar (L)
·      Luas = P*L
·      Tulis Luas.
v Sifat Umum :
·      Tidak menggunakan symbol atau sintaks dari suatubahasa pemrograman.
·      Tidak tergantung pada suatu bahasa pemrograman.

·      Notasi-notasinya dapat digunakan untuk seluruh bahasa manapun.

Selasa, 16 Mei 2017

Flowchart dan Pseudo Code

I.       Definisi Algoritma
Serangkaian langkah yang terstruktur secara sistematis yang akan dikerjakan untuk menyelesaikan suatu masalah dengan bantuan computer. Serta alur pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis.
v Alur pikiran, sehingga algoritma seseorang dapat juga berbeda dari algoritma orang lain.
v Tertulis, artinya dapat berupa kalimat, gambar atau table tertentu.

Contoh Algoritma :
v Jika seseorang ingin mengirim surat kepada kenalannya ditempat lain, maka langkah yang harus dilakukan adalah :
1.  Menulis surat.
2.  Surat dimasukkan kedalam amplop tertutup.
3.  Amplop ditempeli perangko secukupnya.
4.  Pergi ke kantor pos terdekatuntuk mengirimkannya.
Dalam suatu bidang computer, algoritma sangat diperlukan dalam menyelesaikan berbagai suatu masalah pemrograman terutama dalam komputasi numeris.
Tanpa algoritma yang dirancang dengan baik, maka proses pemrograman akan menjadi salah, rusak, lambat dan tidak efisien.

II.       Kriteria Algoritma
v Input, algoritma dapat memiliki nol atau lebih inputan dari luar.
v Output, algoritma harus memiliki minimal satu buat output (keluaran).
v Definiteness (Pasti), algoritma memiliki intruksi-intruksi yang jelas dan tidak ambigu.
v Finiteness (ada batas), algoritma harus memiliki titik berhenti (stopping role).
v Effectiveness (tepat dan efisien), algoritma sebisa mungkin harus dapat dilaksanakan dan efektif. Contoh intruksi yang tidak efektif adalah :
A = A + 0 atau A = A * 1

III.       Jenis Proses Algoritma
v Sequence Process, intruksi dikerjakan secara sekuensial, berurutan.
v Selection Process, Intruksi dikerjakan jika memenuhi kriteria tertentu.
v Iteration Process, Intruksi dikerjakan  selama memenuhi suatu kondisi tertentu.
v Concurrent Process, beberapa intruksi dikerjakan secara bersamaan.
Contoh :
Algoritma menghitung luas persegi panjang :
·      Masukkan panjang (P)
·      Masukkan Lebar (L)
·      Luas = P*L
·      Tulis Luas.

v Ciri – ciri algoritma :
·      Ada input,
·      Ada proses,
·      Ada Output,
·      Memiliki intruksi – intruksi yang jelas dan tidak ambigu.
·      Harus mempunyai Stopping role.

v Sifat Umum :
·      Tidak menggunakan symbol atau sintaks dari suatubahasa pemrograman.
·      Tidak tergantung pada suatu bahasa pemrograman.
·      Notasi-notasinya dapat digunakan untuk seluruh bahasa manapun.

Contoh kasus dalam kehidupan sehari – hari :
·      Rebus air hingga mendidih.
·      Masukkan mie instan kedalam air mendidih tersebut.
·      Tunggu beberapa hingga mie terlihat matang.
·      Jika mie sudah matang, angkat dan tiriskan.
·      Campurkan bumbu – bumbu dan aduk hingga merata.

I.     Flowchart
Flowchart adalah Bagan-bagan yang mempunyai arus yang menggambarkan langkah-langkah penyelesaian suatu masalah. Flowchart merupakan cara penyajian dari suatu algoritma.
Ada beberapa jenis flowchart diantaranya adalah sebagai berikut  :
1.  System Flowchart
Bagan yang memperlihatkan urutan proses dalam system dengan menunjukan alat media input, output serta jenis media penyimpanan dalam proses pengolahan data.
2.  Document Flowchart
Bagan alir dokumen  (document flowchart)  atau disebut juga bagan alir formulir  (form  flowchart)  atau  paperwork flowchart merupakan bagan alir yang menunjukkan arus dari laporan dan formulir termasuk tembusan-tembusannya.
3.  Schematic Flowchart
Bagan alir skematik (schematic flowchart) merupakan bagan alir yang mirip dengan bagan alir sistem, yaitu untuk menggambarkan prosedur di dalam sistem. Perbedaannya adalah, bagan alir skematik selain menggunakan simbol-simbol bagan alir sistem, juga menggunakan gambar-gambar komputer dan peralatan lainnya yang digunakan. Maksud penggunaan gambar-gambar ini adalah untuk memudahkan komunikasi kepada orang yang kurang paham dengan simbol-simbol bagan alir. Penggunaan gambar-gambar  ini  memudahkan untuk dipahami, tetapi sulit dan lama menggambarnya.
4.    Program Flowchart
Bagan yang memerlihatkan urutan intruksi yang digambarkan dengan symbol tertentu untuk memecahkan masalah dalam suatu program.
5.    Process Flowchart
Bagan alir proses  (process flowchart)  merupakan bagan alir yang banyak digunakan di teknik industri. Bagan alir ini juga berguna bagi analis sistem untuk menggambarkan proses dalam suatu prosedur


Definisi Flowchart
Bentuk gambar/ diagram yang mempunyai aliran satu atau dua arah secara sekuensial.

Kegunaan Flowchart :
·      Untuk mendesain program.
·      Untuk mempersentasikan program

Secara garis besar, unsur – unsur pemrograman adalah Input – Proses – Output. Semua bahasa pemrograman, pasti mempunyai komponen – komponen sebagai berikut :
·      Input (scanf)
·      Percabangan (if, switch)
·      Perulangan (while, for, for each, loop).
·      Output (print).
Berikut ini adalah symbol – symbol flowchart :


























Contoh flowchart :
Menghitung luas segitiga.
Algoritma :
·      Masukkan alas (a)
·      Masukkan tinggi (t)
·      Hitung luas (L), yaitu hasil 0.5 * alas * tinggi
·      Cetak luas (L)

















II.       Pseudo-Code
v  Pseudo-code adalah kode atau tanda yang menyerupai  (pseudo) atau merupakan penjelasan cara menyelesaikan suatu masalah.
v  Pseudo-code sering digunakan oleh seseorang untuk menuliskan algoritma dari suatu masalah.
v   Pseudo-code berisikan langkah-langkah untuk menyelesaikan suatu permasalahan (hamper sama dengan algoritma), hanya saja bentuk nya sedikit berbeda dari algoritma.
v  Pseudo-code menggunakan bahasa yang hamper menyerupai bahasa pemrograman. Selain itu, biasanya pseudo-code menggunakan bahasa yang mudah dipahami secara universal dan juga lebih ringkas dari pada algoritma.
v   Beda antara algoritma dan pseudo-code :
Contoh algoritma mencari luas persegi panjang :








Challenge :
§  Algoritma Luas_Segiempat
§  Menghitung luas segiempat dengan memasukkan nilai lebar dan panjang segiempat
§  Deklarasi luas,panjang,lebar : bil. bulat
§  Deskripsi :
1.  Masukkan nilai lebar dan panjang
2.  Hitung luas sama dengan panjang kali lebar

3.  Tampilkan Luas















Menghitung luas segitiga
Algoritma :
  1. Masukkan alas (a)
  2. Masukkan tinggi (t)
  3. Hitung luas (L); yaitu 0.5 * alas * tinggi
  4. Cetak luas (L)















Buatlah algoritma menggunakan pseudocode & flowchart untuk menentukan luas persegi panjang.
§  Pseudocode :

Start
Input panjang
Input lebar
Hitung Luas=Panjang*lebar
Cetak "Luas"
Stop

















Buatlah algoritma menggunakan pseudocode & flowchart untuk mengubah jam dan menit yang diinput ke dalam satuan detik
§  Pseudocode :
Start
Input jam
Input menit
Hitung detik=(jam*3600)+(menit*60)
Cetak "detik"
    Stop


















Buatlah algoritma menggunakan pseudocode & flowchart untuk menghitung luas lingkaran.
§  Pseudocode :
Start
Input 
Ï€
Input r
Hitung Luas=
Ï€*r*r
Cetak "Luas"
Stop
















III.       Algoritma dan flowchart untuk deret bilangan Fibonacci ( 1, 1, 2, 3, 5, 8, 13, 21 )

















IV.       Algoritma Pemrograman - Pengulangan atau Looping
  
§  Pengulangan / looping adalah pelaksanaan suatu instruksi berulang kali. Di dalam algoritma, pengulangan dapat dilakukan sejumlah kali, atau sampai kondisi berhenti pengulangan tercapai.
§  Struktur Pengulangan
Bentuk Umum:    
    <inisialisasi>
                              awal pengulangan
                              badan pengulangan
                              akhir pengulangan
   <terminasi>
§  <inisialisasi>: aksi yang dilakukan sebelum pengulangan dilakukan untuk pertama kalinya.
§  Badan pengulangan: bagian algoritma yang diulang
§  <terminasi>: aksi yang dilakukan setelah pengulangan selesai dilaksanakan
§  <inisialisasi> dan <terminasi> tidak selalu ada, namun pada berbagi kasus inisialisasi umumnya diperlukan awal dan akhir pengulangan dinyatakan sebagai kata kunci yang bergantung pada struktur pengulangan yang digunakan.

§  Macam struktur pengulangan
Struktur FOR    pengulangan tanpa kondisi (unconditional looping) jumlah pengulangan sudah diketahui  sebelum eksekusi
§  Struktur WHILE 
§  pengulangan dengan kondisi (conditional looping) jumlah pengulangan tidak diketahui  sebelum eksekusi program. Yang dapat ditentukan hanya kondisi berhenti
Struktur REPEAT  pengulangan (instruksi-instruksi di dalam badan pengulangan diulangi sampai kondisi   berhenti terpenuhi).
Struktur FOR
Struktur pengulangan FOR digunakan untuk mengulang statemen atau satu blok statemen berulang kali.
Jumlah pengulangan diketahui atau dapat ditentukan sebelum eksekusi.
Untuk mencacah sudah jumlah pengulangan diperlukan sebuah peubah (variable) pencacah (counter). Peubah ini nilainya selalu bertambah satu setiap kali pengulangan dilakukan.
Jika cacah pengulangan sudah mencapai jumlah yang dispesifikasikan, maka proses pengulangan berhenti.

Bentuk umum struktur FOR:
– Menaik (ascending)
– Menurun (descending)

§  FOR menaik
for pencacah <- nilai_awal to nilai_akhir do
    aksi
endfor
§  pencacah -> menggunakan tipe data yang memiliki predecessor dan successor, yaitu integer atau karakter (tipe riil tidak dapat digunakan sebagai pencacah)
§  aksi -> satu atau lebih instruksi yang diulang.
§  nilai_awal harus lebih kecil atau sama dengan nilai_akhir (jika nilai_awal lebih besar dari nilai_akhir, maka badan pengulangan tidak dimasuki)
§  pada awalnya pencacah diinisialisasikan dengan nilai_awal. Nilai pencacah secara otomatis bertambah satu setiap kali aksi pengulangan dimasuki, sampai akhirnya nilai pencacah sama dengan nilai_akhir
§  jumlah pengulangan yang terjadi = nilai_akhir – nilai_awal + 1

Contoh: Mencetak tulisan ‘Informatika’ sebanyak 5 kali
Algoritma CETAK_INFORMATIKA
    { Mencetak ‘Informatika’ sebanyak 5 kali }
DEKLARASI
     k : integer { pencacah pengulangan }
DESKRIPSI :
for k¬1 to 5 do { ulangi sebanyak 5 kali }
    write(‘Informatika’)
endfor