RENCANA KULIAH
1. Mengeser elemen aray
Algoritma : mengeser element pada aray baik ke kiri atau ke kananDeklarasi :
public
void cetak
geser kanan
char a [r]
int posisi
Deskripsi:
void array geser kanan
n=r ; integer
int temp : a[n-]
for (int i=n-;i>=0;i--)
a[i+1]=a[i]
a[0]:temp;
Program C++:
#include <iostream>
using namespace std;
class geser{
public:
void kanan (int n, int A[100]);
void kiri (int n,int A[100]);
void hapus (int n, int A[100]);
};
void geser::kanan (int n, int A[100])
{
int temp;
int i;
//int a[100];
temp =A[n];
i =n;
while (1)
{
A[i+1] = A[i];
A[1] = temp;
if ((i==1)) break;
i =i-1;
}
cout << "nilai hasil geser kanan" << endl; i =1;
while (1)
{
cout << A[i] << endl; if ((i==n)) break;
i =i+1;
}
}
void geser::kiri (int n,int A[100])
{
int temp;
int i;
//int a = new int[int+1];
temp =A[1];
i =1;
while (1)
{
if (i==n)
{
A[i] = A[n];
A[n-1] = temp;
}
else
{
A[i] = A[i+1];
A[n-1] = temp;
}
if ((i==n)) break;
i =i-1;
}
cout << "nilai hasil geser kiri" << endl; i =1;
while (1)
{
cout << A[i] << endl; if ((i==n)) break;
i =i+1;
}
}
void geser::hapus (int n, int A[100])
{
string raptor_prompt_variable_zzyz;
int posisi;
int i;
//int[] a = new int[int+1];
raptor_prompt_variable_zzyz ="masukkan posisi yang akan di hapus";
cout << raptor_prompt_variable_zzyz << endl;
cin >> posisi;
if (posisi>0 && posisi<=n)
{
A[posisi] = 0;
}
else
{
cout << "maaf masukan anda di luar range" << endl; }
cout << "nilai hasil hapus" << endl; i =1;
while (1)
{
cout << A[i] << endl; if ((i==n)) break;
i =i+1;
}
}
int main()
{
geser x;
string raptor_prompt_variable_zzyz;
int n;
int i;
int A[100];
raptor_prompt_variable_zzyz ="input banyak elemen : ";
cout << raptor_prompt_variable_zzyz;
cin >> n;
i =1;
while (1)
{
raptor_prompt_variable_zzyz ="masukkan elemen : ";
cout << raptor_prompt_variable_zzyz;
cin >> A[i];
if ((i==n)) break;
i =i+1;
}
cout << "nilai awal" << endl; i =1;
while (1)
{
cout << A[i] << endl; if ((i==n)) break;
i =i+1;
}
x.kanan(n,A);
//x.kiri(n,A); ->> yg ini masih eror
x.hapus(n,A);
cout<<endl;
return 0;
}
Kasus di PPT :
6.1 Mencari rata-rata n mengunakan aray
Algoritma :
mencari rata-rata dari sekumpulan data pada aray
Deklarasi :
n[max],rata-rata,jum : float
Deskripsi :
jum=0
for(int j=1;j<=max;j++)
read (n[j])
jum=jum+n[j]
end for
rata-rata=jum/max
write (rata-rata)
6.1 Mencari rata-rata n mengunakan aray
Algoritma :
mencari rata-rata dari sekumpulan data pada aray
Deklarasi :
n[max],rata-rata,jum : float
Deskripsi :
jum=0
for(int j=1;j<=max;j++)
read (n[j])
jum=jum+n[j]
end for
rata-rata=jum/max
write (rata-rata)
Program C++:
#include <iostream>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
class HitungRata{
friend ostream& operator<<(ostream&, HitungRata&);
friend istream& operator>>(istream&, HitungRata&);
public:
float rata();
private:
int n;
int A[20];
};
istream& operator>>(istream& in,HitungRata& a){
cout<<"Banyaknya data : ";
in>>a.n;
for(int i=0;i<a.n;i++){
cout<<"Masukkan data ke-: "<<i+1<<">";
in>>a.A[i];
}
return in;
}
float HitungRata::rata(){
float total=0;
for(int i=0;i<n;i++)total=total+A[i];
return(total/n);
}
ostream& operator<<(ostream& out,HitungRata& a){
out<<"Rata-rata dari "<<a.n<<" bilangan adalah : "<<a.rata()<<endl;
return out;
}
main()
{
HitungRata run;
cin>>run;
cout<<run;
return 0
;
}
//KASUS 6.2 Carilah nilai deviasi standar dari n buah data.
Algoritma : mencari devvasi nilai pada aray berdasarkan inputan n
Deklarasi :
i,jumlah : integer
Deskripsi :
jumlah ß 0
for i ß 1 to n do
jumlah ß jumlah + sqr(x[i]-rata)
endfor
std ß sqrt(jumlah/(n-1))
Program C++ :
#include <iostream>
#include <math.h>
using namespace std;
class HitungStatistik{
friend ostream& operator<<(ostream&, HitungStatistik&);
friend istream& operator>>(istream&, HitungStatistik&);
float rata();
float STD();
long sqr(int n) { return(n*n);}
int n;
int A[20];
};
istream& operator>>(istream& in, HitungStatistik& a)
{
cout<<"Banyaknya data : ";
cin>>a.n;
for (int i = 0; i < a.n; i++)
{
cout<<"Masukan data ke- :"<<i+1<<">";
cin>>a.A[i];
}
return in;
}
float HitungStatistik::rata()
{
float total=0;
for (int i = 0; i<n; i++) total = total + A[i];
return(total/n);
}
float HitungStatistik::STD ()
{ float rerata = rata();
float jumlah=0.0;
for (int i = 0; i<n; i++)
jumlah = jumlah + sqr(A[i] - rerata);
return(sqrt (jumlah/(n-1)));
}
ostream& operator<<(ostream& out, HitungStatistik& a) {
cout << "Rata-rata dari " << a.n
<< " bilangan adalah : " << a.rata() << endl;
cout << "Standar deviasi= " << a.STD();
return out;
}
main() {
HitungStatistik run;
cin >> run;
cout << run<<endl;
return 0;
}
Di kelompok saya (6.3,6.4,6.5,6.6)
DIKTAT BAB 7
1. Menyisipkan kata
Sorce code:
#include <iostream>
#include <string.h>
#include <cstdlib>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main(int argc, char** argv)
{
string a,b;int c;
cout<<"kalimat pertama : ";
getline(cin, a);
cout<<"kalimat kedua : ";
cin>>b;
cout<<a<<endl;
cout<<"Menyisipkan kata pada karakter ke : ";cin>>c;
a.insert(c, b+" ");
cout<<a;
return 0;
}
2. String bergantian huruf besar dan kecil
#include <iostream>
#include <string.h>
#include <conio.h>
using namespace std;
int main()
{
int i,jum;
char string[100];
cout<<"Masukan sembarang kalimat:\n";
cin.getline(string,100); //membaca spasi
//mengubah huruf awal menjadi huruf kapital
if((string[0]>='a')&& (string[0]<='z'))
string[0]=(char)string[0]-32;
//mengubah huruf setelah huruf awal menjadi huruf kecil
jum=1;int d=0;
for(i=0;i<(int)strlen(string);i++)
{
if(i%2==0){
if((string[jum]>='A')&& (string[jum]<='Z'))
string[jum]=(char)string[jum]+32;
jum++;}
}
//mengubah huruf setelah spasi menjadi huruf kapital
for(i=1;string[i]!='\0';i++)
{
if(string[i]==' ') d++;
if((i-1-d)%2==0)
{
if(string[i+1]>='a' && string[i+1]<='z')
string[i+1]=(char)(string[i+1]-32);
}
}
cout<<"Hasil Akhir : "<<string<<endl;
getch();
}
3. Menghitung Kata Dalam Sebuah Kalimat
#include<stdio.h>
#include<iostream>
#include<ctype.h>
using namespace std;
int main()
{
char kalimat[100];
int i, spasi=0;
cout << "\n\t\t - Program Menghitung Kata Dalam Sebuah Kalimat -\n";
cout << "\t==================================================================\n\n";
cout << "\t Masukan Sebuah Kalimat : ";
cin.getline(kalimat, sizeof(kalimat));
for(i=0; kalimat[i]; i++)
{
if(isspace (kalimat[i]) || ispunct (kalimat[i]))
{
spasi++;
}
}
cout << "\t Jumlah Kata = " << spasi +1 << "\n\n";
cout << "\t Kata yang anda masukan adalah : \n";
cout << "\t ";
for(i=0; kalimat[i]; i++)
{
if(isspace (kalimat[i]) || ispunct (kalimat[i]))
{
spasi++;
cout << "\n";
cout << "\t";
}
cout << kalimat[i];
}
cout << "\n";
cout << "\t==================================================================\n\n";
cout << "\n";
getchar();
}
no 4 di kelompok saya
LATIHAN
1. Buatlah algoritma dan subprogram yang cara kerjanya seperti function pos di atas.
2. Menghitung panjang karakter tanpa strlen
Sorce code:
#include <iostream>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main(int argc, char** argv) {
string a;
cout<<"Masukkan Kalimat : ";getline(cin,a);
cout<<a<<endl;
cout<<"Panjang Karakter : "<<a.size();
return 0;
}
3. Kapitalisasi huruf dengan inputan kalimat
#include <iostream>
#include <string.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main(int argc, char** argv)
{
string a;
cout<<"masukkan kalimat : ";
getline(cin,a);
int b = a.length();
cout<<"dalam bentuk kapital : ";
for(int c=0;c<=b;c++)
{
a[c]=toupper(a[c]);
cout<<a[c];
}
cout<<endl;
cout<<"dalam bentuk huruf kecil : ";
for(int d=0;d<=b;d++)
{
a[d]=tolower(a[d]);
cout<<a[d];
}
cout<<endl;
return 0;
}
HOW TO SOLVE
4.1 Array Order Reversal
Algritma :
· Array A yang bertipe integer diisi dengan nilai {5, 10, 6, 0, 4}
· Array B yang bertipe integer diisi dengan nilai {0, 0, 0, 0, 0}
· Baris perulangan untuk menampilkan nilai dari array A.
· Proses untuk mengisi array B dengan nilai yang dibalik.
· Menampilkan output nilai dari array B.
Progrsm C++:
#include <iostream>
#include <stdlib.h>
using namespace std;
int main(void)
{
int A[5] = {5, 10, 6, 0, 4};
int B[5] = {0, 0, 0, 0, 0};
int i;
// Nilai array A integer
cout<<"Nilai dari array A: ";
for(i=0; i<5; i++){
cout<<A[i];
}
//
for(i=0; i<5; i++){
B[4-i] = A[i];
}
// Output
cout<<"\n";
cout<<"Nilai dari array B hasil dari membalikkan nilai array A :\n";
for(i=0; i<5; i++){
cout<<B[i];
}
cout<<"\n";
system("pause");
return(0);
}
#include <stdlib.h>
using namespace std;
int main(void)
{
int A[5] = {5, 10, 6, 0, 4};
int B[5] = {0, 0, 0, 0, 0};
int i;
// Nilai array A integer
cout<<"Nilai dari array A: ";
for(i=0; i<5; i++){
cout<<A[i];
}
//
for(i=0; i<5; i++){
B[4-i] = A[i];
}
// Output
cout<<"\n";
cout<<"Nilai dari array B hasil dari membalikkan nilai array A :\n";
for(i=0; i<5; i++){
cout<<B[i];
}
cout<<"\n";
system("pause");
return(0);
}
4.2 Array Counting or Hishistogramming
Algoritma :
Deklarasi banyak,i,x
array int nilai [20]
deklarasi string nama
inputkan banyak mahasiswa
for (int i=1;i<=banyak;i++){
input nama;
input nilai mahasiswa i
if (nilai[20]>=80 || nilai[20]<=100)
ceta nilai = A
else if (nilai[20]>=60 || nilai[20]<80)
cetak nilai = B
else if (nilai[20]>=40 || nilai[20]<60)
cetak nilai = C
else if (nilai[20]>=20 || nilai[20]<40)
cetak nilai = D
else if (nilai[20]>=0 || nilai[20]<20)
cetak nilai = E
end for
Program C++:
#include <iostream>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main(int argc, char** argv) {
int banyak, i,x;
int nilai[20];
string nama;
cout<<"Masukan Banyak Mahasiswa :"; cin>>banyak;
for (int i=1;i<=banyak;i++){
cout<<"nama Mahasiswa :";cin>>nama;
cout<<"Masukan nilai :";cin>>nilai[20];
if (nilai[20]>=80 || nilai[20]<=100){
cout<<"\n Nilai "<<nilai[20]<<"Adalah A";
}
else if (nilai[20]>=60 || nilai[20]<80){
cout<<"\n Nilai "<<nilai[20]<<"Adalah B";
}
else if (nilai[20]>=40 || nilai[20]<60){
cout<<"\n Nilai "<<nilai[20]<<"Adalah C";
}
else if (nilai[20]>=20 || nilai[20]<40){
cout<<"\n Nilai "<<nilai[20]<<"Adalah D";
}
else if (nilai[20]>=0 || nilai[20]<20){
cout<<"\n Nilai "<<nilai[20]<<"Adalah E";
}
cout<<"\n========================================================================\n";
}
return 0;
}
4.3 Finding the Maximum Number in a set
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
int main(int argc, char *argv[])
{
int a,b,c,d,bersih,pokok,pajak;
int pendapatan,beban;
int laba_usaha,laba_kotor,laba_sebelum_pajak,laba_bersih;
cout<<"|====================================================|\n";
cout<<"| |\n";
cout<<"| Program Untuk Mencari Laba Usaha |\n";
cout<<"| |\n";
cout<<"|====================================================|\n";
cout<<"| Mencari Pendapatan |\n";
cout<<"|----------------------------------------------------|\n";
cout<<"| Masukkan pendapatan usaha : ";cin>>a;
cout<<"| Masukkan pendapatan di luar usaha : ";cin>>b;
pendapatan=a+b;
cout<<"| Jumlah pendapatan usaha : "<<pendapatan<<"\n";
cout<<"|----------------------------------------------------|\n";
cout<<"| Mencari Beban |\n";
cout<<"|----------------------------------------------------|\n";
cout<<"| Masukkan beban usaha \t\t: ";cin>>c;
cout<<"| Masukkan beban di luar usaha : ";cin>>d;
beban=c+d;
cout<<"| Jumlah beban \t\t\t: "<<beban<<"\n";
cout<<"|----------------------------------------------------|\n";
cout<<"| Mencari Laba |\n";
cout<<"|----------------------------------------------------|\n";
cout<<"| Masukkan penjualan bersih : ";cin>>bersih;
cout<<"| Masukkan harga pokok \t: ";cin>>pokok;
cout<<"| Masukkan pajak \t\t: ";cin>>pajak;
cout<<"|----------------------------------------------------|\n";
cout<<"| Hasil Laba |\n";
cout<<"|----------------------------------------------------|\n";
laba_kotor=bersih-pokok;
cout<<"| Laba Kotor \t\t: "<<laba_kotor<<"\n";
laba_usaha=laba_kotor-c;
cout<<"| Laba Usaha \t\t: "<<laba_usaha<<"\n";
laba_sebelum_pajak=laba_usaha+(b-d);
cout<<"| Laba Sebelum Usaha : "<<laba_sebelum_pajak<<"\n";
laba_bersih=laba_sebelum_pajak-(pajak*15/100);
cout<<"| Laba Bersih \t\t: "<<laba_bersih<<"\n";
cout<<"|====================================================|\n";
system("pause");
return 0;
}
4.4 Removal of Duplicates from an Ordered Array
#include <iostream>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main(int argc, char** argv) {
int a[20],n;
cout<<"Batas : ";
cin>>n;
for (int i=0;i<n;i++){
cout<<"Data : ";
cin>>a[i];
}
for (int i=0;i<n;i++){
if(a[i]==a[i+1])
cout<<a[i];
else if(a[i-1]==a[i])
cout<<"";
else if(a[i]==a[i+2])
cout<<a[i];
else if(a[i-2]==a[i])
cout<<"";
else if(a[i]==a[i+3])
cout<<a[i];
else if(a[i-3]==a[i])
cout<<"";
else if(a[i]==a[i+4])
cout<<a[i];
else if(a[i-4]==a[i])
cout<<"";
else if(a[i]==a[i+5])
cout<<a[i];
else if(a[i-5]==a[i])
cout<<"";
else
cout<<a[i];
}
/* for (int i=0;i<n;i++){
cout<<a[i]<<" ";
}*/
return 0;
}
4.5 Partitioning an Array
4.5.1
#include <iostream>
#include <stdio.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main() {
int n, *arr, onee = 0, twoo, threee, total = 0, maxx = -1, temp_maxx;
cin >> n;
arr = new int[n];
for (int i = 0; i < n; i++) {
cin >> arr[i];
total += arr[i];
}
// O(n^2) is the following
for (int i = 1; i < n - 1; i++) {
onee += arr[i - 1];
twoo = 0;
for (int j = i + 1; j < n; j++) {
twoo += arr[j - 1];
threee = total - twoo - onee;
temp_maxx = max(max(onee, twoo), threee);
if ((temp_maxx < maxx) || (maxx == -1))
maxx = temp_maxx;
}
}
cout << maxx;
return 0;
}
4.5.2
var
A; array[1..100] of interger;
i: integer;
begin
for i:=1 to 100 do
begin
A[1]:=i;
end;
End.
4.5.3
#include <iostream>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
//Bucket Sort
void bucket_sort (int arr[], int n)
{
//Here range is [1,100]
int m = 101;
//Create m empty buckets
int buckets[m];
//Intialize all buckets to 0
for (int i = 0; i < m; ++i)
buckets[i] = 0;
//Increment the number of times each element is present in the input
//array. Insert them in the buckets
for (int i = 0; i < n; ++i)
++buckets[arr[i]];
//Sort using insertion sort and concatenate
for (int i = 0, j = 0; j < m; ++j)
for (int k = buckets[j]; k > 0; --k)
arr[i++] = j;
}
//Driver function to test above function
int main()
{
int input_ar[] = {10, 24, 22, 62, 1, 50, 100, 75, 2, 3};
int n = sizeof (input_ar) / sizeof (input_ar[0]);
bucket_sort (input_ar, n);
cout << "Sorted Array : " << endl;
for (int i = 0; i < n; ++i)
cout << input_ar[i] << " ";
return 0;
}
4.6.1
#include <stdio.h>
#include<iostream>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
main() {
int x;
int y;
cout<<"\nMasukkan bilangan ke- 1 :";
cin>>x;
cout<<"Masukkan bilangan ke-2 :";
cin>>y;
if(x>y){
cout<<"lebih besar dari pada\n\n ";cin>>x,y;
}else if(x=y){
cout<<"sama besar dengan\n\n";cin>>x,y;
}else{
cout<<"lebih kecil dari pada\n\n";cin>>x,y;
}
return 0;
}
4.6.2
Aloritma :
algoritma;
1.n < - bilangan
2.untuk i=0
Masukkan data [i];
ulang selama i<n;
untuk a= 0
untuk b = n-1
jika data [b]< data [b-1] maka tukar data
.....
Akhir jika
b--1;
akhir untuk
tampilan data [i];
a++;
akhir untuk
3. keluar
Program C++:
#include<iostream>
#include<iomanip>
using namespace std;
main()
{
int byk, htg=1, tmp, data[15];
cout << "Banyak data : ";
cin >> byk;
for(int i=0; i<byk; i++)
{
cout << "Masukkan data ke-"<<i<<" : ";
cin >> data[i];
}
endl(cout);
cout<<"data diurut (Naik): ";
for(int a=0; a<byk; a++)
{
for(int b=byk-1; b>=a; b--)
{
if(data[b]<data[b-1])
{
tmp = data[b];
data[b] = data[b-1];
data[b-1] = tmp;
}
}
cout<<data[a]<<" ";
}
cout<<"\nData diurut (Turun) : ";
for(int i=byk-1; i<=0; i--)
{
for(int h=0; h<i; h++)
{
if(data[h] > data[h+1])
{
tmp = data[h];
data[h] = data[h+1];
data[h+1] = tmp;
}
}
cout<<data[i]<<" ";
}
cout<<"\n"<<endl;
return 0;
}
SELESAI
ConversionConversion EmoticonEmoticon