SlideShare a Scribd company logo
BAB II
PENYAJIAN ALGORITMA
1. Tujuan pembelajaran
2. Deskripsi umum
3. Penyajian
3.1 PENYAJIAN dan Notasi ALGORITMA
Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada
sebuah program. Algoritma yang baik tanpa pemilihan struktur data yang tepat
akan membuat program menjadi kurang baik, demikian juga sebaliknya.
Pembuatan algoritma mempunyai banyak keuntungan di antaranya :
a. Pembuatan atau penulisan algoritma tidak tergantung pada bahasa
pemrograman manapun, artinya penulisan algoritma independen dari
bahasa pemrograman dan komputer yang melaksanakannya.
b. Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa
pemrograman.
c. Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama
karena algoritmanya sama.
Beberapa hal yang perlu diperhatikan dalam membuat algoritma :
a. Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah.
Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah
dimengerti dan dipahami.
b. Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi
bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma
disebut notasi algoritmik.
c. Setiap orang dapat membuat aturan penulisan dan notasi algoritmik
sendiri. Hal ini dikarenakan teks algoritma tidak sama dengan teks
program. Namun, supaya notasi algoritmik mudah ditranslasikan ke dalam
notasi bahasa pemrograman tertentu, maka sebaiknya notasi algoritmik
tersebut berkorespondensi dengan notasi bahasa pemrograman secara
umum.
d. Notasi algoritmik bukan notasi bahasa pemrograman, karena
itu pseudocode dalam notasi algoritmik tidak dapat dijalankan oleh
komputer. Agar dapat dijalankan oleh komputer, pseudocode dalam notasi
algoritmik harus ditranslasikan atau diterjemahkan ke dalam notasi bahasa
pemrograman yang dipilih. Perlu diingat bahwa orang yang menulis
program sangat terikat dalam aturan tata bahasanya dan spesifikasi mesin
yang menjalannya.
e. Algoritma sebenarnya digunakan untuk membantu kita dalam
mengkonversikan suatu permasalahan ke dalam bahasa pemrograman.
f. Algoritma merupakan hasil pemikiran konseptual, supaya dapat
dilaksanakan oleh komputer, algoritma harus ditranslasikan ke dalam
notasi bahasa pemrograman. Ada beberapa hal yang harus diperhatikan
pada translasi tersebut, yaitu :
 Pendeklarasian variabel, Untuk mengetahui dibutuhkannya
pendeklarasian variabel dalam penggunaan bahasa pemrograman
apabila tidak semua bahasa pemrograman membutuhkannya.
 Pemilihan tipe data, Apabila bahasa pemrograman yang akan
digunakan membutuhkan pendeklarasian variabel maka perlu hal ini
dipertimbangkan pada saat pemilihan tipe data.
 Pemakaian instruksi-instruksi, Beberapa instruksi mempunyai
kegunaan yang sama tetapi masing-masing memiliki kelebihan dan
kekurangan yang berbeda.
 Aturan sintaksis, Pada saat menuliskan program kita terikat dengan
aturan sintaksis dalam bahasa pemrograman yang akan digunakan.
 Tampilan hasil, Pada saat membuat algoritma kita tidak memikirkan
tampilan hasil yang akan disajikan. Hal-hal teknis ini diperhatikan
ketika mengkonversikannya menjadi program.
 Cara pengoperasian compiler atau interpreter, Bahasa pemrograman
