Anda di halaman 1dari 78

Objectives

Setelah menyelesaikan pertemuan ini,


anda diharapkan dapat:
 Memahami urutan penyelesaian masalah melalui
Coding komputer
 Mengerti tentang algoritma.

• Membuat algoritma dari suatu permasalahan.


• Mengerti tentang flowchart.
• Membuat flowchart dari suatu
permasalahan.
Aliran Informasi Selama Eksekusi
Program

Memori

Program bahasa mesin


memproses Data

Data input: CPU


Data dimasukkan pada
Hasil pembacaan
saat eksekusi program
Data

Hasil perhitungan

Data output:
Hasil Data yang
diproses
2
1. Spesifikasi Masalah
 Kita harus dapat menspesifikasikan masalah
dengan jelas dan tidak umbiguous dan memiliki
pemahaman yang jelas mengenai apa yang
diperlukan untuk menyelesaikan masalah tersebut.
 Kita harus dapat mengeliminasi aspek-aspek yang
tidak penting dari masalah.
 Dalam langkah ini, kita mungkin membutuhkan
informasi dari orang-orang yang terlibat dalam
masalah tersebut.
3
2. Analisis
 Kita harus dapat mengidentifikasi masalah berkaitan dengan:
 Input
 Output
 Kebutuhan tambahan atau batasan dari penyelesaian masalah
 Format dari output (dalam bentuk tabel, file, atau yang lain)
 Daftar variabel dan hubungan antar variabel (bisa dinyatakan
dalam rumus)
 Tips: Bacalah ‘problem statement’ (soal) dengan hati-hati agar
memiliki pemahaman yang jelas mengenai permasalahan dan
agar dapat menentukan input maupun output dengan benar. Kita
bisa menggarisbawahi frase di dalam soal yang mengindikasikan
input dan output.

4
 Contoh:
Problem: Hitung dan tampilkan total harga apel jika jumlah kg
apel yang dibeli dan harga perkg apel diketahui.
Analisis:
Hitung dan tampilkan total harga apel jika jumlah kg apel yang
dibeli dan harga perkg apel diketahui.
Input:
Jumlah apel yang dibeli (dalam kg) -> kg_beli
Harga per kg apel (dalam rupiah) -> harga_kg
Output:
Total harga apel (dalam rupiah) -> total
Rumus :
total = harga_kg x kg_beli
 Proses pemodelan suatu masalah dengan cara mengekstrak
variabel-variabel penting dan hubungan di antara variabel-
variabel disebut abstraksi.

5
3. Design
 Dalam tahap design, kita menyusun algoritme (daftar
langkah yang diperlukan untuk menyelesaikan masalah)
dan memverifikasi apakah algoritme yang kita susun dapat
menyelesaikan masalah sesuai dengan yang kita inginkan.
 Jangan berusaha secara langsung untuk menyelesaikan
masalah secara detail pada saat merancang algoritme.
Gunakan pendekatan top down design (disebut juga divide
and conquer), yaitu pendekatan yang dimulai dengan
mendaftar langkah-langkah utama atau submasalah yang
diperlukan untuk menyelesaikan masalah utama,
selanjutnya diikuti dengan menyusun penyelesaian untuk
setiap submasalah.

6
 Hampir setiap algoritme komputer terdiri dari submasalah
berikut:
 Memasukkan data (Input)
 Melakukan perhitungan (proses)
 Menampilkan hasil (output)
 Proses penyusunan langkah-langkah penyelesaian untuk
setiap submasalah yang berhasil diidentifikasi disebut
penghalusan algoritme (algorithm refinement).
 Untuk memverifikasi algoritme dilakukan desk checking,
yaitu pemeriksaan setiap langkah dalam algoritme dengan
cara mensimulasikan hasil eksekusi algoritme dengan
perhitungan manual.

7
4. Implementasi (Coding)
 Pada tahap ini dilakukan penulisan program,
