-->

I'M Bayu Pradika

Graphic Designer . Web Developer . Programmer

Jumat, 19 Agustus 2022

Contoh Percobaan dan Latihan Program C++(Array, Pointer, Struktur)

 





Pada Artikel Ini Saya Akan Menulis Sedikit Contoh Penggunaan Array, Pointer, dan Struktur Dalam Bahasa C++ 

~~Selamat Membaca~~

A. Contoh Dasar Dari Program Array, Pointer, Struktur dalam C++

Percobaan 1 : Cara memberikan nilai pada array dan mengakses array

Berikut Contoh Source Code nya:

#include <stdio.h>

int main ()

{

int n[ 10 ];

int i,j;

for ( i = 0; i < 10; i++ )

{

n[ i ] = i + 100;

}

for (j = 0; j < 10; j++ )

{

printf("Element[%d] = %d\n", j, n[j] );

}

}


Berikut Output Program nya:

 

Percobaan 2 : Menghitung total dari nilai yang terdapat pada array

Berikut Contoh Source Code nya:

#include <stdio.h>

#define SIZE 12

int main()

{

int a[ SIZE ] = { 1, 3, 5, 4, 7, 2, 99,16, 45, 67, 89, 45 };

int i = 0;

int total = 0;

for(i = 0; i<SIZE; ++i)

{

total+=a[i];

}

printf( "Total elemen yang terdapat di array : %d\n", total );

}


Berikut Output Program nya:


Percobaan 3 : Penggunaan Array pada Bilangan Fibonaci

Berikut Contoh Source Code nya:

#include<stdio.h>

#define MAX 20

int fibo[MAX];

int main()

{

int i;

fibo[1] = 1;

fibo[2] = 1;

for (i=3;i<=MAX;i++)

fibo[i]=fibo[i-2]+fibo[i-1];

printf("%d Bilangan Fibonaci Pertama adalah : \n",MAX);

for (i=1;i<MAX;i++)

printf("%d",fibo[i]);

}


Berikut Output Program nya:


Percobaan 4 : Cara mengakses array dua dimensi

Berikut Contoh Source Code nya:

#include <stdio.h>

int main ()

{

int a[5][2] = { {0,0}, {1,2}, {2,4}, {3,6},{4,8}};

int i, j;

for ( i = 0; i < 5; i++ )

{

for ( j = 0; j < 2; j++ )

{

printf("a[%d][%d] = %d\n", i,j, a[i][j] );

}

}

}


Berikut Output Program nya:


Percobaan 5 : Program Merubah Isi Variabel melalui Pointer

Berikut Contoh Source Code nya:

#include <stdio.h>

main()

{

int y, x = 87; /* x & y bertipe int */

int *px;

/* var pointer yang menunjuk ke data yang bertipe int */

x = 87;

px = &x; /* px diisi dengan alamat dari variabel x */

y = *px; /* y diisi dengan nilai yg ditunjuk oleh px */

printf("Alamat x = %p\n", &x);

printf("Isi px = %p\n", px);

printf("Isi x = %d\n", x);

printf("Nilai yang ditunjuk oleh px = %d\n", *px);

printf("Nilai y = %d\n", y);

}


Berikut Output Program nya:

 

Percobaan 6 : Program Mengakses & Mengubah Isi Suatu Variabel Pointer

Berikut Contoh Source Code nya:

#include <stdio.h>

main()

{

float d = 54.5f, *pd;

printf("Isi d mula-mula = %g\n", d);

pd = &d;

*pd += 10;

printf("Isi d sekarang = %g\n", d);

}


Berikut Output Program nya:



Percobaan 7 : Mengakses elemen array dengan pointer.

Berikut Contoh Source Code nya:

#include <stdio.h>

int main()

{

int my_array[] = {1,23,17,4,-5,100};

int *ptr;

int i;

ptr = &my_array[0]; /* var pointer ptr menunjuk ke elemen ke[1]0 dari myarray */

printf("\n\n");

for (i = 0; i < 6; i++)

{

printf("my_array[%d] = %d ",i,my_array[i]);

printf("ptr + %d = %d\n",i, *(ptr + i));

}

}


Berikut Output Program nya:

 


Percobaan 8 : Meng-copy string menggunakan pointer.

Berikut Contoh Source Code nya:

#include <stdio.h>

char strA[80] = "ABCDE";

