Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Contoh-contoh Pemecahan Masalah 2 TEE 2103 Algoritma & Pemograman

Presentasi serupa


Presentasi berjudul: "Contoh-contoh Pemecahan Masalah 2 TEE 2103 Algoritma & Pemograman"— Transcript presentasi:

1 Contoh-contoh Pemecahan Masalah 2 TEE 2103 Algoritma & Pemograman
Dosen: Abdillah, MIT HP: Website:

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

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

4 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.

5 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

6 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))

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

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

9 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

10 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

11 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)

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

13 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

14 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.

15 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)

16 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))

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

18 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.

19 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)

20 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))

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

22 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.

23 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)

24 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)

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


Download ppt "Contoh-contoh Pemecahan Masalah 2 TEE 2103 Algoritma & Pemograman"

Presentasi serupa


Iklan oleh Google