yang digunakan termasuk dalam kelompok compiler atau interpreter.
Structure English merupakan alat yang cukup efisien untuk menggambarkan
suatu algoritma. Basis dari structure english adalah bahasa inggris, tetapi juga bisa
digunakan bahasa indonesia, sedangkan pseudocode berarti kode yang mirip
dengan kode pemrograman sebenarnya. Pseudocode berasal dari kata pseudo yang
berarti imitasi/mirip/menyerupai dan code yang berarti program. Pseudocode
berbasis pada kode program yang sesungguhnya seperti Pascal, C, C++.
Pseudocode lebih rinci dari structure english misalnya dalam menyatakan tipe
data yang digunakan.
Contoh struktur Indonesia
Baca data jam_kerja
Hitung gaji adalah jam_kerja dikalikan tarif
Tampilkan gaji
Pseudocode dengan Pascal :
Read jam_kerja
Gaji := jam_kerja * tarif
Write gaji
3.1.1. Notasi Algoritma
Langkah-langkah penyelesaian masalah dalam teks algoritma dapat ditulis
dalam notasi apapun, dengan syarat bahwa langkah-langkah tersebut mudah
dipahami dan dimengerti. Tidak ada notasi yang baku dalam teks algoritma
sebagaimana notasi.
Dalam bahasa pemrograman (notasi dalam algoritma disebut dengan notasi
algoritmik). Setiap orang dapat membuat aturan penulisan dan notasi algoritmik
sendiri. Berkaitan hal itu untuk memudahkan translasi notasi algoritmik ke dalam
bahasa pemrograman, sebaiknya notasi algoritmik tersebut berkorespondensi
dengan notasi bahasa pemrograman secara umum. Sebagai contoh :
Tulis nilai X dan Y
Dalam notasi algoritmik menjadi :
Write(X,Y)
Notasi write ini berarti nilai X dan Y dicetak ke piranti keluaran. Notasi
write ini berkorespondensi dengan write atau writeln dalam bahasa pascal, printf
dalam bahasa C, cout dalam bahasa C++. Jadi, translasi write(X,Y) dalam masing-
masing bahasa tersebut adalah :
writeln(X,Y); { dalam bahasa pascal }
printf(“%d %d”, X,Y); /* dalam bahasa C */
cout<<X<<Y; /* dalam bahasa C++ */
Perhatikan bahwa setiap bahasa pemrograman mempunyai aturan sendiri dalam
menggunakan perintah penulisan.
Contoh lain :
Isikan nilai X ke dalam max
Ditulis dalam notasi algoritmik menjadi :
max <- X
Notasi “<-” berarti mengisi (assign) peubah (variable) max dengan nilai peubah
X. Translasi notasi “<-” kedalam bahasa Pascal adalah “:=”, dalam bahasa C
adalah “=”, dalam bahasa C++ adalah “=”. Translasi max�X dalam masing-
masing bahasa adalah :
max := X; { dalam bahasa Pascal }
max = X; /* dalam bahasa C */
max = X; /* dalam bahasa C++ */
Algoritma berisi langkah-langkah penyelesaian masalah. Langkah-langkah
penyelesaian tersebut secara umum dibedakan menjadi tiga macam struktur, yaitu
runtunan (sequence), pemilihan (selection), dan pengulangan (repetition). Agar
mudah dibaca, algoritma dituliskan dalam notasi algoritmik, tidak ada notasi yang
standar untuk menuliskan algoritma, kita dapat menuliskan algoritma dengan
notasi sendiri, karena teks algoritma tidak sama dengan teks program komputer.
Namun, agar notasi algoritmik mudah ditranslasikan ke dalam notasi bahasa
pemrograman, maka sebaiknya notasi algoritmik tersebut berupa pseudo-code
yang berkoresponden dengan notasi bahasa pemrograman secara umum.
3.1.2. Kriteria Algoritma (Donald E. Knuth)
 Input: algoritma dapat memiliki nol atau lebih inputan dari luar.
 Output: algoritma harus memiliki minimal satu buah output keluaran.
 Definiteness (pasti): algoritma memiliki instruksi – instruksi yang jelas
dan tidak ambigu.
 Finiteness (ada batas): algoritma harus memiliki titik berhenti (stopping
role).
 Effectiveness ( tepat dan efisien ): algoritma sebisa mungkin harus dapat
dilaksanakan dan efektif. Contoh instruksi yang tidak efektif adalah : A =
A + 0 atau A = A * 1
Namun ada beberapa program yang memang dirancang untuk unterminatable,
contoh : SistemOperasi
3.1.3. Jenis Proses Algoritma
 Sequence Process: instruksi dikerjakan secara sekuensial, berurutan.
 Selection Process: instruksi dikerjakan jika memenuhi kriteria tertentu
 Iteration Process: instruksi dikerjakan selama memenuhi suatu kondisi
tertentu.
 Concurrent Process: beberapa instruksi dikerjakan secara bersama.
ContohAlgoritma
a. Algoritma menghitung luas persegi panjang:
 Masukkan panjang(P)
 Masukkan lebar(L)
 Luas ← P * L
 Tulis Luas
b. Sifat : Umum
 Tidak menggunakan simbol atau sintaks dari suatu bahasa pemrograman
 Tidak tergantung pada suatu bahasa pemrograman
 Notasi-notasinya dapat digunakan untuk seluruh bahasa mana pun
3.2. TAHAPAN ANALISA ALGORITMA :
3.2.1. Bagaimana merencanakan suatu algoritma.
Menentukan beberapa model atau desain sebagai penyelesaian dari suatu
masalah untuk mendapat sebuah solusi yan mungkin. Dengan demikian,
akan banyak terdapat variasi desain atau model yang dapat diambil yang
terbaik.
3.2.2. Bagaimana menyatakan suatu algoritma
Menentukan model suatu algoritma yang digunakan sehingga dapat
membuat barisan langkah secara berurutan guna mendapatkan solusi
penyelesaian masalah.
3.2.3. Analisis Suatu Algoritma
(Untuk melihat faktor efesiensi & efektifitas dari algoritma tersebut), Dapat
dilakukan terhadap suatu algoritma dengan melihat pada :
a. Waktu Tempuh (Running Time) dr suatu Algortima, Adalah satuan waktu
yang ditempuh atau diperlukan oleh suatu algoritma dalam menyelesaikan
suatu masalah. Hal2 yg dapat mempengaruhi daripada waktu tempuh
adalah :
 Banyaknya langkah.
 Besar dan jenis input data.
 Jenis Operasi.
 Komputer dan kompilator
