html5-img
1 / 25

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

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.

Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TEL 2112DasarKomputer & PemogramanContoh Pemecahan Masalah 2 Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail.com Website: http://abdill01.wordpress.com

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

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

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

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

  6. #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; }

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

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

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

  10. #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; }

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

  12. Algoritma PROGRAM Hitung_Faktorial { Program yang menghitung nilai faktorial} DEKLARASI N : integer function Faktorial (inputN : integer) → integer ALGORITMA: read (N) write (N! = Faktorial(N))

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

  14. #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; }

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

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

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

  18. #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); }

  19. intMin(int X[],int k) { int minimum = X[0]; for (i=1;i<k;i++){ if (X[i] < minimum) minimum = X[i]; } return minimum; }

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

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

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

More Related