Rabu, 04 Februari 2015

Algoritma , flowchart dan Program C++

ALGORITMA 



Algoritma Merupakan fondasi yang harus dikuasai oleh setiap mahasiswa yang ingin menyelesaikan suatu masalah secara terstruktur, efektif dan efisien , teristimewa bagi mahasiswa yang ingin menyusun program komputer untuk menyelesaikan suatu persoalan.


Defisini Algoritma


  1. Teknik penyusunan langkah-langkah penyelesaian masalah dalam bentuk kalimat dengan jumlah kata terbatas tetapi tersusun secara logis dan sistematis.
  2. Suatu prosedur yang jelas untuk menyelesaikan suatu persoalan dengan menggunakan langkah-langkah tertentu dan terbatas jumlahnya
  3. Susunan Langkah yang pasti , yang bila diikuti maka akan mentransfortasi data input menjadi output yang berupa informasi
Ciri Algoritma

Donald E. Knuth, penulis beberapa buku algoritma Abad XX, menyatakan bahwa ada beberapa ciri algoritma yaitu :

  1. Algoritma mempunyai awal dan akhir , suatu algoritma harus berhenti setelah mengerjakan serangkaian tugas dengan kata lain suatu algoritma memiliki angka yang terbatas .
  2. Setiap langkah harus didefinisikan dengan tepat sehingga tidak memiliki arti ganda, tidak membingungkan 
  3. Memiliki masukan (input) atau kondisi awal 
  4. Memiliki keluaran (output) atau kondisi akhir
  5. Algoritma harus efektif , bila diikuti benar-benar maka akan menyelesaikan persoalan 

Contoh flowchart sederhana beserta penjelasannya lengkap Terbaru - Dalam perjumpaan kita dipagi ini, saya telah membuat sebuah artikel tentang beberapa contoh flowchart untuk anda yang mungkin memiliki tugas membuat sebuah flowchart yang diberikan oleh guru maupun dosen disekolah/dikampus tempat anda belajar, Berikut ini anda bisa membaca Contoh flowchart sederhana beserta penjelasannya lengkap Terbaru :



√ Flowchart  adalah  representasi  grafik  dari  langkah-langkah  yang  harus  diikuti  dalam menyelesaikan suatu permasalahan yang terdiri atas sekumpulan simbol, dimana masing-masing  simbol  merepresentasikan  suatu  kegiatan  tertentu.
 
√ Flowchart  diawali  dengan penerimaan input, pemrosesan input, dan diakhiri dengan penampilan output.
√ bagan yang menggambarkan urutan logika dari suatu prosedur pemecahan masalah.
√ suatu diagram yang menggambarkan susunan logika suatu program
Simbol-simbol yang digunakan adalah sebagai berikut:

Bentuk Flowchart seperti ini

Simbol Flowchart
Flowchart terdiri dari 3 struktur:
1. Struktur Sequence / Sederhana
Diagram yang alurnya mengalir secara berurutan dari atas ke bawah atau dengan kata lain tidak adanya percabangan atau pengulangan.
Bentuk flowchart tersebut seperti:
Flowchart Sequence
Contoh dari flowchart dengan struktur sequence ini seperti algoritma untuk menghitung luas segitiga, luas persegi panjang, luas lingkaran.
2. Struktur Branching / Percabangan
Diagram yg alurnya terjadi/terdapat alih kontrol berupa percabangan.
Flowchart dengan stuktur percabangan  digunakan untuk meyeleksi kondisi dan menentukan pilihan proses selanjutnya.


    Program KTP

Program c++ ini memiliki fungsi menambah data,hapus,edit dan tampil



