• Tidak ada hasil yang ditemukan

Strategi dan Analisa Algoritma

N/A
N/A
Wahyu Hidayat

Academic year: 2023

Membagikan "Strategi dan Analisa Algoritma"

Copied!
37
0
0

Teks penuh

(1)

Strategi dan Analisa Algoritma

Wahyu Hidayat, S.Kom

(2)

Strategi dan Analisa Algoritma

Dosen : Catur Supriyanto, S.Kom, MCS

SKS : 3 SKS

Email : [email protected]

Ruang : G.2 – Office of International Affairs

(3)

Deskripsi

Penerapan cara pembelajaran pada matakuliah Strategi dan Analisis Algoritma secara umum ditujukan untuk memberikan pembekalan kepada mahasiswa dalam berfikir secara logis, kritis, kreatif dan analitis dalam memecahkan masalah berbasis program komputer.

Secara khusus pada matakuliah ini akan diberikan ketrampilan baru dalam hal pengukuran efisiensi dan waktu tempuh suatu algoritma, yaitu mengukur seberapa efisien langkah-langkah serta berapa banyak waktu yang di perlukan untuk pemecahan suatu masalah.

(4)

Standar Kompetensi

Standar kompetensi dari mata kuliah ini adalah memberikan pengetahuan mengenai cara melakukan analisa algoritma dan memilih disain algoritma yang baik untuk suatu masalah.

Pada akhirnya mahasiswa dapat mengembangkan suatu strategi pemecahan masalah dengan disain algoritma yang telah di analisis dengan benar.

(5)

Komponen Penilaian

KEAKTIFAN: 10%

TUGAS: 20%

UTS: 30%

UAS: 40%

(6)

Peraturan

Tidak ada tes susulan apapun

Peraturan absensi mengikuti aturan Universitas (75%)

Tidak ada tugas tambahan untuk meningkatkan nilai yang kurang

Dosen terlambat 30 menit, maka kelas kosong

Mahasiswa terlambat 30 menit, tidak boleh absen

(7)

Sejarah Algoritma

Asal kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibnu Musa al-Khowarizmi, ilmuan Persia yang menulis kitab al jabr w’al- muqabala (rules of restoration and reduction)

sekitar tahun 825 M

(8)

Definisi Algoritma

Urutan langkah-langkah untuk memecahkan masalah

Urutan logis pengambilan keputusan 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.

(9)

Algoritma dalam Kehidupan

(10)

Algoritma dalam Kehidupan

(11)

Definisi Algoritma [2]

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

Algoritma di butuhkan untuk memerintah komputer mengambil langkah-langkah tertentu untuk

menyelesaikan masalah

Algoritma Pemrograman Program

Agar algoritma dapat memerintah (diproses) komputer, maka dirubah menjadi bentuk program (melalui proses pemrograman).

(12)

Sifat - Sifat Algoritma

Aspek Penting Algoritma :

Finite  algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas

Definite  setiap langkah didefinisikan secara tepat, tidak boleh membingungkan (ambigu)

Input  sebuah algoritma memiliki satu/lebih input sebelum dijalankan

Output  algoritma memiliki satu/lebih output, yang biasanya bergantung kepada input

Effective  setiap algoritma diharapkan memiliki sifat efektif. (setiap langkah harus sederhana dan sehingga dapat dikerjakan dalam waktu yang masuk akal)

(13)

Notasi Algoritma

Penulisan algoritma tidak tergantung dari spesifikasi bahasa pemrograman dan komputer yang

mengeksekusinya.

Notasi algoritma bukan notasi bahasa pemrograman tetapi dapat diterjemahkan ke dalam berbagai bahasa pemrograman

(14)

Peranan Algoritma

Peran algoritma : fundamental (tidak ada algoritma tidak ada program)

Algoritma + struktur data = program

Struktur data :teknik/cara penyusunan/ penyimpanan data dalam komputer

“ memori seminim mungkin dan kecepatan eksekusi semaksimal mungkin”

(15)

Tahap

Penyelesaian Masalah

Masalah

Model

Algoritma

Program

Eksekusi

Hasil

Data analisis

analisis

analisis

(16)

Suatu Algoritma yg terbaik (The Best):

“Suatu algoritma harus menghasilkan output yg tepat guna (efektif) dlm waktu yg relatif

singkat & penggunaan memori yg relatif

sedikit (efesien) dgn langkah yg berhingga &

prosedurnya berakhir baik dlm keadaan

diperoleh suatu solusi.“

(17)

Contoh:

