1 / 24

TEE 2 103 Algoritma & Pemrograman

TEE 2 103 Algoritma & Pemrograman. P engantar Algoritma. Dosen: Abdillah, MIT HP: 0853 6581 8665 Email: abdill 01 @ gmail.com Website: http://abdill01.wordpress.com. Tujuan. Mahasiswa memahami s truktur dasar algoritma dan cara membuat algoritma menggunakan pseudo-code.

alan-brooks
Download Presentation

TEE 2 103 Algoritma & Pemrograman

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TEE 2103Algoritma & Pemrograman Pengantar Algoritma Dosen: Abdillah, MIT HP: 0853 6581 8665 Email: abdill01@gmail.com Website: http://abdill01.wordpress.com

  2. Tujuan Mahasiswa memahami struktur dasar algoritma dan cara membuat algoritma menggunakan pseudo-code.

  3. Algorithm berasal dari kata algoritmi, nama latin seorang cendekiawan muslim dari Uzbekistan yang bernama Abu Ja’far Muhammad bin Musa Al-Khwarizmi. Sebuah perangko yang diterbitkan pada 6 Sept 1983 oleh Uni Sovyet, untuk memperingati 1.200 tahun Al-Khwarizmi.

  4. Definisi Algoritma adalah urutan logis langkah-langkah penyelesaian masalah. Program komputer adalah realisasiteknis 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_Isidi 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 PROGRAMTukar_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("KetikkanMenit = "); scanf("%d",&J.mm); printf("KetikkanDetik = "); 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 PROGRAMSelisih_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.

More Related