yaitu mengkonversi algoritme yang disusun
pada tahap sebelumnya ke dalam bahasa
pemrograman yang dipilih.
Komponen
Analisis 35 B B S S B B
Design 35 S B B S S 0.6*B
Coding 30 S S B B B 0.5*B
Kesimpulan 100 35 70 0 0 35 71

8
Coding sesuai design = 0.5
5. Testing
 Setelah program sudah bisa dieksekusi,
dilakukan pengetesan program dengan
berbagai macam data, sehingga bisa
diverifikasi bahwa program sudah bekerja
sesuai dengan kebutuhan pada berbagai
situasi yang mungkin dihadapi oleh program.

9
6. Pemeliharaan (maintenance)

 Pemeliharaan dan peng-update-an program mencakup


modifikasi program untuk menghilangkan error yang sebelumnya
tidak terdeteksi dan untuk menjaga agar program tetap up-to-
date (sesuai) dengan kebijakan pemerintah ataupun dengan
perubahan kebijakan oganisasi.
 Beberapa organisasi melakukan pemeliharaan program setiap 5
tahun sekali atau lebih, dan seringkali pemeliharaan program
dilakukan oleh orang yang sebelumnya tidak terlibat dalam
pengembangan program tersebut. Oleh karena itu, sangat
penting untuk melakukan dokumentasi terhadap setiap tahap
pengembangan software, sehingga proses pemeliharaan
program bisa dilakukan dengan baik.

10
11
Definisi Program/Pemrograman
 Adalah kumpulan instruksi-instruksi tersendiri yang
biasanya disebut source code yang dibuat oleh
programmer (pembuat program)
 Program adalah kumpulan instruksi atau perintah yang
disusun sedemikian rupa sehingga mempunyai urutan
nalar yang tepat untuk menyelesaikan suatu
persoalan. (Menurut P. Insap Santosa)
 Instruksi (statement) yang dimaksud adalah syntax
(cara penulisan) sesuai dengan bahasa pemrograman
yang digunakan yang mempunyai komponen-
komponen : Input, Output, Proses, Percabangan dan
Perulangan.
12
Algoritma

Game :
Use Your Mindset!

13
Tahapan Pembuatan Program
• Mendefinisikan masalah dan menganalisanya.
Mencakup : tujuan pembuatan program, parameter yang digunakan,
fasilitas yang disediakan, algoritma yang diterapkan dan bahasa
program yang digunakan.
• Merealisasikan dengan langkah-langkah sebagai berikut :
Siklus Hidup Perangkat Lunak
(Software)

 Dilihat dari Struktur Sistem Komputer dan Siklus diatas,


Algoritma Pemrograman menempati posisi dibagian
implementasi karena bagian implementasi merupakan bagian
dimana pemrogram melakukan proses coding (pembuatan
program).

15
16
17
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
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”
Penulisan Algoritma
• Dalam Bahasa Natural (Bahasa Indonesia,
Inggris, dan Bahasa manusia Lainnya)
– Tapi terkadang membingungkan(Ambigoe)
• Menggunakan Flowchart (Diagram Alir)
– Bagus secara visual tapi repot jika
algoritmanya panjang
• Menggunakan Pseudocode
– Sudah lebih dekat ke pemroraman, namun
sulit di mengerti bagi orang yang tidak tahu
pemrograman
Tahap Masalah
Penyelesaian
Masalah analisis Model

Algoritma analisis

analisis Program

Eksekusi Data

Hasil
Algoritma
• Adalah inti dari ilmu komputer.
• Algoritma adalah urutan-urutan dari instruksi atau
langkah-langkah untuk menyelesaikan suatu masalah.
• Algoritma adalah blueprint dari program.
• Sebaiknya disusun sebelum membuat program.
• Kriteria suatu algoritma:
– Ada input dan output
– Efektivitas dan efisien
– Terstruktur
28
29
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.“
31
32
33
34
35
36
37
38
Contoh kasus: Konversi Mil ke Kilometer
 Problem :
Dalam kerja praktek anda diminta untuk mempelajari beberapa
peta. Peta-peta tersebut ada yang menggunakan satuan mil dan
ada yang menggunakan satuan kilometer. Oleh pembimbing
kerja praktek, anda diminta untuk mengkonversi semua jarak
dalam mil ke dalam kilometer.
 Analisis :
