Dasar Dasar Algoritma
Transcript of Dasar Dasar Algoritma
![Page 1: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/1.jpg)
STRUKTUR DASAR ALGORITMA Algoritma berisi langkah2 proses
penyelesaian mslh Langkah2 proses penyelesaian masalah
tersebut dpt membentk konstruksi suatu algoritma, langkah2 tersbt adalah :
1. runtunan aksi
2. pemilihan aksi
3. pengulangan aksi
![Page 2: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/2.jpg)
1. RUNTUNAN AKSI
Sebuah runtunan terdpt satu atau lebih pernytaan,setiap pernyataan dikerjakan secara berurutan sesuai penulisannya
Sebuah instruksi dikerjakan setelah instruksi sebelumnya telah dilaksanakan
Urutan instruksi menentukan keadaan akhir suatu algoritma
Bila urutan algoritma dirubah,maka hasil akhir mungkin juga berubah
Runtunan yg mempunyai satu/lebih pernyaaan disbt penytaan gabungan
![Page 3: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/3.jpg)
Contoh:
Program tukar_isiDiberikan 2 buah ember A & B berisi air berwarna merah, ember B berisi air berwarna biru.pertukarkan kedua isi ember tersbt shg ember A berisi air berwrna biru & ember B berisi air berwana merah
Algoritma :
1. Tuangkan air dari ember A kedlm ember C
2. Tuangkan air dari ember B kedlm ember A
3. Tuangkan air dari ember C kedlm ember B
![Page 4: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/4.jpg)
Algoritma tukar_isi menjadi inspirasi untuk mempertukarkan nilai dr 2 buah nilai dr 2 peubah
Misal A=8 dan B=5, pertukarkan nilai A & B, sehingga A=5 dan B=8,maka algoritmanya : isikan nilai A ke dlm Bisikan nilai B ke dlm Amaka hasilnya:A=8 & B=8, maka algoritma pertkarannya salah.Agar algirtmanya benar,maka perlu digunakan peubah bantu,misal C, sehinggga algoritmanya adalah:
![Page 5: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/5.jpg)
Isikan nilai A ke dlm C
Isikan nilai B ke dlm A
Isikan nilai C ke dlm B
![Page 6: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/6.jpg)
2. PEMILIHAN
Adaklanya sebuah aksi dikerjakan jika kondisi dipenuhi
Misal:jika lampu traffic light berwarna merah,maka kendaraan harus berhenti,maka pernyataan adalah: jika lampu traffic light berwarna merah,maka
berhenti
Pernytn tersbt disbt penyt.pemilihan (selection-stantement)atau perny.kondisional
![Page 7: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/7.jpg)
Bentuk umum selection statement:
Kondisi:pernsyartn yg dpt bernilai benar-salah,aksi setelah then dilakukan hanya jika kondisi benar
If & then ad/ kaca kunci (keyword) u/ struktur pemilihan
Contoh :
if x habis dibagi 2 then
tulis x ad/ bilangan genap
If kondisi then aksi
![Page 8: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/8.jpg)
Bentuk lain statent condisional
a.
else “kalau tdk”. Bila kondisi benar,maka aksi1 yg dikerjakan,kalau tdk aksi2 dikerjakan.contoh:
if lampu A nyala then
tekan tombol merah
else
tekan tombol biru
if kondisi then aksi1Else aksi2
![Page 9: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/9.jpg)
b.nested-if =pemilihan bersarang ad/ apabila pemilihan aksi yg dilakukan lebih dr 2 buah,maka struktur pemilihanya menjdi rumit.
if kondisi1 then aksi1Else if kondisi2 then aksi2 else aksi3
![Page 10: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/10.jpg)
Contoh :
if lampu traffic light berwarna merah then
berhenti
else
if lampu traffic light berwarna kuning then
jalan hati-hati
else
jalan terus
Dlm state.kondisi dikenal adanya ‘indentasi’ yaitu: pengg.rongga kosong yg membuat algoritma menjd mudah dibaca.
![Page 11: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/11.jpg)
Contoh:tanpa indentasiif lampu traffic light berwarna merah then
berhenti
Else if lampu traffic light berwarna kuning then
jalan hati-hati else
jalan terus
Penulisan algoritma sangat dianjurkan u/ membuat indentasi,agar algoritma mudah dbaca.
Kelebihan struktur pemilihan terltk pd kemampuannya yg memungkinkan pemroses mengikuti jalur aksi yg berbeda berdsrkan kondisi yg ada.
![Page 12: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/12.jpg)
3.PENGULANGANSalah kelebihan komputer ad/ kemampuannya u/ melakukan perkerjaan secara berulang-ulangContoh:program menulis_kalimat_500_kalimenuliskan kalimat ‘algoritma adalah langkah logis penyelesaian masalah’ sebanyak 500 kali
Algoritma:1. tulis ‘algoritma adalah langkah logis penyelesaian masalah’2. tulis ‘algoritma adalah langkah logis penyelesaian masalah3. tulis ‘algoritma adalah langkah logis penyelesaian masalah...500
![Page 13: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/13.jpg)
u/ mengtasi hal tersbt dpt digunakan stukrutr pengulangan for-do, sehingga algoritmya:
program menulis_kalimat_500_kali
menuliskan kalimat ‘algoritma adalah langkah logis penyelesaian masalah’ sebanyak 500 kali
Algoritma:
for i dari 1 sampai 50 do
tulis ‘algoritma adalah langkah logis penyelesaian masalah’
i ad/ pencacah pengulangan yg mencacah 1 s/d 500
![Page 14: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/14.jpg)
Bentuk2 pengulangan:
1. For pencacah pengulangan dr 1 s/d N doaksi
repeat-until=ulangi-sampai: proses pengulanganakan berhenti jika kondisi terpenuhi
3 While-do=selama-lakukan= prose pengulangan akan berhenti jika kondisi salah
RepeatAksiUntil kondisi
While kondisi doAksi
![Page 15: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/15.jpg)
STRUKTUR TEKS ALGORITMA
Ada 3 bagian struktur suatu algoritma, yaitu :
1. Bagian Judul (header)
2. Bagian Deklarasi
3. Bagian Algoritma
![Page 16: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/16.jpg)
Struktur teks Agoritma :
PROGRAM nama_program
{penjelasan tentang algoritma yg beisi uraian singkat mengenai
masalah yg akan diselesaikan}
DEKLARASI
{Semua nama yg dipakai, nama tipe,konstanta,var,prosedur,dan
fungsi diumumkan disini}
ALGORITMA
{Semua langkah/aksi algoritma dituliskan disini}
![Page 17: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/17.jpg)
Contoh:PROGRAM luas_lingkaran{menghitung luas lingkaran apabila jari-jari lingkaran sudah diberikan}
DEKLARASI{Nama Konstanta}
const N =10
const phi=3.14 {nilai phi}
{Nama variabel}
jari_jari, luas:real
ALGORITMA:READ (jari_jari)
LUAS Phi *jari_jari*jari_jari
Write (luas)
![Page 18: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/18.jpg)
1. Bagian judul / header Memuat nama program dan
penjelasan(spesifkasi) tentang program Nama program ditulis singkat,tetapi hrs
menggambarkan apa yg dilakukan algoritma Algoritma yg dibuat harus sesuai dgn
spesifikasi masalah yang diberikanContoh:PROGRAM helloWord{program untuk mencetak “hello word”}PROGRAM luas_lingkaran{program untuk menghitung luas lingkaran”}
![Page 19: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/19.jpg)
2. Bagian Deklarasi
Mengumumkan semua nama yg akan dipakai, termasuk nama tipenya
Nama tersbut berupa:konstanta,variabel,tipe, prosedur dan fungsi
Semua nama tersbt harus dideklarasikan sebelum digunakan
![Page 20: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/20.jpg)
Contoh: DEKLARASI
{nama konstanta}const N=10 {jumlah data}
const phi=3.14 {nilai phi}
{nama variabel}jari_jari,luas:real
{nama tipe}type titik:record {koord.titik dibidang kartesian}
< x:integer, {absis}
y:integer> {ordinat}
![Page 21: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/21.jpg)
FUNCTION apakah_A(input c:char) boolean
{mengembalikan nilai true bila c adalah karakter ‘A’ atau false bila sebaliknya}
PROSEDURE tukar(input/output A:integer, input/output B:integer)
{ mempertukarkan nilai A & B,parameter A & B sudah terdefinisi nilainya.setelah pertukaran A berisi nilai B semula, B berisi nilai A semula}
![Page 22: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/22.jpg)
Aturan pemberian ‘nama’ dalam notasi algoritmik:
1. tidak boleh mengandung spasi, tanda baca dan operasi matematika
2. Karakter garis bawah (“_”) dpt digunakan untuk menggantikan spasi
3. Tidak membedakan huruf kecil dan huruf besar
(bahasa pemrograman case sensitif seperti bahasa C menganggap huruf kecil dan besar adalah 2 karakter yang berbeda)
![Page 23: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/23.jpg)
3. Bagian Algortima Bagian ini merupakan inti dari suatu program Berisi deskripsi langkah2 penyelesain
masalah berupa pernyataan, yg ditulis dalam suatu notasi
Misal write untuk mencetak data/informasi, read untuk membaca data,dsb
Setiap pernyataan dlm algoritma dibaca dari atas ke bawah
Algoritma dieksekusi berdasarkan urutan pernyataan
![Page 24: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/24.jpg)
Contoh :
Algoritma :
Read (panjang,lebar)
Luas ←panjang*lebar
Write (luas)
![Page 25: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/25.jpg)
Translasi teks algoritma kedlm teks program pascal & C Teks algoritma merupakan hasil pemikiran
konseptual, agar dpt dilaksanakan o/komputer maka harus ditranslasi kedlm bahasa bahasa pemrograman apapun
Bahasa pascal merupakan bahasa pendidikan krn paling banyak digunakan dilingkungan universitas
Bahasa C krn memiliki lingkungan yg luas dlm industri perangkat lunak
![Page 26: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/26.jpg)
Contoh2 translasiAlgoritmikProgram luas_segiempat{ membaca panjang & lebar yg berbentuk empat persegi panjang,
menghitung luasnya, lalu mencetak luas tersebut ke piranti keluaran}
DEKLARASI{nama variabel}
panjang :real {panjang segiempat dlm cm}lebar :real {lebar segiempat dlm cm}luas :real {luas segiempat dlm cm}
ALGORITMA:Read (panjang,lebar)luas←panjang*lebarWrite (luas)
![Page 27: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/27.jpg)
Translasi dlm bahasa pascal
Program luas_segiempat;
Uses wincrt;
Var
panjang,lebar,luas:real;
Begin
write (panjang=‘);readln (panjang);
write (lebar =‘);readln (lebar);
luas:=panjang*lebar;
writeln (luas segiempat=‘,luas:5:2);
End.
![Page 28: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/28.jpg)
Translasi dlm bahasa C/* program luas_segiempat */
/* program untuk menghitung luas segiempat */# include <stdio.h>Main (){/* deklarasi*/Float panjang; {panjang segiempat dlm cm}
Float lebar; {lebar segiempat dlm cm}
Float luas; {luas segiempat dlm cm}
/*algoritma*/Printf (“panjang =“);scanf (“%f”, &panjang);Printf (“lebar =“);scanf (“%f”, &lebar);Luas=panjang*lebar;Printf (“luas segi empat=“ %f \n “,luas);}
![Page 29: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/29.jpg)
Contoh1: menghitung komisi salesman
Tulislah agoritma untuk menghitung komisi yg diterima salesman berdasarkan nilai penjualan yg dicapainya. Salesman mendapat komisi 5% dari hasil pejualannya.algoritma menerima data nama salesman dan nila penjualan yg dicapainya. Menghitung komisi lalu mencetak nama dan besar komisi yg diperolehnya
![Page 30: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/30.jpg)
penyelesain
Program komisi{menghitung komisi yg diterima salesman berdasarkan nilai penjualan yg
dicapainya. Salesman mendapat komisi 5% dari hasil pejualannya}
Deklarasinama_salesman : string
nilai_penjualan : real
komisi : real
Algoritma:Read(nama_salesman,nilai_penjualan)
komisi←0.05 *nilai_penjualan
Write (nama_salemsman,komisi)
![Page 31: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/31.jpg)
Program komisi_salesman;
Uses wincrt;
Var
nama_salesman :string;
nilai_penjualan :real;
komisi :real;
Beginwrite (‘nama salesman:‘);readln (nama_salesman);
write (‘nilai penjualan :‘);readln (nilai_penjualan);
komisi :=0.05 * nilai_penjualan;
writeln (‘komisi penjualan =‘,komisi:7:2);
End.
![Page 32: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/32.jpg)
/* program komisi_salesman */
/* program untuk menghitung komisi salesman */
# include <stdio.h>
Main ()
{
/* deklarasi*/
String nama_saleman;
Float nilai_penjualan;
Float komisi;
\*algoritma*/
Printf (“nama salesman =“);scanf (“%s”, &nama_salesman);
Printf (“nilai penjualan =“);scanf (“%f”’, &nilai_penjualan);
Komisi=0.05 * nilai_penjualan;
Printf (“komisi penjualan=“ %f \n “,komisi);
}
![Page 33: Dasar Dasar Algoritma](https://reader036.fdocument.pub/reader036/viewer/2022081505/556c2f84d8b42a02258b47b7/html5/thumbnails/33.jpg)
TUGAS 2 :Tulislah algoritma yg membaca nama karyawan dan gaji pokok bulanannya serta menghitung gaji bersihnya. Gaji bersih yg diterima pegawai adalah :
gaji bersih = gaji pokok + tunjangan-pajak
tunjangan karyawan dihitung 20% dari gaji pokok, sedangkan pajak adalah 15%dari gaji pokok ditambah tunjangan.nama karyawan dan gaji bersihnya dicetak kepiranti keluaran