Anda di halaman 1dari 37

ALGORITMA DAN PEMROGRAMAN

1
A.Ulfah Tenripada,S.Kom.,M.Kom
Algoritma Dan Pemrograman 1
• Dosen : A.Ulfah Tenripada,S.Kom.,M.Kom
• SKS : 3 SKS
• Email : ulfah.tenri@gmail.com
• Ruang: 312
Deskripsi
Penerapan cara pembelajaran pada matakuliah Algoritma dan
Pemrograman 1 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.
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.
Komponen Penilaian
• KEHADIRAN DAN KEAKTIFAN: 20%
• TUGAS: 30%
• UTS: 25%
• UAS: 25%
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
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
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.
Algoritma dalam Kehidupan
Algoritma dalam Kehidupan
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).
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)
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
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”
Tahap Masalah
Penyelesaian
Masalah analisis Model

Algoritma analisis

analisis Program

Eksekusi Data

Hasil
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.“
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.
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
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
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
Menggunakan Flowchart
Start Start Statement

Transition

Processing / Assignment Statement

Input / Output Statement

Conditional Statement

Stop Stop Statement


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)
Menggunakan Flowchart [3]
Start

Input the
value of a

Input the
value of b

c= a + b

Display the
value of c

Stop
• 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
• 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)
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.
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?
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.


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
• Dengan flowchart / Start
diagram alir
Program Flowchart, yaitu
bagan yang menggambar- Phi = 3.14
kan urutan logika dari suatu
prosedur pemecahan Input
masalah. (diameter)

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

Output
Luas

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

Anda mungkin juga menyukai