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
- Teknik penyusunan langkah-langkah penyelesaian masalah dalam bentuk kalimat dengan jumlah kata terbatas tetapi tersusun secara logis dan sistematis.
- Suatu prosedur yang jelas untuk menyelesaikan suatu persoalan dengan menggunakan langkah-langkah tertentu dan terbatas jumlahnya
- Susunan Langkah yang pasti , yang bila diikuti maka akan mentransfortasi data input menjadi output yang berupa informasi
Donald E. Knuth, penulis beberapa buku algoritma Abad XX, menyatakan bahwa ada beberapa ciri algoritma yaitu :
- Algoritma mempunyai awal dan akhir , suatu algoritma harus berhenti setelah mengerjakan serangkaian tugas dengan kata lain suatu algoritma memiliki angka yang terbatas .
- Setiap langkah harus didefinisikan dengan tepat sehingga tidak memiliki arti ganda, tidak membingungkan
- Memiliki masukan (input) atau kondisi awal
- Memiliki keluaran (output) atau kondisi akhir
- 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'))
#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();
}