Minggu, 24 April 2011

Kombinasi Struct dan Fungsi Squential Search untuk Pencarian Data

/*
 * by Lulus.SD
*/


#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

int cariKode(int tempKode[],int jumlahData,int cari);

struct kodePos {
       int kode;
       char kecamatan[30];
       char kabupaten[30];
       };

int main (){
    int jumlahData;
    bool isKetemu = false;
    int cari;
    int index;
    int tempKode[100];
  
    printf("Masukkan jumlah Data : ");scanf("%i",&jumlahData);
    printf("\n\n");
  
    system("cls");
  
    kodePos kp[jumlahData];
  
    for (int i=0;i<jumlahData;i++){
        printf("=============================================\n");
        printf("Masukkan Kode Pos       : ");scanf("%i",&kp[i].kode);
        printf("Masukkan Nama Kecamatan : ");scanf("%s",&kp[i].kecamatan);
        printf("Masukkan Nama Kabupaten : ");scanf("%s",&kp[i].kabupaten);
        printf("=============================================\n");
        }
  
    system("cls");
      
    for (int i=0;i<jumlahData;i++){
        tempKode[i] = kp[i].kode;
        }
  
    printf("\nMasukkan Kode Pos yang anda Cari : ");scanf("%i",&cari);
    printf("\n\n");
  
    system("cls");
  
    index = cariKode(tempKode,jumlahData,cari);
  
    if (index >= 0){
        printf("\nData yang Anda cari ditemukan!!!\n");
        printf("\nBerikut adalah Data yang Anda cari :");
        printf("\nKode Pos       : %i",kp[index].kode);
        printf("\nNama Kecamatan : %s",kp[index].kecamatan);
        printf("\nNama Kabuaten  : %s",kp[index].kabupaten);
    } else {
        printf("\nData yang Anda cari tidak ditemukan");
    }
    getch();
    return 0;
}

int cariKode(int tempKode[],int jumlahData,int cari){
    for (int index=0;index<jumlahData;index++){
        if (cari == tempKode[index]){
                 return index;
                 }
        }
        return -1;
    }

Selasa, 19 April 2011

Kombinasi Struct dan Squential Search untuk Pencarian Data

/*
 * by Lulus.SD
*/

#include <stdio.h>
#include <conio.h>
struct kodePos {
       int kode;
       char kecamatan[30];
       char kabupaten[30];
       };
int main (){
    int jumlahData;
    printf("Masukkan jumlah Data : ");scanf("%i",&jumlahData);
    printf("\n\n");
   
    kodePos kp[jumlahData];
   
    for (int i=0;i<jumlahData;i++){
        printf("=============================================\n");
        printf("Masukkan Kode Pos       : ");scanf("%i",&kp[i].kode);
        printf("Masukkan Nama Kecamatan : ");scanf("%s",&kp[i].kecamatan);
        printf("Masukkan Nama Kabupaten : ");scanf("%s",&kp[i].kabupaten);
        printf("=============================================\n");
        }
       
    bool isKetemu = false;
    int cari;
    int index;
   
    printf("\nMasukkan Kode Pos yang anda Cari : ");scanf("%i",&cari);
    printf("\n\n");
    for (index=0;index<jumlahData;index++){
        if (kp[index].kode == cari){
             isKetemu = true;
             break;
             }
        }
    if (isKetemu){
        printf("\nData yang Anda cari ditemukan!!!\n");
        printf("\nBerikut adalah Data yang Anda cari :");
        printf("\nKode Pos       : %i",kp[index].kode);
        printf("\nNama Kecamatan : %s",kp[index].kecamatan);
        printf("\nNama Kabuaten  : %s",kp[index].kabupaten);
    } else {
        printf("\nData yang Anda cari tidak ditemukan");
    }
    getch();
    return 0;
}

Senin, 18 April 2011

Rumus2 Pada Limas Segiempat Beraturan dengan Input dari Keyboard versi Private

import java.io.*;
public class Limas {
    private double PanjangAlas;
    private double LebarAlas;
    private double TinggiLimas;

    public double LuasAlas(){
        return this.PanjangAlas * this.LebarAlas;
    }
    public double Volume(){
        return (this.PanjangAlas * this.LebarAlas * this.TinggiLimas)/3;
    }
    public double TinggiSegitigaSatu(){
        return (Math.sqrt((Math.pow(this.LebarAlas/2,2))+Math.pow(this.TinggiLimas,2)));
    }
    public double TinggiSegitigaDua(){
        return (Math.sqrt((Math.pow(this.PanjangAlas/2,2))+Math.pow(this.TinggiLimas,2)));
    }
    public double LuasSegitigaSatu(){
        return (this.TinggiSegitigaSatu()*this.LebarAlas*0.5);
    }
    public double LuasSegitigaDua(){
        return (this.TinggiSegitigaDua()*this.PanjangAlas*0.5);
    }
    public double LuasPermukaan(){
        return (this.LuasAlas()+2*this.LuasSegitigaSatu()+2*this.LuasSegitigaDua());
    }
   
