Minggu, 09 Februari 2014

Coding Program Daftar Peminjam Buku



Nah, kali ini author akan share program tentang pendataan orang yang meminjam buku di perpustakaan, berikut programmnya, maaf kalau terlalu panjang :D :

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int j=0,k=0,axc=0,xc=0,g=0,f=1,ch,gargaran,h=0,z=0;
char ulang,hapus;
int main (void)
{
    int pilih;
    struct data_peminjam
    {
        char nomor[50];
        char tanggal[50];
        char nama[50];
        char buku[50];
        char waktu[50];
    };
    struct data_buku
    {
        char nomor[50];
        char judul[100];
        char peminjam[50];
        char kembali[50];
    };
    struct data_peminjam data_orang[50];
    struct data_buku data_book[50];
    char a='y';
    while(a=='y'||a=='Y')
    {
    a='x';
    axc:
    printf ("\n\n\t===========<MENU UTAMA>===========\n");
    printf ("\t||                ||\n");
    printf ("\t|| 1. Masukkan Data Peminjam     ||\n");
    printf ("\t|| 2. Masukkan Data Buku    ||\n");
    printf ("\t|| 3. Cetak Data Peminjam    ||\n");
    printf ("\t|| 4. Cetak Data Buku        ||\n");
    printf ("\t|| 5. Hapus Semua Data        ||\n");
    printf ("\t||                ||\n");
    printf ("\t=== Input Karakter Tanpa Spasi ===\n");
    printf ("\t==== Created By : Duan & Tewe ====\n\n");
    printf ("\tPilihan Anda :\t");scanf("%d",&pilih);
    int data;
    menu:
    switch (pilih)
    {
    case 1:
        axc=1;
        do
        {
        printf ("Berapa banyak data:\t");scanf("%d",&data);
        for (int i=1;i<=data;i++)
        {
            j=j+1;
            printf("======<       >======\nMasukkan Data Peminjam:\n");
            printf("Nomor \t:\t\t");
            scanf("%s",&data_orang[j].nomor);
            printf("Tanggal :\t\t");
            scanf("%s",&data_orang[j].tanggal);
            printf("Nama \t:\t\t");
            scanf("%s",&data_orang[j].nama);
            printf("Buku\t:\t\t");
            scanf("%s",&data_orang[j].buku);
            printf("Waktu\t:\t\t");
            scanf("%s",&data_orang[j].waktu);
            printf("======<       >======\n");
        }
        printf ("Apakah mau diulang? (Y/N)");scanf("%s",&ulang);
        if(ulang=='n'||ulang=='N'){a='y';}
        }while (ulang=='y'||ulang=='Y');
        break;
    case 2:
        xc=1;
        do
        {
        printf ("Berapa banyak data:\t");scanf("%d",&data);
        for (int i=1;i<=data;i++)
        {
            k=k+1;
            printf("======<       >======\nMasukkan Data Buku:\n");
            printf("Nomor \t:\t\t");
            scanf("%s",&data_book[k].nomor);
            printf("Judul \t:\t\t");
            scanf("%s",&data_book[k].judul);
            printf("Peminjam:\t\t");
            scanf("%s",&data_book[k].peminjam);
            printf("Kembali\t:\t\t");
            scanf("%s",&data_book[k].kembali);
            printf("======<       >======\n");
        }
        printf ("Apakah mau diulang? (Y/N)");scanf("%s",&ulang);
        if(ulang=='n'||ulang=='N'){a='y';}
        }while (ulang=='y'||ulang=='Y');
        break;
    case 3:
        if(axc==0||j==0)
        {
            printf("\n======< Data Peminjam Belum Dimasukkan >=======\nMasukkan Data Peminjam?(y/n)");
            scanf ("%s",&a);
            if(a=='y'||a=='Y'){pilih=1;goto menu;}
        }
        for (int i=1;i<=j;i++)
        {
            printf("======<    %d    >======\nNomor\t:\t\t%s\n",i,data_orang[i].nomor);
            printf("Tanggal\t:\t\t%s\n",data_orang[i].tanggal);
            printf("Nama\t:\t\t%s\n",data_orang[i].nama);
            printf("Buku\t:\t\t%s\n",data_orang[i].buku);
            printf("Waktu\t:\t\t%s\n======<         >======\n",data_orang[i].waktu,i);
        }
        printf ("Kembali ke menu utama ?(y/n)");scanf("%s",&a);
        break;
    case 4:
        if(xc==0||k==0)
        {
            printf("\n======< Data Buku Belum Dimasukkan >=======\nMasukkan Data Buku?(y/n)");
            scanf ("%s",&a);
            if(a=='y'||a=='Y'){pilih=2;goto menu;}
        }
        for (int i=1;i<=k;i++)
        {
            printf("======<    %d    >======\nNomor\t:\t\t%s\n",i,data_book[i].nomor);
            printf("Judul\t:\t\t%s\n",data_book[i].judul);
            printf("Peminjam:\t\t%s\n",data_book[i].peminjam);
            printf("Kembali\t:\t\t%s\n======<         >======\n",data_book[i].kembali,i);
        }
        printf ("Kembali ke menu utama ?(y/n)");scanf("%s",&a);
        break;
    case 5:
        printf ("Pilih data:\n1. Data Peminjam\n2. Data Buku\n\nPilihan Anda:\t");scanf("%d",&ch);
        if(ch==1)
        {
            if(axc==0||j==0)
            {
                printf("\n======< Data Peminjam Belum Dimasukkan >=======\nKembali ke menu utama?(y/n)\t");
                scanf ("%s",&a);
                if(a=='y'||a=='Y')
                {
                    goto axc;
                }
            }
            printf ("Anda ingin menghapus data peminjam?(y/n)");scanf("%s",&hapus);
            if(hapus=='y'||hapus=='Y')
            {
                j=0;
                printf("\n===< Data Peminjam Sudah Dihapus >===\n\nKembali ke menu utama ?(y/n)");
                scanf("%s",&a);
                if(a=='y'||a=='Y')
                {
                    goto axc;
                }
                if(a=='n'||a=='N')
                {
                    goto axc;
                }
            }
        }
        if(ch==2)
        {
            if(xc==0||k==0)
            {
                printf("\n======< Data Buku Belum Dimasukkan >======\nKembali ke menu utama?(y/n)\t");
                scanf("%s",&a);
                if(a=='y'||a=='Y')
                {
                    goto axc;
                }
            }
            printf ("Anda ingin menghapus data buku?(y/n)");scanf("%s",&hapus);
            if(hapus=='y'||hapus=='Y')
            {
                k=0;
                printf("\n===< Data Buku Sudah Dihapus >===\n\nKembali ke menu utama ?(y/n)");
                scanf("%s",&a);
                if(a=='y'||a=='Y')
                {
                    goto axc;
                }
                else
                {
                    goto axc;
                }
            }
        }
        break;
    default:
        goto axc;
        break;
    }
    }
    getch();
    return 0;
}

