Selasa, 13 November 2012

Algoritma pemograman Praktikum10

Praktikum 10 Tipe Data Bentukan
NIM/Nama :4311211010 / NARUPI

Tujuan :
1. Membuat program yang mengandung tipe data bentukan
Setoran :
1. http://learning.polibatam.ac.id
2. File Praktikum10_NIM.zip atau Praktikum10_NIM.rar, yang berisi file program Anda dan laporan

Bagian 1 :
Nama proyek : Praktikum101_NIM
Nama file :KonversiBulan.c
Soal

Buatlah tipe terstruktur bernama tipe Date, yang terdiri dari dd, mm, yy bertipe integer. Gunakan tipe terstruktur tersebut dalam program.
Program membaca masukan sebuah tanggal, kemudian mengkonversi mm ke dalam string. Contoh :
Tanggal : 10
Bulan : 11
Tahun : 2012
Hasil konversi : 10 November 2012



Buatlah algoritmanya
Program konversi bulan
{merubah bulan dari integer menjadi string}

//deklarasi
Type month: record(tahun : integer, bulan:integer, tanggal:integer)
Date : month
Bulan : string

//algoritma
Read(date.tahun, date.bulan,date. tanggal)
Switch(date.bulan)
Case 1 : bulan:"January"
Case 2 : bulan:"February"
...
...
Case 12: bulan;"December"
Default : write(bulan tidak di kenal)
Write(date.dd, bulan, date.yy)

Terjemahkan algoritma di atas ke dalam bahasa C
#include <stdio.h>
#include <conio.h>
#include <string.h>

int main()
{
//deklarasi
typedef struct{int dd; int mm; int yy;} tanggal;
tanggal date;
char bulan[10];

//algoritma
printf("Masukkan Tanggal :"); scanf("%d", &date.dd);
printf("Masukkan Bulan :"); scanf("%d", &date.mm);
printf("Masukkan Tahun :"); scanf("%d", &date.yy);
switch(date.mm)
{
case 1 : strcpy(bulan,"January");break;
case 2 : strcpy(bulan,"February");break;
case 3 : strcpy(bulan,"Maret");break;
case 4 : strcpy(bulan,"April");break;
case 5 : strcpy(bulan,"Mei");break;
case 6 : strcpy(bulan,"Juni");break;
case 7 : strcpy(bulan,"Juli");break;
case 8 : strcpy(bulan,"Agustus");break;
case 9 : strcpy(bulan,"September");break;
case 10 : strcpy(bulan,"Oktober");break;
case 11 : strcpy(bulan,"November");break;
case 12 : strcpy(bulan,"Desember");break;
default : printf("bulan yang anda masukkan salah");
}

printf("\nHasil Konversi : %d %s %d", date.dd, bulan, date.yy);
getch();
return 0;
}

Tulis hasil running program KonversiBulan.c


Bagian 2 :
Nama proyek : Praktikum102_NIM
Nama file : TambahMenit.c
Soal
Didefinisikan tipe jam dan variable J dan P sebagai berikut :
Type jam : record<hh: integer, {0..23}
mm: integer, {0..59}
ss:integer {0..59}>
J:jam
P:integer

Buatlah program yang :
1. Mengisi(assignment) variable J dengan jam 16:10:34
2. Membaca p menit dari piranti masukan
3. Mengubah nilai J setelah ditambah p menit
4. Menampilkan jam J yang baru

Buatlah algoritmanya
Program menghitung jam
{menghitung jam setelah ditambah sejumlah nilai menit}

//deklarasi
Type date : record(hh, mm, ss :integer)
jamawal, jamakhir : date
Minute : integer

//algoritma
Read (jamawal.hh, jamawal.mm, jamawal.ss, minute)
Jamakhir: jamawal.mm+minute
Write (jamawal.hh, jamakhir, jamawal.ss)

Terjemahkan algoritma di atas ke dalam bahasa C
#include <stdio.h>
#include <conio.h>
int main()
{
typedef struct {int hh; int mm; int ss;} date;
date j1, j2;

int p;

printf("masukkan jam :");scanf("%d:%d:%d", &j1.hh, &j1.mm, &j1.ss);fflush(stdin);
printf("Masukkan Menit :"); scanf("%d", &p);fflush(stdin);
j2.ss = j1.ss;
j2.mm = (j1.mm + p)%60;
j2.hh = (j1.hh + ((j1.mm + p - j2.mm)/60))%24;

printf("\nJam yang baru adalah %d:%d:%d", j2.hh, j2.mm, j2.ss);
getch ();
return 0;
}

Tulis hasil running program TambahMenit.c



Bagian 3 :
Nama proyek : Praktikum103_NIM
Nama file :.c
Soal
Dibaca dua buah tanggal(dd:mm:yy). Buatlah program untuk menghitung berapa hari jarak kedua tanggal tersebut. Diasumsikan : 1 tahun=365 hari, 1 bulan=30 hari. Keluaran (tahun, bulan, hari) ditampilkan ke layar

Buatlah algoritmanya
//selisih hari
{program menghitung selisih dari dua hari hasil imputan}

//deklarasi
Type date: record(hari, bulan, tahun : integer)
d1 ,d2 : date
selisih, tanggalawal, tanggalakhir : real

//algortima
Read(d1.hari, d1.bulan, d1. Tahun, d2.hari, d2.bulan, d2.tahun)
Tanggalawal : (d1.tahun * 365) + (d1.bulan * 30) + (d1.hari)
Tanggalakhir : (d2.tahun * 365) + (d2.bulan * 30) + (d2.hari)
Selisih : tanggalakhir - tanggalAwal
Write (selisih)

Terjemahkan algoritma di atas ke dalam bahasa C
#include <stdio.h>
#include <conio.h>

int main()
{
typedef struct {int dd; int mm; int yy;} date;
date d1, d2;
float h1, h2, h3;

printf("masukkan tanggal awal ");scanf("%d:%d:%d", &d1.dd, &d1.mm, &d1.yy);fflush(stdin);
printf("masukkan tanggal akhir ");scanf("%d:%d:%d", &d2.dd, &d2.mm, &d2.yy);fflush(stdin);

h1 = (d1.yy * 365 ) + (d1.mm * 30) + d1.dd;
h2 = (d2.yy * 365 ) + (d2.mm * 30) + d2.dd;
h3 = h2 - h1;

printf("selisih hari adalah :%.0f", h3);
getch ();
return 0;
}

Tulis hasil running JarakDuaTanggal.c



Bagian 4 : Kesimpulan
1. Tulis kesimpulan yang Anda dapatkan dari praktikum ini !
2. Apakah Anda mengalami kesulitan melakukan praktikum ini?

Kesimpulan
Memahami apa itu fungsi bentukan dan bagaimana cara mengimplementasikan dalam suatu algortima pemograman

Pertamanya mengalami kesulitan dalam hal memahami metode ini. Dengan banyaknya membaca dan mebuat latihan sekarang sudah mulai memahami

1 komentar: