Percobaan 10

VARIABEL STRUKTUR

 

Assalamualaikum Wr.Wb

Hai sobat programmer, saya Ahmada Haiz dari jurusan D4 Teknik Elektronika B (1110191054) PENS 2019 akan membahas kegunaan dan cara kerja dari variabel struktur. Adapun tujuan mempelajari penggunaan variable struktur dimana dipadukan dengan variable yang pernah dicoba sebelumnya, yaitu meliputi pointer dan array serta dipadukan dengan fungsi. Nah untuk kalian yang masih bingung apa itu array, pointer ataupun fungsi, maka silahakan kunjungi artikel saya sebelumnya supaya pada pembahsan kali ini sobat dapat memahami denganbaik.

Suatu variable bertipe data struktur adalah dapat terdiri dari bermacam tipe variable yang ada. Jadi suatu struktur dapat berisi integer, float, char ,dan sebagainya.

Nah agar lebih jelasnya, langsung saja ketahap percobaan :

TUGAS 10.5.1

Membuat program dengan menggunakan struktur tanggal yang digunakan untuk menentukan tanggal berikutnya.

  • Facebook
  • Twitter
  • Google+
  • Pinterest

Format :

#include<stdio.h>

 

struct waktu{

int tanggal;

int bulan;

int tahun;

};

 

void cetak_tgl(struct waktu besok)

{

static char *bulan[] = {

“Kode bulan salah”,

“Januari”,

“Februari”,

“Maret”,

“April”,

“Mei”,

“Juni”,

“Juli”,

“Agustus”,

“September”,

“Oktober”,

“November”,

“Desember”

};

printf(“\nTanggal besok adalah : “);

printf(“%d %s %d\n”, besok.tanggal,bulan[besok.bulan],besok.tahun);

}

 

 

void main()

{

struct waktu date;

 

printf(“\nMasukkan tanggal hari ini : “);

scanf(“%d-%d-%d”,&date.tanggal,&date.bulan,&date.tahun);

if(date.bulan==1||date.bulan==3||date.bulan==5||date.bulan==7||date.bulan==9||date.bulan==10||date.bulan==12)

{

date.tanggal=date.tanggal+1;

if(date.tanggal>31){

date.tanggal=1;

date.bulan=date.bulan+1;

if(date.bulan>12){

date.bulan=1;

date.tahun=date.tahun+1;

}

}

}

else if(date.bulan==2)

{

date.tanggal=date.tanggal+1;

if(date.tahun%4==0){

if(date.tanggal>29){

date.tanggal=1;

date.bulan=date.bulan+1;

}}else{

if(date.tanggal>28){

date.tanggal=1;

date.bulan=date.bulan+1;

}}

}

else

{

date.tanggal=date.tanggal+1;

if(date.tanggal>30){

date.tanggal=1;

date.bulan=date.bulan+1;

}

}

cetak_tgl(date);

}

 

TUGAS 10.5.2

Program penetu selisih antara dua waktu yang berbeda.

  • Facebook
  • Twitter
  • Google+
  • Pinterest

Format :

#include <stdio.h>

 

struct waktu{

int jam1;

int menit1;

int jam2;

int menit2;

int tot1;

int tot2;

int total;

};

 

void main(){

struct waktu wkt;

 

printf(“Masukkan sebuah waktu dengan format jam:menit\n”);

printf(“Waktu 1 = “);

scanf(“%d:%d”, &wkt.jam1, &wkt.menit1);

printf(“Waktu 2 = “);

scanf(“%d:%d”, &wkt.jam2, &wkt.menit2);

printf(“\n\nWaktu yang Anda piih :”);

printf(“\nWaktu 1 adalah %d:%d”, wkt.jam1,wkt.menit1);

printf(“\nWaktu 2 adalah %d:%d”, wkt.jam2,wkt.menit2);

 

wkt.tot1 = wkt.jam1*60 + wkt.menit1;

wkt.tot2 = wkt.jam2*60 + wkt.menit2;

 

if (wkt.tot1 – wkt.tot2 <0) wkt.total = wkt.tot2 – wkt.tot1;

else wkt.total = wkt.tot1 – wkt.tot2;

 

printf(“\n\n Selisih antara waktu 1 dan 2 adalah %d jam %d menit”, wkt.total/60, wkt.total%60);

 

getch();

}

TUGAS 10.5.3

Program penentu selisih antara dua tanggal yang berbeda.

  • Facebook
  • Twitter
  • Google+
  • Pinterest

Format :

#include <stdio.h>

 

struct tanggal {

int a;

int b;

};

struct bulan {

int a;

int b;

};

struct tahun {

int a;

int b;

};

 

