Minggu, 21 Mei 2017

PRAKTIKUM_MODUL_7

MODUL VII POINTER

Praktikum

Studi Kasus  1

Buatlah program yang dapat memindahkan isi variable awal menuju ke variable tujuan yang ditunjuk serta menampilkan alamat alokasi memory sebelum di pindahkan kevariable tujuan.

#include<iostream.h>
#include<conio.h>
void main()
{
int x, y;
int *px;
clrscr();

x = 87;
px = &x;
y = *px;
cout<<" Alamat x Pada Memori  = "<<&x<<endl;
cout<<" Isi px = "<<px<<endl;
cout<<" Isi x = "<<x<<endl;

cout<<" Nilai Yang Ditunjuk Oleh px = "<<*px<<endl;
cout<<" Alamat y pd Memori = "<<&y<<endl;
cout<<" Nilai y = "<<y<<endl;
getch();
}

Hasil Running :


Pembahasan :
            Dari program diatas bisa dilihat itu memindahkan nilai dan mengetahi alokasi dengan x nya mempunyai nilai 87,kemudian px itu alokasi nya sama dengan x.Dan nilai y memiliki nilai y=*px bintang itu termasuk ke dalam reference nya.
           



Studi Kasus  2

Terdapat sebuah array yang memiliki hanya satu elemen yaitu 5 dan tempatkan pada indeks ke 0 dalam array, sementara alamat indeks selebihnya bernilai 0, buatlah program yang dapat mengisi alamat indeks yang lain melalui nilai elemen indeks ke – 0 ( contoh penyelesaian kasus di atas pada program dibawah ini bersifat sains).

#include<iostream.h>
#include<conio.h>
int main()
{
int x[5], *p, k;
clrscr();
p = x;

x[0] = 5 ;//x[0] diisi dengan 5 sehingga x[0] = 5
x[1] = x[0]; // x[1] diisi dengan x[0] sehingga x[1] = 5

x[2] = *p + 2; // x[2] diisi dengan x[0] + 2 sehingga
x[2] = 7;
x[3] = *(p+1) - 3 ; // x[3] diisi dengan x[1] - 3 sehingga x[3] = 2;

x[4] = *(x + 2);// x[4] diisi dengan x[2] sehingga
x[4] = 7;

cout<<" Array Setelah Diisi = "<<endl;
cout<<endl;

for(k=0; k<5; k++)
{
cout<<"x["<<k<<"] = "<<x[k]<<endl;
}
getch();
return 0;
}

Hasil Running :


Pembahasan :
        Program diatas yaitu cara mengisi indeks yang didalamnya terdapat variable pointer yang digunakan untuk memindahkan nilai indeks pertama sampai indeks terakhir.


Studi Kasus  3

#include<stdio.h>
#include<conio.h>
void tambahsepuluh(int *);
void ubahkarakter(char *);

int main()
{
int bilangan = 4;
char sesuatu = 's';
printf(" Bilangan Sebelum  fungsi di panggil : %d \n",bilangan);
printf(" Nilai sesuatu sebelum fungsi dipanggil : %c \n\n",sesuatu);

tambahsepuluh(&bilangan);
ubahkarakter(&sesuatu);

printf(" Bilangan Setelah Fungsi Dipanggil : %d \n",bilangan);
printf(" Nilai sesuatu setelah fungsi dipanggil : %c \n",sesuatu);
getch();
return 0;
}
void tambahsepuluh(int *bil){
*bil = *bil + 10;
}
void ubahkarakter(char *kar)
{
char karakter = 'H';
*kar = karakter;
}

Hasil Running :


Pembahasan :
            Dari program diatas digunakan untuk merubah suatu nilai dan karakter dengan menggunakan fungsi pointer.



Latihan 1

Dengan memasukan nilai integer 5 nilai dan melalui variable pointer bagaimana agar dapat mengetahui elemen tersebutakan menempati di lokasi memory berapa program berjalan secara setatis hanya sebanyak 5 buah nilai integer

