Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress
-
Upload
ronan-hodges -
Category
Documents
-
view
120 -
download
2
description
Transcript of Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress
TEL 2112Dasar Komputer & Pemograman
Contoh Pemecahan Masalah 2Dosen: Abdillah, S.Si, MIT
Email: [email protected]
Website: http://abdill01.wordpress.com
TujuanMahasiswa 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
AlgoritmaPROGRAM Hitung_Pangkat
{ Program yang menghitung nilai x pangkat y }
DEKLARASI
x : integer
function Pangkat (input x : integer) → integer
ALGORITMA:
read (x)
write (xy = Pangkat(x))
Algoritmafunction Pangkat (input x : 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.
AlgoritmaPROGRAM Hitung_Deret
{ Program yang menghitung nilai deret }
DEKLARASI
N : integer
function Deret (input N : integer) → integer
ALGORITMA:
read (N)
write (Jumlah deret N = Deret(N))
Algoritmafunction Deret (input N : 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.
AlgoritmaPROGRAM Hitung_Faktorial
{ Program yang menghitung nilai faktorial }
DEKLARASI
N : integer
function Faktorial (input N : integer) → integer
ALGORITMA:
read (N)
write (N! = Faktorial(N))
Algoritma function Faktorial (input N : 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.
AlgoritmaPROGRAM Cari_Minimum{Menentukan bilangan terkecil dari N buah data integer}
DEKLARASIN = 20, bil[N], nmin, jml, i : integerfunction Min (input X[ ],k : integer) → integer
ALGORITMA:read (jml)for i 0 to jml do
read ( bil[i] )endfornmin Min(bil,jml)write (nmin)
Algoritma Fungsi Minfunction Min (input X[ ],k : integer) → integer{ Mengembalikan nilai minimum }
DEKLARASIminimum : integer
ALGORITMA:minimum ← X[0]for i 0 to k do
if X[i] < minimum then minimum ← X[i]
endifendforreturn (minimum)
#include <stdio.h>
#define N 20
int Min(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);
}
int Min(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 Ada banyak metoda pengurutan array, namun
salah satu metode yang populer adalah Bubble Sort.
Jumlah tahap pengurutan = jumlah bilangan – 1 Banyaknya perbandingan pada setiap tahap =
jumlah bilangan – nomor tahap Misalnya Anda memiliki empat buah angka:
10-5-7-3 yang akan diurutkan dari yang terkecil hingga yang terbesar (ascending). Metode Bubble Sort akan membagi proses pengurutan menjadi tiga tahap
#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;}
} }}