char strB[80];

int main()

{

char *pA;

char *pB;

puts(strA);

pA = strA;

puts(pA);

pB = strB;

putchar('\n');

while(*pA != '\0')

{

*pB++ = *pA++;

}

*pB = '\0';

puts(strB);

}


Berikut Output Program nya:


Percobaan 9 : Penggunaan Pointer untuk Bilangan Fibonaci

Berikut Contoh Source Code nya:

#include<stdio.h>

#include<stdlib.h>

#define MAX 20

int main()

{

int *fibo;

int i;

fibo = (int*)malloc(MAX * sizeof(int));

*(fibo + 1) = 1;

*(fibo + 2) = 1;

for (i=3;i<=MAX;i++)

*(fibo + i)= (*(fibo + i - 2) + *(fibo + i - 1));

printf("%d Bilangan Fibonaci Pertama adalah : \n",MAX);

for (i=1;i<MAX;i++)

printf("%d",*(fibo+i));

}


Berikut Output Program nya:


Percobaan 10 : Penggunaan Struktur pada Konversi Koordinat Polar ke Koordinat Cartesian

Berikut Contoh Source Code nya:

#include <stdio.h>

#include <math.h>

struct polar {

double r;

double alpha;

};

struct kartesian {

double x;

double y;

};

int main()

{

struct polar p1;

struct kartesian k1;

 

printf("Masukkan nilai r untuk koordinat polar : ");

scanf("%lf",&p1.r);

printf("Masukkan nilai alpha untuk koordinat polar : ");

scanf("%lf",&p1.alpha);

k1.x = p1.r * cos(p1.alpha);

k1.y = p1.r * sin(p1.alpha);

printf("Nilai koordinat kartesian untuk koordinat polar r=%2.2lf alpha= %2.2lf adalah:\n",p1.r,p1.alpha);

printf("x = %2.2lf y = %2.2lf",k1.x,k1.y);

}


Berikut Output Program nya:


Percobaan 11 : Program Struktur dalam Array

Berikut Contoh Source Code nya:

#include <stdio.h>

#include <string.h>

struct dtnilai

{

char nrp[10];

char nama[20];

double nilai;

};

struct dtnilai data[10];

int j=0;

void tambah_data()

{

char jawab[2];

while(1)

{

fflush(stdin);

printf("NRP :");scanf("%s",&data[j].nrp);

printf("Nama :");scanf("%s",&data[j].nama);

printf("Nilai Test :");scanf("%lf",&data[j].nilai);

printf("Ada data lagi(y/t):"); scanf("%s",&jawab);

if((strcmp(jawab,"Y")==0)||(strcmp(jawab,"y")==0))

{

j++;continue;

}

else if ((strcmp(jawab,"T")==0)||(strcmp(jawab,"t")==0))

break;

}

}

void tampil()

{

int i;

printf("Data Mahasiswa yang telah diinputkan :\n");

printf("NRP\tNama\tNilai\n");

for (i=0;i<=j;i++)

 

{

printf("%s\t%s\t%6.2f\n",data[i].nrp,data[i].nama,

data[i].nilai);

}

}

int main()

{

tambah_data();

tampil();

}


Berikut Output Program nya:

 


Percobaan 12 : Mengakses Struktur dengan Pointer

Berikut Contoh Source Code nya:

#include <stdio.h>

#include <string.h>

 

struct dtnilai

{

    char nrp[10]; char nama[20]; double nilai;

};

 

int main()

{

    struct dtnilai my_struct = {"10","Yusril",95.3};

    struct dtnilai *st_ptr;

    st_ptr= &my_struct;

    printf("\n%s ", st_ptr->nrp);

    printf("%s ", st_ptr->nama);

    printf("%d\n", st_ptr->nilai);

}


Berikut Output Program nya:



B. Contoh Soal Program Menggunakan Array, Pointer, dan Struktur Dengan C++

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

Berikut program nya:

#include <iostream>

#include <string.h>

#include <stdio.h>

#include <windows.h>

using namespace std;

int main(){

 char kata[100] = {};

 int maxStack, i;

 cout << " Input Kata Yang Ingin Dibalik : ";

 gets(kata);

 maxStack = strlen(kata);

 printf("\nHasil.....");

 cout << "\nKata Yang Dinput Dibalik Menjadi :";

 for (i = maxStack; i >= 0; i--){

  char stack = kata[i];

  cout << stack;

 }

}

