Assalamualaikum Wr. Wb.

Kembali lagi dengan saya Hudzaifah Rizqi Kamil dari PENS 2019 Jurusan D4 Teknik Elektronika B. pada post saya kali ini, kita akan membahas lebih lanjut seputar materi Algoritma dan Pemrograman Bahasa C yakni seputar Variabel Struktur.

  • Pada dasarnya, apabila sebuah variabel bertipe data struktur maka dapat terdiri dari berbagai macam variabel yang ada seperti integer, float, char dan sebagainya.
  • Cara penulisan pada program nya :

Struct _nama variabel struktur {

                field-field struktur

                (isi struktur)       };

*field struktur terdiri oleh variabel – variabel dalam struktur dengan masing – masing tipe variabelnya sendiri.

  • Cara mengakses Elemen struktur :

Variabel_struktur.nama_field

 

Untuk menambah pemahaman mari simak beberapa penugasan berikut.

TUGAS 1. Menggunakan program struktur untuk menentukan tanggal berikutnya dengan masukkan tanggal melalui keyboard.

Program :

#include <stdio.h>

 

struct tanggal {

int tgl;

int bln;

int thn;

};

 

void cetak_tgl(struct tanggal 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.tgl,bulan[besok.bln],besok.thn);

}

 

void main(){

struct tanggal skr;

printf(“Masukkan tgl/bln/thn : “); scanf(“%d/%d/%d”, &skr.tgl, &skr.bln, &skr.thn);

 

switch(skr.bln){

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

if(skr.tgl < 31)                        /*Untuk Bulan dengan batas 31*/

skr.tgl=skr.tgl + 1;

else if(skr.tgl == 31){

skr.tgl = 1;

skr.bln = skr.bln + 1;}

break;

 

case 2:

if(skr.thn%4==0){                       /*Jika Tahun Kabisat*/

if(skr.tgl < 29)

skr.tgl=skr.tgl + 1;

else if(skr.tgl == 29){

skr.tgl=1;

skr.bln = skr.bln + 1;}

}

 

else if(skr.thn%4!=0){                  /*Jika bukan Tahun Kabisat*/

if(skr.tgl < 28)

skr.tgl=skr.tgl + 1;

else if(skr.tgl == 28){

skr.tgl = 1;

skr.bln = skr.bln + 1;}

}

break;

 

case 4:

case 6:

case 9:

case 11:

if(skr.tgl < 30)                        /*Untuk Bulan dengan batas 30*/

skr.tgl=skr.tgl + 1;

else if(skr.tgl == 30){

skr.tgl = 1;

skr.bln = skr.bln + 1;}

break;

 

case 12:

if(skr.tgl < 31)

skr.tgl=skr.tgl + 1;

else if(skr.tgl == 31){                 /*Jika pergantian tahun*/

skr.tgl = 1;

skr.bln = 1;

skr.thn = skr.thn + 1;}

break;

}

 

cetak_tgl(skr);

getch();

}

Keterangan :

Tanggal dengan batas 31 hari : Januari, Maret, Mei, Juli, Agustus, Oktober, Desember

Tanggal dengan batas 30 hari : April, Juni, September, November

Tanggal dengan batas 29 hari : Februari (di Tahun Kabisat)

Tanggal dengan batas 28 hari : Februari (di Tahun Bukan Kabisat)

Pergantian Tahun setelah 31 Desember

  • Facebook
  • Twitter
  • Google+
  • Pinterest
  • Facebook
  • Twitter
  • Google+
  • Pinterest
  • Facebook
  • Twitter
  • Google+
  • Pinterest
  • Facebook
  • Twitter
  • Google+
  • Pinterest

TUGAS 2. Menentukan selisih antara dua waktu yang berbeda

Program :

#include <stdio.h>

 

struct waktu{

int jam1;

int menit1;

int detik1;

int jam2;

int menit2;

int detik2;

int tot1;

int tot2;

int total;

};

 

void main(){

struct waktu wkt;

 

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

printf(“Waktu 1 = “);

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

printf(“Waktu 2 = “);

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

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

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

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

 

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

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

 

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 %d detik”, wkt.total/3600, (wkt.total%3600)/60, (wkt.total%3600)%60);

 

getch();

}

 

Keterangan :

1 jam = 60 menit

1 menit = 60 detik

1 jam = 3600 detik

  • Facebook
  • Twitter
  • Google+
  • Pinterest

 

TUGAS 3. Menentukan selisih antara dua masukkan tanggal

Program :

#include <stdio.h>

 

struct tanggal{

int day1;

int day2;

int daytot;

 

};

 

void main(){

struct tanggal date;

 

printf(“Mencari Selisih Tanggal\n”);

printf(“Masukkan Tanggal 1 : “); scanf(“%d”,&date.day1);

printf(“Masukkan Tanggal 2 : “); scanf(“%d”,&date.day2);

 

if(date.day1 < 1 || date.day1 > 31)

printf(“Tanggal tidak ada dalam kalender”);

else if (date.day2 < 1 || date.day2 > 31)

printf(“Tanggal tidak ada dalam kalender”);

else

if(date.day1 – date.day2  < 0)

date.daytot = date.day2 – date.day1;

else

date.daytot = date.day1 – date.day2;

 

printf(“Selisih tanggal adalah %d hari”, date.daytot);

}

  • Facebook
  • Twitter
  • Google+
  • Pinterest

TUGAS 4. Menjelaskan kegunaan fungsi sama_str()

Program :

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

}

 

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

}

 

fungsi sama_str() pada program berfungsi untuk membandingkan kedua bentuk string yang mana apabila sama maka program akan terus membandingkan kedua string tersebut dengan looping while. Dan apabila posisi null (‘/0’) pada dua string terletak dalam data ke-n yang sama maka jawabannya adalah 1 (SAMA) dan apabila tidak sama maka sudah jelas kedua string tersebut berbeda.

  • Facebook
  • Twitter
  • Google+
  • Pinterest

Sekian yang dapat saya sampaikan pada posting kali ini, semoga dapat menjadi manfaat bagi kita semua. Saya juga mengucapkan banyak terima kasih kepada seluruh dosen, orang tua, dan teman – teman yang telah membimbing dan mendukung saya hingga sekarang.

Dan sampai jumpa kembali tahun depan di semester selanjutnya.

Terima kasih

Wassalamualaikum Wr. Wb.