Contoh-contoh Pemecahan Masalah 2 TEE 2103 Algoritma & Pemograman

Slides:



Advertisements
Presentasi serupa
STRUKTUR DASAR ALGORITMA
Advertisements

TEL 2112 Dasar Komputer & Pemograman Pengulangan
PERTEMUAN 6 Algoritma Presented by : Sity Aisyah, M.Kom
TEL 2112 Dasar Komputer & Pemograman Nama dan Nilai Objek Abdillah, S.Si, MIT Website:
LOGIKA ALGORITMA Pertemuan 6.
Algoritma dan Struktur Data
ARRAY 1 DIMENSI.
Shofia D. Agustina.  Agar dapat dieksekusi oleh komputer, algoritma harus diterjemahkan terlebih dahulu kedalam notasi bahasa pemrograman. Penerjemahan.
STRUCT 1.
Pemprograman Terstruktur 1
Prosedur dan Fungsi Triana Elizabeth, S.Kom.
Notasi Algoritma TEE 2103 Algoritma dan Pemrograman
TEE 2103 Algoritma dan Pemrograman
Algoritma Pseudocode TEE 2103 Algoritma dan Pemrograman
NOTASI ALGORITMIK dan BAHASA C++
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah
Array (bagian 2).
Algoritma dan Pemrograman I
Struktur Program TEE 2103 Algoritma dan Pemrograman
Notasi Algoritmik.
STRUCT (Dalam Bahasa C)
Ucu Nugraha, ST. Algoritma.
PERTEMUAN 7 STATEMENT PEMILIHAN
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
Pemilihan TEE 2103 Algoritma dan Pemrograman Dosen: Abdillah, MIT
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
Array 1.
Algoritma dan Pemrograman
TEL 2112 Dasar Komputer & Pemograman Larik (Array)
Array/Larik.
Remainder Senin depan mulai UTS Praktikum
Latihan #0 Dengan menggunakan pernyataan looping WHILE dan jumlah instruksi sesedikit mungkin, tuliskan cuplikan program (bukan program lengkap, hanya.
TEL 2112 Dasar Komputer & Pemograman Larik (Array)
TEL 2112 Dasar Komputer & Pemograman Pemrograman Modular
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
Ujian Akhir Semester TEE 2103 Algoritma dan Pemrograman
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah 2
TEL 2112 Dasar Komputer & Pemrograman
Algoritma dan Struktur Data
STATEMENT PENGENDALIAN (PEMILIHAN)
Algoritma dan Pemrograman Subrutin
TEL 2112 Dasar Komputer & Pemograman Prosedur
TEL 2112 Dasar Komputer & Pemograman Fungsi
TEL 2112 Dasar Komputer & Pemograman Pemrograman Modular
TEL 2112 Dasar Komputer & Pemograman Prosedur
Tugas Terstruktur I TEE 2103 Algoritma dan Pemrograman
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
Tugas Terstruktur II TEE 2103 Algoritma dan Pemrograman
TEL 2112 Dasar Komputer & Pemograman Pengantar Algoritma
TEL 2112 Dasar Komputer & Pemograman Pengantar Algoritma
Variabel dan Tipe Data TEE 2103 Algoritma & Pemrograman
NOTASI ALGORITMA dan BAHASA C++
Fungsi.
Pengulangan FOR - DO Temu 9.
Transcript presentasi:

Contoh-contoh Pemecahan Masalah 2 TEE 2103 Algoritma & Pemograman Dosen: Abdillah, MIT HP: 0853 6581 8665 Email: abdill01@gmail.com Website: http://abdill01.wordpress.com

Tujuan Mahasiswa mampu menyelesaikan masalah berdasar pada contoh-contoh algoritma penyelesaian masalah dan programnya.

Daftar Masalah Validasi Password Menentukan Selisih Hari Mencari Nilai Tertinggi Mencari Nilai Terendah Menghitung Titik Tengah

1. Validasi Password Buatlah algoritma dan program password yang membaca password kemudian memanggil prosedur validasi yang mengecek kebenaran password. Jika passwordnya benar, maka prosedur validasi akan menampilkan pesan selamat datang. Jika salah, maka program password akan mengulang pembacaan password. Program password memberi kesempatan 3 kali untuk memasukkan password hingga menampilkan pesan peringatan di layar monitor.

