Anda di halaman 1dari 9

1.

Terdapat array dengan tipe char yang berisi {'p', 'e', 'n', 's', 'i', 't'}, baliklah array
tersebut menjadi tisnep.

Code

#include <stdio.h>

#include <stdlib.h>

#define Maks 6

void balik(char A[Maks]);

int main()

int i;

char nama[Maks]={'p','e','n','s','i','t'};

balik(nama);

printf("Setelah String di balik = ");

for(i=0;i<Maks;i++){

printf("%c",nama[i]);

return 0;

void balik(char A[Maks]){

int i,j=0;

char temp[Maks];

for(i=Maks-1; i>=0;i--){

temp[j] = A[i];

j++;

for(i=0;i<Maks;i++){

A[i] = temp[i];

}
Output:

Analisa:
Pertama saya membuat fungsi void balik, lalu membuat fungsi main yang
dimana di awal fungsi main saya mendeklarasikan variable i tipe int dan char
nama yang di gunakan untuk menampung kalimat array dari “pensit”. Lalu di
dalam fungsi void balik dilakukan looping pembalikan kata, lalu di cetak
dengan menggunakan %c karena decetak per karakter.

2. Terdapat dua buah matrik dengan ordo n yang direpresentasikan dengan array
dimensi dua, lakukan operasi penjumlahan, pengurangan dan perkalian.

Code:

#include <stdlib.h>
#define N 2
void penjumlahan(int A[N][N], int B[N][N], int C[N][N]) {
int i, j;

for (i=0;i<N;i++) {
for (j=0;j<N;j++) {
C[i][j] = A[i][j]+B[i][j];
}
}
}
void pengurangan(int A[N][N], int B[N][N], int C[N][N]) {
int i, j;

for (i=0;i<N;i++) {
for (j=0;j<N;j++) {
C[i][j] = A[i][j]-B[i][j];
}
}
}
void perkalian(int A[N][N], int B[N][N], int C[N][N]) {

int i, j;

for (i=0;i<N;i++) {

for (j=0;j<N;j++) {

C[i][j] = (A[i][0]*B[0][j])+(A[i][1]*B[1][j]);

int main() {

int M1[N][N] = {{1, 1}, {2, 2}};

int M2[N][N] = {{3, 3}, {4, 4}};

int hasil[N][N], i, j;

penjumlahan(M1, M2, hasil);

printf("Hasil penjumlahan :\n");

for (i=0;i<N;i++) {

for (j=0;j<N;j++) {

printf("%d ", hasil[i][j]);

printf("\n");

pengurangan(M1, M2, hasil);

printf("\nHasil pengurangan :\n");

for (i=0;i<N;i++) {

for (j=0;j<N;j++) {

printf("%d ", hasil[i][j]);

printf("\n");

}
perkalian(M1, M2, hasil);

printf("\nHasil perkalian :\n");

for (i=0;i<N;i++) {

for (j=0;j<N;j++) {

printf("%d ", hasil[i][j]);

printf("\n");

return 0;

Output:

Analisa:
Pertama saya membuat 3 fungsi yaitu fungsi penjumalahan, pengurangan,
perkalian. Lalu di dalamnya saya gunakan array 2 dimensi yaitu A,B,C
yang memiliki nilai tetap seperti A[N][N], B[N][N], C[N][N].Lalu di setiap
fungsi menggunakan looping untuk menghasilkan output.
3. Bagaimana output program di bawah ini ?

#include<stdio.h>
#define MAX 20

int main()
{
int count = 10, *temp, sum = 7;

temp = &count; *temp = 32; temp = &sum; *temp = count; sum = *temp *
4;

printf("count=%d, *temp=%d, sum=%d\n", count,*temp, sum ); return 0;


}

Output:

Analisa:
Pertama yang di lakukan adalah temp=&count, lalu temp di beri nilai 32 yang
dimana count akan berubah menjadi 32karena lamat dari temp. lalu temp di
rubah ke sum nilai dari temp di ubah menjadi 32. Lalu nilai dari sum sama
dengan temp dikali 4 menjadi 128. Karena temp beralamatkan sum maka nilai
keduanya sama 128.
4. Masalah aritmatika polinom adalah membuat sekumpulan subrutin manipulasi terhadap
polinom simbolis (symbolic Polynomial). Misalnya: P1 = 6x8 + 8x7 + 5x5 + x3 + 15
P2 = 3x9 + 4x7 + 3x4 + 2x3 + 2x2 + 10
P3 = x2 + 5
Terdapat empat operasi aritmatika polinom dasar antara lain:
a. Penambahan (P1 + P2 = 3x9 + 6x8 + 12x7 + 5x5 + 3x4 + 3x3 + 2x2 + 25)
b. Pengurangan (P1 - P2 = - 3x9 + 6x8 + 4x7 + 5x5 - 3x4 - x3 - 2x2 + 5)
c. Perkalian (P1 * P3 = 6x10 + 8x9 + 5x7 + x5 + 15x2 + 30x8 + 40x7 + 25x5 + 5x3 + 75 =
6x10 +
8x9 + 30x8 + 45x7 + 26x5 + 5x3 + 15x2 + 75)
d. Turunan (P2' = 27x8 + 28x6 + 12x3 + 6x2 + 4x)
Representasikan bilangan polinom dengan array dan buatlah prosedur-prosedur yang
melakukan kelima operasi aritmatika di atas.
Code:

#include <stdio.h>
#include <stdlib.h>
#define n 10
float penambahan(int A[n],int B[n],float x){
int i;
float sum=0.0;
for(i=0;i<n;i++)
sum+= (A[i]+B[i])*(float)pow(x,i);
return sum;
}
float pengurangan(int A[n],int B[n],float x){
int i;
float sum=0.0;
for(i=0;i<n;i++)
sum+= (A[i]-B[i])*(float)pow(x,i);
return sum;
}
float perkalian(int A[n],int B[n],float x)
{
float kali=0;
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
kali += A[i] * B[j] * (float) pow(x,(i+j));
}
return kali;
}
float turunan(int A[n],float x){
int i;
float sum=0.0;
for(i=0;i<n;i++)
sum+= (A[i])*i*(float)pow(x,i-1);
return sum;
}
int main()
{
int P1[n] = {15,0,0,1,0,5,0,8,6,0};
int P2[n] = {10,0,2,2,3,0,0,4,0,3};
int P3[n] = {5,0,1,0,0,0,0,0,0,0};
float x;
printf("Masukkan x = ");
scanf("%f",&x);
printf("hasil penjumalahan P1 + P2 = %5.2f\n",penambahan(P1,P2,x));
printf("hasil pengurangan P1 - P2 = %5.2f\n",pengurangan(P1,P2,x));
printf("hasil perkalian P1 X P2 = %5.2f\n",perkalian(P1,P3,x));
printf("hasil turunan P2 = %5.2f\n",turunan(P2,x));
return 0;
}
Output:

Analisa:
Pertama saya membuat fungsi dengan menggunakan pass by value. Lalu di setiap fungsi void
saya isikan dengan operasi polinom. Pada fungsi main saya membuat array dengan variable
P1, P2, P3.

5. Bilangan kompleks berbentuk a + bi, dimana a dan b adalah bilangan nyata dan i2 = -1.
Terdapat empat operasi aritmatika dasar untuk bilangan kompleks, yaitu: a. Penambahan :
(a+bi) + (c+di) = (a+c) + (b+d)i
b. Pengurangan : (a+bi) - (c+di) = (a-c) + (b-d)i
c. Perkalian : (a+bi) * (c+di) = (ac-bd) + (ad+bc)i
d. Pembagian : (a+bi) / (c+di) = [(ac+bd) / (a2+b2)] + [(bc-ad)/(c2+d2)]i
Tulis program yang membaca dua bilangan kompleks dan simbol operasi yang perlu
dilakukan, kemudian lakukan operasi yang diminta. Gunakan struktur untuk
merepresentasikan bilangan kompleks dan gunakan prosedur untuk implementasi tiap operasi.

Code:

#include <stdio.h>

#include <stdlib.h>

typedef struct{

int real;

int im;

} Kompleks;

Kompleks penambahan(Kompleks A, Kompleks B){

Kompleks C;

C.real = A.real + B.real;

C.im = A.im+B.im;

return C;

}
Kompleks pengurangan(Kompleks A, Kompleks B){

Kompleks C;

C.real = A.real - B.real;

C.im = A.im-B.im;

return C;

Kompleks perkalian(Kompleks A, Kompleks B){

Kompleks C;

C.real = A.real * B.real - A.im*B.im;

C.im = A.real * B.im + A.im*B.real;

return C;

Kompleks pembagian(Kompleks A, Kompleks B){

Kompleks C;

C.real = (A.real * B.real + A.im*B.im)/(A.real^2 + A.im^2);

C.im = (A.im * B.real - A.real*B.im) / (B.real^2+B.im^2);

return C;

int main()

Kompleks k1,k2, hasil,hasilPengurangan,hasilPerkalian,hasilPembagian;

printf("Masukkan bil 1: ");

scanf("%d %d",&k1.real,&k1.im);

printf("Masukkan bil 2: ");

scanf("%d %d",&k2.real,&k2.im);

hasil = penambahan(k1,k2);
hasilPengurangan = pengurangan(k1,k2);

hasilPerkalian = perkalian(k1,k2);

hasilPembagian = pembagian(k1,k2);

printf("Hasil Penambahan = %d +%di\n",hasil.real,hasil.im);

printf("Hasil pengurangan = %d +%di\n",hasilPengurangan.real,hasilPengurangan.im);

printf("Hasil perkalian = %d +%di\n",hasilPerkalian.real,hasilPerkalian.im);

printf("Hasil Pembagian = %d +%di\n",hasilPembagian.real,hasilPembagian.im);

return 0;

Output:

Analisa:
Pada progam menghitung bilangan kompeks ini saya menggunakan pass by value.lalu di
fungsi main kita buat lagi beberapa varibel tambahan untuk melakukan pemrosessan. Tipe
data fungsi adalah nama dari struct dan di dalamnya saya mendeklarasikan int untuk real dan
im.

Kesimpulan:
Dari percobaan di atas yaitu struktur, array, dan pointer dapat di gunakan pada data dan
dapat menginterpretasikan operasi secara spesifik. Array adalah struktur data yang
digunakan untuk menyimpan sekumpulan data dalam satu tempat yang sama. Pointer
adalah suatu variable yang berisi alamat memori dari variable lain sehingga dapat di akses
secara bersamaan.

Anda mungkin juga menyukai