Selasa, 17 Mei 2016

program pusing



PRAKTEK VII
ARRAY

Mata Kuliah   : Bahasa Pemrograman (TEI 027)
Seksi               : 201521300019
Nama              : Chintia Sary
Nim                 : 15130042
UNP 2016

1.      Apa pengertian array, jenis-jenis array, dan penggunaan array dalam program? Sertai dengan contoh
2.      Apa kelebihan dan kekurangan array?
3.      Kerjakan minimal 5 studi kasus pada halaman 188-190

Jawab
Array (larik) adalah kumpulan dari nilai-nilai data bertipe sama dalam urutan tertentu yang menggunakan sebuah nama yang sama. Array dapat digunakan untuk menyimpan beberapa nilai tipe data lain data (char, int, float, double, long, dll) yang sama dengan satu nama saja. Nilai-nilai data di suatu array disebut dengan elemen-elemen larik. Letak urutan dari suatu elemen larik ditunjukkan oleh suatu subscript atau suatu index.
Menurut dimensinya, array dapat dibedakan menjadi :
1.      Array berdimensi satu
- Setiap elemen array dapat diakses melalui index
- Index array secara default dimulai dari 0
Deklarasi array :
Tipe_array nama_array[ukuran]
Contoh program :

#include <stdio.h>
#include <conio.h>
main(){
 int n,jum=0, nilaiSiswa[10];
 double rata;
 printf("\n\tCONTOH PROGRAM ARRAY SATU DIMENSI\n\n");
 printf("Input nilai berapa banyak? "); scanf("%d",&n);
 printf("\n");
 for(int i=0;i<n;i++){
  printf("Nilai ke-%d : ",i); scanf("%d",&nilaiSiswa[i]);
 }
 printf("\nHASIL NILAI YG DIINPUTKAN USER");
 for(int i=0;i<n;i++){
  printf("\nNilai ke-%d = %d", i,nilaiSiswa[i]);
 }
for(int i=0;i<n;i++){
  jum=jum+nilaiSiswa[i];
  rata=jum/n;
 }
 printf("\nHasil penjumlahan kesemua nilai = %d",jum);
 printf("\nRata-rata nya = %f", rata);
}
2.      Array berdimensi dua
Merupakan array yang terdiri dari m buah baris dan n buah buah kolom. Bentuknya dapat berupa matriks atau tabel.
Deklarasi array :
Tipe_array nama_array [baris][kolom]
Contoh program :