b. Jumlah Memori Yang Digunakan.
3.2.4. Syarat Sebuah Algoritma Yang Baik
a. Tingkat kepercayaannya tinggi (realibility). Hasil yang diperoleh dari
proses harus berakurasi tinggi dan benar.
b. Pemrosesan yang efisien (cost rendah). Proses harus diselesaikan secepat
mungkin dan frekuensi kalkulasi yang sependek mungkin.
c. Sifatnya general. Bukan sesuatu yang hanya untuk menyelesaikan satu
kasus saja, tapi juga untuk kasus lain yang lebih general.
d. Bisa dikembangkan (expandable). Haruslah sesuatu yang dapat kita
kembangkan lebih jauh berdasarkan perubahan requirement yang ada.
e. Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami
algoritma Anda. Susah dimengertinya suatu program akan membuat susah
di-maintenance (kelola).
f. Portabilitas yang tinggi (portability). Bisa dengan mudah
diimplementasikan di berbagai platform komputer.
g. Precise (tepat, betul, teliti). Setiap instruksi harus ditulis dengan seksama
dan tidak ada keragu-raguan, dengan demikian setiap instruksi harus
dinyatakan secara eksplisit dan tidak ada bagian yang dihilangkan karena
pemroses dianggap sudah mengerti. Setiap langkah harus jelas dan pasti.
Contoh: Tambahkan 1 atau 2 pada x.
Instruksi di atas terdapat keraguan.
1. Jumlah langkah atau instruksi berhingga dan tertentu. Artinya, untuk kasus
yang sama banyaknya, langkah harus tetap dan tertentu meskipun datanya
berbeda.
2. Efektif. Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh
pemroses yang akan menjalankannya.
Contoh: Hitung akar 2 dengan presisi sempurna.
Instruksi di atas tidak efektif, agar efektif instruksi tersebut diubah.
Misal: Hitung akar 2 sampai lima digit di belakang koma.
1. Harus terminate. Jalannya algoritma harus ada kriteria berhenti.
Pertanyaannya adalah apakah bila jumlah instruksinya berhingga maka
pasti terminate?
2. Output yang dihasilkan tepat. Jika langkah-langkah algoritmanya logis dan
diikuti dengan seksama maka dihasilkan output yang diinginkan.
Latihan :
1. Buat algoritma untuk menentukan apakah suatu bilangan merupakan bilangan
prima atau bukan, kemudian buat flowchart untuk program tersebut !
2. Buat algoritma untuk mencetak N buah bilangan prima yang pertama,
kemudian buat flowchart untuk program tersebut !
3. Buat algoritma untuk menentukan jenis akar dari suatu persamaan kuadrat,
kemudian buat flowchart untuk program tersebut !
4. Buat algoritma untuk menghitung jumlah N suku dari deret aritmatika berikut :
Sn = 3 + 7 + 11 + …… + (4n-1)
5. Buat algoritma untuk menghitung nilai faktorial dari suatu bilangan, kemudian
buat flowchart untuk program tersebut !
6. Buat flowchart untuk mencetak pasangan nilai X dan Y dimana hubungan
antara X dan Y memenuhi persamaan Y = X3 – 2X +1 dan nilai x berubah dari
–10 sampai 10 !

More Related Content

What's hot

Bahan ajar-dasar-pemrograman
Bahan ajar-dasar-pemrogramanBahan ajar-dasar-pemrograman
Bahan ajar-dasar-pemrograman
Andri Yanto
 
Modul algoritma dan pemograman
Modul algoritma dan pemogramanModul algoritma dan pemograman
Modul algoritma dan pemograman
PANJI_ADITYAN
 
Pertemuan 3 pemrograman dasar
Pertemuan 3 pemrograman dasarPertemuan 3 pemrograman dasar
Pertemuan 3 pemrograman dasar
Disma Ariyanti W
 
Laporan Algoritma dan Pemrograman Modul 1
Laporan Algoritma dan Pemrograman Modul 1Laporan Algoritma dan Pemrograman Modul 1
Laporan Algoritma dan Pemrograman Modul 1
Tatalazy
 

What's hot (20)

Bahan ajar-dasar-pemrograman
Bahan ajar-dasar-pemrogramanBahan ajar-dasar-pemrograman
Bahan ajar-dasar-pemrograman
 
