Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
TEE 2103 Algoritma & Pemrograman
Pengantar Algoritma Dosen: Abdillah, MIT HP: Website:
2
Tujuan Mahasiswa memahami struktur dasar algoritma dan cara membuat algoritma menggunakan pseudo-code.
3
Sebuah perangko yang diterbitkan pada 6 Sept 1983 oleh Uni Sovyet, untuk memperingati tahun Al-Khwarizmi. Algorithm berasal dari kata algoritmi, nama latin seorang cendekiawan muslim dari Uzbekistan yang bernama Abu Ja’far Muhammad bin Musa Al- Khwarizmi.
4
Definisi Algoritma adalah urutan logis langkah-langkah penyelesaian masalah. Program komputer adalah realisasi teknis dari sebuah algoritma.
5
Belajar Bahasa Pemrograman
Belajar bahasa pemrograman berarti belajar memakai suatu bahasa pemrograman, aturan tata bahasanya, instruksinya, tata cara pengoperasian kompilernya dan memanfaatkan istruksi tersebut untuk membuat program yang ditulis dalam bahasa tersebut.
6
Belajar Memprogram Belajar memprogram berarti belajar tentang metodologi pemecahan masalah, kemudian menuangkan algoritma pemecahan masalah dalam suatu notasi algoritma (pseudo-code).
7
Struktur Teks Pseudo-code
PROGRAM Nama Program { Penjelasan tentang algoritma, yang berisi uraian singkat mengenai masalah yang akan diselesaikan } DEKLARASI { Semua nama yang dipakai, meliputi nama tipe, konstanta, peubah, prosedur dan fungsi diumumkan di sini } ALGORITMA: { Semua langkah/aksi algoritma dituliskan di sini }
8
Contoh Masalah Tinjau sebuah masalah sederhana yakni mempertukarkan isi dari dua buah gelas. Gelas A berisi air kopi dan gelas B berisi air susu. Kita ingin mempertukarkan isi kedua gelas itu sedemikian hingga gelas A akan berisi air susu dan gelas B berisi air kopi.
9
Contoh Algoritma Misalkan seseorang menuliskan langkah-langkah pertukaran isi kedua gelas tersebut ke dalam program Tukar_Isi dengan algoritma sbb: ALGORITMA: Tuangkan air dari gelas A ke dalam gelas B Tuangkan air dari gelas B ke dalam gelas A Perhatikan bahwa algoritma Tukar_Isi di atas tidak akan menghasilkan pertukaran yang benar. Langkah-langkahnya tidak logis.
10
Perhatikan langkah pemecahan berikut:
11
Algoritma Pemecahan Masalah
C A { simpan A di tempat penampungan sementara C } A B { sekarang A dapat diisi dengan nilai B } B C { isi B dengan nilai A semula yang tadi disimpan di C }
12
Contoh Masalah Buatlah algoritma untuk mempertukarkan nilai dari dua variabel. Algoritma pertukaran dua nilai ini sama seperti algoritma mempertukarkan isi dari dua buah gelas. Misalkan A = 8 dan B = 5. Kita ingin mempertukarkan nilai A dan B sehingga setelah pertukaran nilai A = 5 dan B = 8.
13
Algoritma Pemecahan Masalah
PROGRAM Tukar_Nilai { Mempertukarkan nilai A dan B. Nilai A dan B dibaca terlebih dahulu } DEKLARASI A, B, temp : integer ALGORITMA: read (A,B) {Baca nilai A dan B terlebih dahulu} {Proses pertukaran} temp A {simpan A di tempat sementara, temp} A B {sekarang A dapat diisi dengan nilai B} B temp {isi B dengan nilai A semula yang tadi disimpan di temp} write (A,B){cetak nilai A dan B setelah pertukaran}
14
Translasi Algoritma ke Program
/*Program Tukar_Nilai*/ #include <stdio.h> main() { int A, B, temp; printf("Masukkan nilai A: "); scanf("%d",&A); printf("Masukkan nilai B: "); scanf("%d",&B); /* ALGORITMA */ temp = A; A = B; B = temp; printf("Nilai A setelah pertukaran adalah: %d\n", A); printf("Nilai B setelah pertukaran adalah: %d", B); }
15
Masalah Selanjutnya.. Buatlah algoritma untuk mempertukarkan nilai dari dua buah peubah, A dan B tanpa menggunakan peubah bantu.
16
Algoritma Pemecahan Masalah
PROGRAM Pertukaran_Nilai { Program untuk mempertukarkan nilai A dan B tanpa peubah bantu. Nilai A dab B dibaca terlebih dahulu} DEKLARASI A, B : integer ALGORITMA: read (A,B) { baca nilai A dan B terlebih dahulu } write (A,B) { cetak nilai A dan B sebelum pertukaran } A A + B { proses pertukaran } B A - B A A - B write (A,B) { cetak nilai A dan B setelah pertukaran }
17
Translasi Algoritma ke Program
/*Program Tukar_Nilai*/ #include <stdio.h> main() { int A, B; printf("Masukkan nilai A: "); scanf("%d",&A); printf("Masukkan nilai B: "); scanf("%d",&B); /* ALGORITMA */ A = A + B; B = A - B; A = A - B; printf("Nilai A setelah pertukaran adalah: %d\n", A); printf("Nilai B setelah pertukaran adalah: %d", B); }
18
Contoh Algoritma PROGRAM Gaji_Karyawan
{ Menghitung gaji bersih = gaji pokok + tunjangan – pajak, tunjangan = 20% dari gaji pokok dan pajak = 15% dari gaji pokok ditambah tunjangan } DEKLARASI const persen_tunjangan = 0.2 const persen_pajak = 0.15 nama_karyawan : string gaji_pokok, tunjangan, pajak, gaji_bersih : real ALGORITMA: read (nama_karyawan, gaji_pokok) tunjangan persen_tunjangan * gaji_pokok pajak persen_pajak * (gaji_pokok + tunjangan) gaji_bersih gaji_pokok + tunjangan - pajak write (nama_karyawan, gaji_bersih)
19
Translasi Algoritma ke Program
/* PROGRAM Gaji_Karyawan */ #include <stdio.h> void main() { const float persen_tunjangan = 0.2; const float persen_pajak = 0.15; char nama[20]; float gaji_pokok, tunjangan, pajak, gaji_bersih; printf(“Nama karyawan: "); scanf("%s", nama); printf(“Gaji pokok: Rp. "); scanf("%f",&gaji_pokok); /* ALGORITMA */ tunjangan = persen_tunjangan * gaji_pokok; pajak = persen_pajak * (gaji_pokok + tunjangan); gaji_bersih = gaji_pokok + tunjangan - pajak; printf("Nama karyawan adalah: %s\n", nama); printf("Gaji bersih adalah: Rp. %.2f", gaji_bersih); }
20
Contoh Algoritma PROGRAM Konversi_ke_Jam_Menit_Detik
{ Membaca durasi waktu dalam detik. Kemudian mengkonversi waktu ke dalam jam, menit dan detik. } DEKLARASI type Jam = record < hh, mm,dd : integer > durasi : Jam total_detik, sisa : integer ALGORITMA: read (total_detik) durasi.hh total_detik div 3600 Sisa total_detik mod 3600 durasi.mm sisa div 60 durasi.ss sisa mod 60 write (durasi.hh, durasi.mm, durasi.ss)
21
Translasi Algoritma ke Program
/* Program Konversi_ke_Jam_Menit_Detik */ #include <stdio.h> void main() { typedef struct {int hh, mm, ss;} Jam; Jam durasi; int total_detik, sisa; /* ALGORITMA */ printf("Ketikkan Jam = "); scanf("%d",&J.hh); printf("Ketikkan Menit = "); scanf("%d",&J.mm); printf("Ketikkan Detik = "); scanf("%d",&J.ss); durasi.hh = total_detik / 3600; sisa = total_detik % 3600; durasi.mm = sisa / 60; durasi.ss = sisa % 60; printf("Durasi = %d jam %d menit %d detik", durasi.hh, durasi.mm, durasi.ss); }
22
Contoh Algoritma PROGRAM Selisih_Waktu
{ Membaca selisih dari dua waktu} DEKLARASI type Jam = record < hh, mm,dd : integer > J1, J2, J3 : Jam TotalDetik1, TotalDetik2, SelisihDetik, Sisa : integer ALGORITMA: read (J1.hh, J1.mm, J1.ss), (J2.hh, J2.mm, J2.ss) TotalDetik1 (J1.hh*3600) + (J1.mm*60) + J1.ss TotalDetik2 (J2.hh*3600) + (J2.mm*60) + J2.ss SelisihDetik TotalDetik2 – TotalDetik1 J3.hh SelisihDetik div 3600 Sisa SelisihDetik mod 3600 J3.mm Sisa div 60 J3.ss Sisa mod 60 write (J3.hh, J3.mm, J3.ss)
23
/* Program Selisih_Waktu */
#include <stdio.h> void main() { typedef struct {int hh, mm, ss;} Jam; Jam J1, J2, J3; int TotalDetik1, TotalDetik2, SelisihDetik, Sisa; printf("Ketikkan waktu awal (hh:mm:ss): "); scanf("%d : %d : %d",&J1.hh, &J1.mm, &J1.ss); printf("Ketikkan waktu akhir (hh:mm:ss): "); scanf("%d : %d : %d",&J2.hh, &J2.mm, &J2.ss); TotalDetik1 = (J1.hh*3600) + (J1.mm*60) + J1.ss; TotalDetik2 = (J2.hh*3600) + (J2.mm*60) + J2.ss; SelisihDetik = TotalDetik2 - TotalDetik1; J3.hh = SelisihDetik / 3600; Sisa = SelisihDetik % 3600; J3.mm = Sisa / 60; J3.ss = Sisa % 60; printf("Selisih waktu adalah %d jam %d menit %d detik", J3.hh, J3.mm, J3.ss); }
24
Daftar Pustaka Brian W. Kernighan, Dennis M. Ritchie,The C Programming Language, Prentice Hall, 2011. Rinaldi Munir, Algoritma dan Pemrograman dalam bahasa C, Informatika, 2009.
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.