bab ii

14
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

Upload: ietha-zhy

Post on 12-Aug-2015

10 views

Category:

Education


1 download

TRANSCRIPT

BAB II

PENYAJIAN ALGORITMA

1 Tujuan pembelajaran

2 Deskripsi umum

3 Penyajian

31 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 sebaliknyaPembuatan 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 imitasimiripmenyerupai 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

311 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(XY)

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(XY) dalam masing-

masing bahasa tersebut adalah

writeln(XY) dalam bahasa pascal

printf(ldquod drdquo XY) dalam bahasa C

coutltltXltltY 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 lt- X

Notasi ldquolt-rdquo berarti mengisi (assign) peubah (variable) max dengan nilai peubah

X Translasi notasi ldquolt-rdquo kedalam bahasa Pascal adalah ldquo=rdquo dalam bahasa C

adalah ldquo=rdquo dalam bahasa C++ adalah ldquo=rdquo Translasi max1048773X 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

312 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 ndash 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

313 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 larr 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

32 TAHAPAN ANALISA ALGORITMA 321 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

322 Bagaimana menyatakan suatu algoritmaMenentukan model suatu algoritma yang digunakan sehingga dapat membuat barisan langkah secara berurutan guna mendapatkan solusi penyelesaian masalah

323 Analisis Suatu Algoritma (Untuk melihat faktor efesiensi amp 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

324 Syarat Sebuah Algoritma Yang Baika Tingkat kepercayaannya tinggi (realibility) Hasil yang diperoleh dari

proses harus berakurasi tinggi dan benarb Pemrosesan yang efisien (cost rendah) Proses harus diselesaikan secepat

mungkin dan frekuensi kalkulasi yang sependek mungkinc 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 xInstruksi 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 sempurnaInstruksi di atas tidak efektif agar efektif instruksi tersebut diubahMisal 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 + helliphellip + (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 ndash 2X +1 dan nilai x berubah dari

ndash10 sampai 10

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 imitasimiripmenyerupai 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

311 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(XY)

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(XY) dalam masing-

masing bahasa tersebut adalah

writeln(XY) dalam bahasa pascal

printf(ldquod drdquo XY) dalam bahasa C

coutltltXltltY 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 lt- X

Notasi ldquolt-rdquo berarti mengisi (assign) peubah (variable) max dengan nilai peubah

X Translasi notasi ldquolt-rdquo kedalam bahasa Pascal adalah ldquo=rdquo dalam bahasa C

adalah ldquo=rdquo dalam bahasa C++ adalah ldquo=rdquo Translasi max1048773X 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

312 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 ndash 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

313 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 larr 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

32 TAHAPAN ANALISA ALGORITMA 321 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

322 Bagaimana menyatakan suatu algoritmaMenentukan model suatu algoritma yang digunakan sehingga dapat membuat barisan langkah secara berurutan guna mendapatkan solusi penyelesaian masalah

323 Analisis Suatu Algoritma (Untuk melihat faktor efesiensi amp 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

324 Syarat Sebuah Algoritma Yang Baika Tingkat kepercayaannya tinggi (realibility) Hasil yang diperoleh dari

proses harus berakurasi tinggi dan benarb Pemrosesan yang efisien (cost rendah) Proses harus diselesaikan secepat

mungkin dan frekuensi kalkulasi yang sependek mungkinc 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 xInstruksi 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 sempurnaInstruksi di atas tidak efektif agar efektif instruksi tersebut diubahMisal 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 + helliphellip + (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 ndash 2X +1 dan nilai x berubah dari

ndash10 sampai 10

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(XY)

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(XY) dalam masing-

masing bahasa tersebut adalah

writeln(XY) dalam bahasa pascal

printf(ldquod drdquo XY) dalam bahasa C

coutltltXltltY 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 lt- X

Notasi ldquolt-rdquo berarti mengisi (assign) peubah (variable) max dengan nilai peubah

X Translasi notasi ldquolt-rdquo kedalam bahasa Pascal adalah ldquo=rdquo dalam bahasa C

adalah ldquo=rdquo dalam bahasa C++ adalah ldquo=rdquo Translasi max1048773X 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

312 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 ndash 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

313 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 larr 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

32 TAHAPAN ANALISA ALGORITMA 321 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

322 Bagaimana menyatakan suatu algoritmaMenentukan model suatu algoritma yang digunakan sehingga dapat membuat barisan langkah secara berurutan guna mendapatkan solusi penyelesaian masalah

323 Analisis Suatu Algoritma (Untuk melihat faktor efesiensi amp 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

324 Syarat Sebuah Algoritma Yang Baika Tingkat kepercayaannya tinggi (realibility) Hasil yang diperoleh dari

proses harus berakurasi tinggi dan benarb Pemrosesan yang efisien (cost rendah) Proses harus diselesaikan secepat

mungkin dan frekuensi kalkulasi yang sependek mungkinc 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 xInstruksi 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 sempurnaInstruksi di atas tidak efektif agar efektif instruksi tersebut diubahMisal 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 + helliphellip + (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 ndash 2X +1 dan nilai x berubah dari

ndash10 sampai 10

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

312 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 ndash 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

313 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 larr 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

32 TAHAPAN ANALISA ALGORITMA 321 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

322 Bagaimana menyatakan suatu algoritmaMenentukan model suatu algoritma yang digunakan sehingga dapat membuat barisan langkah secara berurutan guna mendapatkan solusi penyelesaian masalah

323 Analisis Suatu Algoritma (Untuk melihat faktor efesiensi amp 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

324 Syarat Sebuah Algoritma Yang Baika Tingkat kepercayaannya tinggi (realibility) Hasil yang diperoleh dari

proses harus berakurasi tinggi dan benarb Pemrosesan yang efisien (cost rendah) Proses harus diselesaikan secepat

mungkin dan frekuensi kalkulasi yang sependek mungkinc 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 xInstruksi 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 sempurnaInstruksi di atas tidak efektif agar efektif instruksi tersebut diubahMisal 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 + helliphellip + (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 ndash 2X +1 dan nilai x berubah dari

ndash10 sampai 10

a Algoritma menghitung luas persegi panjang

Masukkan panjang(P)

Masukkan lebar(L)

Luas larr 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

32 TAHAPAN ANALISA ALGORITMA 321 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

322 Bagaimana menyatakan suatu algoritmaMenentukan model suatu algoritma yang digunakan sehingga dapat membuat barisan langkah secara berurutan guna mendapatkan solusi penyelesaian masalah

323 Analisis Suatu Algoritma (Untuk melihat faktor efesiensi amp 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

324 Syarat Sebuah Algoritma Yang Baika Tingkat kepercayaannya tinggi (realibility) Hasil yang diperoleh dari

proses harus berakurasi tinggi dan benarb Pemrosesan yang efisien (cost rendah) Proses harus diselesaikan secepat

mungkin dan frekuensi kalkulasi yang sependek mungkinc 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 xInstruksi 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 sempurnaInstruksi di atas tidak efektif agar efektif instruksi tersebut diubahMisal 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 + helliphellip + (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 ndash 2X +1 dan nilai x berubah dari

ndash10 sampai 10

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 xInstruksi 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 sempurnaInstruksi di atas tidak efektif agar efektif instruksi tersebut diubahMisal 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 + helliphellip + (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 ndash 2X +1 dan nilai x berubah dari

ndash10 sampai 10

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 + helliphellip + (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 ndash 2X +1 dan nilai x berubah dari

ndash10 sampai 10