Sebuah prosedur ketika akan mengirimkan surat kepada teman:

1. Tulis surat pada secarik kertas surat

2. Ambil sampul surat atau amplop

3. Masukkan surat ke dalam amplop

4. Tutup amplop surat dengan lem perekat

5. Tulis alamat surat yg dituju, jika tdk ingat, lebih dahulu ambil buku alamat & cari alamat yg dituju, lalu tulis alamat tsb pd amplop surat.

6. Tempelkan perangko pada amplop surat

7. Bawa surat ke kantor pos utk diserahkan pd pegawai pos atau menuju ke bis surat untuk memasukkan surat ke dlm kotak/bis surat.

(18)

Penulisan Algoritma

Menggunakan bahasa natural (Bahasa manusia:

Indonesia, Inggris)

Kelemahannya masih sering membingungkan (ambigu) / sulit dipahami.

Menggunakan Flowchart

Baik karena alur algoritma dapat dilihat secara visual, tetapi repot pembuatannya jika algoritma panjang

Menggunakan Pseudocode

Sudah dekat dengan bahasa pemrograman, tetapi sulit dimengerti oleh orang yang belum tahu pemrograman

(19)

Menggunakan Natural Language (Bahasa Natural)

Write an algorithm to perform addition of two number.

Step 1: read the first number say a

Step 2: read the second number say b

Step 3: add the two number and store the result in a variable c

Step 4: display the result

(20)

Menggunakan Pseudo Code

Algorithm sum(a, b)

//problem description: this algorithm perform addition of two //number

//input: two integers a and b

//output: addition of two integers ca+b

Write c

(21)

Menggunakan Flowchart

Start

Stop

Start Statement

Transition

Processing / Assignment Statement Input / Output Statement

Conditional Statement

Stop Statement

(22)

Menggunakan Flowchart [2]

Symbol Predefined Process (Simbol untuk mempersiapkan penyimpanan yang akan digunakan sebagai tempat

pengolahan di dalam storage)

Symbol Off-line Connector ( Simbol

untuk keluar/masuk prosedure atau proses dalam lembar/halaman yang lain)

Symbol Connector (Simbol untuk

keluar/masuk prosedur atau proses dalam lembar/halaman yang sama)

(23)

Menggunakan Flowchart [3]

Start

Input the value of a

c= a + b Input the value of b

Display the value of c

Stop

(24)

Buatlah flowchart untuk menampilkan semua bilangan genap dari 1 – 20 dan bilangan ganjil dari 30 – 50 dengan

menggunakan pengulangan while.

1.x : int

2.y : int

3.Deskripsi

4.x ← 2

5.y ← 31

6.while (x<=20)

7.write (x)

8.x ← x+2

9.while (y<=49)

10.write (y)

11.y ← y+2

12.end while

(25)

Buatlah flowchart untuk menampilkan semua bilangan kelipatan 7 dari 1 – 50 dengan menggunakan

pengulangan do while.

1.x : int

2.Deskripsi

3.x ← 7

4.Do

5.write (x)

6.x ← x+7

7.while (x<=49)

(26)

Pentingnya Analisa Algorithm

Suppose, if we want to build a house we do not directly start constructing the house. Instead we consult an architect, we put our ideas and suggestion, accordingly he draws a plan of the house, and he discussed it with us.

Finally, the blue print of house gets ready. Now it becomes very easy and systematic for construction of desired house.

Designing is just a paper work and it can be easily modified on the paper.

Before actual implementation of the program, designing an algorithm is very important step.

(27)

Tahap Analisa Algoritma

1.

Bagaimana merencanakan algoritma?

2.

Bagaimana menyatakan suatu algoritma (menulis algoritma)?

3.

Bagaimana validitas suatu algoritma?

4.

Bagaimana menganalisa suatu algoritma?

5.

Bagaimana menguji program dari suatu

algoritma?

(28)

Ad.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.

(29)

Ad.2. Bagaimana menyatakan suatu algoritma (menulis algoritma)

Dengan psudocode

Suatu cara penulisan algoritma agar ide dan logika dari algoritma dapat disampaikan/diekspresikan menggunakan gaya bahasa pemrograman tertentu.

Phi 3.14

Input (diameter)

Radius diameter / 2

Luas phi * radius * radius Output (Luas)

End

(30)

Dengan flowchart / diagram alir

Program Flowchart, yaitu bagan yang menggambar- kan urutan logika dari suatu prosedur pemecahan

masalah.

Start

Phi = 3.14

Input (diameter)

Radius = diameter/2 Luas = phi * radius * radius