void main(){

struct tanggal tgl;

struct bulan bln;

struct tahun thn;

 

char nbln1[10];

char nbln2[10];

 

int total;

 

int m[13];

int i;

int n = 2;

 

m[2] = 28;

 

for(i = 1; i <= 12; i += n){

if(i == 7) n = 1;

else n = 2;

m[i] = 31;

}

 

for(i = 4; i <= 12; i += n){

if(i == 6) n = 3;

else n = 2;

m[i] = 30;

}

 

printf(“Jumlah hari pada bulan\n”);

 

for(i = 1; i <= 12; i++){

printf(“%d. %d hari\n”,i , m[i]);

}

 

 

printf(“\n\nMasukkan sebuah data tanggal/bulan/tahun\t: “);

scanf(“%d/%d/%d”, &tgl.a, &bln.a, &thn.a);

 

printf(“\nMasukkan data pembanding tanggal/bulan/tahun\t: “);

scanf(“%d/%d/%d”, &tgl.b, &bln.b, &thn.b);

 

 

if(bln.a – bln.b < 0){

total = tgl.b – tgl.a;

 

for(i = bln.a; i < bln.b; i++){

total += m[i];

}

 

if(thn.a – thn.b < 0){

for(i = thn.a; i < thn.b; i++){

total += 364;

}

}

else{

for(i = thn.b; i < thn.a; i++){

total += 364;

}

}

}

 

else{

total = tgl.a – tgl.b;

 

for(i = bln.b; i < bln.a; i++){

total += m[i];

}

 

if(thn.a – thn.b < 0){

for(i = thn.a; i < thn.b; i++){

total += 364;

}

}

else{

for(i = thn.b; i < thn.a; i++){

total += 364;

}

}

}

 

switch(bln.a){

case(1) : strcpy(nbln1, “January”); break;

case(2) : strcpy(nbln1, “February”); break;

case(3) : strcpy(nbln1, “Maret”); break;

case(4) : strcpy(nbln1, “April”); break;

case(5) : strcpy(nbln1, “May”); break;

case(6) : strcpy(nbln1, “June”); break;

case(7) : strcpy(nbln1, “July”); break;

case(8) : strcpy(nbln1, “August”); break;

case(9) : strcpy(nbln1, “September”); break;

case(10) : strcpy(nbln1, “October”); break;

case(11) : strcpy(nbln1, “November”); break;

case(12) : strcpy(nbln1, “Desember”); break;

}

 

switch(bln.b){

case(1) : strcpy(nbln2, “January”); break;

case(2) : strcpy(nbln2, “February”); break;

case(3) : strcpy(nbln2, “Maret”); break;

case(4) : strcpy(nbln2, “April”); break;

case(5) : strcpy(nbln2, “May”); break;

case(6) : strcpy(nbln2, “June”); break;

case(7) : strcpy(nbln2, “July”); break;

case(8) : strcpy(nbln2, “August”); break;

case(9) : strcpy(nbln2, “September”); break;

case(10) : strcpy(nbln2, “October”); break;

case(11) : strcpy(nbln2, “November”); break;

case(12) : strcpy(nbln2, “Desember”); break;

}

 

printf(“\nHasil data\n”);

printf(“Data pertama\t: %d %s %d\n”, tgl.a, nbln1, thn.a);

printf(“Data pembanding\t: %d %s %d\n”, tgl.b, nbln2, thn.b);

 

printf(“\nSelisih : %d hari\n\n”, total);

 

 

}

 

 

TUGAS 10.5.4

Menganalisa kegunaan dan cara kerja dari fungsi sama_str() pada program dibawah ini

 

  • Facebook
  • Twitter
  • Google+
  • Pinterest

Adapun kegunaan yaitu membandingkan kedua kata/kalimat apakah sama atau tidak. Jika kedua kalimat yang diinputkan adalah sama maka akan muncul nilai 1, sedangkan jika kedua kalimat berbeda maka akan muncul nilai 0. Berikut contoh programnya

Format :

include <stdio.h>

 

int sama_str(char s1[], char s2[])

{

int i=0, jawab;

 

while (s1[i]==s2[i] && s1[i] != ‘\0’ && s2[i] != ‘\0′)

i++;

if (s1[i]==’\0′ && s2[i]==’\0’)

jawab=1;    /*string sama*/

else

jawab=0;

return (jawab);

}

 

main()

{

char a[15];

char b[15];

char c;

 

printf(“MEMBANDINGKAN KEDUA KATA/KALIMAT”);

printf(“\n\nKETERANGAN :”);

printf(“\n0 => BERBEDA”);

printf(“\n1 => SAMA”);

 

do {

printf(“\n\nkalimat I  = “); scanf(“%s”, &a);

printf(“kalimat II = “); scanf(“%s”, &b);

 

printf(“\n\nHASIL KEDUANYA = %d”, sama_str(a,b));

 

printf(“\n\nTekan Y jika ingin lagi !\n”);

c= getch();

 

}

while (c == ‘y’ || c == ‘Y’);

}

HASIL EKSEKUSI

 

  • Facebook
  • Twitter
  • Google+
  • Pinterest

 

Bagaimana teman-teman ?sangat menarik bukan ? ya pastinya, asalkan kita terus mau untuk belajar lagi, lagi dan lagi sampai bingung mau belajar apalagi  😀

Sekian pembahasan mengenai variable struktur semoga bermanfaat.

Wassalamualaikum Wr.Wb