    public static void main(String[] args) {
        Limas lms = new Limas();
        System.out.println ("Diketahui Limas Segiempat Beraturan");
        System.out.print ("Masukkan Lebar   : ");
        lms.LebarAlas = Inputan.ReadDbl();
        System.out.print ("Masukkan Panjang : ");
        lms.PanjangAlas = Inputan.ReadDbl();
        System.out.print ("Masukkan Tinggi  : ");
        lms.TinggiLimas = Inputan.ReadDbl();
        System.out.println ("======================================");
        System.out.format ("Volume Limas         : %.2f\n",lms.Volume());
        System.out.format ("Luas Permukaan Limas : %.2f\n",lms.LuasPermukaan());
    }
}
class Inputan{
    public static String ReadStr(){
        BufferedReader bfr = new BufferedReader (new InputStreamReader (System.in));
        String input = "";
        try {
            input = bfr.readLine();
        } catch (IOException e){
            System.out.print("Error");
        }
        return input;
    }
    public static double ReadDbl(){
        return Double.parseDouble(ReadStr());
    }
}

Minggu, 17 April 2011

Rumus2 Pada Limas Segiempat Beraturan dengan Input dari Keyboard

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package rumuslimas;
import java.text.NumberFormat;
import java.io.*;
/**
 *
 * @author Lulus
 */
public class Limas {
//Main Method
    public static void main(String[] args) {
       
        System.out.println("Diketahui Limas Segiempat Beraturan :");
//Input Panjang Alas Limas
        System.out.print ("Masukkan Panjang Alas : ");
        double panjangAlas = Inputan.readDbl();
//Input Lebar Alas Limas
        System.out.print ("Masukkan Lebar Alas : ");
        double lebarAlas = Inputan.readDbl();
//Input Tinggi Limas
        System.out.print ("Masukkan Tinggi Limas: ");
        double tinggiLimas = Inputan.readDbl();
//Memanggil Fungsi
        double luasAlas = luasAlasLimas (panjangAlas, lebarAlas);
        double volume = volumeLimas (panjangAlas, lebarAlas, tinggiLimas);
        double tgSsMr1 = tinggiSisiMiring1 (panjangAlas, tinggiLimas);
        double tgSsMr2 = tinggiSisiMiring2 (lebarAlas, tinggiLimas);
        double lsSsMr1 = luasSisiMiring1 (tgSsMr1, panjangAlas);
        double lsSsMr2 = luasSisiMiring2 (tgSsMr2, lebarAlas);
        double lsPermukaan = TotalLuasPermukaan (lsSsMr1, lsSsMr2, luasAlas);
//Menyederhanakan Desimal
        NumberFormat fVolume = NumberFormat.getInstance();
        fVolume.setMaximumFractionDigits(2);
        NumberFormat fLuasPermukaan = NumberFormat.getInstance();
        fLuasPermukaan.setMaximumFractionDigits(2);
//Menampilkan Output
        System.out.println("============================================");
        System.out.println("Didapat :");
        System.out.println("Volume Limas = "+fVolume.format(volume));
        System.out.println("Luas Total Permukaan Limas = "+fLuasPermukaan.format(lsPermukaan));
    }
//Method Luas Alas Limas
    public static double luasAlasLimas(double panjangAlas, double lebarAlas){
        double luasAlasLimas = panjangAlas * lebarAlas;
        return luasAlasLimas;
    }
//Method Luas Alas Limas
    public static double volumeLimas (double panjangAlas, double lebarAlas, double tinggiLimas){
        double volumeLimas = (panjangAlas * lebarAlas * tinggiLimas)/3;
        return volumeLimas;
    }
//Method Tinggi Sisi Miring Limas ke-1
    public static double tinggiSisiMiring1 (double panjangAlas, double tinggiLimas){
        double tinggiSisiMiringSatu = Math.sqrt(((panjangAlas/2)*(panjangAlas/2))+(tinggiLimas*tinggiLimas));
        return tinggiSisiMiringSatu;
    }
//Method Tinggi Sisi Miring Limas ke-2
    public static double tinggiSisiMiring2 (double lebarAlas, double tinggiLimas){
        double tinggiSisiMiringDua = Math.sqrt(((lebarAlas/2)*(lebarAlas/2))+(tinggiLimas*tinggiLimas));
        return tinggiSisiMiringDua;
    }
//Method Total Luas Sisi Miring1
    public static double luasSisiMiring1 (double tgSsMr1, double panjangAlas){
        double luasSisiMiringSatu = (tgSsMr1 * panjangAlas)/2;
        return luasSisiMiringSatu;
    }
//Method Total Luas Sisi Miring1
    public static double luasSisiMiring2 (double tgSsMr2, double lebarAlas){
        double luasSisiMiringDua = (tgSsMr2 * lebarAlas)/2;
        return luasSisiMiringDua;
    }
//Method Total Luas Permukaan
    public static double TotalLuasPermukaan (double lsSsMr1, double lsSsMr2, double luasAlas){
        double totalLuasPermukaanLimas = (2*lsSsMr1)+(2*lsSsMr2)+luasAlas;
        return totalLuasPermukaanLimas;
    }
}
//Class Untuk Input Keyboard
    class Inputan {
        public static String readString(){
        BufferedReader bfr= new BufferedReader (new InputStreamReader(System.in));
//Menginisialisasi String
        String input = "";
//Mengambil String dari keyboard
        try{
           input = bfr.readLine();
        }
        catch(IOException e){
           System.out.println("error!");
        }
//Mengembalikan string hasil pembacaan dari keyboard
        return input;
        }
//Mengambil nilai integer dengan parsing string
//input dari keyboard
        public static double readDbl(){
            return Double.parseDouble(readString());
        }
    }