Array Multi Dimensi

A. Definisi
Array multidimensi adalah array yang menyimpan array lagi didalamnya, atau bisa kita sebut array bersarang. hahahah itu hanya sekilas banyangan saja... berikut arti sebenarnya dari array multidimensi merupakan sebuah variabel yang menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan diakses melalui 2 indeks atau subskrip yaitu indeks baris dan indeks kolom.

B. Deklarasi Array Multidimensi
Berikut tata cara pendeklarasian array multidimensi
tipe_array nama_array [penjang baris][panjang kolom];
contoh:
int a[10][4];

 C. Aplikasi Array Multidimensi
Nah Array multidimensi dapat kalian gunakan dalam pengoperasian matriks, baik itu perkalian, penjumlahan, maupun pengurangan, bahkan bisa invers, tapi ingat semua itu harus sesuai dengan rumus kalau tidak, maka akan terjadi run time error atau hasil yang diinginkan tidak dapat dihasilkan
berikut contoh program untuk operasi matriks:

#include <stdio.h>
#include <conio.h>
int main ()
{
    int i,j,x;
    int a[2][2];
    int b[2][2];
    int c[2][2];
    int vc[3][3];
    int vb[3][3];
    float d[2][2];
    char ulang;
    do
    {
    printf ("NILAI MATRIKS A(3x3)\n");
    for (i=0;i<3;i++)
    {
        for (j=0;j<3;j++)
        {
            printf ("Masukkan nilai matriks A [%d, %d]=",i,j);
            scanf ("%d",&vc[i][j]);
        }
    }
    printf ("NILAI MATRIKS A\n");
    //===========================================================
    for (i=0;i<2;i++)
    {
        for (j=0;j<2;j++)
        {
            printf ("Masukkan nilai matriks A [%d , %d]=",i,j);
            scanf ("%d",&a[i][j]);
        }
    }
    //============================================================
    printf ("NILAI MATRIKS B\n");
    for (i=0;i<2;i++)
    {
        for (j=0;j<2;j++)
        {
            printf ("Masukkan nilai matriks B [%d , %d]=",i,j);
            scanf ("%d",&b[i][j]);
        }   
    }
    //============================================================
    printf ("PENJUMLAHAN MATRIKS A+B\n");
    for (i=0;i<2;i++)
    {
        for(j=0;j<2;j++)
        {
            c[i][j]=a[i][j]+b[i][j];
        }
    }
    printf ("hasilnya:\n");
    printf ("\t%d \t%d",c[0][0],c[0][1]);
    printf ("\n\t%d \t%d",c[1][0],c[1][1]);
    //==============================================================
    printf ("\nPERKALIAN MATRIKS AxB\n");
    int x=1;
    for (i=0;i<2;i++)
    {
        x=1;
        for (j=0;j<2;j++)
        {
            c[i][j]=a[i][j]*b[j][i]+a[i][j]*b[x][i];
            x--;
        }
    }
    printf ("hasilnya:\n");
    printf ("\t%d \t%d",c[0][0],c[0][1]);
    printf ("\n\t%d \t%d",c[1][0],c[1][1]);
    //=================================================================
    printf ("\nApakah ingin diulang (Y/N)");scanf("%s",&ulang);
    }while (ulang=='y'||ulang=='Y');
    getch ();
    return 0;
}

