Laporan Pratikum 8 algoritma pemograman
LAPORAN PRAKTEK 8 ( PERTEMUAN KE-11)
TUGAS 8
ALGORITMA PEMOGRAMAN
Disusun Oleh : Syafri Wardian
18214046
Mata Kuliah Praktek :
ARRAY (String)
Dosen Pembimbing :
Sri Nofri Wihandri ,S.Pd,M.Pd.T
Program Studi :
Teknik Elektronika
Akademi Komunitas Negeri Padang
Pariaman
PDDF Universitas Negeri Padang
Tahun 2018
Array(String)
STRING DAN PENGOLAHANNYA
Dalam C, string merupakan suatu array of char (array dari karakter) suatu
dimensi.
Ex:
char nama[30];
artinya string nama yang dapat memuat maksimal 30 karakter.
Dalam memori komputer, array of char
diakhiri dengan karakter NULL (‘\0’), sehingga karakter tersebut menjadi tanda
/ batas dari string.
Misal:
char kota[ ] = { ‘p’, ‘a’, ‘d’, ‘a’, ‘n’, ‘g’};
yang berarti:
kota
Apabila ukuran suatu array karakter ditetapkan saat deklarasi sring, bukan
berarti banyaknya karakter harus selalu sesuai ukuran, kita bisa saja mengisi
data array dengan jumlah karakter kurang dari ukuran tersebut dan string secara
otomatis desesuaikan dengan mengakhirinya dengan karakter NULL.
Beberapa fungsi dalam pustaka <string.h>:
· strcpy(kata1, kata2) //string copy
digunakan untuk mengakhiri isi string kata2 ke string kata1.
misal:
strcpy(nama, “Majid”)
artinya: kata “Majid” disalin ke string nama.
Dalam algoritma ditulis:
nama ”Majid”
yang berarti proses assigment.
· strcmp(kata1, kata2) //string compare
digunakan untuk membandingkan string kata1 dengan string kata2. Apabila
kedua string persis sama, maka fungsi ini akan memiliki return value 0 dan jika
berbeda, maka return value fungsi ini bukan 0.
Misal:
char passw[ ] = {‘a’, ‘n’, ‘u’};
char kata[ ] = {‘a’, ‘N’, ‘u’};
int hasil;
hasil = strcmp(passw, kata);
maka variabel hasil akan berisi nilai bukan 0.
· strcat(kata1, kata2)
digunakan untuk menggabungkan kata1+kata2 dan hasilnya disimpan di kata1.
Misalnya:
char kata1={‘M’, ’a’, ’j’, ‘i’,
‘d’};
char kata2={‘B’, ‘o’, ‘y’};
strcat(kata1, kata2);
maka, kata1 akan berisi:
{‘M’, ‘a’, ‘j’, ‘i’, ‘d’, ‘B’,
‘o’, ‘y’};
Dengan algoritma:
kata1 kata1 + kata 2
· gets(kata)
digunakan untuk membaca input string dari keyboard dan menyimpannya pada
variabel string kata.
Misal:
char nama[30];
gets (nama);
· penulisan array dari string(array char of char/array 2 dimensi):
char nama[30][50];
contoh:
double mid[50];
double uas[50];
double tugas[50];
double akhir[50];
char huruf[50];
char nama[30][50];
contoh kasus:
pengolahan nilai matakuliah tertentu untuk sekelompok mahasiswa
· pemakai program harus login
· dibuat dalam menu untuk melakukan operasi bacaData dan lihat info
Program C:
/*
Program
Pengolahan Nilai Mata Kuliah Algoritma
Programmer:
Ane
nama
File: nilaiAlg.c
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 5
#define PASSW "rahasia"
void judul();
void selesai();
void login();
void bacaData();
void info();
void hitungNilai(int i);
double hitungAkhir(double m, double u, double
t);
char konversi(double a);
void yudisium(int i, char h);
void menu();
char nama[30][N];
char yudis[20][N];
double mid[N];
double uas[N];
double tugas[N];
double akhir[N];
char huruf[N];
main()
{
judul();
login();
}
void judul()
{
printf("Program
Mengolah Nilai Algoritma\n");
printf("Programmer:
Antu\n");
printf("Nama
Pacar: Balau\n");
printf("Created
1-1-2001\n\n");
}
void selesai()
{
printf("\nProgram
selesai\n");
printf("Terima
kasih...\n");
printf("Sampai
jumpa...\n");
}
void login()
{
char
kode[20];
int
tanda;
printf("Ketikkan
password anda: ");
gets(kode);
fflush(stdin);
tanda
= strcmp(PASSW, kode);
if(!tanda)
{
menu();
}
else
{
printf("Passwordnyo
salah jang!\n");
selesai();
}
}
void menu()
{
int
pilih;
bacaData();
printf("MENU
PILIHAN\n");
printf("1.
TAMPILKAN INFORMASI\n");
printf("2.
CARI MAHASISWA TERTENTU\n");
printf("3.
Tampilkan Mahasiswa Terbaik\n");
printf("0.
Keluar\n");
printf("Ketikkan
nomor menu pilihan (1, 2, 3 atau 0): ");
scanf("%d",
&pilih);
switch(pilih)
{
case
1: info(); break;
case
2: printf("Under construction!\n"); selesai(); break;
case
3: printf("Under construction!\n"); selesai(); break;
case
0: selesai(); break;
default:
printf("Nomor pilihan tidak ada!\n"); selesai();
}
}
void bacaData()
{
int
i;
char
namanya[30];
printf("\nMengentri
Nilai\n");
for(i=0;i<N;i++)
{
printf("Nama
Mahasiswa : ");
gets(namanya);
strcpy(nama[i],
namanya);
printf("Nilai
MID : ", (i+1));
scanf("%lf",
&mid[i]); fflush(stdin);
printf("Nilai
UAS : ", (i+1));
scanf("%lf",
&uas[i]); fflush(stdin);
printf("Nilai
TUGAS : ", (i+1));
scanf("%lf",
&tugas[i]); fflush(stdin);
hitungNilai(i);
}
}
void hitungNilai(int i)
{
akhir[i]
= hitungAkhir(mid[i], uas[i], tugas[i]);
huruf[i]
= konversi(akhir[i]);
yudisium(i,
huruf[i]);
}
double hitungAkhir(double a, double b, double
c)
{
return
( a*0.3 + b*0.3 + c*0.4);
}
char konversi(double k)
{
if((k>=81.0)
&& (k<=100.0))
return
'A';
else
if((k>=66.0) && (k<81.0))
return
'B';
else
if((k>=55.0) && (k<66.0))
return
'C';
else
if((k>=45.0) && (k<55.0))
return
'D';
else
return 'E';
}
void yudisium(int i, char h)
{
if(h=='A')
strcpy(yudis[i],
"SANGAT MEMUASKAN");
else
if(h=='B')
strcpy(yudis[i],
"MEMUASKAN");
else if(h=='C')
strcpy(yudis[i],
"CUKUP MEMUASKAN");
else
if(h=='D')
strcpy(yudis[i],
"KURANG MEMUASKAN");
else
strcpy(yudis[i], "DENGAN EJEKAN");
}
void info()
{
int
i;
printf("\nMenampilkan
Nilai\n");
for(i=0;i<N;i++)
{
printf("%d.
NAMA : \n", (i+1), nama[i]);
printf(" MID
: %0.2lf\n", mid[i]);
printf(" UAS
: %0.2lf\n", uas[i]);
printf(" TUGAS
: %0.2lf\n", tugas[i]);
printf(" N AKHIR: %0.2lf\n", akhir[i]);
printf(" N HURUF: %c\n\n", huruf[i]);
}
}
char konversi(double k)
{
if((k>=81.0)
&& (k<=100.0))
return
'A';
else
if((k>=66.0) && (k<81.0))
return
'B';
else
if((k>=55.0) && (k<66.0))
return
'C';
else
if((k>=45.0) && (k<55.0))
return
'D';
else
return 'E';
}
Berikut
hasil running text dari source code program diatas ;
Komentar