Pengenalan Algoritma Komputer
Pengenalan Algoritma KomputerPengenalan Algoritma Komputer
Pengenalan Algoritma Komputer
 
Algoritma 1 pertemuan 1
Algoritma 1 pertemuan 1Algoritma 1 pertemuan 1
Algoritma 1 pertemuan 1
 
Modul algoritma dan pemograman
Modul algoritma dan pemogramanModul algoritma dan pemograman
Modul algoritma dan pemograman
 
Kegiatan belajar 1 flowchart
Kegiatan belajar 1 flowchartKegiatan belajar 1 flowchart
Kegiatan belajar 1 flowchart
 
1 adp dasar-dasar algoritma
1   adp dasar-dasar algoritma1   adp dasar-dasar algoritma
1 adp dasar-dasar algoritma
 
PENGERTIAN ALGORITMA DAN PEMROGRAMAN
PENGERTIAN ALGORITMA DAN PEMROGRAMANPENGERTIAN ALGORITMA DAN PEMROGRAMAN
PENGERTIAN ALGORITMA DAN PEMROGRAMAN
 
Pengenalan bahasa pemrograman
Pengenalan bahasa pemrogramanPengenalan bahasa pemrograman
Pengenalan bahasa pemrograman
 
Pertemuan 3 pemrograman dasar
Pertemuan 3 pemrograman dasarPertemuan 3 pemrograman dasar
Pertemuan 3 pemrograman dasar
 
Modul mata kuliah konsep dasar pemrograman
Modul mata kuliah konsep dasar pemrogramanModul mata kuliah konsep dasar pemrograman
Modul mata kuliah konsep dasar pemrograman
 
Algoritam1
Algoritam1Algoritam1
Algoritam1
 
Pemrograman dasar
Pemrograman dasarPemrograman dasar
Pemrograman dasar
 
1. konsep dasar pemrograman pascal
1. konsep dasar pemrograman pascal1. konsep dasar pemrograman pascal
1. konsep dasar pemrograman pascal
 
laporan algoritma dan pemprograman 1
laporan algoritma dan pemprograman 1laporan algoritma dan pemprograman 1
laporan algoritma dan pemprograman 1
 
Laporan hasil praktikum modul i pengenalan pascal
Laporan hasil praktikum modul i pengenalan pascalLaporan hasil praktikum modul i pengenalan pascal
Laporan hasil praktikum modul i pengenalan pascal
 
Pertemuan 2 Pemrograman Dasar
Pertemuan 2 Pemrograman DasarPertemuan 2 Pemrograman Dasar
Pertemuan 2 Pemrograman Dasar
 
Dasar dasar algoritma - 2
Dasar dasar algoritma - 2Dasar dasar algoritma - 2
Dasar dasar algoritma - 2
 
Laporan Algoritma dan Pemrograman Modul 1
Laporan Algoritma dan Pemrograman Modul 1Laporan Algoritma dan Pemrograman Modul 1
Laporan Algoritma dan Pemrograman Modul 1
 
Dasar pemrograman ( algorithma pemrograman )
Dasar pemrograman ( algorithma pemrograman )Dasar pemrograman ( algorithma pemrograman )
Dasar pemrograman ( algorithma pemrograman )
 
Definisi Algoritma
Definisi AlgoritmaDefinisi Algoritma
Definisi Algoritma
 

Similar to Bab II

makalah tentang algoritma lengkap
makalah tentang algoritma lengkapmakalah tentang algoritma lengkap
makalah tentang algoritma lengkap
Lela Warni
 
Bab 3. pengenalan algoritma
Bab 3. pengenalan algoritmaBab 3. pengenalan algoritma
Bab 3. pengenalan algoritma
Arif Punk Street
 

Similar to Bab II (20)

listiati univ bung hata (1110013211051) Algoritma dan flowchart
listiati univ bung hata (1110013211051) Algoritma dan flowchartlistiati univ bung hata (1110013211051) Algoritma dan flowchart
listiati univ bung hata (1110013211051) Algoritma dan flowchart
 
makalah tentang algoritma lengkap
makalah tentang algoritma lengkapmakalah tentang algoritma lengkap
makalah tentang algoritma lengkap
 
2.sd 13
2.sd 132.sd 13
2.sd 13
 
2.sd 13.ok
2.sd 13.ok2.sd 13.ok
2.sd 13.ok
 
Pengantar Algoritma Dan Program
Pengantar Algoritma Dan ProgramPengantar Algoritma Dan Program
Pengantar Algoritma Dan Program
 
Bahan 2.pptx
Bahan 2.pptxBahan 2.pptx
Bahan 2.pptx
 
01_Pengenalan_Algoritma_ppt.ppt
01_Pengenalan_Algoritma_ppt.ppt01_Pengenalan_Algoritma_ppt.ppt
01_Pengenalan_Algoritma_ppt.ppt
 
Pengenalan_Algoritma_ppt.ppt
Pengenalan_Algoritma_ppt.pptPengenalan_Algoritma_ppt.ppt
Pengenalan_Algoritma_ppt.ppt
 
Algoritma dan pemrograman (pengantar 1).pptx
Algoritma dan pemrograman (pengantar 1).pptxAlgoritma dan pemrograman (pengantar 1).pptx
Algoritma dan pemrograman (pengantar 1).pptx
 
Pengenalan algoritma.ppt
Pengenalan algoritma.pptPengenalan algoritma.ppt
Pengenalan algoritma.ppt
 
Chapter 2 - Konsep Dasar Algoritma.pptx
Chapter 2 - Konsep Dasar Algoritma.pptxChapter 2 - Konsep Dasar Algoritma.pptx
Chapter 2 - Konsep Dasar Algoritma.pptx
 
Bab 3. Pengenalan Dasar dasar Algoritma .ppt
Bab 3. Pengenalan Dasar dasar Algoritma .pptBab 3. Pengenalan Dasar dasar Algoritma .ppt
Bab 3. Pengenalan Dasar dasar Algoritma .ppt
 
Bab 3. pengenalan algoritma
Bab 3. pengenalan algoritmaBab 3. pengenalan algoritma
Bab 3. pengenalan algoritma
 
Algoritma - Chapter - 1
Algoritma - Chapter - 1Algoritma - Chapter - 1
Algoritma - Chapter - 1
 
1 ADP Algoritma
1   ADP Algoritma1   ADP Algoritma
1 ADP Algoritma
 
Module algoritma
Module algoritma Module algoritma
Module algoritma
 
Algoritma pemrograman terstruktur
Algoritma pemrograman terstrukturAlgoritma pemrograman terstruktur
Algoritma pemrograman terstruktur
 
Bab 1
Bab 1 Bab 1
Bab 1
 
algoritma dan pemrograman
algoritma dan pemrogramanalgoritma dan pemrograman
algoritma dan pemrograman
 
1.adp dasar-dasar algoritma
1.adp dasar-dasar algoritma1.adp dasar-dasar algoritma
1.adp dasar-dasar algoritma
 

Recently uploaded

PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptxPRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
muhammadyudiyanto55
 

Recently uploaded (20)

Sosialisme Kapitalis Karl Marx (Dosen Pengampu: Khoirin Nisai Shalihati)
Sosialisme Kapitalis Karl Marx (Dosen Pengampu: Khoirin Nisai Shalihati)Sosialisme Kapitalis Karl Marx (Dosen Pengampu: Khoirin Nisai Shalihati)
Sosialisme Kapitalis Karl Marx (Dosen Pengampu: Khoirin Nisai Shalihati)
 
KOMITMEN MENULIS DI BLOG KBMN PB PGRI.ppt
KOMITMEN MENULIS DI BLOG KBMN PB PGRI.pptKOMITMEN MENULIS DI BLOG KBMN PB PGRI.ppt
KOMITMEN MENULIS DI BLOG KBMN PB PGRI.ppt
 
Program Kerja Kepala Sekolah 2023-2024.pdf
Program Kerja Kepala Sekolah 2023-2024.pdfProgram Kerja Kepala Sekolah 2023-2024.pdf
Program Kerja Kepala Sekolah 2023-2024.pdf
 
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docxRUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
 
Bab 3 Sejarah Kerajaan Hindu-Buddha.pptx
Bab 3 Sejarah Kerajaan Hindu-Buddha.pptxBab 3 Sejarah Kerajaan Hindu-Buddha.pptx
Bab 3 Sejarah Kerajaan Hindu-Buddha.pptx
 
Sejarah dan Perkembangan Agama Hindu.pptx
Sejarah dan Perkembangan Agama Hindu.pptxSejarah dan Perkembangan Agama Hindu.pptx
Sejarah dan Perkembangan Agama Hindu.pptx
 
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBIVISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
 
LK 1 - 5T Keputusan Berdampak (1). SDN 001 BU.pdf
LK 1 - 5T Keputusan Berdampak (1). SDN 001 BU.pdfLK 1 - 5T Keputusan Berdampak (1). SDN 001 BU.pdf
LK 1 - 5T Keputusan Berdampak (1). SDN 001 BU.pdf
 
PPT Aksi Nyata Diseminasi Modul 1.4.pptx
PPT Aksi Nyata Diseminasi Modul 1.4.pptxPPT Aksi Nyata Diseminasi Modul 1.4.pptx
PPT Aksi Nyata Diseminasi Modul 1.4.pptx
 
ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...
ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...
ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...
 