“…. Oleh pembimbing kerja praktek, anda diminta untuk
mengkonversi semua jarak dalam mil ke dalam kilometer.”
Input :
Jarak dalam mil -> mil
Output :
Jarak dalam kilometer -> km
Rumus :
mil = 1.609 km

39
 Design :
Algoritme awal :
1. Masukkan jarak dalam mil
2. Konversi jarak dari mil ke kilometer
3. Tampilkan hasil dalam kilometer
Penghalusan algoritme :
4. Masukkan jarak dalam mil
5. Konversi jarak dari mil ke kilometer
2.1. Jarak dalam kilometer adalah 1.609 kali jarak dalam mil.
3. Tampilkan hasil dalam kilometer
Contoh desk check terhadap algoritma :
Pada langkah 1, dimasukkan jarak 10 mil, langkah 2.1 akan
mengkonversinya menjadi 1.609 x 10 menjadi 16.09 kilometer.
Hasil ini akan ditampilkan di langkah 3.

40
 Pengetesan
Untuk memverifikasi bahwa program sudah
berjalan sesuai dengan kebutuhan, cobalah
mentest program dengan memasukkan
beberapa jarak dalam mil yang lain.

41
Studi Kasus :
 Problem :
Suatu dealer minyak menampung minyak jualannya
di dalam drum-drum. Sementara semua pembeli
selalu membeli minyak dengan membawa wadah
yang sama berupa jerigen. Pemilik dealer agak
kesulitan untuk menghitung harga minyak yang
dibeli oleh pembeli, karena pembeli selalu membeli
minyak dengan satuan jerigen (misalnya 3 jerigen,
atau 3.5 jerigen), sementara harga jual yang
diketahui adalah rupiah per drum, yaitu 100.000
rupiah per drum. Diketahui bahwa 1 jerigen isinya
sama dengan 1/20 drum. Bisakah anda membantu
pemilik dealer untuk memudahkan perhitungan
harga total minyak yang dijual ke setiap pembeli?
42
43
44
45
46
47
48
49
50
51
Contoh Algoritma 2
Mencari akar bulat positif dari bilangan
bulat (integer) positif a:
 Masukkan bilangan bulat positif a
 Berikan harga awal x sama dengan 1
 Hitung y sebesar x * x
 Jika y sama dengan a maka cetak x
sebagai akar dari a. Selesai
 Tambah nilai x dengan 1
 Pergi ke langkah 3.
Contoh Algoritma 3
Menentukan apakah suatu bilangan merupakan
bilangan ganjil atau bilangan genap.
 Masukkan sebuah bilangan sembarang
 Bagi bilangan tersebut dengan bilangan 2
 Hitung sisa hasil bagi pada langkah 2.
 Bila sisa hasil bagi sama dengan 0 maka bilangan itu
adalah bilangan genap tetapi bila sisa hasil bagi sama
dengan 1 maka bilangan itu adalah bilangan ganjil.
Flowchart
 Bagan-bagan yang mempunyai arus yang menggambarkan
langkah-langkah penyelesaian suatu masalah.
 Merupakan cara penyajian dari suatu algoritma.
 Ada 2 macam Flowchart :
– System Flowchart  urutan proses dalam system
dengan menunjukkan alat media input, output serta
jenis media penyimpanan dalam proses
pengolahan data.
– Program Flowchart  urutan instruksi yang
digambarkan dengan symbol tertentu untuk
memecahkan masalah dalam suatu program.
55
56
57
Flowchart
 Bagan-bagan yang mempunyai arus yang
menggambarkan langkah-langkah penyelesaian suatu
masalah.
 Merupakan cara penyajian dari suatu algoritma.
 Ada 2 macam Flowchart :
– System Flowchart  urutan proses dalam system
dengan menunjukkan alat media input, output serta
jenis media penyimpanan dalam proses
pengolahan data.
– Program Flowchart  urutan instruksi yang
digambarkan dengan symbol tertentu untuk
memecahkan masalah dalam suatu program.
Contoh Program Flowchart
Start