#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main()
{
int i;
int nilai[50];
int *trnilai;
trnilai = nilai;
for(i=0;i<5;i++)
{
cout<<" Masukan Nilai ke - "<<i<<": ";
cin>>nilai[i];
}
cout<<endl;
cout<<" Pengaksesan Elemen Array Lewat ";
cout<<" Pointer";
cout<<endl<<endl;
for(i=1;i<=5; i++)
{
cout<<" Elemen "<<i<<" Nilai "<<nilai[i]<<endl;
cout<<" Menempati Alamat Memory : "<<&trnilai[i];
cout<<endl;
}
getch();
return 0;
}


Hasil Running :


Pembahasan :
            Dari program diatas mencari suatu alokasi dengan menggunakan pointer yang telah diiputkan, kita inputkan 5 variabel terlebih dahulu , kemudian untuk mengetahui alokasinya  kita gunakan operasi pointer deference pada variabel nilainya karena memiliki nilai variabel yang sama.



Latihan 2

Dengan Memasukan Nilai integer N nilai dan melalui variable pointer bagaimana agar dapat mengetahui elemen tersebutakan menempati di lokasi memory berapa program berjalan secara setatis hanya sebanyak N buah nilai integer

#include<stdio.h>
#include<iostream.h>
#include<conio.h>
main()
{
int i, N;
int nilai[50];
int *trnilai;
trnilai = nilai;
cout<<" Masukan Batasan = ";
cin>>N;
cout<<endl<<endl;
for(i=0;i<N;i++)
{
cout<<" Masukan Nilai ke - "<<i<<": ";
cin>>nilai[i];
}
cout<<endl;
cout<<" Pengaksesan Elemen Array Lewat ";
cout<<"Pointer";
cout<<endl<<endl;
for(i=1;i<=N; i++)
{
cout<<" Elemen "<<i<<" Nilai "<<nilai[i]<<endl;
cout<<" Menempati Alamat Memory : "<<&trnilai[i];
cout<<endl;
}
getch();
return 0;
}


Hasil Running :
       



Pembahasan :
            Program diatas hampir sama dengan  program Latihan 1, pada program ini kita diharuskan  memasukan batasan pengulangannya,  pertama kita masukan batasan perulangannya baru setelah itu kita inputkan isi datanya.


Selasa, 16 Mei 2017

PRAKTIKUM_MODUL_6

 MODUL VI ARRAY STRUKTUR

Praktikum 6

Studi Kasus 1

#include<iostream.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
struct movies_t {
 char title [50];
 int year;
 } mine, yours;

void printmovie (movies_t movie);

int main()
{
 char buffer [50];

 strcpy (mine.title, "2001 A space Odyssey");
 mine.year = 1968;

 cout<<"Masukan judul film favorit: ";
 cin.getline (yours.title,50);
 cout<<"Masukan tahun:";
 cin.getline (buffer,50);
 yours.year = atoi (buffer);

 cout<<"Judul film favorit yang ada:\n";
 printmovie (mine);
 cout<<"Judul film favorit kamu adalah:\n";
 printmovie (yours);
 return 0;
 }
void printmovie (movies_t movie)
{
 cout<<movie.title;
 cout<<"("<<movie.year<<")\n";
 getch();
 }


Hasil Running : 





Pembahasan:
           Dari Program Diatas kita  Inputkan Judul Film Favorit kita, tahun produsi dan. Pertama Masukan Input Judul film favorit yang kita inginkan dengan tahunnya. setelah itu program akan menghasilkan output berupa judul dan taun film favorit yang tadi kita masukan. Disini kita menggunakan Struct Array.
            


Studi Kasus 2

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <conio.h>
#define MAKS 20

