Anda di halaman 1dari 8

NPM : 0619104026

Nama : Dandi Gilang Ramadhan


Kelas : Teknik Informatika – Reguler B2-B

Tugas Pendahuluan 12
1. Buatlah algoritma prosedur dan program bahasa Pascal dan C untuk menentukan grade
nilai akhir mahasiswa dengan parameter input nilai akhir(0-100) dan parameter output
grade (A-E). Kriteria penentuan grade sbb:A:85-100 B:70-84 C: 55-69 D:40-54 E:0-39
Bahasa Algoritmik Bahasa C
Prosedur
Procedure Grade(input Nilai:
Integer, output out : Char)
Kamus Data: {tidak ada}
Algoritma:
IF(Nilai ≥ 85 and Nilai ≤ 100)
THEN
out ← 'A'
ELSE
IF(Nilai ≥ 70 and Nilai <= 84)
THEN
out ← 'B'
ELSE
IF(Nilai ≥ 55 and Nilai ≤ 69) Langsung di program utama
THEN
out ← 'C'
ELSE
IF(Nilai ≥ 40 and Nilai ≤ 54)
THEN
out ← 'D'
ELSE
IF(Nilai ≥ 0 and Nilai ≤ 39)
THEN
out ← 'E'
ENDIF
ENDIF
Program Utama
Judul : GradeMahasiswa 1. #include <stdio.h>
2. #include <string.h>
Kamus Data : 3. void Grade(int Nilai, char* out);
4. main()
Procedure Grade(input Nilai: 5. {
Integer, output out : Char) 6. int N;
7. char G[1];
N : Integer 8. printf("Masukkan Nilai Akhir (0-
100): ");
G : array[0..1] of Char
9. scanf("%d", &N);
Algoritma : 10. if(N >= 0 && N <= 100)
11. {
OUTPUT('Masukkan Nilai Akhir (0- 12. Grade(N, G);
100): ') 13. printf("Grade : %s", G);
14. }else{
INPUT(N) 15. printf("Masukkan Nilai Akhir 0-
100");
IF(N ≥ 0 and N ≤ 100)THEN 16. }
17. }
Grade(N, G) 18. void Grade(int Nilai, char* out)
19. {
OUTPUT('Grade : ', G) 20. if(Nilai >= 85 && Nilai <= 100)
21. {
ELSE
22. strcpy(out, "A");
OUTPUT('Masukkan Nilai Akhir 0- 23. }else
100 ') 24. if(Nilai >= 70 && Nilai <= 84)
25. {

Algoritma dan Pemrograman I | Tugas Pendahuluan 12 1


ENDIF 26. strcpy(out, "B");
27. }else
28. if(Nilai >= 55 && Nilai <= 69)
29. {
30. strcpy(out, "C");
31. }else
32. if(Nilai >= 40 && Nilai <= 54)
33. {
34. strcpy(out, "D");
35. }else
36. if(Nilai >= 0 && Nilai <= 39)
37. {
38. strcpy(out, "E");
39. }
40. }

2. Diketahui sebuah array tetap A={1,2,3,5,7,9,11,23,10,21,23,22,24,25,26,77}. Array


tersebut dideklarasikan secara global. Buatlah algoritma prosedur dan program bahasa
Pascal dan C untuk menghitung rata-rata nilai array yang jika nilai indeksnya
ditambahkan 5 akan habis dibagi 4. Parameter output dari prosedur adalah rata-rata nilai
array tersebut dan tanpa parameter input !
Bahasa Algoritmik Bahasa C
Prosedur
Procedure rata_rata(output out :
Real)
Kamus Data:
total , sum : Real
i : Integer
Algoritma: Langsung di program utama
FOR i = 0 TO 16 DO
IF((A[i]+5) mod 4 = 0) THEN
sum ← sum + A[i]
total ← total + 1
ENDIF
ENDFOR
out ← sum / total
Program Utama
Judul : MenghitungRataRata 1. #include <stdio.h>
2. int A[16] = {1,2,3,5,7,9,11,23,10,
Kamus Data : 3. 21,23,22,24,25,26,77};
4. void rata_rata(float *out);
A : array[0..16] of Integer 5. main()
={1,2,3,5,7,9,11,23,10, 6. {
7. float r;
21,23,22,24,25,26,77} 8. rata_rata(&r);
9. printf("Rata-rata : %0.2f", r);
Procedure rata_rata(output out :
10. }
Real) 11. void rata_rata(float *out)
r : Real 12. {
13. float total, sum;
G : array[0..1] of Char 14. for(int i=0;i<=16;i++)
15. {
Algoritma : 16. if((A[i]+5) % 4 == 0)
17. {
rata_rata(r) 18. sum += A[i];
19. total++;
OUTPUT('Rata-rata : ', r) 20. }
21. }
22. *out = sum/total;
23. }

Algoritma dan Pemrograman I | Tugas Pendahuluan 12 2


3. Buatlah algoritma prosedur dan program bahasa Pascal dan C untuk mengecek apakah
sebuah kata yang diinputkan user termasuk polindrom atau tidak. Polindrom adalah kata
yang jika dibalik urutan hurufnya, hasil bacanya tetap sama, contoh : katak, kasur rusak,
dsb. Parameter input terhadap prosedur adalah kata dan tanpa parameter output.
Bahasa Algoritmik Bahasa C
Prosedur
Procedure Polindrom(input kata :
array[0..20]of Char)
Kamus Data:
len, i : Integer
kondisi : Boolean
Algoritma:
len ← LENGTH(kata)
FOR i = 0 TO len DO
IF(kata[i] ≠ kata[len-i-1])THEN Langsung di program utama
kondisi ← true
i ← len
ENDIF
ENDFOR
IF(kondisi = false)THEN
OUTPUT('Polindrom')
ELSE
OUTPUT('Bukan Polindrom')
ENDIF
Program Utama
Judul : PolindromKata 1. #include <stdio.h>
Kamus Data : 2. #include <string.h>
Procedure Polindrom(input kata : 3. void Polindrom(char kata[20]);
array[0..20]of Char) 4. main()
kata : array[0..20] of Char 5. {
6. char kata[20];
Algoritma :
7. printf("Masukkan kata : ");
OUTPUT('Masukkan kata : ') 8. scanf("%s", &kata);
INPUT(kata) 9. Polindrom(kata);
Polindrom(kata) 10. }
11. void Polindrom(char kata[20])
12. {
13. int len;
14. bool kondisi;
15. len = strlen(kata);
16. for(int i=0;i<=len;i++)
17. {
18. if(kata[i] != kata[len-i-1])
19. {
20. kondisi = true;
21. i = len;
22. }
23. }
24. if(kondisi == false)
25. {
26. printf("Polindrom");
27. }else{
28. printf("Bukan Polindrom");
29. }
30. }

Algoritma dan Pemrograman I | Tugas Pendahuluan 12 3


4. Buatlah program utama untuk memanggil prosedur pada nomor 1, 2, dan 3
menggunakan menu !
Bahasa Algoritmik Bahasa C
Prosedur
Procedure Grade(input Nilai:
Integer, output out : Char)
Kamus Data:
{tidak ada}
Algoritma:
IF(Nilai ≥ 85 and Nilai ≤ 100)
THEN
out ← 'A'
ELSE
IF(Nilai ≥ 70 and Nilai ≤ 84)
THEN
out ← 'B'
ELSE
IF(Nilai ≥ 55 and Nilai ≤ 69)
THEN
out ← 'C'
ELSE
IF(Nilai ≥ 40 and Nilai ≤ 54)
THEN
out ← 'D'
ELSE
IF(Nilai ≥ 0 and Nilai ≤ 39)
THEN
out ← 'E'
ENDIF
ENDIF
Procedure rata_rata(output out
: Real)
Langsung di program utama
Kamus Data:
total , sum : Real
i : Integer
Algoritma:
FOR i = 0 TO 16 DO
IF((A[i]+5) mod 4 = 0) THEN
sum ← sum + A[i]
total ← total + 1
ENDIF
ENDFOR
out ← sum / total
Procedure Polindrom(input kata
: array[0..20]of Char)
Kamus Data:
len, i : Integer
kondisi : Boolean
Algoritma:
len ← LENGTH(kata)
FOR i = 0 TO len DO
IF(kata[i] ≠ kata[len-i-1])THEN
kondisi ← true
i ← len
ENDIF
ENDFOR
IF(kondisi = false)THEN
OUTPUT('Polindrom')ELSE
OUTPUT('Bukan Polindrom')
ENDIF

Algoritma dan Pemrograman I | Tugas Pendahuluan 12 4


Program Utama
Judul : MemanggilProsedur 1. #include <stdio.h>
Kamus Data : 2. #include <iostream>
Procedure Grade(input Nilai: 3. #include <string.h>
Integer, output out : Char) 4. void Grade(int Nilai, char* out);
Procedure rata_rata(output out 5. void rata_rata(float *out);
6. void Polindrom(char kata[20]);
: Real)
7. main()
Procedure Polindrom(input kata
8. {
: array[0..20]of Char) 9. int Menu;
kata : array[0..20] of Char 10. do {
Menu, N : Integer 11. printf("Menu : \n");
G : array[0..1] of Char 12. printf("1. Prosedur Grade\n");
r : Real 13. printf("2. Prosedur Rata-Rata\n");
Algoritma : 14. printf("3. Prosedur Polindrom\n");
REPEAT 15. printf("4. Exit\nMasukkan No. Menu : ");
INPUT(Menu) 16. scanf("%d", &Menu);
DEFEND ON(Menu) 17. system("CLS");
1 : OUTPUT('Masukkan Nilai 18. switch(Menu)
Akhir (0-100): ') 19. {
20. case 1 : {
INPUT(N)
21. int N;
IF(N ≥ 0 and N ≤ 100)THEN 22. char G[1];
Grade(N, G) 23. printf("Masukkan Nilai Akhir (0-
OUTPUT('Grade : ', G) 100): ");
ELSE 24. scanf("%d", &N);
OUTPUT('Masukkan Nilai 25. if(N >= 0 && N <= 100)
Akhir 0-100') 26. {
ENDIF 27. Grade(N, G);
2 : rata_rata(r) 28. printf("Grade : %s", G);
OUTPUT('Rata-rata : ', r) 29. }else{
3 : OUTPUT('Masukkan kata : ') 30. printf("Masukkan Nilai Akhir 0-100");
INPUT(kata) 31. }
Polindrom(kata) 32. break;
33. }
4 : OUTPUT('Program telah
34. case 2 : {
keluar!') 35. float r;
default : OUTPUT('Mohon 36. rata_rata(&r);
masukkan no. sesuai daftar 37. printf("Rata-rata : %0.2f", r);
menu!') 38. break;
END DEFEND 39. }
UNTIL(Menu = 4) 40. case 3 : {
41. char kata[20];
42. printf("Masukkan kata : ");
43. scanf("%s", &kata);
44. Polindrom(kata);
45. break;
46. }
47. case 4 : {
48. printf("Program telah keluar!");
49. break;
50. }
51. default : printf("Mohon masukkan no.
52. sesuai daftar menu!");
53. }printf("\n");
54. }while(Menu != 4);
55. }
56. void Grade(int Nilai, char out[0])
57. {
58. if(Nilai >= 85 && Nilai <= 100)
59. {
60. strcpy(out, "A");
61. }else
62. if(Nilai >= 70 && Nilai <= 84)
63. {

Algoritma dan Pemrograman I | Tugas Pendahuluan 12 5


64. strcpy(out, "B");
65. }else
66. if(Nilai >= 55 && Nilai <= 69)
67. {
68. strcpy(out, "C");
69. }else
70. if(Nilai >= 40 && Nilai <= 54)
71. {
72. strcpy(out, "D");
73. }else
74. if(Nilai >= 0 && Nilai <= 39)
75. {
76. strcpy(out, "E");
77. }
78. }
79. void rata_rata(float *out)
80. {
81. int A[16] = {1,2,3,5,7,9,11,23,
82. 10,21,23,22,24,25,26,77};
83. float total, sum;
84. for(int i=0;i<=16;i++)
85. {
86. if((A[i]+5) % 4 == 0)
87. {
88. sum += A[i];
89. total++;
90. }
91. }
92. *out = sum/total;
93. }
94. void Polindrom(char kata[20])
95. {
96. int len;
97. bool kondisi;
98. len = strlen(kata);
99. for(int i=0;i<=len;i++)
100. {
101. if(kata[i] != kata[len-i-1])
102. {
103. kondisi = true;
104. i = len;
105. }
106. }
107. if(kondisi == false)
108. {
109. printf("Polindrom");
110. }else{
111. printf("Bukan Polindrom");
112. }
113. }

Algoritma dan Pemrograman I | Tugas Pendahuluan 12 6


5. Perhatikan algoritma di bawah ini !
function pangkat(input a : real, input n : integer)→ Real
Kamus Data :
p : Real
i : Integer
Algoritma :
p ← 1
FOR i = 1 TO n DO
p ← p * a
ENDFOR
return p
a. Untuk apa fungsi di atas?
Untuk menyederhanakan penulisan dan penyebutan suatu bilangan yang memiliki
faktor-faktor perkalian yang sama.

b. Buat algoritma program utamanya !

Judul : bilanganpangkat
Kamus Data :
function pangkat(input a : real, input n : integer)→ Real
n : Integer
bil : Real
Algoritma :
INPUT(bil, n)
OUTPUT('Hasil ', bil,'^',n,' = ',pangkat(bil,n))

c. Ubah ke dalam program bahasa C !

1. #include <stdio.h>
2. float pangkat(float a, int n);
3. main()
4. {
5. int n;
6. float bil;
7. printf("Masukkan bilangan : ");scanf("%f", &bil);
8. printf("Masukkan pemangkat : ");scanf("%d", &n);
9. printf("Hasil %.0f^%d = %.0f ", bil, n, pangkat(bil,n));
10. }
11. float pangkat(float a, int n)
12. {
13. int i;
14. float p;
15. p = 1;
16. for(i=1; i<=n; i++)
17. {
18. p = p * a;
19. }
20. return p;
21. }

Algoritma dan Pemrograman I | Tugas Pendahuluan 12 7


d. Ubah algoritma fungsi tersebut menjadi prosedur kemudian buat pula program
utamanya !

procedure pangkat()

Kamus Data :
a, p: Real
n, i : Integer

Algoritma :
p ← 1
OUTPUT('Masukkan bilangan : ')
INPUT(a)
OUTPUT('Masukkan pemangkat : ')
INPUT(n)
FOR i = 1 TO n DO
p ← p * a
ENDFOR
OUTPUT(p)
Judul : BilanganPangkat
Kamus Data :
procedure pangkat()
Algoritma :
pangkat()
e. Ubah hasil prosedur yang kalian buat ke dalam program bahasa C !

1. #include <stdio.h>
2. void pangkat();
3. main()
4. {
5. pangkat();
6. }
7. void pangkat()
8. {
9. float a;
10. int n, i;
11. float p;
12. p = 1;
13. printf("Masukkan bilangan : ");
14. scanf("%f", &a);
15. printf("Masukkan pemangkat : ");
16. scanf("%d", &n);
17. for(i=1; i<=n; i++)
18. {
19. p = p * a;
20. }
21. printf("Hasil %.0f^%d = %.0f ", a, n, p);
22. }

Algoritma dan Pemrograman I | Tugas Pendahuluan 12 8

Anda mungkin juga menyukai