Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

25
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah 2 Dosen: Abdillah, S.Si, MIT Email: [email protected] Website: http://abdill01.wordpress.com

description

TEL 2112 Dasar Komputer & Pemograman C ontoh Pemecahan Masalah 2. Dosen: Abdillah, S.Si, MIT Email: [email protected] Website: http://abdill 01 . wordpress.com. Tujuan. Mahasiswa mampu menyelesaikan masalah berdasar contoh algoritma penyelesaian masalah dan listing programnya. - PowerPoint PPT Presentation

Transcript of Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

Page 1: 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

Page 2: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

TujuanMahasiswa mampu menyelesaikan masalah berdasar contoh algoritma penyelesaian masalah dan listing programnya.

Page 3: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

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

Page 4: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

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

Page 5: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

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;

Page 6: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

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

}

Page 7: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

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.

Page 8: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

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

Page 9: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

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;

Page 10: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

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

}

Page 11: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

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.

Page 12: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

AlgoritmaPROGRAM Hitung_Faktorial

{ Program yang menghitung nilai faktorial }

 

DEKLARASI

N : integer

function Faktorial (input N : integer) → integer

 

ALGORITMA:

read (N)

write (N! = Faktorial(N))

Page 13: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

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

Page 14: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

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

}

Page 15: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

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.

Page 16: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

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)

Page 17: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

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)

Page 18: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

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

}

Page 19: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

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;

}

Page 20: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

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

Page 21: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress
Page 22: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress
Page 23: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress
Page 24: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

#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]);

}

Page 25: Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail Website: abdill 01 . wordpress

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

} }}