main()
{
 struct data_tanggal
 { int tanggal;
   int bulan;
   int tahun;
};
 struct data_rekan
  { char nama[21];
    struct data_tanggal tgl_lahir;
  };
 struct data_rekan info_rekan[MAKS];

 char tombol;
 int i, jum_rekan = 0;

 puts("Data rekan-rekan :\n");

 do
   {
   printf("Nama :");
   gets(info_rekan[jum_rekan].nama);
   printf("tanggal lahir (xx-xx-xxxx):");
   scanf("%d-%d-%d",&info_rekan[jum_rekan].tgl_lahir.tanggal,
   &info_rekan[jum_rekan].tgl_lahir.bulan,&info_rekan[jum_rekan].tgl_lahir.tahun);
   fflush(stdin);
   jum_rekan++;
   printf("\nMau memasukan lagi (Y/T)?");
   tombol= toupper(getch());
   while (!(tombol=='T' || tombol=='Y'))
   tombol=toupper(getch());
   printf("%c\n\n",tombol);
   }
   while (tombol=='Y');
   puts("\nData rekan : NAMA-TANGGAL LAHIR\n");
   for(i=0; i<jum_rekan; i++)
   {
   printf("%-20s %d-%d-%d\n", info_rekan[i].nama,
   info_rekan[i].tgl_lahir.tanggal,
   info_rekan[i].tgl_lahir.bulan,
   info_rekan[i].tgl_lahir.tahun);
}
getch();
}


Hasil Running:



Pembahasan:
           Program diatas meginputkan data rekan - rekan menggunakan struct array maka digunakan rumus perulangan do while.



Latihan

#include <stdio.h>
#include <conio.h>
#include <iostream.h>
main()
{
struct
{
char nama[50];
char alamat[100];
int no_hp;
char ortu[50];
char pekerjaan[50];
char lulusan[50];
}
mahasiswa;    //nama_object_struct
clrscr();
printf("Masukan Nama=");
scanf("%s",&mahasiswa.nama);
cout<<"Masukan Alamat ="; cin>>mahasiswa.alamat;
printf("Masukan Nomor HP = "); scanf("%d",&mahasiswa.no_hp);
cout<<"Masukan Nama Orang Tua = "; cin>>mahasiswa.ortu;
printf("Masukan Pekerjaan Orang Tua = "); scanf("%s",&mahasiswa.pekerjaan);
cout<<"Masukan Pendidikan Orang Tua = "; cin>>mahasiswa.lulusan;

cout<<"\n\n Data Yang di Masukan Adalah : \n\n";
printf("Nama = %s",mahasiswa.nama);
printf("Alamat = %s",mahasiswa.alamat);
printf("Nomor HP = %d",mahasiswa.no_hp);
cout<<"Nama Orang Tua = "<<mahasiswa.ortu<<endl;
cout<<"Pekerjaan Orang Tua = "<<mahasiswa.pekerjaan<<endl;
cout<<"Pendidikan Terakhir = "<<mahasiswa.lulusan<<endl;
getch();
return 0;
}


Hasil Running:



Pembahasan:
          Program diatas penginputan  data mahasiswa. Untuk program diatas yang dibutuhkan yaitu;
nama, alamat, nomor hp, nama ortu, pekerjaan ortu, dan pendidikan ortu, jadi terdapat 6 variable yang akan di gunakan, yang akan diinputkan itu disesuaikan dengan keinginan kita sendiri,

Sabtu, 13 Mei 2017

PRAKTIKUM_MODUL_5

MODUL V STRUKTUR


Praktikum
Studi Kasus 1

Buatlah program pengisian data pribadi seseorang beserta dengan identitas yang melekat pada pribadi tersebut dengan menggunakan fungsi struktur dalam pemrograman bahasa c/c++

 #include<stdio.h>
 #include<conio.h>
 #include<iostream.h>
 main ()
 {
 struct
 {
 char nama[50];
 char alamat[100];
 char No_Hp[100];
 char ortu[50];
 char pekerjaan[50];
 char lulusan[50];
 }mahasiswa;
 clrscr();
 cout<<" Program Input Data Diri "<<endl;
 printf(" Masukan Nama \t\t\t : ");
 scanf("%s",&mahasiswa.nama);
 cout<<" Masukan Alamat \t\t : "; cin>>mahasiswa.alamat;
 printf(" Masukan Nomor HP \t\t : +628");
 cin>>mahasiswa.No_Hp;
 cout<<" Masukan Nama Ibu Kandung \t : ";
 cin>>mahasiswa.ortu;
 printf(" Masukan Pekerjaan Bapak \t : ");
 scanf("%s",&mahasiswa.pekerjaan);
 cout<<" Masukan Pendidikan Orang Tua \t : ";
 cin>>mahasiswa.lulusan;
 clrscr();
 cout<<"\n \n Data Yang Di Masukan Adalah \n\n";
 printf(" Nama \t\t\t\t : %s\n",mahasiswa.nama);
 printf(" Alamat \t\t\t : %s\n",mahasiswa.alamat);
 cout<<" Nomor HP \t\t\t : +628"<<mahasiswa.No_Hp<<endl;
 cout<<" Nama Ibu Kandung \t\t : "<<mahasiswa.ortu<<endl;
 cout<<" Pekerjaan Bapak \t\t : "<<mahasiswa.pekerjaan<<endl;
 cout<<" Pendidikan Terakhir \t\t : "<<mahasiswa.lulusan<<endl;
 getch();
 return 0;
 }

