Upload
truongcong
View
244
Download
0
Embed Size (px)
Citation preview
Pemrograman Dasar
1
Pertemuan 01
Pada akhir pertemuan ini, diharapkan mahasiswaakan mampu :
Menjelaskan tentang konsep dasar pemrograman komputer, algoritma dan tahapan pembuatan algoritmapemrograman terstruktur.
2
• Konsep Dasar Pemrograman
• Definisi Algoritma
• Tahap Pengembangan Algoritma
• Penyajian algoritma
• Pseudocode
• Flow Chart
• Pemrograman Terstruktur
3
4
Penyimpanan Data
PUSAT PENGOLAH DATA
(berbasis Arithmatika
dan Logika)
Data yg Diolah
(Masukan/Input)
Data hasil pengolahan
(Keluaran/Output)
COMPUTER TO – COMPUTE + ER
(Menghitung/Mengolah bilangan)
(Mengolah Data)
Pemrograman adalah suatu aktifitas pemecahan masalah. Metode pemecahan masalah dibahas pada berbagai bidang,
misalnya:
• Di bidang bisnis digunakan pendekatan sistem
• Di bidang teknik dan sains digunakan metode teknik dansaintifik
• Di bidang pemrograman digunakan metode pengembangansoftware
Langkah-langkah dalam metode Pembuatan Program:
1. Menspesifikan kebutuhan masalah -> identifikasi masalah
2. Menganalisis masalah -> metode penyelesaian terbaik
3. Merancang/mendesign algoritma untuk menyelesaikanmasalah -> Design pemrograman
4. Mengimplementasikan algoritma -> coding
5. Mentest dan memverifikasi program -> debuging; testing
6. Memelihara dan meng-update program -> maintenance
5
Kita harus dapat menspesifikasikanmasalah dengan jelas dan tidak ambigudan memiliki pemahaman yang jelasmengenai apa yang diperlukan untukmenyelesaikan masalah tersebut.
Kita harus dapat mengeliminasi aspek-aspek yang tidak penting dari masalah.
Dalam langkah ini, kita mungkinmembutuhkan informasi dari orang-orang yang terlibat dalam masalahtersebut.
6
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.
7
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_kgOutput:
Total harga apel (dalam rupiah) -> totalRumus :
total = harga_kg x kg_beli Proses pemodelan suatu masalah dengan cara mengekstrak
variabel-variabel penting dan hubungan di antara variabel-variabel disebut abstraksi.
8
Dalam tahap design, kita menyusun algoritma(daftar langkah yang diperlukan untukmenyelesaikan masalah) dan memverifikasiapakah algoritma yang kita susun dapatmenyelesaikan masalah sesuai dengan yang kitainginkan.
Jangan berusaha secara langsung untukmenyelesaikan masalah secara detail pada saatmerancang algoritme. Gunakan pendekatan top down design (disebut juga divide and conquer), yaitu pendekatan yang dimulai dengan mendaftarlangkah-langkah utama atau submasalah yang diperlukan untuk menyelesaikan masalah utama, selanjutnya diikuti dengan menyusun penyelesaianuntuk setiap submasalah.
9
Algoritma adalah sekumpulan langkah-langkahterbatas untuk mencari solusi suatu masalah.
Berasal dari kata algoris dan ritmis. Awalnyadiungkapkan oleh Al Khowarizmi.
Di pemrograman, algoritma didefinisikansebagai metode yang terdiri dari langkah-langkah terstuktur untuk mencari solusi suatumasalah dengan bantuan komputer.
10
Hampir setiap algoritme komputer terdiri dari submasalah berikut:• Memasukkan data• Melakukan perhitungan• Menampilkan hasil
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.
11
Pada tahap ini dilakukan penulisan
program, yaitu mengkonversi algoritme
yang disusun pada tahap sebelumnya ke
dalam bahasa pemrograman yang
dipilih.
12
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.
13
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.
14
MASALAH / IDEA PEMECAHAN SOLUSI / HASIL
Algoritma Source
Code
Executable
Code
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 -> milOutput :
Jarak dalam kilometer -> kmRumus :
1 mil = 1.609 km
16
Design :Algoritme awal :1. Masukkan jarak dalam mil
2. Konversi jarak dari mil ke kilometer
3. Tampilkan hasil dalam kilometer
Penghalusan algoritme :1. Masukkan jarak dalam mil
2. 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.
17
Implementasi :/* Konversi jarak dari mil ke kilometer */
#include <stdio.h> /* definisi printf, scanf */
#include KM_PER_MIL 1.609 /*konstanta konversi */
int main(void) {double mil, /*input: jarak dalam mil*/
km; /*output: jarak dalam km*/
/* memasukkan jarak dalam mil */
printf(“Masukkan jarak dalam mil : “);
scanf(“%lf”, &mil);
/* konversi jarak ke kilometer */
km = KM_PER_MIL * mil;
/* tampilkan jarak dalam kilometer */
printf(“Hasil konversi adalah %lf kilometer.\n”, km);
return(0);
}
Contoh hasil runing program :Masukkan jarak dalam mil : 10.00
Hasil konversi adalah 16.090000 kilometer
18
Pengetesan
Untuk memverifikasi bahwa program
sudah berjalan sesuai dengan kebutuhan,
cobalah mentest program dengan
memasukkan beberapa jarak dalam mil
yang lain.
19
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?
20
22
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMATULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
Y
Y
T
T
23
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMATULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
Masalah:
Tentukan akar-akar dari suatu persamaan
kwadrat.
Definisi:
Persamaan kwadrat : ax^2 + bx + c = 0
Data yg diperlukan :
Nilai dari a, b dan c : tipe real
24
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMATULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
Model Matematika :
Rumus ABC
x1 = (-b + sqrt(b^2 - 4ac))/2a
x2 = (-b – sqrt(b^2 - 4ac))/2a
25
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
Start
d = b^2 – 4ac
d < 0
Masukkan a,b,c
x1=(-b+sqrt(d))/2a
x2 =(-b-sqrt(d))/2a
Stop
YT
Cetak: x1, x2
Cetak:
“Akar majiner”
26
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMATULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
27
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMATULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
28
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMATULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
29
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMATULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
30
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMATULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
31
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMATULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
Algoritma bisa dibuat dengan:
• Teknik tulisan seperti : Structure english dan
Pseudocode.
• Teknik visual seperti : Flow chart.
32
Outline dari sebuah program komputer
Ditulis dalam bahasa Inggris atau Indonesia
sederhana
Kata kunci (keyword) digunakan untuk
menjelaskan struktur kendali (misalnya:
“jika”, “ulangi”, “sampai”,”if”,”repeat”, “until”)
33
Tujuh operasi dasar komputer:
1. Membaca data (Input)
2. Menampilkan data (Output)
3. Melakukan perhitungan aritmetika (Compute)
4. Memberikan nilai ke suatu identifier (Store)
5. Membandingkan dan Memilih (Compare)
6. Melakukan pengulangan (Loop)
7. Procedure dan atau Function
34
Sewaktu komputer menerima informasi atau
input, maka statement yang biasa digunakan
adalah “Read”, “Get”, “Baca” ,”Input” atau
“KeyIn”
Contoh:
Read Bilangan
Get kode_pajak
Baca nama_mahasiswa
35
Sewaktu komputer menampilkan informasiataupun output, maka statement yang biasadigunakan adalah “Print”, “Write”, “Put”, “Output”, “Display” ataupun “Cetak”
Contoh:
Print “Universitas Brawijaya”
Cetak “Dasar Pemrograman Komputer”
Output Total
36
Untuk melakukan operasi aritmetika digunakanpseudocode berikut:
+ untuk penjumlahan (add)- Untuk pengurangan (subtract) * Untuk perkalian (multiply)
/ Untuk pembagian (divide)() Untuk kurung
Statement “Compute”, “Calculate” ataupun“Hitung” juga dapat digunakan.
Contoh:
Add number to total Total = Total + number
37
Ada tiga cara untuk memberikan nilai ke dalamvariabel :
• Memberikan nilai awal, menggunakan statement“Initialize” atau “Set”
• Memberikan nilai sebagai hasil dari suatu proses, maka tanda “=“ digunakan
• Untuk menyimpan suatu nilai maka statement“Save” atau “Store” digunakan
Contoh:
Set Counter to 0
Total = Harga * Jumlah
38
Salah satu operasi terpenting yang dapatdilakukan komputer adalah membandingkan danmemilih salah satu alternatif solusi.
Keyword yang digunakan : “IF”, “THEN” dan“ELSE”
Contoh
IF Pilih=‘1’ THEN
Discount = 0.1 * hargaELSE
Discount = 0.2 * harga
ENDIF
39
Jika ada beberapa perintah yang harus diulang,
maka dapat digunakan keyword “DOWHILE”
dan “ENDDO”.
Contoh
Bil = 0
DOWHILE bil < 10
cetak bil
bil = bil +1
ENDDO
40
Algoritma Menggunakan Kalkulator
Mulai
Nyalakan kalkulator
Kosongkan Kalkulator
Ulangi
Input harga
Tekan tombol Plus (+)
Sampai semua harga diinput
Tampilkan total harga
Matikan kalkulator
Selesai
41
Algoritma Berangkat Kuliah
Mulai
Bangun dari tempat tidur
Mandi Pagi
Sarapan Pagi
Pergi Ke Kampus
Cari Ruang Kuliah
Masuk kelas untuk Kuliah
Selesai
42
Algoritma Sarapan Pagi
MulaiAmbil piring
Masukkan nasi dan lauk dalam piring
Ambil sendok dan garpu
Ulangi
Angkat sendok dan garpu
Ambil nasi dan lauk
Suapkan ke dalam mulut
Taruh sendok dan garpu
Kunyah
Sampai (nasi dan lauk habis) ATAU kekenyangan
Bereskan piring, sendok dan garpu
Selesai
43
44
Terminator
Proses
Pemilihan
Input/Output
Dokumen
Pengulangan
Arah
Konektor antar
halaman
Konektor
Pemanggilan
Procedure
45
46
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 atau
STOP.
47
48
Start
d = b^2 – 4ac
d < 0
x1=(-b+sqrt(d))/2a
x2 =(-b-sqrt(d))/2a
End
Y
T
Masukkan
a,b,c
Cetak
x1,x2
Cetak Pesan
“Akar imajiner”
Mempunyai logika yang tepat untuk memecahkanmasalah.
Menghasilkan output yang benar dalam waktuyang singkat.
Ditulis dengan bahasa baku terstruktur sehinggatidak menimbulkan arti ganda.
Ditulis dengan format baku sehingga mudahdiimplementasikan kedalam bahasapemrograman.
Semua operasi didefinisikan dengan jelas danberakhir sesudah sejumlah langkah.
49
Pemrograman terstruktur merupakan pola
penyusunan program komputer hanya
dengan menggunakan tiga struktur kontrol
yaitu:
1. Sequence
2. Selection
3. Repetition
50
Sequence merupakan urutan pengerjaan dari
perintah/statement pertama sampai dengan
perintah/statement terakhir.
Umumnya bahasa pemrograman mempunyai
sequence (urutan pengerjaan dari perintah /
statement ) mulai dari atas ke bawah dan dari
kiri ke kanan.
Top-down
51
Contoh:
Cetak “Jumlah Mahasiswa”
Set Jumlah to 49
Cetak “Tambahan mahasiswa baru”
Baca mhs_baru
Jumlah = Jumlah + mhs_baru
Cetak “Jumlah Mahasiswa”
Cetak jumlah
Penjelasan• Urutan pengerjaan adalah mulai dari urutan pertama sampai
dengan urutan terakhir, jika mhs_baru diisi dengan 2, makajumlah yang tercetak adalah 51
52
Struktur Kontrol Selection adalah
penggambaran sebuah kondisi dan pilihan
diantara dua aksi.
Statement Pertama akan dikerjakan jika
kondisi bernilai benar, jika tidak maka akan
mengerjakan perintah setelah keyword “else”
(jika ada).
53
Contoh :
IF Hari=1 THEN
Cetak “Senin”
ELSE
Cetak “Bukan hari Senin”
ENDIF
Penjelasan
• Tulisan “Senin” akan ditampilkan jika Hari bernilai
1, jika tidak maka tulisan “Bukan hari Senin” yang
akan ditampilkan
54
Beberapa statement / perintah dapat diulang
dengan menggunakan struktur kontrol
repetition.
Statement / perintah akan tetap diulang selama
kondisi perulangan memenuhi (jika
menggunakan DOWHILE – ENDDO)
55
Contoh:
Bintang = 0 DOWHILE bintang < 5
Cetak bintangbintang = bintang + 1
ENDDO
Penjelasan:
• Pertama kali bintang akan diisi dengan 0, setelah itu isi
dari bintang akan dicetak sebanyak lima kali, sehingga
tampilannya akan sebagai berikut: 0 1 2 3 4
56
Studi Kasus satu1. Menghitung Luas Permukaan kubus :6 *
luas sisi kubus
2. Menghitung Volume bola : 4/3*Phi* r3
3. Memperkirakan lama di jalan bila kecepatan
mobil 50 km/jam dan jarak tempuh 100 km :
lama di jalan = jarak/kecepatan
4. Mencari nilai akar persamaan ax2+bx+c=0
Problem: Hitung dan tampilkan luas permukan kubus.Analisis:
Hitung dan tampilkan luas permukaan kubus jika sisi kubus diketahui.
Input:
Panjang rusuk kubus (r) dalam satuan jarak.Output:
Luas permukaan kubus (luas)Rumus :
luas=6 x r x r
Algoritma :1. Masukkan rusuk kubus (r)
2. Hitung luas
luas = 6 x r x r
3. tampilkan luas
PsuedoCode
60
start
read r;
Calculate luas=6 * r * r;
Display luas;
stop
Tulisan
disamping
seklias mirip
dengan bahasa
pemrograman,
padahal
sebenarnya
adalah bahasa
Indonesia/
Inggris yang
berisi urutan
proses dan
ditulis mirip
code program
Problem: Cari dan tampilkan akar-akar persamaan kuadrat ax2 + bx + c=0.
Analisis:Mencari nilai akar-akar persamaan kuadrat dan menampilkan hasilnya.
Input:
koefisien a, b, c Output:
x1, x2Rumus :
x1= (-b + √D )/2ax2= (-b - √D )/2adengan D = b2 – 4ac dan a ≠ 0
Algoritma :1. Masukkan koefisien a2. Masukkan koefisien b3. Masukkan koefisien c
4. Hitung DD = b2 – 4ac
5. Jika D<0 maka5.1 Tampilkan “Tidak ada akar real”
Jika tidak, maka
5.2 Hitung x1 x1= (-b + √D )/2a
5.3 Hitung x2 x2= (-b - √D )/2a
5.4 tampilkan x1
5.5 tampilkan x2
6. END
Contoh Psuedocode
63
start
baca a;
baca b;
baca c;
hitung D=b^2-4*a*c;
IF D<0 {
cetak "Tidak ada akar
real";
}
ELSE {
hitung x1=(-b+sqrt(D))/2a;
hitung x2=(-b-sqrt(D))/2a;
cetak x1;
cetak x2;
}
stop
Tulisan
disamping
seklias mirip
dengan bahasa
pemrograman,
padahal
sebenarnya
adalah bahasa
Indonesia/
Inggris yang
berisi urutan
proses dan
ditulis mirip
code program
64
Start
d = b^2 – 4ac
d < 0
x1=(-b+sqrt(d))/2a
x2 =(-b-sqrt(d))/2a
End
Y
T
Masukkan
a,b,c
Cetak
x1,x2
Cetak “Tidak
ada akar real”
1. Buatlah algoritma menggunakan pseudocode
untuk menghitung luas persegi panjang
2. Buatlah algoritma menggunakan pseudocode
untuk mengubah jam dan menit yang diinput
ke dalam satuan detik.
3. Buatlah algoritma menggunakan pseudocode
untuk menentukan apakah bilangan yang
diinput adalah bilangan ganjil atau bilangan
genap.
65
4. Buatlah algoritma menggunakan pseudocode
untuk menghitung luas lingkaran.
5. Buatlah algoritma menggunakan pseudocode
untuk menginput 3 buah bilangan, kemudian
tentukan bilangan terbesar, terkecil dan rata-
ratanya.
66
Ulangi latihan no. 1 s/d no. 5 diatas
dengan menggunakan Flow Chart.
67
Pak Tono diberi tugas mengambil air dari
sungai sebanyak 4 Liter. Pak Tono hanya
dibekali dua ember yang berukuran 5
liter dan 3 liter. Pak Tono dilarang
menggunakan alat bantu lain. Buatlah
langkah agar Pak Tono mendapatkan air
4 liter yang dimaksud!
68