TEE 2103 Algoritma & Pemrograman

Slides:



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

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
Notasi Algoritma TEE 2103 Algoritma dan Pemrograman
TEE 2103 Algoritma dan Pemrograman
Algoritma Pseudocode TEE 2103 Algoritma dan Pemrograman
Pengenalan Type Data Type data dapat dikelompokkan menjadi 2
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah
Dasar-dasar Pemrograman
Array (bagian 2).
Pendahuluan TEE 2103 Algoritma dan Pemrograman Dosen: Abdillah, MIT
Pendahuluan TEE 2103 Algoritma dan Pemrograman Dosen: Abdillah, MIT
STRUCT (Dalam Bahasa C)
Runtunan dan Pemilihan
Pointer TEE 2103 Algoritma dan Pemrograman Dosen: Abdillah, MIT
Ucu Nugraha, ST. Algoritma.
Struktur Dasar Algoritma
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
Apa itu Fungsi? Sebuah fungsi adalah modul program yang mengerjakan tugas atau aktivitas yang spesifik dan mengembalikan sebuah nilai dari tipe tertentu,
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
Struktur Dasar Algoritma
TEL 2112 Dasar Komputer & Pemograman Nama dan Nilai Data
Algoritma dan Pemrograman
Pengenalan Type Data Type data dapat dikelompokkan menjadi 2
TEL 2112 Dasar Komputer & Pemograman Larik (Array)
Dasar- dasar Algoritma
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 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
TIPE DATA.
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
TEL 2112 Dasar Komputer & Pemograman Pengantar Algoritma
Konsep Tipe Data dan Operator
TEL 2112 Dasar Komputer & Pemograman Pengantar Algoritma
Introduction to Algorithm and Programming
Algoritma pemrogaman komputer
Algoritma dan struktur data
Transcript presentasi:

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

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

Sebuah perangko yang diterbitkan pada 6 Sept 1983 oleh Uni Sovyet, untuk memperingati 1.200 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.

Definisi Algoritma adalah urutan logis langkah-langkah penyelesaian masalah. 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 algoritma (pseudo-code).

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

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.