Hasil Running :



Pembahasan:
            Dari program diatas menentukan pengisian data pribadi seseorang beserta identitas yang melekat pada kepribadian orang tersebut. Dengan menggunakan Struct. Pertama untuk menginputkan data mahasiswa tersebut maka variabelnya dikelompokan .



Praktikum 2
Buatlah Program menggunakan struktur tentang biaya kuliah mahasiswa dengan ketentuan sebagai berikut
1. D3
Spp tetap = Rp. 500
Spp Variable = Rp. 250/sls
2. S1
Spp Tetap = Rp. 750
SPP variable = Rp. 500/sks */

#include<conio.h>
#include<iostream.h>
struct mhs
{
char nama[20], nim[20], prodi[3];
int sks, program;
}bayar;
main()
{
int var, tetap;
cout<<" Nama Mahasiswa \t\t : "; cin>>bayar.nama;
cout<<" Nim Mahasiswa \t\t\t : "; cin>>bayar.nim;
cout<<" Prodi [ TI SI MI] \t\t : "; cin>>bayar.prodi;
input:
cout<<" Program [1 = D3 / 2 = S1] \t : ";
cin>>bayar.program;
if(bayar.program < 1 || bayar.program > 2)
{
cout<<" Program Tidak Sesuai ";
goto input;
}
cout<<" Jumlah SKS \t\t\t : "; cin>>bayar.sks;
if(bayar.program == 1)
{
tetap = 500;
var = bayar.sks*250;
}
else if(bayar.program == 2)
{
tetap = 750;
var = bayar.sks*500;
}
cout<<" "<<endl;
cout<<" -----------------------------------------------------"<<endl;
cout<<" \t\t\t OUT PUT "<<endl;
cout<<" -----------------------------------------------------"<<endl;
cout<<" Nama \t\t\t : "<<bayar.nama<<endl;
cout<<" Nim \t\t\t : "<<bayar.nim<<endl;
cout<<" Prodi \t\t\t : "<<bayar.prodi<<endl;
cout<<" Program \t\t : "<<bayar.program<<endl;
cout<<" Jumlah SKS \t\t : "<<bayar.sks<<endl;
cout<<" Biaya SPP Tetap \t : "<<tetap<<endl;
cout<<" Biaya SPP Variable \t : "<<var<<endl;
cout<<" -----------------------------------------------------"<<endl;
getch();
return 0;
}

Hasil Running:





Pembahasan:
            Program diatas menentukan pembayaran sks pada setiap prodi,pertama kita lakukan variable yang akan diinputkan yang ada didalam struct.


Studi Kasus 3

           Sebuah titik pada bidang datar mempunyai kordinat x dan y. kedua kordinat dijadikan field dari structure misalnya kedua titik adalah a yang berkordinat di x1, y1 dan b yang berkordinat di x2, y2, dengan demikian kita dapat menghitung jarak antara kedua titik tersebut dengan melalu kordinat yang tertera pada setiap titik adapun rumus mencari jarak titik kordinat ((x1+x2)2 +(y1-y2)2)


#include<stdio.h>
#include<conio.h>
#include<math.h>