#include conio.h
#include stdio.h
#include iostream.h
void main()
{
clrscr();
int a[50][50],b[50][50];
int m,n,p,q,j,k;
cout<<"Jumlah baris Matrik A    = ";cin>>m;
cout<<"Jumlah kolom Matrik A = ";cin>>n;
cout<<"Jumlah baris Matrik B    = ";cin>>p;
cout<<"Jumlah kolom Matrik B  = ";cin>>q;
clrscr();
cout<<"Input Matriks A\n";
for(j=0;j for(k=0;k  {
    cout<<"A"<>a[j][k];
  }
cout<<"Input Matriks B\n";
for(j=0;j
for(k=0;k  {
    cout<<"B"<>b[j][k];
  }
clrscr();
cout<<"Matrik A \n";
for(j=0;j{
 for(k=0;k    cout<    cout<<"\n";
}
cout<<"\n\nMatrik B \n";
for(j=0;j
{
 for(k=0;k    cout<    cout<<"\n";
}
getch();
}

3.      Array multidimensi
Merupakan array yang mempunyai ukuran lebih dari dua. Bentuk pendeklarasian array multidimensi sama saja dengan deklarasi array dimensi satu maupun dimensi dua.
            Deklarasi array :
Tipe_array nama_array [ukuran 1][ukuran 2] . . . [ukuran N]
Contoh program :

#include <stdio.h>
#include <conio.h>
main(){
 int b,k,A[20][20],B[20][20],jum[20][20],kur[20][20];
 printf("\n\tCONTOH PROGRAM ARRAY MULTIDIMENSI\n\n");
 printf("Masukkan jumlah baris dan kolom\n");
 printf("Baris? "); scanf("%d",&b);
 printf("Kolom? "); scanf("%d",&k);
 printf("\n");
 for(int i=0;i<b;i++)
{ for(int j=0;j<k;j++){
   printf("A[%d][%d]= ",i,j); scanf("%d",&A[i][j]); }
 printf("\n");
 for(int i=0;i<b;i++){
  for(int j=0;j<k;j++){
   printf("B[%d][%d]= ",i,j); scanf("%d",&B[i][j]);
  }
 }
 //penjumlahan matriks
 for(int i=0;i<b;i++){
  for(int j=0;j<k;j++){
            jum[i][j]=A[i][j]+B[i][j];
  }
 }
 //pengurangan matriks
 for(int i=0;i<b;i++){
  for(int j=0;j<k;j++){
            kur[i][j]=A[i][j]-B[i][j];
  }
 }
 printf("\nPenjumlahan matriks A & B\n");
 for(int i=0;i<b;i++){
  for(int j=0;j<k;j++){
            printf(" %d ",jum[i][j]);
  }
  printf("\n");
 }
 printf("\nPengurangan matriks A & B\n");
 for(int i=0;i<b;i++){
  for(int j=0;j<k;j++){
            printf(" %d ",kur[i][j]);
  }
  printf("\n");
 }
 getch();
}
KELEBIHAN DAN KEKURANGAN ARRAY
A.    Kelebihan
1.      Array sangat baik jika digunakan untuk mengakses secara acak (random). Karena secara acak index di array dapat secara langsung tanpa melalui indek yang lainnya
2.      Jika berada di suatu lokasi indek sangatlah mudah untuk mencari ke indeks yang sama.
3.      Jika indeks array adalah nilai-nilai tersendiri dan semuanya harus terjaga, maka penggunaan penyimpanannya sangatlah tepat
4.      Tidak mudah crash
5.      Cepatnya mengeksekusi data
6.      Tidak banyak memakan memori

B.     Kekurangan
1.      Ukuran file yang sangat besar
2.    Tidak efisien dalam penggunaan memori
3.      Jika array bertipe homogen, maka user tidak dapat mempunyai array dimana satu indeks adalah karakter utamanya.

PROGRAM
v  Program membalik kata
a)      Algoritma
1.      Mulai
2.      Masukkan kata
3.      Set hitung = strlen(kata)
4.      for(hitung-1;hitung>0;hitung—
cetak kata yang telah dibalik
5.      selesai

b)     Kode program
#include <stdio.h>
#include <string.h>
main()
{
int i=0;
int hitung;
char kata[100];
printf("\t\tprogram membalik kata\n\n");
printf("masukkan kata yang ingin dibalik : ");
scanf("%s", &kata);
hitung=strlen(kata);
printf("kata setelah dibalik : ");
for(hitung-1;hitung>0;hitung--)
{
printf("%c", kata[hitung-1]);}
printf("\n");
}
c)      Output


d)     Analisa
Dari contoh program di atas, user memasukkan kata chintya, setelah dibalik menjadi aytnihc.
v  Program Menginput Nilai Matriks dan Menampilkan Matriks
a)      Algoritma
1.      Mulai
2.      For  (i = 0, i < 5, i ++)
3.      Massukkan nilai elemen
4.      Cetak matrik
5.      Selesai

b)     Kode Program
#include <iostream>
#include <conio.h>
#include <iomanip>

using namespace std;
int main ()
{
int a[5], i;
//input elemen matriks
cout << "Silahkan input elemen Matriks : \n";
cout << "------------------------------- \n";
for (i=0; i<5; i++)
{
cout << "Elemen ( "  << (i+1) << " " ") :";
cin >> a[i];

}

//cetak matriks

cout << "\nMatriks X = [";
for (i=0; i<5; i++)
{
cout << setw(4) << a[i];
}
cout << " ]";
cout << endl;

getch ();
}

c)      Output
v  Program menghitung huruf vokal dan huruf konsonan
a)      Algoritma
1.      Mulai
2.      Masukkan kalimat
3.      count_vocal=print_if_match(str,key_vocal)
cetak huruf vokal
4.      count_konsonan=print_if_match(str,key_konsonan)
cetak huruf konsonan
5.      count_symbol=print_if_match(str,key_symbol)
cetak simbol
6.  selesai

b)     Kode Program
#include <stdio.h>
#include <string.h>
#include <conio.h>

int print_if_match(char *str, char *key)

{
  char  *pCh;
  int   found=0;
  pCh = strpbrk (str, key);
  while (pCh != NULL)
  {
    printf ("%c " , *pCh);
    pCh = strpbrk (pCh+1,key);
    found++;
  }
  return found;
}

int main ()
{
  char str[100];
  char key_vocal[] = "aeiou";
  char key_konsonan[] = "bcdfghjklmnpqrstvwxyz";
  char key_symbol[]= "`~!@#$%^&*()-_=+[{]}\\|'\";:/?.>,<";
  int count_vocal = 0;
  int count_konsonan = 0;
  int count_symbol = 0;

  printf ("             Program Menghitung Huruf \n\n");
  printf ("%s","Masukkan Kalimat: ");
  scanf("%[^\n]",str);


  printf("%s","\nHuruf Vokal: ");
  count_vocal=print_if_match(str,key_vocal);
  printf("\nJumlah Huruf Vokal: %d\n",count_vocal);


  printf("%s","\nHuruf Konsonan: ");
  count_konsonan=print_if_match(str,key_konsonan);
  printf("\nJumlah Huruf Konsonan: %d\n",count_konsonan);

  printf("%s","\nHuruf Symbol: ");
  count_symbol=print_if_match(str,key_symbol);
  printf("\nJumlah  Symbol: %d\n",count_symbol);

  printf ("\n");
  getch();
  return 0;
}




c)      Output