Rumus2 Pada Limas Segiempat Beraturan

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package rumuslimas;
import java.text.NumberFormat;
/**
 *
 * @author Lulus
 */
public class Limas {
//Main Method
    public static void main(String[] args) {
        double panjangAlas, lebarAlas, tinggiLimas;
        panjangAlas = 10;
        lebarAlas = 8;
        tinggiLimas = 6;
        //Memanggil Fungsi
        double luasAlas = luasAlasLimas (panjangAlas, lebarAlas);
        double volume = volumeLimas (panjangAlas, lebarAlas, tinggiLimas);
        double tgSsMr1 = tinggiSisiMiring1 (panjangAlas, tinggiLimas);
        double tgSsMr2 = tinggiSisiMiring2 (lebarAlas, tinggiLimas);
        double lsSsMr1 = luasSisiMiring1 (tgSsMr1, panjangAlas);
        double lsSsMr2 = luasSisiMiring2 (tgSsMr2, lebarAlas);
        double lsPermukaan = TotalLuasPermukaan (lsSsMr1, lsSsMr2, luasAlas);
//Menyederhanakan Desimal
        NumberFormat fVolume = NumberFormat.getInstance();
        fVolume.setMaximumFractionDigits(2);
        NumberFormat fLuasPermukaan = NumberFormat.getInstance();
        fLuasPermukaan.setMaximumFractionDigits(2);
//Menampilkan Output
        System.out.println("Diketahui Limas Segiempat Beraturan dengan :");
        System.out.println("Panjang = " +panjangAlas);
        System.out.println("Lebar = " +lebarAlas);
        System.out.println("Tinggi = " +tinggiLimas);
        System.out.println("============================================");
        System.out.println("Didapat :");
        //System.out.println(luasAlas);
        //System.out.println(tgSsMr1);
        //System.out.println(tgSsMr2);
        System.out.println("Volume Limas = "+fVolume.format(volume));
        System.out.println("Luas Total Permukaan Limas = "+fLuasPermukaan.format(lsPermukaan));
    }
//Method Luas Alas Limas
    public static double luasAlasLimas(double panjangAlas, double lebarAlas){
        double luasAlasLimas = panjangAlas * lebarAlas;
        return luasAlasLimas;
    }
//Method Luas Alas Limas
    public static double volumeLimas (double panjangAlas, double lebarAlas, double tinggiLimas){
        double volumeLimas = (panjangAlas * lebarAlas * tinggiLimas)/3;
        return volumeLimas;
    }
//Method Tinggi Sisi Miring Limas ke-1
    public static double tinggiSisiMiring1 (double panjangAlas, double tinggiLimas){
        double tinggiSisiMiringSatu = Math.sqrt(((panjangAlas/2)*(panjangAlas/2))+(tinggiLimas*tinggiLimas));
        return tinggiSisiMiringSatu;
    }
//Method Tinggi Sisi Miring Limas ke-2
    public static double tinggiSisiMiring2 (double lebarAlas, double tinggiLimas){
        double tinggiSisiMiringDua = Math.sqrt(((lebarAlas/2)*(lebarAlas/2))+(tinggiLimas*tinggiLimas));
        return tinggiSisiMiringDua;
    }
//Method Total Luas Sisi Miring1
    public static double luasSisiMiring1 (double tgSsMr1, double panjangAlas){
        double luasSisiMiringSatu = (tgSsMr1 * panjangAlas)/2;
        return luasSisiMiringSatu;
    }
//Method Total Luas Sisi Miring1
    public static double luasSisiMiring2 (double tgSsMr2, double lebarAlas){
        double luasSisiMiringDua = (tgSsMr2 * lebarAlas)/2;
        return luasSisiMiringDua;
    }
//Method Total Luas Permukaan
    public static double TotalLuasPermukaan (double lsSsMr1, double lsSsMr2, double luasAlas){
        double totalLuasPermukaanLimas = (2*lsSsMr1)+(2*lsSsMr2)+luasAlas;
        return totalLuasPermukaanLimas;
    }
}