#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<string.h>
typedef struct ktp
{
int no;
char nama[20];
char ttgl[20];
char jk[20];
char alamat[20];
char agama[20];
char pekerjaan[20];
int id;
}ktp;
int main()
{
float id;
FILE *fp,*ft;
char another, choice;
ktp stu;

long int recsize;
fp=fopen("master.DAT","rb+");
if(fp==NULL)
{
fp=fopen("master.DAT","wb+");
if(fp==NULL)
{
printf("File gagal diakses");
}
}
recsize=sizeof(stu);
while(!(choice=='5'))
{
printf("\n================");
printf("\nDAFTAR PILIHAN");
printf("\n================");
printf("\n1.TAMBAH DATA ");
printf("\n2.HAPUS DATA ");
printf("\n3.EDIT DATA ");
printf("\n4.TAMPIL DATA ");
printf("\n5.KELUAR ");
printf("\n===============================");
printf("\nPILIHLAH SALAH SATU [1/2/3/4/5]:");

fflush(stdin);
scanf("%c",&choice);
printf("\n===================");
switch(choice)
{
case'1':
fseek(fp,0,SEEK_END);
another='Y';
while(another=='Y'||another=='y')
{
clrscr();
printf("\n===================================");
printf("\nDATA KTP");
printf("\n===================================");
printf("\n Nomor KTP : ");scanf("%s",&stu.no);
printf("\n Nama : ");scanf("%s",&stu.nama);
printf("\n Tempat Dan Tgl Lahir : ");scanf("%d",&stu.ttgl);
printf("\n Jenis Kelamin : ");scanf("%s",&stu.jk);
printf("\n Alamat : ");scanf("%s",&stu.alamat);
printf("\n Agama : ");scanf("%s",&stu.agama);
printf("\n Pekerjaan : ");scanf("%d",&stu.pekerjaan);
fwrite(&stu,recsize,1,fp);
printf("\n===================================");
printf("\nMAU TAMBAH DATA LAGI[Y/T]? ");
fflush(stdin);
another=getchar();
}break;
case'2':
another='Y';
while(another=='Y'||another=='y')
{
clrscr();
printf("\n");

printf("\n===========================");
printf("\nDATA YANG AKAN DIHAPUS");
printf("\n===========================");
printf("\n Nomor KTP : ");scanf("%s",&stu.no);
printf("\n Nama : ");scanf("%s",&stu.nama);
printf("\n Tempat Dan Tgl Lahir : ");scanf("%d",&stu.ttgl);
printf("\n Jenis Kelamin : ");scanf("%s",&stu.jk);
printf("\n Alamat : ");scanf("%s",&stu.alamat);
printf("\n Agama : ");scanf("%s",&stu.agama);
printf("\n Pekerjaan : ");scanf("%d",&stu.pekerjaan);
printf("\n===========================");
ft=fopen("TEMP.DAT","wb");
rewind(fp);
while(fread(&stu,recsize,1,fp)==1)
{
if(stu.id!=0)
fwrite(&stu,recsize,1,ft);
}
fclose(fp);
fclose(ft);
remove("master.DAT");
rename("TEMP.DAT","master.DAT");
fp=fopen("master.DAT","wb+");
printf("\nMAU HAPUS DATA LAGI[Y/T]?");
fflush(stdin);
another=getchar();
}break;
case'3':
another='Y';
while(another=='Y'||another=='y')
{
clrscr();
printf("\n");
printf("\n===============================");
printf("\nDATA KTP ");
printf("\n===============================");
printf("\n Nomor KTP : ");scanf("%s",&stu.no);
printf("\n Nama : ");scanf("%s",&stu.nama);
printf("\n Tempat Dan Tgl Lahir : ");scanf("%d",&stu.ttgl);
printf("\n Jenis Kelamin : ");scanf("%s",&stu.jk);
printf("\n Alamat : ");scanf("%s",&stu.alamat);
printf("\n Agama : ");scanf("%s",&stu.agama);
printf("\n Pekerjaan : ");scanf("%d",&stu.pekerjaan);

printf("\n===============================");
printf("\nMAU EDIT DATA LAGI[Y/T]?");
fflush(stdin);
another=getchar();
}break;
case'4':
rewind(fp);
clrscr();
printf("\n=====================================");
printf("\n DAFTAR DATA ");
printf("\n=====================================");
while(fread(&stu,recsize,1,fp)==1)
{
printf("\n=====================================");
printf("\nDATA KTP ");
printf("\n=====================================");
cout<<"\nNo KTP : "<<stu.no;
cout<<"\nNama : "<<stu.nama;
cout<<"\nTempat Dan Tgl Lahir : "<<stu.ttgl;
cout<<"\nJenis Kelamin : "<<stu.jk;
cout<<"\nAlamat : "<<stu.alamat;
cout<<"\nAgama : "<<stu.agama;
cout<<"\nPekerjaan : "<<stu.pekerjaan;
printf("\n=====================================");
}break;
case'5':
{
clrscr();

}
break;
}//switch(choice)
}//while(!(choice=='5'))


Program Kalkulator 

Kalkulator Sederhana Dengan C++


#include <conio.h>
#include <iostream>
#include <math.h>


class kalkulator{

    public :

   void start();
   void pilih1();
   void pilih2();
    void hitung();
   void akar2();
   void kin();
   void kos();
   void kan();

   private :


    float a,b,c;
   int d;
    char e,proses;
    float hasil;

   };

   void kalkulator::start(){

      cout<<"---------------------------------------------------------\n";
      cout<<"-            PROGRAM  KALKULATOR B-IOZ v.1.0.1          -\n";
      cout<<"---------------------------------------------------------\n";
      cout<<"-                                                       -\n";
      cout<<"- Ada dua pilihan :                                     -\n";
      cout<<"-                                                       -\n";
      cout<<"- 1. Perhitungan biasa :                                -\n";
      cout<<"-          ( +, -, *, /, ^)                             -\n";
      cout<<"- 2. Perhitungan siencetific :                          -\n";
      cout<<"-          (akar, sin, cos, tan)                        -\n";
      cout<<"-                                                       -\n";
      cout<<"-                                                       -\n";
      cout<<"-         ***** BY EFA-ONE as REZZHAI ****              -\n";
      cout<<"---------------------------------------------------------\n";
      cout <<endl;

   }

   void kalkulator::pilih1(){
   int pilih;
    cout<<"Pilih biasa atau siencetific : ";
   cin>>pilih;
    switch(pilih)
   {
      case 1:
      hitung();
      break;

      case 2:
      pilih2();
      break;




   }
   }

   void kalkulator::pilih2(){
   int pilih;
   cout<<endl;
   cout<<"1. Perhitungan akar bilangan\n";
   cout<<"2. Perhitungan sin \n";
   cout<<"3. Perhitungan cos \n";
   cout<<"4. Perhitungan tan \n\n";
   cout<<"Masukkan Piihan Anda :  ";

   cin>>pilih;
    switch(pilih)
   {
      case 1:
      akar2();
      break;

      case 2:
      kin();
      break;

      case 3:
      kos();
      break;

      case 4:
      kan();
      break;



   }
   }

   void kalkulator::hitung(){

      cout<<endl;
      cout<<" Masukkan Dua buah bilagan saja        \n";
      cout<<" Fungsi Operator :                     \n";
      cout<<"            + = tambah     (ex= 5+5)     * = kali (ex= 5*5)    \n";
      cout<<"            - = kurang     (ex= 5-5)     / = bagi (ex= 5+5)   \n";
      cout<<"            ^ = pangkat  (ex= 5^5)                     \n";
      cout<<endl;

        while(cin>>a>>proses>>b) {



      switch(proses)
      {
            case '+':
                hasil=a+b;
                cout<<"Hasil "<<a<<" + " <<b<<" = "<<hasil<<endl;
                cout<<endl;
                break;

            case '-':
                hasil=a-b;
                cout<<"Hasil "<<a<<" - " <<b<<" = "<<hasil<<endl;
                cout<<endl;
                break;

           case '*':
                hasil=a*b;
                cout<<"Hasil "<<a<<" * " <<b<<" = "<<hasil<<endl;
                cout<<endl;
                break;

           case '/':
                hasil=a/b;
                cout<<"Hasil "<<a<<" / " <<b<<" = "<<hasil<<endl;
                cout<<endl;
                break;

           case '^':
                  int c;
                hasil=1;
                 for(c=1; c<=b; c++){
                 hasil=hasil*a;
                 }
                 cout<<"Hasil "<<a<<"^" <<b<<" = "<<hasil<<endl;
                 cout<<endl;
                break;


            default:
                break;
            }
            }
            }

      void kalkulator::akar2(){
         cout<<endl;
           cout<<"Masukkan nilai : ";
           cin>>a;
           hasil=sqrt(a);
         cout<<endl;
           cout<<"Nilai dari akar "<<a<<" = "<<hasil;
         getch;
         }

      void kalkulator::kin(){
         cout<<endl;
            cout<<"Masukkan nilai : ";
          cin>>d;
           hasil=sin(d);
          cout<<endl;
           cout<<"Nilai dari sin "<<d<<" = "<<hasil;
         getch;
         }

      void kalkulator::kos(){
         cout<<endl;
          cout<<"Masukkan nilai : ";
         cin>>d;
         hasil=cos(d);
         cout<<endl;
           cout<<"Nilai dari cos "<<d<<" = "<<hasil;
         getch;
         }

      void kalkulator::kan(){
         cout<<endl;
          cout<<"Masukkan nilai : ";
         cin>>d;
         hasil=tan(d);
         cout<<endl;
           cout<<"Nilai dari tan "<<d<<" = "<<hasil;
         getch;
         }



int main()
{
      kalkulator x;
      x.start();
      x:
      x.pilih1();
   char e;
    cout<<"\nAnda Ingin Mengulang?(Y/N) ";
   cin>>e;
   cout<<endl;
   if(e=='y'||e=='Y')goto x;
   else
   cout<<"Tekan X untuk keluar"<<endl;


      return 0;
} 
 

Aplikasi untuk menghitung Hasil IPk 






//Program penghitung IPk

#include
#include

void main(){
 struct{
 char MK[10];
 float SKS;
float nilai_akhir;
float scor;
      float NAS;
}nilai[10];

struct{
 float SKS;
float NAS;
float IP;
}total;

int i, n;

//jumlah matakuliah
printf("Masukan jumlah matakuliah : "); scanf("%d", &n);

//input atribut KHS sesuai dengan jumlah matakuliah
for(i=1; i<=n; i++){
 printf("Matakuliah ke-%d\n", i);
printf("Nama matakuliah : "); scanf("%s", nilai[i].MK);
       printf("Jumlah SKS      : "); scanf("%f", &nilai[i].SKS);
printf("Nilai akhir     : "); scanf("%f", &nilai[i].nilai_akhir);
      printf("\n");
}

//output KHS
   clrscr();
printf("\n");
   printf("                       KARTU HASIL STUDY\n");
printf("---------------------------------------------------------------\n");
   printf("No    Matakuliah      SKS     Nilai Akhir     Scor     SKS*Scor\n");
printf("---------------------------------------------------------------\n");

//mengolah nilai akhir untuk mendapatkan scor
   for(i=1; i<=n; i++){
 if(nilai[i].nilai_akhir>=86 && nilai[i].nilai_akhir<=100){
          nilai[i].scor = 4;
}
          else if(nilai[i].nilai_akhir>=76 && nilai[i].nilai_akhir<=85){
             nilai[i].scor = 3.5;
}
             else if(nilai[i].nilai_akhir>=69 && nilai[i].nilai_akhir<=75){
                nilai[i].scor = 3;
}
                else if(nilai[i].nilai_akhir>=61 && nilai[i].nilai_akhir<=68){
                   nilai[i].scor = 2.5;
}
                   else if(nilai[i].nilai_akhir>=56 && nilai[i].nilai_akhir<=60){
                      nilai[i].scor = 2;
}
                      else if(nilai[i].nilai_akhir>=41 && nilai[i].nilai_akhir<=55){
                         nilai[i].scor = 1;
}
                         else{
                            nilai[i].scor = 0;
}
      //meghitung sks * scor
      nilai[i].NAS = nilai[i].SKS*nilai[i].scor;
 printf("%2d %15s %5.0f %11.0f %12.1f %10.1f\n", i, nilai[i].MK, nilai[i].SKS, nilai[i].nilai_akhir, nilai[i].scor, nilai[i].NAS);

      //menjumlahkan sks dan hasil dari sks*scor
total.SKS = total.SKS+nilai[i].SKS;
      total.NAS = total.NAS+nilai[i].NAS;

}
   printf("---------------------------------------------------------------\n");
   printf("Total SKS  = %0.2f\n", total.SKS);
printf("Total Scor = %0.2f\n", total.NAS);

   //mengitung ip
   total.IP = total.NAS/total.SKS;
printf("IP         = %0.2f\n", total.IP);
   printf("---------------------------------------------------------------\n");

   getch();
}