assalamualaikum wr.wb saya akan menjelaskan tenatang
pelajaran algoritma dan pemograman pada semester 2.
algoritma adalah urutan langkah -langkah logis
penyelesaian masalah yang disusun secara sistematis dan logis. Algoritma adalah
spesifikasi urutan langkah untuk melakukan perkejaan tertentu.
Dalam mengerjakan program kita menggunakan aplikasi
yaitu dev C++,dalam pemograman c++ kita menggunaka bahasa pemograman tingkat
tinggi,yaitu menggunakan kata kata yang mudah dimengerti manusia. Program C++
merupakan program yang berbentuk fungsi-fungsi. Main() merupakan nama dari
suatu fungsi yang harus ada di program C++.
1.
ARITMATIKA
Pada
algoritma dan pemograman terdapat banyak macam operator,yaitu:
1 .Penjumlahan = Tanda Plus ( + )
2 . Pengurangan = Tanda Minus ( - )
3 . Perkalian = ( * )
4 . Pembagian = ( / )
5 . Sisa Pembagian atau modulus = ( % )
2 . Pengurangan = Tanda Minus ( - )
3 . Perkalian = ( * )
4 . Pembagian = ( / )
5 . Sisa Pembagian atau modulus = ( % )
Contoh program aritmatika :
2. POINTER
Pointer adalah variable yang berisi alamat memori dari suatu variabel
yang berisi suatu nilai tertentu.
Operator pointer :
a.
Operator deference (&)
Operator ini biasanya disebut dengan address of atau operator alamat.
Contoh program :
Int p=75;
Cout<<&p;
Hasilnya :
b.
Operator reference (*)
Operator ini biasanya disebut value pointed by. Dengan menggunakan operator
ini, kita dapat mengakses secara langsung nilai yang terdapat pada suatu alamat
memori.
Contoh program :
Pendeklarasian pointer :
a.
Pointer pada pointer
Tidak terbatas menunjuk alamat dari suatu variabel, pointer ini pun dapat
menunjuk pointer lainnya. Kita tambahkan pointer reference (*) pada variable yang
akan ditunjuk.
Contoh :
#include <iostream>
using namespace std;
main() {
int x;
int *px;
int **ppx;
x = 100;
px = &x;
ppx = &px;
cout << "Nilai x = " << x << endl;
cout << "Nilai px = " << *px << endl;
cout << "Nilai ppx = " << **ppx << endl;
}
Hasil :
b.
Pointer pada array
Pada array pointer hanya perlu menunjukkan alamat elemen petama saja
karena alamat array dalam memori sudah disusun secara berurutan.
Contoh :
Int a[]={76,67,88,98};
Int *pa;
Pa=a;
Pernyataam pa=a artinya pointer pa menyimpan alamat array a, yang alamatnya diwakili alamat
elemen pertama,yaitu a[0].
Contoh program :
#include<iostream>
#include<stdio.h>
#include<conio.h>
using namespace std;
main()
{
int i;
int nilai[5];
int *ptrnilai;
ptrnilai=nilai;
for(i=1;i<=5;i++)
{
cout<<"masukan
nilai pertama =";
cin>>nilai[i];
}
cout<<endl;
cout<<"hasil
pengaksesan elemen array lewat";
cout<<"pointer";
cout<<endl<<endl;
for(i=1;i<=5;i++)
{
cout<<"elemen"<<i<<"nilai"<<nilai[i];
cout<<"menepati
alamat memori =";
cout<<&ptrnilai[i];
cout<<endl;
}
getch();
}
Hasil :
c.
Pointer pada string
Contoh program :
#include<iostream>
#include<conio.h>
#define MAX 5
using namespace std;
main(){
char nama[] = "ayu
latifah";
char *pNama = nama;
cout<<"nama
="<<nama<<endl;
cout<<"pNama
="<<pNama<<endl;
pNama += 7;
cout<<"\nSetelah pNama +=7"<<endl;
cout<<"nama
="<<nama<<endl;
cout<<"pNama
="<<pNama<<endl;
getch();
}
Hasil :
3. PROSEDUR PADA CPP
Prosedur dalam c++ dianggap sebagai fungsi yang tidak mengembalikan nilai,
sehingga dalam pendeklarasian prosedur cukup dituliskan dengan kata kunci void dan diikuti dengan nama prosedur.
Contoh algoritma :
Input : nilai a=3,nilai b=7, dan luas
Output = hasil luas segitiga
Deklarasi :
Alas = integer
Tinggi = integer
Luas= integer
Deskripsi :
Hitung luas -> ½*alas*tinggi
Write luas
Contoh program :
4. SORTING
Sorting adalah proses mengatur sekumpulan objek menurut aturan atau
susunan tertentu. Urutan objek tersebut dapat menaik atau disebut juga
ascending ataupun menurun yaitu descending.
Metode sorting :
a.
Bubble sort / pengurutan gelembung
merupakan suatu metode pengurutan gelembung yang diinspirasi oleh
gelembung sabun yang ada di dalam permukaan air, karena berat jenis gelembung
sabun lebih ringan daripada berat jenis air maka gelembung sabun akan selalu
megapung. Prinsip pengapungan ini juga dipakai pada pengurutan gelembung.
Elemen yang berharga paling kecil “diapungkan”, yang artinya diangkat ke atas
(atau ke ujung paling kiri) melalui pertukaran.
Contoh program :
#include <iostream.h>
#include <conio.h>
main(){
int nilai[‘n’];
int temp;
int n;
cout<<“Banyak Data: “;
cin>>n;
cout<<endl;
for (int a=1; a<=n; a++){
cout<<“nilai[“<<a<<“]: “;
cin>>nilai[a];
}
cout<<“\n\n”;
cout<<“Data Sebelum diurutkan”<<endl;
for(int a=1; a<=n; a++){
cout<<nilai[a]<<” “;
}
for(int a=n-1; a>=1; a–){
for(int b=1; b<=a; b++){
if(nilai[b]>nilai[b+1]){
temp=nilai[b+1];
nilai[b+1]=nilai[b];
nilai[b]=temp;
}
}
}
cout<<“\n\nData Setelah Diurutkan (Ascending)”<<endl;
for (int a=1; a<=n; a++){
cout<<nilai[a]<<” “;}
#include <conio.h>
main(){
int nilai[‘n’];
int temp;
int n;
cout<<“Banyak Data: “;
cin>>n;
cout<<endl;
for (int a=1; a<=n; a++){
cout<<“nilai[“<<a<<“]: “;
cin>>nilai[a];
}
cout<<“\n\n”;
cout<<“Data Sebelum diurutkan”<<endl;
for(int a=1; a<=n; a++){
cout<<nilai[a]<<” “;
}
for(int a=n-1; a>=1; a–){
for(int b=1; b<=a; b++){
if(nilai[b]>nilai[b+1]){
temp=nilai[b+1];
nilai[b+1]=nilai[b];
nilai[b]=temp;
}
}
}
cout<<“\n\nData Setelah Diurutkan (Ascending)”<<endl;
for (int a=1; a<=n; a++){
cout<<nilai[a]<<” “;}
cout<<“\n\n”;
cout<<“\n\nData Setelah Diurutkan (Descending)”<<endl;
for (int a=n; a>=1; a–){
cout<<nilai[a]<<” “;}
getch();
}
cout<<“\n\nData Setelah Diurutkan (Descending)”<<endl;
for (int a=n; a>=1; a–){
cout<<nilai[a]<<” “;}
getch();
}
hasil :
b.
Selection sort/ pengurutan maksimum – minimum
Metode pengurutan ini didasarkan pada pemilihan elemen maksimum atau
minimum kemudian mempertukarkan elemen maksimum-minimum tersebut dengan elemen
terujung larik (elemen ujung kiri atau elemen ujung kanan), selanjutnya elemen
terujung itu kita “isolasi” dan tidak diikut sertakan pada proses selanjutnya.
Karena proses utama dalam pengurutan adalah pemilihan elemen maksimum/minimum,
maka metode ini disebut metode pemilihan ( selection).
Contoh program :
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
#include <conio.h>
#include <iomanip.h>
int main(){
//deklarasi array dengan 7 elemen
int A[7];
int j,k,i,temp;
int jmax,u=6;
//deklarasi array dengan 7 elemen
int A[7];
int j,k,i,temp;
int jmax,u=6;
//memasukkan nilai sebelum diurutkan
cout<<“Masukkan nilai pada elemen array :”<<endl;
for(i=0;i<7;i++)
{
cout<<“A[“<<i<<“]=”;
cin>>A[i];
}
//Proses pengurutan secara menaik (Ascending)
for(j=0;j<7;j++)
{
jmax=0;
for(k=1;k<=u;k++)
if (A[k] > A[jmax])
jmax=k;
temp=A[u];
A[u]=A[jmax];
A[jmax]=temp;
u–;
}
//menampilkan nilai setelah diurutkan
cout<<“\nNilai setelah diurutkan =”<<endl;
for(i=0;i<7;i++)
cout<<A[i]<<” “;
getch();
cout<<“Masukkan nilai pada elemen array :”<<endl;
for(i=0;i<7;i++)
{
cout<<“A[“<<i<<“]=”;
cin>>A[i];
}
//Proses pengurutan secara menaik (Ascending)
for(j=0;j<7;j++)
{
jmax=0;
for(k=1;k<=u;k++)
if (A[k] > A[jmax])
jmax=k;
temp=A[u];
A[u]=A[jmax];
A[jmax]=temp;
u–;
}
//menampilkan nilai setelah diurutkan
cout<<“\nNilai setelah diurutkan =”<<endl;
for(i=0;i<7;i++)
cout<<A[i]<<” “;
getch();
}
Hasil :
c.
Insection sort / pengurutan sisip
metode pengurutan dengan cara menyisipkan elemen larik pada posisi yang
tepat. Pencarian posisi yang tepat dilakukan dengan pencarian beruntun. Selama
pencarian posisi yang tepat dilakukan pergeseran elemen larik.
Contoh program :
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <stdio.h>
#include <conio.h>
main (){
int i,j, b, k, m, n,x,z,ketemu=0;
int data[‘n’], temp[100];
cout<<“\n======================\n”<<endl;
cout<<“\n—-BELAJAR SORTING—\n”;
cout<<“\n======================\n”<<endl;
cout<<“Inputkan Banyak Data: “;
cin>>n;
for(i=0; i<n; i++){
cout<<“Data Ke-“<<i<<” : “;
cin>>data[i];
}
int i,j, b, k, m, n,x,z,ketemu=0;
int data[‘n’], temp[100];
cout<<“\n======================\n”<<endl;
cout<<“\n—-BELAJAR SORTING—\n”;
cout<<“\n======================\n”<<endl;
cout<<“Inputkan Banyak Data: “;
cin>>n;
for(i=0; i<n; i++){
cout<<“Data Ke-“<<i<<” : “;
cin>>data[i];
}
cout<<“\n\n”;
cout<<“Data Sebelum diurutkan”<<endl;
for(int i=0; i<n; i++){
cout<<i+1<<“.”;
cout<<data[i]<<” “;
cout<<endl;
}
cout<<“Data Sebelum diurutkan”<<endl;
for(int i=0; i<n; i++){
cout<<i+1<<“.”;
cout<<data[i]<<” “;
cout<<endl;
}
for (i=0; i<n; i++){
for (j=0; j<=i; j++)
{
if(data[i]<data[j])
{
m=data[i];
data[i]=data[j];
data[j]=m;
}
}
cout<<“\n#”<<i<<“: “;
for(k=0; k<=i; k++)
{
cout<<” “<<data[k];
}
}
for (j=0; j<=i; j++)
{
if(data[i]<data[j])
{
m=data[i];
data[i]=data[j];
data[j]=m;
}
}
cout<<“\n#”<<i<<“: “;
for(k=0; k<=i; k++)
{
cout<<” “<<data[k];
}
}
cout<<“\n\n”;
cout<<“\nData Setelah Diurutkan (Ascending):”<<endl;
for(i=0; i<n; i++){
cout<<i+1<<” “;
cout<<data[i]<<” “<<endl;}
cout<<“\nData Setelah Diurutkan (Ascending):”<<endl;
for(i=0; i<n; i++){
cout<<i+1<<” “;
cout<<data[i]<<” “<<endl;}
for (i=0; i<n; i++){
for (j=0; j<=i; j++)
{
if(data[i]>data[j])
{
m=data[i];
data[i]=data[j];
data[j]=m;
}
}
cout<<“\n#”<<i<<“: “;
for(k=0; k<=i; k++)
{
cout<<” “<<data[k];
}
}
for (j=0; j<=i; j++)
{
if(data[i]>data[j])
{
m=data[i];
data[i]=data[j];
data[j]=m;
}
}
cout<<“\n#”<<i<<“: “;
for(k=0; k<=i; k++)
{
cout<<” “<<data[k];
}
}
cout<<“\n\n”;
cout<<“\nData Setelah Diurutkan (Descending):”<<endl;
for(i=0; i<n; i++){
cout<<i+1<<“.”;
cout<<data[i]<<” “<<endl;
}
cout<<“\nData Setelah Diurutkan (Descending):”<<endl;
for(i=0; i<n; i++){
cout<<i+1<<“.”;
cout<<data[i]<<” “<<endl;
}
getch();
}
}
hasil :
SUMBER :