v  Program Penjumlahan, Pengurangan, dan Perkalian Matriks
a)      Kode Program
#include <iostream>
#include <conio.h>
#include <stdlib.h>
using namespace std;

int main()
{
    char salah;
    double a[10][10];
    double b[10][10];
    double hasil[10][10];
    int i,j,r,bb,k,b2,k2,p;
    do
    {
    //program bikin pusing chintya 42
    cout<<"==========================\n";
    cout<<"inputkan banyak baris a: ";     cin>>bb;
    cout<<"inputkan banyak kolom a: ";     cin>>k;
    cout<<"inputkan banyak baris b: ";     cin>>b2;
    cout<<"inputkan banyak kolom b: ";     cin>>k2;
    cout<<"==========================\n";
    if ((bb==b2)&&(k==k2))
    {
     cout<<"INPUT ELEMEN  MATRIK A: "<<endl;
     for (i=0;i<bb;i++)
     for (j=0;j<k;j++)
     {
        cout<<"A["<<(i+1)<<","<<(j+1)<<"]=";cin>>a[i][j];
     }
     cout<<"INPUT ELEMEN  MATRIK B: "<<endl;
     for (i=0;i<bb;i++)
     for (j=0;j<k;j++)
     {
        cout<<"B["<<(i+1)<<","<<(j+1)<<"]=";cin>>b[i][j];
     }
        cout<<"--------------------------------------------\n";
     cout<<"pilih (1=jumlah,2=kurang,3=perkalian) : ";cin>>p;
        cout<<"--------------------------------------------\n";
     if(p==1)
     {
            cout<<"TAMPIL MATRIK : "<<endl;
            cout<<"Matriks A      Matriks B"<<endl;
            for (i=0;i<bb;i++)
            {
                for (j=0;j<k;j++)
                {
                    cout<<a[i][j]<<"    ";
                }
                if (i==0)
                {
                         cout<<"+";
                         cout<<"    ";
                         for (j=0;j<k;j++)
                         {
                             cout<<b[i][j]<<"    ";
                         }
                }
                if (i>0)
                {
                    cout<<"    ";
                    for (j=0;j<k;j++)
                    cout<<" "<<b[i][j]<<"   ";
                }
                cout<<endl;
            }
            for (i=0;i<bb;i++)
            for (j=0;j<k;j++)
            {
                hasil[i+1][j+1]=(a[i][j]+b[i][j]);
            }
            cout<<endl<<"HASIL AKHIR= "<<endl;
            for (i=0;i<bb;i++)
            {
                for (j=0;j<k;j++)
                {
                    cout<<hasil[i+1][j+1]<<"     ";
                }
                cout<<endl;
            }
     }
     else if(p==2)
     {
         cout<<"TAMPIL MATRIK : "<<endl;
         cout<<"Matriks A               Matriks B"<<endl;
         for (i=0;i<bb;i++)
            {
                for (j=0;j<k;j++)
                {
                    cout<<a[i][j]<<"    ";
                }
            if (i==0)
            {
                     cout<<"-";
                     cout<<"    ";
                     for (j=0;j<k;j++)
                     {
                         cout<<b[i][j]<<"    ";
                     }
            }
            if (i>0)
            {
                    cout<<"    ";
                    for (j=0;j<k;j++)
                    cout<<" "<<b[i][j]<<"   ";
            }
            cout<<endl;
            }
         for (i=0;i<bb;i++)
         for (j=0;j<k;j++)
         {
             hasil[i+1][j+1]=(a[i][j]-b[i][j]);
         }
         cout<<endl<<"HASIL AKHIR= "<<endl;
         for (i=0;i<bb;i++)
         {
             for (j=0;j<k;j++)
             {
                 cout<<hasil[i+1][j+1]<<"     ";
             }
             cout<<endl;
         }
     }
     else if(p==3)
     {
         cout<<"TAMPIL MATRIK : "<<endl;
         cout<<"Matriks A               Matriks B"<<endl;
         for (i=0;i<bb;i++)
            {
                for (j=0;j<k;j++)
                {
                    cout<<a[i][j]<<"    ";
                }
            if (i==0)
            {
                     cout<<"x";
                     cout<<"    ";
                     for (j=0;j<k;j++)
                     {
                         cout<<b[i][j]<<"    ";
                     }
            }
            if (i>0)
            {
                    cout<<"    ";
                    for (j=0;j<k;j++)
                    cout<<" "<<b[i][j]<<"   ";
            }
            cout<<endl;
            }
         hasil[i+1][j+1]=0;
         for (i=0;i<bb;i++)
         {
             for (j=0;j<k;j++)
             {
                 hasil[i+1][j+1]=0;
                 for (r=0;r<k;r++)
                 {
                     hasil[i+1][j+1]=hasil[i+1][j+1]+a[i][r]*b[r][j];
                 }
             }
         }
         cout<<endl<<"HASIL AKHIR= "<<endl;
         for (i=0;i<bb;i++)
         {
             for (j=0;j<k;j++)
             {
                 cout<<hasil[i+1][j+1]<<"     ";
             }
             cout<<endl;
         }
     }
     else
     {
     cout<<"-->kode yang anda masukkan salah<--"<<endl;
     cout<<"APAKAH ANDA INGIN MENGULANG?(Y/T) ";
     cin>>salah;
     cout<<"-----TEKAN ENTER-----"<<endl;
     }
    }    //tutup kurung dari if (bb=k)
    else
    {
     cout<<"Maaf....ORDO tidak sama!!!!"<<endl;
     cout<<"APAKAH ANDA INGIN MENGULANG?(Y/T) ";
     cin>>salah;
     cout<<"-----TEKAN ENTER-----"<<endl;
    }
    cout<<"APAKAH ANDA INGIN MENGULANG?(Y/T) ";
    cin>>salah;
    cout<<"-----TEKAN ENTER-----"<<endl;
    system("CLS");
    }   //tutup kurung dari do-while
    while(salah=='y'||salah=='Y');
    getch();
}         
b)     Output