struct t_titik
{
int x, y;
};
int main()
{
struct t_titik a, b;
double jarak;
printf(" Titik A\n Kordinat X : ");
scanf("%d",&a.x);
printf(" Kordinat Y : ");
scanf("%d",&a.y);
puts("\n");
printf(" Titik B\n Kordinat X : ");
scanf("%d",&b.x);
printf(" Kordinat Y : ");
scanf("%d",&b.y);
puts("\n");
jarak = sqrt(pow((a.x - b.x),2)+ pow((a.y - b.y),2));
getch();
printf(" Jarak Titik A dan Titik B = %lf", jarak);
getch();
return 0;
}

Hasil Running :


Pembahasan:
            Dari program diatas kita disuruh untuk mencari Titik A dan titik B , titik A dan B masuk ke titik X dan Y menggunakan struct.untuk scipt titik A di koordinat X seperti dibawah ini :
scanf("%d",&a.x);
printf(" Kordinat Y : ");
scanf("%d",&a.y);
dan untuk script Titik B di koordinat Y yaitu :
scanf("%d",&b.x);
printf(" Kordinat Y : ");
scanf("%d",&b.y);
dan untuk rumus mengetahui kedua titik tersebut digunakan rumus : jarak = sqrt(pow((a.x - b.x),2)+ pow((a.y - b.y),2));


Latihan 1

            Pada suatu daerah memiliki perubahan suhu udara yang fluktuatif pengukuran dilakukan setap satu jam dan akan mendapatkan suhu udara rata - rata di hari tersebut program di bawah ini dapat menyelesaikan kasus diatas dengan menggunakan struct namun anda harus melengkapi program tersebut agar dapat menyelesaikan kasus ini

#include<stdio.h>
#include<conio.h>
struct
{
float suhu, jsuhu;
}temp;
void main()
{
int i, n;
printf(" Masukan Jumlah Jam Pengukuran  : ");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf(" Masukan Suhu Jam Ke-%d : ",i);
scanf("%f",&temp.suhu);
getch();
temp.jsuhu = ( temp.jsuhu + temp.suhu );
}
puts("\n");
printf(" Rata - rata Suhu Hari Ini : %f ",temp.jsuhu / n);
getch();
}

Hasil Running:



Pembahasan:
            Dari program diatas yaitu menentukan rata-rata suhu dengan cara mengukur suhu perjamnya, pertama masukan terlebih dahulu pengukuran perjamnya dalam 1 hari. Rumusnya seperti ini:
temp.jsuhu = ( temp.jsuhu + temp.suhu );
untuk memperoleh suhu tersebut,maka jsuhu akan di tambah oleh jam ke-2,ke-3,ke-4,dst.
Kemudian untuk hasilnya digunakan rumus : printf(" Rata - rata Suhu Hari Ini : %f ",temp.jsuhu / n);



Latihan 2
            Buatlah program untuk menghitung stok barang yang terjual dengan menggunakan struct dengan menginput nama barang dan jumlah barang yang di jual menghasilkan output nama barang dan jumlah barang dalam Pcs. Dibawah ini program menggunakan structure untuk menyelesaikan kasus tersebut namun bila ada yang ingin mengubah listing programnya di perbolehkan dengan syarat hasil keluarannya harus sesuia dengan yang di minta.

#include<iostream.h>
#include<conio.h>

struct stock
 {
 char nama[50];
 int jml;
 }data;
 int main()
 {
 cout<<" Program Data Stock Penjualan "<<endl<<endl;
 getch();
 cout<<" Masukan Nama Barang \t : ";
 cin>>data.nama;
 cout<<" Masukan Jumlah Barang \t : ";
 cin>>data.jml;
 cout<<" ---------------------------------------------------- "<<endl;
 cout<<" Hasil Input "<<data.nama<<" = "<<data.jml<<" Pcs "<<endl;
 getch();
 return 0;
 }

Hasil Running:





Pembahasan:
            Program diatas menentukan data stock penjualan.Pertama masukan inputan struck nama barang ,kemudian inputkan juga jumlah barang dengan menggunakan struct. Kemudian untuk hasil akhirnya digunakan : cout<<" Hasil Input "<<data.nama<<" = "<<data.jml<<" Pcs "<<endl;