Print Judul

R EAD
D ata

Ya
Akhir
End
file ?

Tidak

Ya PR INT
Kode = "P" Nama, Alamat
"Perempuan"

Tidak
Simbol-simbol Flowchart

 Flow Direction Symbols (Simbol


penghubung alur)
 Processing Symbols (Simbol proses).
 Input-output Symbols (Simbol input-
output)
Simbol-simbol Flowchart
Simbol-simbol Flowchart –
Cont.
Pembuatan Flowchart
 Tidak ada kaidah yang baku.
 Flowchart = gambaran hasil analisa suatu
masalah
 Flowchart dapat bervariasi antara satu
pemrogram dengan pemrogramlainnya.
 Secara garis besar ada 3 bagian utama:
– Input
– Proses
– Output
Pembuatan Flowchart – cont.
 Hindari pengulangan proses yang tidak
perlu dan logika yang berbelit sehingga
jalannya proses menjadi singkat.
 Jalannya proses digambarkan dari atas
ke bawah dan diberikan tanda panah
untuk memperjelas.
 Sebuah flowchart diawali dari satu titik
START dan diakhiri dengan END.
Contoh 1 Flowchart
Contoh 2 Flowchart
Exercise
1. Buatlah algoritma untuk menghitung luas dan keliling
lingkaran. Dengan masukan berupa jari-jari.
2. Buatlah flowchart dari algoritma pada soal no 1 diatas.
3. Buatlah algoritma untuk mengecek bilangan di antara 2
bilangan masukan, apakah sama ataukah lebih besar salah
satunya, dan tampilkan hasilnya.
4. Buatlah flowchart dari algoritma pada soal no 3 diatas.
68
69
70
71
72
TINGKATAN BAHASA
PEMROGRAMAN
 TINGKAT TINGGI (HIGH LEVEL)
> Mirip bahasa manusia (Problem Oriented)
> Contoh : Pascal, Basic, Fortran, Cobol.
 TINGKAT MENENGAH (MIDDLE LEVEL)
> Gabungan antara bahasa mesin & manusia
> Contoh : Bahasa C
 TINGKAT RENDAH (LOW LEVEL)
> Sederetan instruksi yang lebih dekat
hubungannya dengan mesin (Machine Oriented).
> Contoh : Assembly

73
BERDASARKAN KONSEP
PEMROGRAMAN
YANG DIANUT.. PALING TIDAK SAAT INI,
BAHASA PEMROGRAMAN DIGOLONGKAN:
 Pemrograman Batch,
 Pemrograman Terstruktur,
 Pemrograman Berorientasi Obyek

(Object Oriented Programming).

74
APA ITU PEMROGRAMAN
TERSTRUKTUR ?
 Teori pemrograman terstruktur
memperlakukan pengkonversian
diagram alir besar dan komplek ke
dalam bentuk standar, sehingga
dapat di-representasi-kan dengan
iterasi dan pengumpulan sejumlah
kecil struktur logika kontrol dasar
dan standar.
(H.D. Mills, Chief Programmer Teams: Principle and Procedures). 75
APA ITU PEMROGRAMAN
TERSTRUKTUR ?
 Pemrograman terstruktur adalah
cara pengorganisasian dan
pengkodean program -program
yang membuat program tersebut
lebih mudah dipahami dan
dimodifikasi.
(J.R. Donaldson, Structured programming).

76
MENGAPA TERSTRUKTUR ?
 Mempelajari bahasa pemrograman
terstruktur sangat penting artinya karena
konsep-konsep yang diterapkan akan dipakai
terus dalam bahasa bahasa pemrograman
generasi baru.
 Dalam mempelajari pemrograman terstruktur
yang sangat penting dipahami adalah
konsepnya.
 Faktor dialek bahasa pemrograman menjadi
perhatian berikutnya.
77
TERIMA KASIH
SUKSES SELALU YACH 

78

Anda mungkin juga menyukai