c)      Analisa
Dari hasil output program di atas, dapat diketahui pada output pertama, user memasukkan  banyak baris dan  matrik a yaitu 2, 2 sedangkan untuk matriks b yaitu 1,1. Program akan menjalankan perintah else yaitu ordo tidak sesuai karena untuk menjalankan penjumlahan, pengurangan matrik maka nilai ordo harus sama. Pada gambar ke 2, 3, dan 4, user memilih pilihan penjumlahan, pengurangan, dan perkalian matriks dan menghasilkan output seperti gambar di atas.
v  Program menghitung total,rata-rata, maksimum dan minimum
a)      Algoritma
1.      Mulai
2.      Masukkan jumlah data
3.      Masukkan nilai data
4.      If  nilai [10] > max, max = nilai [10]
5.      If  nilai [10] > min, min = nilai [10]
6.      Sum = sum + nilai [10]
7.      Rata=(double) sum / jjumlah data
8.      Cetak total, rata- rata, nilai maksimum, dan nilai minimum
9.      Selesai

b)     Kode Program
#include<cstdlib>
#include<iostream>
using namespace std;
int main(void)
{
    int nilai[10],sum=0,max=0,min=0,i=1,jml_data;
    double rata;
    cout<<"Jumlah Data : ";cin>>jml_data;
    max=nilai[10];
    min=nilai[10];
    sum=sum+nilai[10];
    for(i=0;i<=jml_data;i++)
    {
        cout<<"Masukan Nilai Ke-"<<i<<" : ";cin>>nilai[10];
        if(nilai[10]>max)
            max=nilai[10];
        if(nilai[10]<min)
            min=nilai[10];
        sum=sum+nilai[10];
        i++;
    }
rata=(double)sum/jml_data;
cout<<"\nTotal            : "<<sum<<endl;
cout<<"Nilai Terendah   : "<<min<<endl;
cout<<"Nilai Tertinggi  : "<<max<<endl;
cout<<"Rata-Rata        : "<<rata<<endl;
system("PAUSE");
return 0;
}

c)      Output
d)     Analisa
Pada program di atas, user menentukan jumlah data mahasiswa yang akan diinputkan adalah 10 orang. Setelah user menginputkan masing – masing data, maka program akan menjalankan proses ke 4 sampai 8 pada algoritma.