String

A. Definisi
String pada dasarnya adalah kumpulan dari char, maksudnya string dapat menyimpan banyak karakter, sedangkan char hanya mampu menyimpan satu karakter, yang mana jika kita ingin memasukkan banyak karakter agar lebih hemat sebaiknya kita gunakan string itu sendiri.

B. Deklarasi
Berikut tata cara pendeklarasian String:
char namastring [panjang karakter];
contoh:
char penulis [4]="tewe";

C. Perbandingan, Panjang, dan Salin String
Nah khusus untuk hal ini kita butuh header, tahukan header....?
header adalah sebuah kepala program, yang mana akan mengakses file library dari software yang digunakan, dan untuk perbandingan dan panjang string kita gunakan header
#include <string.h>
Ok....
untuk perbandingan string kita gunakan printah strcmp yang arti lengkapnya string compare.
contohnya:
char a[3]="aku";
char b[1]="a";
int hasil= strcmp(a,b);//membandingkan string a dan b, jika a lebih besar dari b, maka hasil=1
untuk panjang string kita gunakan strlen dan untuk menyalin string kita gunakan strcpy
contohnya:
char str[50];  
int len; 
strcpy(str, "This is tutorialspoint.com"); 
len = strlen(str); 
printf("Length of |%s| is |%d|\n", str, len);  

Nah untuk lebih lengkapnya silahkan kunjungi link berikut, Tutorial Bahasa C

Array Pencarian

A. Definisi
Array pencarian adalah sebuah fasilitas yang digunakan untuk mencari sebuah data dalam sekelompok data dalam array itu sendiri. Array pencarian sendiri terbagi menjadi 2, yaitu sequential search dan binary search. Sequential search adalah pencarian suatu data dalam array dengan cara mengecek satu persatu data, dan biasanya dari kiri ke kanan. Sedangkan Binary search adalah pencarian array dengan memebagi 2 array tersebut sehingga pencarian suatu nilai dalam suatu array dapat lebih cepat, tapi tipe pencarian array binary sangat tidak cocok jika dilakukan dalam array yang belum diurutkan, karena data yang dihasilkan tidak akan sesuai, sehingga untuk data yang belum tersusun dapat dilakukan operasi sequential search, dengan waktu yang cukup lama jikan data yang dicari terletak diujung kelompok data, dan sebaliknya pencarian akan cepat bila data yang dicari terletak dipangkal kelompok data yang dicari.

B. Contoh Program
1. Sequential Search
berikut contoh sequential search:

#include<stdio.h>
#include<stdlib.h>
#define MAX 10
int main(void)
{
  int array[MAX],i=0,cari;   
  printf("Masukkan Daftar Pencarian [maks 10]"); 
  for(i=0;i<10;i++)
   {
     scanf("%d",&array[i]);
   }
   printf("\nMasukakan nilai yang dicari:");
   scanf("%d",&cari);
   for(i=0;i<10;i++)
    {
      if(array[i]==cari)
       {
            printf("\nnilai %d  ditemukan di elemen ke %d",array[i],i+1);
            exit(0);
      }
    }
    printf("\nnilai %d tidak ditemukan",cari);
}

2. Binary Search
Berikut contoh program binary search:
 #include<stdio.h>
int main(){
    int a[10],i,n,m,c=0,l,u,mid;
    printf("Masukkan banyak nilai yang dicari: ");
    scanf("%d",&n);
    printf("Masukkan nilai dari yang terkecil: ");
    for(i=0;i<n;i++){
         scanf("%d",&a[i]);
    }
    printf("Masukkan nilai yang dicari: ");
    scanf("%d",&m);
    l=0,u=n-1;
    while(l<=u){
         mid=(l+u)/2;
         if(m==a[mid]){
             c=1;
             break;
         }
         else if(m<a[mid]){
             u=mid-1;
         }
         else
             l=mid+1;
    }
    if(c==0)
         printf("Nilai Tidak ditemukan");
    else
         printf("Nilai Ditemukan");
    return 0;
}

