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

Meta Data

Laporan pratikum 2 algoritma pemograman

Jobsheet 1 PBO SMT2

Laporan Pratikum 3 algoritma pemograman

Laporan Pratikum 4 algoritma pemograman

Laporan Pratikum 5 algoritma pemograman

Jobsheet 3 PBO SMT2

Laporan Pratikum 7 algoritma pemograman