Berikut Output Program nya: 


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

Berikut program nya:

#include <iostream>

using namespace std;

int main(){

 cout << endl;

 int matriks1[3][3];

 int matriks2[3][3];

 int pengurangan[3][3];

 int pertambahan[3][3];

 int perkalian[3][3];

 int baris, kolom;     

 // Matriks Pertama

 cout << "===================\n";

 cout << " Matriks Pertama \n";

 cout << "===================\n";

 for (baris = 0; baris < 3; baris++)

 {

  for (kolom = 0; kolom < 3; kolom++){

   cout << "Input Angka [" << baris << "] [" << kolom << "] = ";

   cin >> matriks1[baris][kolom];

  }

  cout << endl;

 }

 // Matriks Kedua

 cout << "==================\n";

 cout << " Matriks Kedua \n";

 cout << "==================\n";

 for (baris = 0; baris < 3; baris++)

 {

  for (kolom = 0; kolom < 3; kolom++)

  {

   cout << "Input Angka [" << baris << "] [" << kolom << "] = ";

   cin >> matriks2[baris][kolom];

  }

  cout << endl;

 }

 // Matriks Jumlah

 cout << "==============================\n";

 cout << "Hasil Pertambahan [3]+[3] \n";

 cout << "==============================\n";

 for (baris = 0; baris < 3; baris++)

 {

  for (kolom = 0; kolom < 3; kolom++)

  {

 

   pertambahan[3][3] = matriks1[baris][kolom] + matriks2[baris][kolom];

   cout << pertambahan[3][3] << " ";

  }

  cout << endl;

 }

 // Matriks Kurang

 cout << "=============================\n";

 cout << "Hasil Pengurangan [3]-[3] \n";

 cout << "=============================\n";

 for (baris = 0; baris < 3; baris++)

 {

  for (kolom = 0; kolom < 3; kolom++)

  {

   pengurangan[3][3] = matriks1[baris][kolom] - matriks2[baris][kolom];

   cout << pengurangan[3][3] << " ";

  }

  cout << endl;

 }

 // Matriks Perkalian

 cout << "==============================\n";

 cout << "Hasil Perkalian [3]x[3] \n";

 cout << "==============================\n";

 for (baris = 0; baris < 3; baris++)

 {

  for (kolom = 0; kolom < 3; kolom++)

  {

 

   perkalian[3][3] = matriks1[baris][kolom] * matriks2[baris][kolom];

   cout << perkalian[3][3] << " ";

  }

  cout << endl;

 }

}

Berikut Output Program nya: 



3. Bagaimana output program di bawah ini ?

Program Terlampir:

#include <stdio.h>

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

}

Berikut Output Program nya:


4. Masalah aritmatika polinom adalah membuat sekumpulan subrutin manipulasi terhadap polinom simbolis (symbolic Polynomial). 

Misalnya: P1 = 6x8 + 8x7 + 5x5 + x 3 + 15 P2 = 3x9 + 4x7 + 3x4 + 2x3 + 2x 2 + 10 P3 = x 2 + 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 + 8x 9 + 5x7 + x 5 + 15x 2 + 30x8 + 40x7 + 25x5 + 5x3 + 75 = 6x 10 + 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.

Berikut Program nya:

#include <iostream>

#include <conio.h>

using namespace std;

int main()

