250 likes | 468 Views
TEL 2112 Dasar Komputer & Pemograman C ontoh Pemecahan Masalah 2. Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail.com Website: http://abdill 01 . wordpress.com. Tujuan. Mahasiswa mampu menyelesaikan masalah berdasar contoh algoritma penyelesaian masalah dan listing programnya.
E N D
TEL 2112DasarKomputer & PemogramanContoh Pemecahan Masalah 2 Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail.com Website: http://abdill01.wordpress.com
Tujuan Mahasiswa mampu menyelesaikan masalah berdasar contoh algoritma penyelesaian masalah dan listing programnya.
1. Menentukan Perpangkatan Buatlah algoritma dan program C yang membaca nilai x dan y kemudian memanggil fungsi pangkat yang menghitung perpangkatan xy dan mengembalikan nilai xy. Program juga menampilkan nilai xy tersebut di layar monitor
Algoritma PROGRAM Hitung_Pangkat { Program yang menghitung nilai x pangkat y} DEKLARASI x : integer function Pangkat (inputx : integer) → integer ALGORITMA: read (x) write (xy = Pangkat(x))
Algoritma function Pangkat (inputx : integer) → integer { Menghitung nilai x pangkat y } DEKLARASI i,y, pangkat: integer ALGORITMA: read (y) pangkat ← 1 for (i←1 to y) do pangkat ← pangkat * x i ← i + 1 return pangkat;
#include <stdio.h> int Pangkat(int x); void main() { int x; printf("x = "); scanf("%d", &x); printf("x pangkat y = %d \n", Pangkat(x)); } int Pangkat(int x) /* Mengembalikan nilai x pangkat y */ { int i,y,pangkat = 1; printf("y = "); scanf("%d", &y); for (i=1; i<=y;i++) pangkat = pangkat * x; return pangkat; }
2. Menghitung Deret Buatlah algoritma dan program C yang membaca nilai N kemudian memanggil fungsi deret yang menghitung 1 + 2 + 3 + ... + N dan mengembalikan nilai penjumlahan deret. Program juga menampilkan nilai penjumlahan deret tersebut di layar monitor.
Algoritma PROGRAM Hitung_Deret { Program yang menghitung nilai deret} DEKLARASI N : integer function Deret (inputN : integer) → integer ALGORITMA: read (N) write (Jumlah deret N = Deret(N))
Algoritma function Deret (inputN : integer) → integer { Menghitung nilai deret N } DEKLARASI i, deret : integer ALGORITMA: deret ← 0; for (i←1 to N)do deret ← deret + i i ← i + 1 return deret;
#include <stdio.h> int Deret(int N); void main() { int N; printf("N = "); scanf("%d", &N); printf("Jumlah deret N = %d \n", Deret(N)); } int Deret(int N) /* Mengembalikan nilai deret N */ { int i, deret = 0; for (i=1; i<=N;i++) deret = deret + i; return deret; }
3. Menentukan Faktorial Buatlah algoritma dan program C yang membaca nilai N, kemudian memanggil fungsi Faktorial yang menghitung N! = 1 x 2 x 3 x ... x N dan mengembalikan nilai N! Program utama kemudian menampilkan nilai N! tersebut di akhir program.
Algoritma PROGRAM Hitung_Faktorial { Program yang menghitung nilai faktorial} DEKLARASI N : integer function Faktorial (inputN : integer) → integer ALGORITMA: read (N) write (N! = Faktorial(N))
Algoritma function Faktorial (inputN : integer) → integer { Menghitung nilai N faktorial } DEKLARASI i, faktorial : integer ALGORITMA: faktorial ← 1; for (i←1 to N)do faktorial ← faktorial * i i ← i + 1 return faktorial
#include <stdio.h> int Faktorial(int N); void main() { int N; printf("N = "); scanf("%d", &N); printf("N! = %d \n", Faktorial(N)); } int Faktorial(int N) /* Mengembalikan nilai N faktorial */ { int i, faktorial = 1; for (i=1; i<=N;i++) faktorial = faktorial * i; return faktorial; }
4. Menentukan Data Terkecil Tulislah algoritma untuk menentukan bilangan terkecil dari N buah data integer yang dibaca dari papan ketik dan disimpan dalam sebuah array. Nilai N ditentukan maksimum 20.
Algoritma PROGRAMCari_Minimum {Menentukan bilangan terkecil dari N buah data integer} DEKLARASI N = 20, bil[N], nmin, jml, i : integer function Min (inputX[],k : integer) → integer ALGORITMA: read (jml) fori 0 to jmldo read ( bil[i] ) endfor nmin Min(bil,jml) write (nmin)
Algoritma Fungsi Min function Min (inputX[],k : integer) → integer { Mengembalikan nilai minimum } DEKLARASI minimum : integer ALGORITMA: minimum← X[0] fori 0 to kdo ifX[i] < minimum thenminimum← X[i] endif endfor return (minimum)
#include <stdio.h> #define N 20 intMin(int X[],int k); int i; void main() { int jml, nmin, bil[N]; printf("Jumlah bilangan (maks 20) : "); scanf("%d",&jml); for (i=0;i<jml;i++){ printf("Bilangan ke %d : ",i+1); scanf("%d",&bil[i]); } nmin = Min(bil,jml); printf("Nilai minimum adalah : %d", nmin); }
intMin(int X[],int k) { int minimum = X[0]; for (i=1;i<k;i++){ if (X[i] < minimum) minimum = X[i]; } return minimum; }
5. Pengurutan Array • Adabanyakmetodapengurutan array, namunsalahsatumetode yang populeradalah Bubble Sort. • Jumlahtahappengurutan = jumlahbilangan – 1 • Banyaknyaperbandinganpadasetiaptahap = jumlahbilangan – nomortahap • MisalnyaAndamemilikiempatbuahangka: 10-5-7-3 yang akandiurutkandari yang terkecilhingga yang terbesar (ascending). Metode Bubble Sort akanmembagiprosespengurutanmenjaditigatahap
#include <stdio.h> #define N 20 int i,j,A[N]; void bubble(int n); void main() { int jml; printf("Masukkan jumlah bilangan (maks 20) : "); scanf("%d",&jml); printf("\n"); for (i=0;i<jml;i++) { printf("Bilangan ke %d : ",i+1); scanf("%d",&A[i]); } printf("\n"); bubble(jml); printf("Data yang sudah terurut : \n"); for (i=0;i<jml;i++) printf("%d\n",A[i]); }
void bubble(int n) { int temp; for (i=1;i<=n-1;i++) { for (j=i;j<n;j++) { if (A[i-1]>A[j]) { temp = A[i-1]; A[i-1] = A[j]; A[j] = temp; } } } }