Output Luas

Stop

(31)

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 banyaknya memori program yang digunakan.

(32)

Analisis Suatu Algoritma

Untuk melihat effisiensi dan efektifitas dari suatu algoritma, dapat dilihat dari:

1. Waktu Tempuh dari Suatu Algoritma

2. Jumlah memori yang digunakan

Hal-hal yang dapat mempengaruhi waktu tempuh adalah :

1. Banyaknya langkah.

2. Besar dan jenis input data.

3. Jenis Operasi.

4. Komputer dan kompilator

(33)

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 Process  instruksi pemilihan proses (percabangan), sehingga apabila memenuhi persyaratan tertentu maka instruksi akan dikerjakan.

Contoh : jika pembayaran tunai diberi diskon 10%

Jika dilakukan secara kredit maka diskon 0 %.

(dalam pernyataan diatas, hanya boleh melakukan 1 instruksi dari 2 alternatif instruksi.

3. Iteration Process  suatu instruksi yang dikerjakan berulang- ulang selama beberapa kali selama masih memenuhi suatu kondisi.

(34)

BAHASA PEMROGRAMAN

Program harus ditulis dalam suatu bahasa yang dimengerti oleh komputer yaitu dalam Bahasa pemrogram dibedakan menjadi :

Bahasa tingkat rendah (low level language) : bahasa yang berorientasi ke mesin.

Bahasa tingkat tinggi (high level language) : bahasa yang berorientasi ke manusia (seperti bahasa inggris) contoh bahasa Pascal, bahasa C dll.

(35)

BAHASA PEMROGRAMAN

Program yang ditulis dalam bahasa pemrograman akan diterjemahkan kedalam bahasa mesin (kenal dengan biner digit) dengan menggunakan penterjemah.

Penterjemah :

Interpreter : menterjemahkan baris per baris instruksi.

Contoh bahasa Basic.

Compiler : menterjamahkan setelah seluruh instruksi ditulis.

Contoh bahasa Pascal, C, C++, dll.

Interpreters and Compilers (Bits and Bytes, Episode 6 ).mp4

(36)

Tugas (Buat Flowchartnya dan Pseudocodenya !)

1. Buatlah algoritma untuk menghitung konversi suhu.dari Celcius menjadi Reamur dan Farenheit.

Input: suhu dalam Celcius

Proses: R = 4/5 * C dan F = 9/5 * C + 32

Output

2. Buatlah algoritma untuk menentukan suatu bilangan genap atau ganjil

Input: suatu bilangan

Ouput: genap / ganjil

3. Buatlah algoritma untuk menentukan suatu bilangan adalah bilangan prima atau bukan.

(37)

Pseudocode Cek Bil. Prima

1. Mulai

2. Masukan nilai bilangan a

3. b=1

4. b=b+1

5. c=a mod b

6. Periksa apakah c=0

7. Jika tidak kembali ke langkah 4

8. Jika iya periksa apakah a=b

9. Jika tidak maka a bukan bilangan prima

10. Jika iya maka a adalah bilangan prima

11. Selesai

Referensi

Dokumen terkait

Algoritma Pemrograman Kompetensi Konsep Algoritma Algoritma menggunakan bahasa natural Pengenalan Variabel Pengenalan tipe data Pengenalan operator Kompetensi Pseudocode

Penulisan ilmiah ini menjelaskan mengenai pembuatan program Aplikasi Administrasi Motel menggunakan bahasa pemrograman Microsoft®Visual Basic 6.0 disertai dengan diagram

Dari gambar di atas dapat dilihat bahwa panjang bentang balok sederhana mempengaruhi proses optimasi ukuran penampang dengan menggunakan algoritma genetika. Semakin panjang

Alur yang terjadi pada flowchart algoritma diatas adalah menggunakan salah satu metode pencarian ( searching ) yaitu menggunakan Sequential Search yang digunakan

Program untuk menghitung luas persegi panjang, dengan menggunakan algoritma kalimat, yaitu:.. Masukkan/input panjang dan lebar

Dapat dilihat pada gambar 1.1 flowchart Algoritma K-Means Clustering, alur dari algoritma dari metode K-Means yang digunakan dalam pengelompokkan data bank di Dinas

Hasil penelitian menunjukkan bahwa pencarian string pada teks bahasa medis dengan menggunakan algoritma Boyer-Moore lebih. baik dibandingkan dengan algoritma

Alur yang terjadi pada flowchart algoritma diatas adalah menggunakan salah satu metode pencarian (searching) yaitu menggunakan Sequential Search yang digunakan