Modul Pembentukan Disiplin Rohani (PDR) 2024
Modul Pembentukan Disiplin Rohani (PDR) 2024Modul Pembentukan Disiplin Rohani (PDR) 2024
Modul Pembentukan Disiplin Rohani (PDR) 2024
 
tugas modul 1.4 Koneksi Antar Materi (1).pptx
tugas  modul 1.4 Koneksi Antar Materi (1).pptxtugas  modul 1.4 Koneksi Antar Materi (1).pptx
tugas modul 1.4 Koneksi Antar Materi (1).pptx
 
Solusi dan Strategi ATHG yang di hadapi Indonesia (Kelas 11).pptx
Solusi dan Strategi ATHG yang di hadapi Indonesia (Kelas 11).pptxSolusi dan Strategi ATHG yang di hadapi Indonesia (Kelas 11).pptx
Solusi dan Strategi ATHG yang di hadapi Indonesia (Kelas 11).pptx
 
Najwa Qarina_2021 B_Analisis Kritis Jurnal.pdf
Najwa Qarina_2021 B_Analisis Kritis Jurnal.pdfNajwa Qarina_2021 B_Analisis Kritis Jurnal.pdf
Najwa Qarina_2021 B_Analisis Kritis Jurnal.pdf
 
PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptxPRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
 
Modul Ajar Bahasa Indonesia Kelas 2 Fase A Kurikulum Merdeka - abdiera.com
Modul Ajar Bahasa Indonesia Kelas 2 Fase A Kurikulum Merdeka - abdiera.comModul Ajar Bahasa Indonesia Kelas 2 Fase A Kurikulum Merdeka - abdiera.com
Modul Ajar Bahasa Indonesia Kelas 2 Fase A Kurikulum Merdeka - abdiera.com
 
tugas pai kelas 10 rangkuman bab 10 smk madani bogor
tugas pai kelas 10 rangkuman bab 10 smk madani bogortugas pai kelas 10 rangkuman bab 10 smk madani bogor
tugas pai kelas 10 rangkuman bab 10 smk madani bogor
 
Form B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docx
Form B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docxForm B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docx
Form B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docx
 
MODUL AJAR BAHASA INGGRIS KELAS 2 KURIKULUM MERDEKA
MODUL AJAR BAHASA INGGRIS KELAS 2 KURIKULUM MERDEKAMODUL AJAR BAHASA INGGRIS KELAS 2 KURIKULUM MERDEKA
MODUL AJAR BAHASA INGGRIS KELAS 2 KURIKULUM MERDEKA
 
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docx
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docxForm B1 Rubrik Observasi Presentasi Visi Misi -1.docx
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docx
 

