TEL 2112 Dasar Komputer & Pemograman Pengantar Algoritma

Slides:



Advertisements
Presentasi serupa
TEL 2112 Dasar Komputer & Pemograman Nama dan Nilai Objek Abdillah, S.Si, MIT Website:
Advertisements

Introduction to Algorithm and Programming
Algoritma dan Struktur Data
Dasar- Dasar Algoritma
Algoritma dan Struktur Data
Notasi Algoritma.
Shofia D. Agustina.  Agar dapat dieksekusi oleh komputer, algoritma harus diterjemahkan terlebih dahulu kedalam notasi bahasa pemrograman. Penerjemahan.
Dasar Pemrograman MODUL 05 RUNTUNAN (sequence).
menginput waktu dalam detik di konversi ke Jam, Menit dan Detik
Struktur Data dan Algoritma
Notasi Algoritma TEE 2103 Algoritma dan Pemrograman
TEE 2103 Algoritma dan Pemrograman
Algoritma Pseudocode TEE 2103 Algoritma dan Pemrograman
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah
Dasar-dasar Pemrograman
Array (bagian 2).
TEL 2112 Dasar Komputer & Pemograman Prosedur
Runtunan dan Pemilihan
Ucu Nugraha, ST. Algoritma.
ALGORITMA DAN PEMOGRAMAN 1A
TEL 2112 Dasar Komputer & Pemograman Algoritma Pemrograman
TEL 2112 Dasar Komputer & Pemograman Konsep Tipe Data dan Operator
Konsep Tipe Data dan Operator
TEL 2112 Dasar Komputer & Pemograman Pemrograman Modular
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah 2
TEE 2103 Algoritma dan Pemrograman
TEL 2112 Dasar Komputer & Pemograman Penyeleksian
Contoh-contoh Pemecahan Masalah TEE 2103 Algoritma & Pemograman
TEL 2103 Dasar Komputer & Pemograman Larik (Array)
TEL 2112 Dasar Komputer & Pemograman Fungsi
Fungsi TEE 2103 Algoritma & Pemrograman Dosen: Abdillah, MIT
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah 2
TEL 2112 Dasar Komputer & Pemograman Nama dan Nilai Data
Algoritma dan Pemrograman
TEL 2112 Dasar Komputer & Pemograman Larik (Array)
TEL 2112 Dasar Komputer & Pemograman Larik (Array)
TEL 2112 Dasar Komputer & Pemograman Pemrograman Modular
BAHASA PEMROGRAMAN C OPERATOR IRSAN JAELANI.
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah
TEL 2112 Dasar Komputer & Pemrograman
TEE 2103 Algoritma & Pemrograman
TEL 2112 Dasar Komputer & Pemograman Ujian Tengah Semester
TEL 2112 Dasar Komputer & Pemograman Algoritma Pemrograman
Pengantar.
Contoh-contoh Pemecahan Masalah 2 TEE 2103 Algoritma & Pemograman
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah 2
Runtunan dan Pemilihan
TEL 2112 Dasar Komputer & Pemrograman
Muhammad Riska B. PTIK FT UNM
Identitas dosen Suherman, ST Address : Cilegon
Pengantar Pemrograman Modular
TEL 2112 Dasar Komputer & Pemograman Prosedur
TEL 2112 Dasar Komputer & Pemograman Fungsi
Introduction to Algorithm and Programming
TEL 2112 Dasar Komputer & Pemograman Pemrograman Modular
TEL 2112 Dasar Komputer & Pemograman Prosedur
Algoritma dan Pemrograman (Pertemuan 04)
TEL 2112 Dasar Komputer & Pemograman Fungsi
Contoh-contoh Pemecahan Masalah 2 TEE 2103 Algoritma & Pemograman
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah 2
TEE 2103 Algoritma & Pemrograman
TEL 2112 Dasar Komputer & Pemograman Pengantar Algoritma
Konsep Tipe Data dan Operator
Introduction to Algorithm and Programming
Pengantar Algoritma dan pemograman
Notasi Algoritmik.
Introduction to Algorithm and Programming
Algoritma pemrogaman komputer
Operator, Variabel, Konstanta, Tipe Data
Transcript presentasi:

TEL 2112 Dasar Komputer & Pemograman Pengantar Algoritma Abdillah, S.Si, MIT Email: abdill01@gmail.com Website: http://abdill01.wordpress.com

Tujuan Mampu memecahkan masalah-masalah sederhana dalam sebuah algoritma menggunakan notasi pseudocode dan translasinya ke dalam bahasa C.

Algorithm berasal dari kata algoritmi, nama latin cendikiawan muslim yang bernama Abu Ja’far Muhammad bin Musa Al- Khwarizmi, lahir sekitar tahun 780 di Khwārizm (sekarang Uzbekistan).

Apa itu Algoritma? Definisi : Algoritma adalah urutan logis langkah-langkah penyelesaian masalah

Apa Hubungan Algoritma dan Program Komputer? Program komputer adalah realisasi teknis dari sebuah algoritma.

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.

Belajar Memprogram Belajar memprogram berarti belajar tentang metodologi pemecahan masalah, kemudian menuangkan algoritma pemecahan masalah dalam suatu notasi algoritmik

Notasi Algoritmik Notasi algoritmik bersifat independen terhadap bahasa pemrograman sehingga dapat diterjemahkan ke dalam berbagai bahasa pemrograman. Ada dua notasi yang umum digunakan: Flow chart (diagram alir) Pseudo-code (menyerupai notasi bahasa pemrograman tingkat tinggi)

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 }

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.

Contoh Algoritma Misalkan seseorang menuliskan langkah-langkah pertukaran isi kedua gelas tersebut ke dalam program Tukar_Isi dengan algoritma sbb: PROGRAM Tukar_Isi {Diberikan dua buah gelas, A dan B; gelas A berisi air kopi dan gelas B berisi air susu. Pertukarkan isi kedua gelas} DEKLARASI A, B : gelas 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.

Perhatikan langkah pemecahan berikut:

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 }

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.

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}

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); }

Masalah Selanjutnya.. Buatlah algoritma untuk mempertukarkan nilai dari dua buah peubah, A dan B tanpa menggunakan peubah bantu.

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 }

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); }

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)

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); }

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)

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); }

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)

/* 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); }

Tugas Mandiri 1 Buatlah algoritma yang membaca sebuah waktu permulaan ujian dalam format hh.mm dan durasi waktu ujian dalam menit. Kemudian hitung dan tampilkan waktu berakhirnya ujian. Print listing program C dari algoritma di atas dan tampilkan contoh hasil eksekusi program. Kirimlah e-mail dengan lampiran (attachment) listing program dalam format .c ke alamat abdill01@gmail.com sebelum 28 Oktober 2010.