Anda di halaman 1dari 4

Tugas PPG Lokakarya 1 Gelombang 3 Kelas B

1. Buatlah sebuah program untuk menampilkan urutan angka ganjil kelipatan 7.


Deret angka menyesuaikan batas akhir yang dimasukkan user
Contoh: user memasukkan N = 30, maka outputnya = 7 21
user memasukkan N = 15, maka outputnya = 7 dst
Jawaban :

#include <iostream>
using namespace std;

int main() {
myLabel: int n = 0; char ulang;

cout<<"|===========================|"<<endl;
cout<<"|----------SOAL 1-----------|"<<endl;
cout<<"|----PROGRAM KELIPATAN 7----|"<<endl;
cout<<"|===========================|\n"<<endl;

cout<<"Masukkan Batas = "; cin>>n;


if (n<7) cout<<"Batas tidak boleh < 7"<<endl;
for (int bil=1; bil<=n; bil++) {
if ((bil%7==0)&&(bil%2!=0)) {
cout<<bil<<" ";
}
}
cout<<endl;

cout<<"\nUlang program ? (Y/t) : "; cin>>ulang;


if (ulang == 'Y' || ulang == 'y') {
system("cls");
goto myLabel;
} else {

}
system("cls");
cout<<"TERIMA KASIH !"<<endl;
return 0;
}

2. Buatlah sebuah program untuk menggeser satu posisi ke arah kanan susunan
elemen array 1 dimensi, sehingga elemen paling kanan akan menjadi elemen
pertama
Contoh: diberikan input T = [6 8 4 0 2], maka outputnya T = [2 6 8 4 0]
Jawaban :

#include <iostream>
using namespace std;
main(){
int i,arr[10],N,temp;
cout<<"|===============================|"<<endl;
cout<<"|------------SOAL 2-------------|"<<endl;
cout<<"|----PROGRAM MENGGESER ARRAY----|"<<endl;
cout<<"|===============================|\n"<<endl;

cout<<"Jumlah Data = "; cin>>N;


for (i=0;i<N;i++){
cout<<"Data Ke-["<<i+1<<"] : ";
cin>>arr[i];
}
for(i=0;i<N;i++) cout<<arr[i]<<" "; cout<<endl;
temp=arr[N-1];
for(i=N-1;i>=0;i--)
arr[i]=arr[i-1];
arr[0]=temp;
cout<<"Setelah Digeser"; cout<<endl;
for (i=0;i<N;i++) cout<<arr[i]<<" ";
}
3. Buatlah sebuah program untuk menghitung nilai rata-rata dari nilai maksimum
dan minimum sebuah array 1 dimensi
Contoh: terdapat array T = [4 3 8 1 9]; nilai maksimumnya = 9 dan nilai
minimumnya = 1; maka rata-ratanya adalah 5 (diperoleh dari (9+1)/2)
Jawaban :

#include <iostream>
using namespace std;
int main() {
myLabel: double max = 0.0, min = 0.0, rata2 = 0.0;
int banyak = 0;
char ulang;
cout<<"|===========================================|"<<endl;
cout<<"|-------------------SOAL 3------------------|"<<endl;
cout<<"|----PROGRAM RATA-RATA MAX dan MIN ARRAY----|"<<endl;
cout<<"|===========================================|\n"<<endl;
cout<<"Masukkan Banyak Data : "; cin>>banyak;
double data[banyak];
for (int i=0; i<banyak; i++) {
cout<<"Nilai ke-"<<(i+1)<<" = "; cin>>data[i];
}
// Inisialisasi variabel max dan min.
max = data[0];
min = data[0];
// Proses pencarian nilai terbesar dan terkecil.
for (int i=0; i<banyak; i++) {
if (data[i] > max) {
max = data[i];
} if (data[i] <min) {
min = data[i];
}
}
// Menghitung rata-rata
rata2 = (max + min) / 2;
cout<<"\nInput Nilai = [";
for (int i=0; i<banyak; i++) {
cout<<data[i]<<((i<banyak-1) ? ", " : "]\n");
}
cout<<"Nilai Maksimum = "<<max<<endl;
cout<<"Nilai Minimum = "<<min<<endl;
cout<<"Rata-Rata = "<<rata2<<endl;
cout<<"\nUlang program ? (Y/t) : "; cin>>ulang;
if (ulang == 'Y' || ulang == 'y') {
system("cls");
goto myLabel;
} else {
system("cls");
cout<<"TERIMA KASIH !"<<endl;
}
return 0;
}
4. Buatlah sebuah program untuk menampilkan posisi elemen nilai maksimum yang
pertama kali ditemukan dari sebuah array 1 dimensi
Contoh: jika diberikan input T = [3 4 5 2 7 9 0], maka outputnya 6
jika diberikan input T = [3 4 9 2 7 9 0], maka outputnya 3
jika diberikan input T = [3], maka outputnya 1
Jawaban :

#include <iostream>
using namespace std;
main(){
int i,arr[10],N,max,imax;
char lagi='y';

cout<<"|=========================================|"<<endl;
cout<<"|-----------------SOAL 4------------------|"<<endl;
cout<<"|----PROGRAM MENAMPILKAN POSISI ELEMEN----|"<<endl;
cout<<"|=========================================|\n"<<endl;

do {
system("cls");
cout<<"Jumlah Data = "; cin>>N;
for (i=0;i<N;i++){
cout<<"Data["<<i+1<<"] : ";
cin>>arr[i];
}
max=-999;imax=-1;
for(i=0;i<N;i++) cout<<arr[i]<<" ";
for(i=0;i<N;i++)
if (max<arr[i]) {
max=arr[i];
imax=i;
};
cout<<" || Posisi Nilai Max Berada di Data Ke- "<<imax+1;
cout<<endl;
cout<<"Mau Hitung Lagi ? y/t : "; cin>>lagi;
} while (lagi=='y');
}

5. Buatlah sebuah program untuk menghitung rata-rata nilai maksimum dan


minimum dari sebuah array 2 dimensi (Hint: rata-rata = (nilai_maks +
nilai_min)/2)
Contoh: input T = 1 2 3
4 5 6
7 8 9
maka rata-ratanya = 5 (maks = 9, min = 1 --> (9+1)/2)
Jawaban :

#include <iostream>
using namespace std;
main(){
int arr[10][10],i,j,baris,kolom,max,min;
char lagi='y';
do {
system("cls");

cout<<"|===============================|"<<endl;
cout<<"|------------SOAL 5-------------|"<<endl;
cout<<"|----PROGRAM ARRAY 2 DIMENSI----|"<<endl;
cout<<"|===============================|\n"<<endl;

cout<<"Jumlah Baris = "; cin>>baris;


cout<<"Jumlah Kolom = "; cin>>kolom;
for (i=0;i<baris;i++){
for (j=0;j<kolom;j++){
cout<<"Nilai Array ["<<i<<"]["<<j<<"] ";
cin>> arr[i][j];
}
}
max=-999;
min=999;
for (i=0;i<baris;i++){
for (j=0;j<kolom;j++){
cout<<arr[i][j]<< " ";
if (max<arr[i][j]) max=arr[i][j];
if (min>arr[i][j]) min=arr[i][j];
}
cout<<endl;
}
cout<<endl<<"Rata-Rata = "<<(float) (max+min)/2;
cout<<endl;
cout<<"Mau Hitung Lagi ? y/t : "; cin>>lagi;
} while (lagi=='y');
}