Bab II

  • 1. BAB II PENYAJIAN ALGORITMA 1. Tujuan pembelajaran 2. Deskripsi umum 3. Penyajian 3.1 PENYAJIAN dan Notasi ALGORITMA Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat program menjadi kurang baik, demikian juga sebaliknya. Pembuatan algoritma mempunyai banyak keuntungan di antaranya : a. Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya penulisan algoritma independen dari bahasa pemrograman dan komputer yang melaksanakannya. b. Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman. c. Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama. Beberapa hal yang perlu diperhatikan dalam membuat algoritma : a. Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami. b. Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik. c. Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini dikarenakan teks algoritma tidak sama dengan teks program. Namun, supaya notasi algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa pemrograman secara umum. d. Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam notasi algoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh komputer, pseudocode dalam notasi algoritmik harus ditranslasikan atau diterjemahkan ke dalam notasi bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang menulis program sangat terikat dalam aturan tata bahasanya dan spesifikasi mesin yang menjalannya. e. Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu permasalahan ke dalam bahasa pemrograman. f. Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer, algoritma harus ditranslasikan ke dalam
  • 2. notasi bahasa pemrograman. Ada beberapa hal yang harus diperhatikan pada translasi tersebut, yaitu :  Pendeklarasian variabel, Untuk mengetahui dibutuhkannya pendeklarasian variabel dalam penggunaan bahasa pemrograman apabila tidak semua bahasa pemrograman membutuhkannya.  Pemilihan tipe data, Apabila bahasa pemrograman yang akan digunakan membutuhkan pendeklarasian variabel maka perlu hal ini dipertimbangkan pada saat pemilihan tipe data.  Pemakaian instruksi-instruksi, Beberapa instruksi mempunyai kegunaan yang sama tetapi masing-masing memiliki kelebihan dan kekurangan yang berbeda.  Aturan sintaksis, Pada saat menuliskan program kita terikat dengan aturan sintaksis dalam bahasa pemrograman yang akan digunakan.  Tampilan hasil, Pada saat membuat algoritma kita tidak memikirkan tampilan hasil yang akan disajikan. Hal-hal teknis ini diperhatikan ketika mengkonversikannya menjadi program.  Cara pengoperasian compiler atau interpreter, Bahasa pemrograman yang digunakan termasuk dalam kelompok compiler atau interpreter. Structure English merupakan alat yang cukup efisien untuk menggambarkan suatu algoritma. Basis dari structure english adalah bahasa inggris, tetapi juga bisa digunakan bahasa indonesia, sedangkan pseudocode berarti kode yang mirip dengan kode pemrograman sebenarnya. Pseudocode berasal dari kata pseudo yang berarti imitasi/mirip/menyerupai dan code yang berarti program. Pseudocode berbasis pada kode program yang sesungguhnya seperti Pascal, C, C++. Pseudocode lebih rinci dari structure english misalnya dalam menyatakan tipe data yang digunakan. Contoh struktur Indonesia Baca data jam_kerja Hitung gaji adalah jam_kerja dikalikan tarif Tampilkan gaji Pseudocode dengan Pascal : Read jam_kerja Gaji := jam_kerja * tarif Write gaji 3.1.1. Notasi Algoritma
  • 3. Langkah-langkah penyelesaian masalah dalam teks algoritma dapat ditulis dalam notasi apapun, dengan syarat bahwa langkah-langkah tersebut mudah dipahami dan dimengerti. Tidak ada notasi yang baku dalam teks algoritma sebagaimana notasi. Dalam bahasa pemrograman (notasi dalam algoritma disebut dengan notasi algoritmik). Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Berkaitan hal itu untuk memudahkan translasi notasi algoritmik ke dalam bahasa pemrograman, sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa pemrograman secara umum. Sebagai contoh : Tulis nilai X dan Y Dalam notasi algoritmik menjadi : Write(X,Y) Notasi write ini berarti nilai X dan Y dicetak ke piranti keluaran. Notasi write ini berkorespondensi dengan write atau writeln dalam bahasa pascal, printf dalam bahasa C, cout dalam bahasa C++. Jadi, translasi write(X,Y) dalam masing- masing bahasa tersebut adalah : writeln(X,Y); { dalam bahasa pascal } printf(“%d %d”, X,Y); /* dalam bahasa C */ cout<<X<<Y; /* dalam bahasa C++ */ Perhatikan bahwa setiap bahasa pemrograman mempunyai aturan sendiri dalam menggunakan perintah penulisan. Contoh lain : Isikan nilai X ke dalam max Ditulis dalam notasi algoritmik menjadi : max <- X Notasi “<-” berarti mengisi (assign) peubah (variable) max dengan nilai peubah X. Translasi notasi “<-” kedalam bahasa Pascal adalah “:=”, dalam bahasa C adalah “=”, dalam bahasa C++ adalah “=”. Translasi max�X dalam masing- masing bahasa adalah : max := X; { dalam bahasa Pascal } max = X; /* dalam bahasa C */
  • 4. max = X; /* dalam bahasa C++ */ Algoritma berisi langkah-langkah penyelesaian masalah. Langkah-langkah penyelesaian tersebut secara umum dibedakan menjadi tiga macam struktur, yaitu runtunan (sequence), pemilihan (selection), dan pengulangan (repetition). Agar mudah dibaca, algoritma dituliskan dalam notasi algoritmik, tidak ada notasi yang standar untuk menuliskan algoritma, kita dapat menuliskan algoritma dengan notasi sendiri, karena teks algoritma tidak sama dengan teks program komputer. Namun, agar notasi algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman, maka sebaiknya notasi algoritmik tersebut berupa pseudo-code yang berkoresponden dengan notasi bahasa pemrograman secara umum. 3.1.2. Kriteria Algoritma (Donald E. Knuth)  Input: algoritma dapat memiliki nol atau lebih inputan dari luar.  Output: algoritma harus memiliki minimal satu buah output keluaran.  Definiteness (pasti): algoritma memiliki instruksi – instruksi yang jelas dan tidak ambigu.  Finiteness (ada batas): algoritma harus memiliki titik berhenti (stopping role).  Effectiveness ( tepat dan efisien ): algoritma sebisa mungkin harus dapat dilaksanakan dan efektif. Contoh instruksi yang tidak efektif adalah : A = A + 0 atau A = A * 1 Namun ada beberapa program yang memang dirancang untuk unterminatable, contoh : SistemOperasi 3.1.3. Jenis Proses Algoritma  Sequence Process: instruksi dikerjakan secara sekuensial, berurutan.  Selection Process: instruksi dikerjakan jika memenuhi kriteria tertentu  Iteration Process: instruksi dikerjakan selama memenuhi suatu kondisi tertentu.  Concurrent Process: beberapa instruksi dikerjakan secara bersama. ContohAlgoritma
  • 5. a. Algoritma menghitung luas persegi panjang:  Masukkan panjang(P)  Masukkan lebar(L)  Luas ← P * L  Tulis Luas b. Sifat : Umum  Tidak menggunakan simbol atau sintaks dari suatu bahasa pemrograman  Tidak tergantung pada suatu bahasa pemrograman  Notasi-notasinya dapat digunakan untuk seluruh bahasa mana pun 3.2. TAHAPAN ANALISA ALGORITMA : 3.2.1. Bagaimana merencanakan suatu algoritma. Menentukan beberapa model atau desain sebagai penyelesaian dari suatu masalah untuk mendapat sebuah solusi yan mungkin. Dengan demikian, akan banyak terdapat variasi desain atau model yang dapat diambil yang terbaik. 3.2.2. Bagaimana menyatakan suatu algoritma Menentukan model suatu algoritma yang digunakan sehingga dapat membuat barisan langkah secara berurutan guna mendapatkan solusi penyelesaian masalah. 3.2.3. Analisis Suatu Algoritma (Untuk melihat faktor efesiensi & efektifitas dari algoritma tersebut), Dapat dilakukan terhadap suatu algoritma dengan melihat pada : a. Waktu Tempuh (Running Time) dr suatu Algortima, Adalah satuan waktu yang ditempuh atau diperlukan oleh suatu algoritma dalam menyelesaikan suatu masalah. Hal2 yg dapat mempengaruhi daripada waktu tempuh adalah :  Banyaknya langkah.  Besar dan jenis input data.  Jenis Operasi.  Komputer dan kompilator b. Jumlah Memori Yang Digunakan. 3.2.4. Syarat Sebuah Algoritma Yang Baik a. Tingkat kepercayaannya tinggi (realibility). Hasil yang diperoleh dari proses harus berakurasi tinggi dan benar. b. Pemrosesan yang efisien (cost rendah). Proses harus diselesaikan secepat mungkin dan frekuensi kalkulasi yang sependek mungkin. c. Sifatnya general. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja, tapi juga untuk kasus lain yang lebih general.
  • 6. d. Bisa dikembangkan (expandable). Haruslah sesuatu yang dapat kita kembangkan lebih jauh berdasarkan perubahan requirement yang ada. e. Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami algoritma Anda. Susah dimengertinya suatu program akan membuat susah di-maintenance (kelola). f. Portabilitas yang tinggi (portability). Bisa dengan mudah diimplementasikan di berbagai platform komputer. g. Precise (tepat, betul, teliti). Setiap instruksi harus ditulis dengan seksama dan tidak ada keragu-raguan, dengan demikian setiap instruksi harus dinyatakan secara eksplisit dan tidak ada bagian yang dihilangkan karena pemroses dianggap sudah mengerti. Setiap langkah harus jelas dan pasti. Contoh: Tambahkan 1 atau 2 pada x. Instruksi di atas terdapat keraguan. 1. Jumlah langkah atau instruksi berhingga dan tertentu. Artinya, untuk kasus yang sama banyaknya, langkah harus tetap dan tertentu meskipun datanya berbeda. 2. Efektif. Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemroses yang akan menjalankannya. Contoh: Hitung akar 2 dengan presisi sempurna. Instruksi di atas tidak efektif, agar efektif instruksi tersebut diubah. Misal: Hitung akar 2 sampai lima digit di belakang koma. 1. Harus terminate. Jalannya algoritma harus ada kriteria berhenti. Pertanyaannya adalah apakah bila jumlah instruksinya berhingga maka pasti terminate? 2. Output yang dihasilkan tepat. Jika langkah-langkah algoritmanya logis dan diikuti dengan seksama maka dihasilkan output yang diinginkan.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11. Latihan : 1. Buat algoritma untuk menentukan apakah suatu bilangan merupakan bilangan prima atau bukan, kemudian buat flowchart untuk program tersebut ! 2. Buat algoritma untuk mencetak N buah bilangan prima yang pertama, kemudian buat flowchart untuk program tersebut ! 3. Buat algoritma untuk menentukan jenis akar dari suatu persamaan kuadrat, kemudian buat flowchart untuk program tersebut ! 4. Buat algoritma untuk menghitung jumlah N suku dari deret aritmatika berikut : Sn = 3 + 7 + 11 + …… + (4n-1) 5. Buat algoritma untuk menghitung nilai faktorial dari suatu bilangan, kemudian buat flowchart untuk program tersebut ! 6. Buat flowchart untuk mencetak pasangan nilai X dan Y dimana hubungan antara X dan Y memenuhi persamaan Y = X3 – 2X +1 dan nilai x berubah dari –10 sampai 10 !