{

 int pol1[100];

 int pol2[100];

 int pol3[100];

 int i1;

 int p = 0;

 int maxP1;

 cout << " ARITMATIKA POLINOM \n\n";

 cout << " Masukkan Batas Polinom Persamaan 1= ";

 cin >> maxP1;

 for (i1 = 0; i1 <= maxP1 - 1; i1++)

 {

  cout << " Masukkn Nilai Koeffisien Polinom X^" << p << " = ";

  cin >> pol1[i1];

  p++;

 }

 cout << " Jadi P1 : ";

 for (i1 = maxP1 - 1; i1 >= 0; i1--)

 {

  p--;

  cout << " + (" << pol1[i1] << "X^" << p << ")";

 }

 for (; maxP1 <= 11; maxP1++)

 {

  pol1[maxP1] = 0;

 }

 int i2;

 p = 0;

 do

 {

  cout << "\n\n Masukkan Batas Polinom Persamaan 2= ";

  cin >> maxP1;

 } while (maxP1 > 11);

 for (i2 = 0; i2 <= maxP1 - 1; i2++)

 {

  cout << " Masukkn Nilai Koeffisien Polinom X^" << p << " = ";

  cin >> pol2[i2];

  p++;

 }

 cout << " Jadi P2 : ";

 for (i2 = maxP1 - 1; i2 >= 0; i2--)

 {

  p--;

  cout << " + (" << pol2[i2] << "X^" << p << ")";

 }

 for (; maxP1 <= 11; maxP1++)

 {

  pol2[maxP1] = 0;

 }

 int i3;

 p = 0;

 do

 {

  cout << "\n\n Masukkan Batas Polinom Persamaan 3= ";

  cin >> maxP1;

 } while (maxP1 > 11);

 for (i3 = 0; i3 <= maxP1 - 1; i3++)

 {

  cout << " Masukkn Nilai Koeffisien Polinom X^" << p << " = ";

  cin >> pol3[i3];

  p++;

 }

 cout << " Jadi P3 : ";

 for (i3 = maxP1 - 1; i3 >= 0; i3--)

 {

  p--;

  cout << " + (" << pol3[i3] << "X^" << p << ")";

 }

 for (; maxP1 <= 11; maxP1++)

 {

  pol3[maxP1] = 0;

 }

 

 cout << "\n\n================================================================";

 cout << "\n Hasil EMPAT OPERASI ARITMATIKA dasar antara lain : ";

 cout << "\n================================================================";

 cout << "\n\n Penambahan : \n";

 cout << " P1 + P2 = " << pol1[10] << "x^10 + " << pol1[9] + pol2[9] << "x^9 + " << pol1[8] + pol2[8] << "x^8 + " << pol1[7] + pol2[7] << "x^7 + " << pol1[6] + pol2[6] << "x^6 + " << pol1[5] + pol2[5] << "x^5 + " << pol1[4] + pol2[4] << "x^4 + " << pol1[3] + pol2[3] << "x^3 + \n " << pol1[2] + pol2[2] << "x^2 + " << pol1[1] + pol2[1] << "x^1 + " << pol1[0] + pol2[0] << "x^0 ";

 cout << "\n\n Pengurangan : \n";

 cout << " P1 + P2 = " << pol1[10] << "x^10 + " << pol1[9] - pol2[9] << "x^9 + " << pol1[8] - pol2[8] << "x^8 + " << pol1[7] - pol2[7] << "x^7 + " << pol1[6] - pol2[6] << "x^6 + " << pol1[5] - pol2[5] << "x^5 + " << pol1[4] - pol2[4] << "x^4 + " << pol1[3] - pol2[3] << "x^3 + \n " << pol1[2] - pol2[2] << "x^2 + " << pol1[1] - pol2[1] << "x^1 + " << pol1[0] - pol2[0] << "x^0 ";

 cout << "\n\n Perkalian : \n";

 cout << " P1 * P3 = " << pol1[10] * pol3[1] << "x^11 + " << pol1[9] * pol3[1] << "x^10+ " << pol1[8] * pol3[1] << "x^9 + " << pol1[7] * pol3[1] << "x^8 + " << pol1[6] * pol3[1] << "x^7 + " << pol1[5] * pol3[1] << "x^6 + " << pol1[4] * pol3[1] << "x^5 + " << pol1[3] * pol3[1] << "x^4 + \n " << pol1[2] * pol3[1] << "x^3 + " << pol1[1] * pol3[1] << "x^2 + " << pol1[0] * pol3[1] << "x^1 " << pol1[10] * pol3[0] << "x^10 + " << pol1[9] * pol3[0] << "x^9+ " << pol1[8] * pol3[0] << "x^8 + \n " << pol1[7] * pol3[0] << "x^7 + " << pol1[6] * pol3[0] << "x^6 + " << pol1[5] * pol3[0] << "x^5 + " << pol1[4] * pol3[0] << "x^4 + " << pol1[3] * pol3[0] << "x^3 + " << pol1[2] * pol3[0] << "x^2 + " << pol1[1] * pol3[0] << "x^1 + \n " << pol1[0] * pol3[0] << "x^0 ";

 cout << "\n\n Turunan : \n";

 cout << " P2' = " << pol2[9] * 9 << "x^8 + " << pol2[8] * 8 << "x^7 + " << pol2[7] * 7 << "x^6 + " << pol2[6] * 6 << "x^5 + " << pol2[5] * 5 << "x^4 + " << pol2[4] * 4 << "x^3 + " << pol2[3] * 3 << "x^2 + \n " << pol2[2] * 2 << "x^1 + " << pol2[1] * 1 << "x^0 + ";

}

Berikut Output Program nya:



5. Bilangan kompleks berbentuk a + bi, dimana a dan b adalah bilangan nyata dan i 2 = -1. 

Terdapat empat operasi aritmatika dasar untuk bilangan kompleks, yaitu: 

• Penambahan : (a+bi) + (c+di) = (a+c) + (b+d)i 

• Pengurangan : (a+bi) - (c+di) = (a-c) + (b-d)i 

• Perkalian : (a+bi) * (c+di) = (ac-bd) + (ad+bc)i 

• Pembagian : (a+bi) / (c+di) = [(ac+bd) / (a 2 +b2 )] + [(bc-ad)/(c 2 +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.

Berikut Program nya:

#include <conio.h>

#include <iostream>

using namespace std;

struct bilangan

{

 int riil[2];

 int imj[2];

} kmp;

void pengurangan(bilangan &kmp)

{

 int r, i;

 r = kmp.riil[0] - kmp.riil[1];

 i = kmp.imj[0] - kmp.imj[1];

 cout << "\nHasil Pengurangan Dua Bilangan Komlpeks : " << r << " + " << i << "i";

}

void penjumlahan(bilangan &kmp)

{

 int r, i;

 r = kmp.riil[0] + kmp.riil[1];

 i = kmp.imj[0] + kmp.imj[1];

 cout << "\nHasil Penjumlahan Dua Bilangan Komlpeks : " << r << " + " << i << "i";

}

void perkalian(bilangan &kmp)

{

 int a, a2, b, b2;

 a = kmp.riil[0] * kmp.riil[1];

 a2 = kmp.imj[0] * kmp.imj[1];

 b = kmp.riil[0] * kmp.imj[1];

 b2 = kmp.imj[0] * kmp.riil[1];

 cout << "\nHasil Perkalian Dua Bilangan Komlpeks:"

      << "(" << a << "-" << a2 << ")"

      << "+"

      << "(" << b << "+" << b2 << ")"

      << "i";

}

void pembagian(bilangan &kmp)

{

 int a, a2, b, b2, c, c2, d, d2;

 a = kmp.riil[0] * kmp.riil[1];

 a2 = kmp.imj[0] * kmp.imj[1];

 b = kmp.riil[0] * kmp.imj[1];

 b2 = kmp.imj[0] * kmp.riil[1];

 c = kmp.riil[0] * kmp.riil[0];

 c2 = kmp.imj[0] * kmp.imj[0];

 d = kmp.riil[1] * kmp.riil[1];

 d2 = kmp.imj[1] * kmp.imj[1];

 cout << "\nHasil Pembagian Dua Bilangan Komlpeks:"

      << "["

      << "(" << a << "+" << a2 << ")"

      << "/"

      << "(" << c << "+" << c2 << ")"

      << "]"

      << "+"

      << "["

      << "(" << b << "-" << b2 << ")"

      << "/"

      << "(" << d << "+" << d2 << ")"

      << "]"

      << "i";

}

int main()

{

 cout << endl

      << endl;

 cout << "\t\t\tProgram Operasi Bilangan Kompleks";

 cout << endl

      << endl

      << endl;

 bilangan kmp;

 for (int a = 0; a < 2; a++)

 {

  cout << "Masukkan Bilangan Kompleks yamg ke " << a + 1 << endl;

  cout << "Bilangan Riil : ";

  cin >> kmp.riil[a];

  cout << "Bilangan Imajiner : ";

  cin >> kmp.imj[a];

 }

 for (int a = 0; a < 2; a++)

 {

  cout << "\nBilangan Kompleks yang ke " << a + 1 << " : " << kmp.riil[a] << " + " << kmp.imj[a] << "i";

 }

 cout << endl

      << endl;

 penjumlahan(kmp);

 pengurangan(kmp);

 perkalian(kmp);

 pembagian(kmp);

 getch();

}

Berikut Output Program nya:




Baca Juga:

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna Veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.

0 comments:

Categories

Contact Us

BAYU
+62 896-2690-9619
Kampar, Riau, Indonesia