Sabtu, 08 Februari 2014

Fungsi

 A. Pengertian
Prosedur dan fungsi adalah program kecil yang berada dalam program utama yang digunakan untuk menyelesaikan masalah khusus dengan paramater yang diberikan. Beberapa buku membedakan istilah prosedur dan fungsi terutama pada pemrograman pascal. Letak perbedaan prosedur dan fungsi ada di pengembalian nilai. Pada prosedur nilai yang diproses tidak dikembalikan atau diubah, nilai hanya diproses didalam prosedur dan kembali kepada keadaan semula ketika keluar dari prosedur. Sedangkan pada fungsi, nilai yang diproses akan berubah dan memiliki nilai keluaran. Bisa kita disimpulkan bahwa prosedur itu hanya berisi metode, langkah-langkah atau tahap-tahap penyelesaian masalah sedangkan fungsi adalah berisi metode yang memproses nilai dan mengubah nilai itu sendiri.
Pada dasarnya setiap prosedur dikenali sebagai fungsi dalam bahasa c karena struktur mereka sama.

B. Keuntungan
Ada Beberapa keuntungan ketika kita memakai fungsi dalam program.
  • Menguraikan tugas pemrograman rumit menjadi langkah-langkah yang lebih sederhana atau kecil.
  • Mengurangi duplikasi kode (kode yang sama ditulis berulang-ulang) dalam program.
  • Dapat menggunakan kode yang ditulis dalam berbagai program yang berbeda.
  • Memecah program besar menjadi kecil sehingga dapat dikerjakan oleh programmer-programmer atau dipecah menjadi beberapa tahap sehingga mempermudah pengerjaan dalam sebuah projek
  • Menyembunyikan informasi dari user sehingga mencegah adanya perbuatan iseng seperti memodifikasi atau mengubah program yang kita buat
  • Meningkatkan kemampuan pelacakan kesalahan, jika terjadi suatu kesalahan kita tinggal mencari 
C. Struktur Fungsi Secara Umum
fungsi yang bersangkutan saja dan tak perlu mencari kesalahan tersebut di seluruh programstruktur fungsi secara umum
tipe nama (tipe1 argumen1, tipe2 argumen2, ... , tipe''n'' argumen''n'') { /*kode*/ }

D. Contoh Program
Berikut contoh program fungsi:

#include <stdio.h>
//prototype fungsi tambah (), ada titik koma
float tambah (float x, float y);
main ()
{
float a,b,c;
printf ("A =");scanf ("%f",&a);
printf ("B =");scanf ("%f",&b);
c=tambah (a,b); //pemanggilan fungsi tambah
printf ("A + B = %.2f",c);
}
//definisi fungsi tanpa titik koma
float tambah (float x, float y)
{
return (x+y); // Nilai balik fungsi
}


Array

A. Pendahuluan
Array pada dasarnya sama dengan variabel, yang membedakannya hanya banyak jumlah data yang disimpan, kalau diibaratkan variabel itu kontainer yang menyimpan satu jenis barang dalam bentuk tunggal, tapi kalau array itu sebuah kontainer yang menyimpan satu jenis barang dengan bentuk yang bermacam-macam. Dari ilustrasi tersebut dapat disimpulkan bahwa array adalah suatu tipe data yang menyimpan satu tipe data tapi memiliki banyak nilai dan dapat diakses berdasarkan indeksnya masing masing.

B. Deklarasi
Pendeklarasian array adalah sebagai berikut:
Tipe data Nama Array [panjang array];

C. Pengaksesan Array
Nah dalam hal ini array diakses melalui indeksnya masing-masing
contoh
int a[3];
a[0]=10; // indeks 0 untuk mengakses nilai 10
a[1]=11; // indeks 1 untuk mengakses nilai 11
a[2]=19; // indeks 2 untuk mengakses nilai 19

D. Contoh Program
include <stdio.h>
int main()
{
int a[5];
a[0]=11;
a[1]=100;
a[2]=19;
a[3]=12;
a[4]=13;
for (int i=0; i<5;i++)
{
printf ("Nilai Array %d =",i+1);
printf ("%d",a[i]); // menampilkan nilai array
}
int cari;
printf ("Masukikan nilai yang dicari ");scanf ("%d",&cari);
for (int i=0;i<5;i++)
{
if (cari==a[i]) // pencari nilai didalam array a
{
printf ("Nilai yang anda cari:%d ditemukan di array ke %d",cari,i+1);
}
return 0;
}