Senin, 11 April 2011

Contoh Swich Case

#include <stdio.h>
#include <stdlib.h>

int main() {
    char rangking = 'C';
    float sukuBunga;
   
    switch (rangking){
           case 'A' : sukuBunga = 0.11; break;
           case 'B' : sukuBunga = 0.13; break;
           case 'C' : sukuBunga = 0.15; break;
           case 'D' : sukuBunga = 0.17; break;
           case 'E' : sukuBunga = 0.19; break;
           default : sukuBunga = 0.21; break;
    }
    printf ("Peringkat %c dengan Suku Bunga sebesar %.02f%%\n\n", rangking, sukuBunga);
   
    system ("pause");
    return 0;
}

Contoh Implementasi Passing by Reference pada Penentuan Tahun Kabisat

#include <stdio.h>
#include <stdlib.h>

void tahunKabisat (int *pTahunAwal, int *pTahunAkhir); //deklarasi fungsi

int main (){
     int awal, akhir;
     awal = 1990;
     akhir = 2012;
     printf ("Tahun Kabisat diantara %i dan %i adalah :\n", awal, akhir);
     tahunKabisat (&awal, &akhir); //pemanggilan fungsi
   
     return 0;
   
}

void tahunKabisat (int *pTahunAwal, int *pTahunAkhir){ //isi fungsi
     for (int i = *pTahunAwal; i <= *pTahunAkhir; i++){
     if ( i % 4 == 0 ){
          printf ("- %i\n",i);
          }
     }
   
     printf("\n\n"); 
     system ("pause");
}

Contoh Implementasi Passing by Value pada Perhitungan Volume Balok

#include <stdio.h>
#include <stdlib.h>

void volumeBalok ( int, int, int ); //deklarasi fungsi

int main (){
    int panjang, lebar, tinggi;
    panjang = 40;
    lebar = 78;
    tinggi = 24;
   
    printf ("Diketahui Balok dengan :\n");
    printf (" - Panjang      = %i\n", panjang);
    printf (" - Lebar        = %i\n", lebar);
    printf (" - Tinggi       = %i\n\n", tinggi);
    printf ("=========================\n");
   
    volumeBalok (panjang, lebar, tinggi); //pemanggilan fungsi
}

void volumeBalok (int panjang, int lebar, int tinggi){ //isi fungsi
     int volume;
    
     volume = (panjang * lebar * tinggi);
     printf ("Volume Balok    = %i\n\n", volume);
    
     system ("pause");
}

Contoh Array of Struct untuk Input Data Buku

#include <stdio.h>
#include <stdlib.h>

struct buku {
       char kode[5];
       char judul[100];
       int tahun;
       char pengarang[100];
       int harga;
};

int main () {
       int jumlahBuku;
      
       printf ("Jumlah buku : "); scanf("%i", &jumlahBuku);
       printf ("\n");
      
       buku bk[jumlahBuku];
      
       for (int i=0; i<jumlahBuku; i++){
           printf ("Data ke-%i\n", (i+1));
           printf ("Kode Buku         : "); scanf("%s", &bk[i].kode);
           printf ("Judul Buku        : "); scanf("%s", &bk[i].judul);
           printf ("Tahun Terbit Buku : "); scanf("%i", &bk[i].tahun);
           printf ("Pengarang Buku    : "); scanf("%s", &bk[i].pengarang);
           printf ("Harga Buku        : Rp. "); scanf("%i", &bk[i].harga);
           printf ("\n");
       }
       printf ("===============\n");
       printf ("Data Buku\n");
       printf ("===============\n");
       for (int i=0; i<jumlahBuku; i++){
           printf("Kode: %s\n",bk[i].kode);
           printf("- Judul        : %s\n",bk[i].judul);
           printf("- Terbit Tahun : %i\n",bk[i].tahun);
           printf("- Pengarang    : %s\n",bk[i].pengarang);
           printf("- Harga        : Rp. %i\n",bk[i].harga);
           printf ("===============\n");
           }
       printf ("\n\n");
       system("pause");
       return 0;
}