Algoritma Prosedur procedure validasi (input password : integer) { Menampilkan pesan selamat datang jika password benar } DEKLARASI sah, pencacah : integer { variabel global } int sandi = 1234 ALGORITMA if (password = sandi) write(‘selamat datang’) sah  0 else write(‘password Anda salah') sah  1 pencacah  pencacah + 1

Algoritma Program Utama PROGRAM Password {Membaca password dan keluar jika 3x salah} DEKLARASI password : integer ALGORITMA pencacah = 1 repeat read(password) validasi(password) until ((sah = 1) and (pencacah <= 3))

Program Prosedur #include<stdio.h> int sah, pencacah; void validasi(int password) { int sandi = 1234; if (password == sandi){ printf("selamat datang\n"); sah = 0; } else { printf(“password Anda salah\n"); pencacah++; sah = 1;

Program Utama main() { int password; pencacah = 1; do printf("Masukkan password:"); scanf("%d", &password); validasi(password); } while ((sah == 1) && (pencacah <= 3));

2. Menentukan Selisih hari Buatlah algoritma dan program selisih_hari yang membaca dan menghitung selisih hari antara dua tanggal, dibaca dari piranti masukan. Program selisih_hari memanggil fungsi hari_bulan yang mengembalikan jumlah hari dalam satu bulan. Contoh eksekusi program: Ketikkan tanggal pertama: 28/2/2012 Ketikkan tanggal kedua: 27/1/2015 Jumlah selisih hari adalah 1066 hari

Algoritma Fungsi function hari_bulan(no_bulan, tahun : integer)  integer { Mengembalikan jumlah hari dalam no_bulan pd tahun tertentu} DEKLARASI tidak ada ALGORITMA: case (no_bulan) 1,3,5,7,8,10,12 : return 31 4,6,9,11 : return 30 2 : if ((tahun mod 4 = 0 and tahun mod 100 ≠ 0) or (tahun mod 400 = 0)) then return 29 else return 28

Algoritma Program Utama PROGRAM selisih_hari DEKLARASI type Hari : record <dd, mm, yy : integer> H1, H2 : Hari i,j, selisih : integer ALGORITMA: read (H1, H2) selisih ← 0 for (j ← H1.mm to 12) selisih ← selisih + hari_bulan(j,H1.yy) for (i ← H1.yy+1 to H2.yy-1) for (j ← 1 to 12) selisih ← selisih + hari_bulan(j,i) for (j ← 1 to H2.mm-1) selisih ← selisih + hari_bulan(j,H2.yy) selisih ← selisih + H2.dd - H1.dd write (‘selisih hari adalah’, selisih)

Program Fungsi #include <stdio.h> int hari_bulan (int no_bulan, int tahun) { switch (no_bulan) { case 1:case 3:case 5:case 7:case 8:case 10:case 12: return 31; break; case 4:case 6:case 9:case 11:return 30; break; case 2:if((tahun%4==0 && tahun%100 != 0)||tahun%400==0) return 29; else return 28; }

Program Utama main() { typedef struct {int dd, mm, yy;} Hari; Hari H1, H2; int i,j, selisih; printf("Ketikkan tanggal pertama (dd/mm/yyyy): "); scanf("%d/%d/%d",&H1.dd, &H1.mm, &H1.yy); printf("Ketikkan tanggal kedua (dd/mm/yyyy): "); scanf("%d/%d/%d",&H2.dd, &H2.mm, &H2.yy); selisih = 0; for (j=H1.mm; j<=12; j++) selisih = selisih + hari_bulan(j, H1.yy); for (i=H1.yy+1; i<H2.yy; i++){ for (j=1; j<=12; j++) selisih = selisih + hari_bulan(j, i);} for (j=1; j<=H2.mm-1; j++) selisih = selisih + hari_bulan(j, H2.yy); selisih = selisih + H2.dd - H1.dd; printf ("Jumlah selisih hari adalah %d hari\n", selisih); } Program Utama

3. Menentukan Nilai Tertinggi Tulislah algoritma dan program maksimum yang membaca 3 buah nilai ujian dari papan ketik dan menyimpannya dalam sebuah larik. Program maksimum memanggil fungsi cari_maksimum yang mencari dan mengembalikan nilai ujian yang tertinggi. Program maksimum kemudian menampilkan nilai tertinggi tsb di layar monitor.

Algoritma Fungsi function cari_maksimum (input nilai[ ], k : integer) → integer { Mencari dan mengembalikan nilai tertinggi } DEKLARASI i, maksimum : integer ALGORITMA: maksimum ← nilai[0] for (i  1 to k-1) do if (nilai[i] > maksimum) maksimum ← nilai[i] endfor return (maksimum)

Algoritma Program Utama PROGRAM Maksimum { Membaca, menyimpan 3 buah nilai ujian dalam sebuah larik dan menampilkan nilai ujian tertinggi } DEKLARASI i, N, nilai[N], : integer ALGORITMA: N  3 for (i  0 to N-1) do read ( nilai[i] ) endfor write (‘Nilai tertinggi =‘ cari_maksimum(nilai, N))

Program Maksimum #include <stdio.h> int cari_maksimum(int nilai[],int k) { int i, maksimum = nilai[0]; for (i=0;i<k;i++) if nilai[i] > maksimum maksimum = nilai[i]; return maksimum; } main() int i, N = 3, nilai[N],; printf(“Masukkan 3 nilai ujian"); for (i=0;i<N;i++) { printf(“Nilai ke %d: ",i+1); scanf("%d",&nilai[i]); printf("Nilai tertinggi: %d", cari_maksimum(nilai,N));

4. Menentukan Nilai Terendah Tulislah algoritma dan program minimum yang membaca 3 buah nilai ujian dari papan ketik dan menyimpannya dalam sebuah larik. Program minimum memanggil fungsi cari_ minimum yang mencari dan mengembalikan nilai ujian yang terendah. Program minimum kemudian menampilkan nilai terendah tsb di layar monitor.

Algoritma Fungsi function cari_minimum (input nilai[ ], k : integer) → integer { Mencari dan mengembalikan nilai terendah } DEKLARASI i, minimum : integer ALGORITMA: minimum ← nilai[0] for (i  1 to k-1) do if (nilai[i] < minimum) minimum ← nilai[i] endfor return (minimum)

Algoritma Program Utama PROGRAM Minimum { Membaca, menyimpan 3 buah nilai ujian dalam sebuah larik dan menampilkan nilai ujian terendah } DEKLARASI i, N, nilai[N], : integer ALGORITMA: N  3 for (i  0 to N-1) do read ( nilai[i] ) endfor write (‘Nilai terendah =‘ cari_minimum(nilai, N))

Program Minimum #include <stdio.h> int cari_minimum(int nilai[],int k) { int i, minimum = nilai[0]; for (i=0;i<k;i++) if nilai[i] < minimum minimum = nilai[i]; return minimum; } main() int i, N = 3, nilai[N],; printf(“Masukkan 3 nilai ujian"); for (i=0;i<N;i++) { printf(“Nilai ke %d: ",i+1); scanf("%d",&nilai[i]); printf("Nilai terendah: %d", cari_minimum(nilai,N));

5. Menentukan Titik Tengah Tulislah algoritma dan program titik_tengah yang membaca 2 buah titik koordinat dan menyimpannya dalam tipe data terstruktur Titik. Program titik_tengah memanggil prosedur hitung_titik_tengah yang menghitung dan menampilkan koordinat titik tengah tsb di layar monitor.

Algoritma Fungsi procedure hitung_titik_tengah (input T1, T2 : Titik) { Menghitung koordinat titik tengah } DEKLARASI type Titik record <x,y: real> { tipe data global } Tt : Titik { variabel lokal } ALGORITMA: Tt.x  (T1.x + T2.x) / 2 Tt.y  (T1.y + T2.y) / 2 write(‘Koordinat titik tengah: ’, Tt.x, Tt.y)

Algoritma Program Utama PROGRAM titik_tengah { Membaca, menyimpan koordinat 2 titik dalam tipe terstruktur Titik } DEKLARASI P1, P2, : Titik ALGORITMA: read(P1, P2) hitung_titik_tengah(P1, P2)

Program Titik_Tengah #include <stdio.h> typedef struct {float x,y;} Titik; void Hitung_Titik_Tengah(Titik T1, Titik T2) { Titik Tt; Tt.x = (T1.x + T2.x)/2; Tt.y = (T1.y + T2.y)/2; printf("Titik tengah:(%.1f, %.1f)\n", Tt.x, Tt.y); } main() Titik P1,P2; printf(“Ketikkan koordinat P1(x,y):"); scanf("%f,%f",&P1.x, &P1.y); printf(" Ketikkan koordinat P2(x,y):"); scanf("%f,%f",&P2.x, &P2.y); hitung_titik_tengah(P1, P2);