Jumat, 16 Juni 2017

WORKSHOP LATIHAN BAB 10 ALPRO

Assalamualaikum Warrohatullahi Wabbarokatuh !

 Ini adalah postingan terakhir saya untuk tugas workshop ALPRO, BAB ini adalah soal terakhir untuk tugas workshop diktat ALPRO.
Oke langsung saja pada soalnya.

Latihan
Modifikasilah struktur data dari algoritma 9.1. dan algoritma 9.2. sehingga sesuai dengan tabel di bawah ini dengan menggunakan link list.

 NO
 NIM
 NAMA
 UJIAN
 NILAI
 MID
 AKHIR
 TOTAL
 HURUF
 1
  990510001
Khoirul Anam
 80
 95
 90
 A
 2
  990510002
Siti Rohmah
 45
30 
35 
 D
 3
990510003
Nur Rohmah
 50
50 
50 
 C
 4
  990510004
Agus Muhammad 
 90
60 
70 
 B
 5
  990510005
Nur Iskandar
 40
10 
20 
 E



1.       Identifikasi Masalah
→Modifikasi struktur data dari algoritma 9.1. dan algoritma 9.2. sehingga sesuai dengan
tabel di atas dengan menggunakan link list.

1.       Menentukain input dan output
→input                 :Nama
                             Nim
                             Nilai

→output             :Nilai Huruf adalah
                     


2.       Membuat Algoritma atau Flowchart
Algoritma
Deklarasi:
                Nama[30]                            :karakter
                Nim[10]                               :karakter
                Nilai                                     :integer
Deskripsi:
while when lagi=='Y' then lagi=='y'
    while (cetak !=NULL)
if when cetak->Nilai>=0 and cetak->Nilai<20
E
else if when cetak->Nilai>=20 and cetak->Nilai<40
else if when cetak->Nilai>=40 and cetak->Nilai<60
C
else if when cetak->Nilai>=60 and cetak->Nilai<80
B
Else
A
cetak=cetak->berikut
end if
end while
end while


3.       Test menggunakan data
→input                 :Nama adalah

             Khoirul Anam
             Siti Zulaiha
             Nur Rohmah
             Agus Mhammad
             Nur Iskandar


          Nim adalah
990510001

990510002
990510003
990510004
990510005 

         Nilai adalah


              95
              30
              50
              80
              10

→output             : Nilai Huruf adalah


            A
            D
            C
            B
            E


4.       Source Code
#include <iostream>
#include <conio.h>
#include <windows.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
class Mhs{
                public:
                                void Buat_berikut_list();
                                char Nama[30];
                                char Nim[10];
                                int Nilai;
                             
                                Mhs *berikut;
};
void Mhs::Buat_berikut_list(){
                Mhs *Ptr_Kepala = NULL;
                Mhs *Ptr_Baru;
                char lagi;
                do{
                                Ptr_Baru= new Mhs;
                                cout<<"\nNama Mahasiswa : ";
                                cin>>Ptr_Baru->Nama;
                                cout<<"\nNim Mahasiswa : ";
                                cin>>Ptr_Baru->Nim;
                                cout<<"\nNilai Mahasiswa : ";
                                cin>>Ptr_Baru->Nilai;
                                Ptr_Baru->berikut=Ptr_Kepala;
                                Ptr_Kepala=Ptr_Baru;
                             
                                cout<<"Tambah (y/t) : ";
                                cin>>lagi;
                             
                } while (lagi=='Y' || lagi=='y');
                system("cls");
                cout<<"\nAnda telah memasukkan data : "<<endl;
                Mhs *cetak= Ptr_Kepala;
                cout<<"Nama \t\t Nim \t\t Nilai Angka \t\t Nilai Huruf"<<endl;
                while (cetak !=NULL){
                                cout<<cetak->Nama<<" \t\t"<<cetak->Nim<<" \t\t"<<cetak->Nilai<<" \t\t";
                             
                                if (cetak->Nilai>=0&&cetak->Nilai<20)
                                cout<<"E"<<endl;
                                else if(cetak->Nilai>=20&&cetak->Nilai<40)
                                cout<<"D"<<endl;
                                else if(cetak->Nilai>=40&&cetak->Nilai<60)
                                cout<<"C"<<endl;
                                else if(cetak->Nilai>=60&&cetak->Nilai<80)
                                cout<<"B"<<endl;
                                else
                                cout<<"A"<<endl;
                                cetak=cetak->berikut;
                }
}
int main(int argc, char** argv) {
                Mhs *simpul;
                simpul->Buat_berikut_list();
                getch();
}

HASIL OUTPUT :

WORKSHOP ALPRO BAB 9

 Assalamualaikum Warrohmatullahi Wabbarokatuh !

   Kembali lagi pada postIngan saya, kali ini saya akan memposting tugas workshop ALPRO pada BAB 9. Pada BAB ini terdapat 5 soal latihan saya sendiri mengerjakan soal latihan no 1-2, dan sisanya dikerjakan oleh petner kelompok saya.

SOAL NO 3-4 dikerjakan oleh : Amrullahahmad1600018014.blogspot.com
SOAL NO 3-4 dikerjakan oleh : Ardaris.blogspot.com

1. Buatlah algoritma dan program untuk mengalikan matriks dengan vektor. Vektor adalah
    matriks berdimensi satu (bisa matriks baris maupun matriks kolom). Implementasikan
    matriks dengan array berdimensi dua, dan vektor dengan menggunakan matriks
    berdimensi satu.

     a. Buat contoh matriks sembarang, misal berordo 2x2 :
     b. Buat contoh vektor :
     c. Kalikan matriks poin a dan vektor poin b elemen demi elemen. Jangan menuliskan hasil
        akhir saja, tapi tuliskan pula perkalian (dan penjumlahan) setiap elemen.
    d. Identifikasilah dan kelompokkan setiap langkah dengan variabel perulangan !
    e. Tulis lengkap algoritma yang anda peroleh :

   Dev c++ :


2. Diberikan suatu matriks berordo n. Buatlah algoritma dan program untuk mencetak
    matriks identitas berodo n.

Dev c++ :

WORKSHOP ALPRO BAB 8

 Assalamualaikum warrohmatullahi wabbarokatuh.

    Pada postingan kali ini saya akn memposting kelanjutan dari workshop Algoritma pemrograman yaitu pada BAB 8. Workshop dikerjakan seperti biasanya yaitu dkerjakan secara berkelompok yang dimana soalnya akan dibagi secara merata,berikut adalah hasil pekerjaanya.

NO.1-4 Ardaris.blogspot.com
NO.5-7  Amrullahahmad1600018014.blogspot.com

8. Mari kita lihat daftar nomor dari sebuah array untuk melihat bagaimana cara merge sort bekerja :
32 12 5 18 31 4 25 7
[0] [1] [2] [3] [4] [5] [6] [7]
Lakukan sorting dari data dalam array di atas menggunakan merge sort sehingga nomor kecil berada paling depan samapai yang paling besar berada paling belakang !
Analisis:
[ 32, 12, 5, 18, 31, 4, 25, 7 ]

Source Code:
#include <iostream>
#include <conio.h>
using namespace std;
int a[50];
void merge(int,int,int);
void merge_sort(int low,int high)
{
 int mid;
 if(low<high)
 {
  mid=(low+high)/2;
  merge_sort(low,mid);
  merge_sort(mid+1,high);
  merge(low,mid,high);
 }
}
void merge(int low,int mid,int high)
{
 int h,i,j,b[50],k;
 h=low;
 i=low;
 j=mid+1;
 while((h<=mid)&&(j<=high))
 {
  if(a[h]<=a[j])
  {
   b[i]=a[h]; h++;
  }
  else
  {
   b[i]=a[j]; j++;
  } i++;
 }
 if(h>mid)
 {
  for(k=j;k<=high;k++)
  {
   b[i]=a[k]; i++;
  }
 }
 else
 {
  for(k=h;k<=mid;k++)
  {
   b[i]=a[k]; i++;
  }
 }
 for(k=low;k<=high;k++)
  a[k]=b[k];
}
int main()
{
 int num,i,b;
 cout<<"***************************"<<endl;
 cout<<" MERGE SORT PROGRAM "<<endl;
 cout<<"***************************"<<endl;
 cout<<endl<<endl;
 cout<<"Masukkan Banyak Bilangan: ";cin>>num;
   cout<<endl;
 cout<<"Sekarang masukkan "<< num <<" Bilangan yang ingin Diurutkan :"<<endl;
 for(b=1;b<=num;b++)
 {
  cout<<"Bilangan ke-"<<b<<" : ";cin>>a[b] ;
 }




 merge_sort(1,num);
 cout<<endl;
 cout<<"Hasil akhir pengurutan :"<<endl;
 cout<<endl;
 for(i=1;i<=num;i++)
  cout<<a[i]<<" ";
 cout<<endl<<endl<<endl<<endl;

   getch();
}

Dev C++:
 
 LANJUTAN :

LANJUTAN :


HASIL OUTPUT :


9.Ada beberapa kumpulan data sebagai berikut : 2 8 3 5 6 4 11 1 9 Urutkan kumpulan data di atas menggunakan quick sort serta gambarkan step by step dari sorting tersebut Source Code:

 # include <iostream>
# include <iomanip> # include <conio.h> using namespace std;
void q_sort(int[],int,int);
int main () {
 int NumList[9]={2,8,3,5,6,4,11,1,9};

 cout<<" Data Sebelum diurutkan: \n";
 for(int d=0;d<9;d++)
 {
 cout<<setw(3)<<NumList[d];
 }
 cout<<"\n\n";
 q_sort(NumList,0,9);
 cout<<" Data setelah diurutkan: \n";
 for(int iii=0;iii<9;iii++)
 cout<<setw(3)<<NumList[iii]<<endl<<endl;

 getch();
}
void q_sort(int numbers[],int left,int right) {
 int pivot,l_hold,r_hold;
 l_hold=left;
 r_hold=right;
 pivot=numbers[left];
 while(left<right)
 {
 while((numbers[right]>=pivot)&&(left<right))
 right--;
 if(left!= right)
 {
 numbers[left]=numbers[right];
 left++;
 }
 while((numbers[left]<=pivot)&&(left<right))
 {
 left++;
 }
 if (left!=right)
 {
 numbers[right]=numbers[left];
 right--;
 }
 }
 numbers[left]=pivot;
 pivot=left;
 left=l_hold;
 right=r_hold;
 if(left<pivot)
 q_sort(numbers,left,pivot-1);
 if(right>pivot)
 q_sort(numbers,pivot+1,right);
 }

Dev C++:
 
lanjutan :
 
HASIL OOUTPUT :
 

10. Urutkan data yaitu [2 8 7 1 3 5 6 4] dengan menggunakan Quick Sort, agar elemen terkecil berada paling depan (urutan pertama), semakin ke belakang semakin besar !  Source Code: # include <iostream> # include <iomanip> # include <conio.h> using namespace std; void q_sort(int[],int,int);
int main () {
 int NumList[8]={2,8,7,1,3,5,6,4};

 cout<<" Data Sebelum diurutkan: \n";
 for(int d=0;d<8;d++)
 {
 cout<<setw(3)<<NumList[d];
 }
 cout<<"\n\n";
 q_sort(NumList,0,8);
 cout<<" Data setelah diurutkan: \n";
 for(int iii=0;iii<8;iii++)
 cout<<setw(3)<<NumList[iii];

 getch();
}
void q_sort(int numbers[],int left,int right) {
 int pivot,l_hold,r_hold;
 l_hold=left;
 r_hold=right;
 pivot=numbers[left];
 while(left<right)
 {
 while((numbers[right]>=pivot)&&(left<right))
 right--;
 if(left!= right)
 {
 numbers[left]=numbers[right];
 left++;
 }
 while((numbers[left]<=pivot)&&(left<right))
 {
 left++;
 }
 if (left!=right)
 {
 numbers[right]=numbers[left];
 right--;
 }
 }
 numbers[left]=pivot;
 pivot=left;
 left=l_hold;
 right=r_hold;
 if(left<pivot)
 q_sort(numbers,left,pivot-1);
 if(right>pivot)
 q_sort(numbers,pivot+1,right);
 }

Dev C++:
 
Lanjutan :


 HASIL OUTPUT :

WORKSHOP ALPRO PERTEMUAN 7

  NO.1 Dikerjakan Oleh Amrullahahmad1600018014.blogspot.com
 N0.2 Dikerjakan Oleh Ardaris.blogspot.com
 
NO. 3
Buatlah algoritma dan program untuk menghitung jumlah kata dalam suatu kalimat.

=> Algoritma  : "Program menghitung jumlah kata dalam suatu kalimat"
     Deklarasi   :
                           kalimat[100] = karakter
                           i, spaci    =     integer
     Deskripsi   :
                           "  Masukan Sebuah Kalimat "kalimat,sizeof(kalimat);
                           for   i=0  then  kalimat[i]  then   i++;
                                if    isspace (kalimat[i])  and   ispunct (kalimat[i]);
                                    spasi++;
                                end if;
                           " Jumlah Kata"
                                 spasi +1 
                           " Kata yang anda masukan adalah";
                           for   i=0 then  kalimat[i] then  i++
                                if(isspace (kalimat[i]) || ispunct (kalimat[i]))
                                          spasi++;
                                end if;
                             kalimat[i];
                           end for;

=> Penyelesaian dengan c++


#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();
}

=> Hasil compile

 

        TERIMA KASIH.!!!

Rabu, 17 Mei 2017

TUGAS PWEB

PERULANGAN DAN PERCABANGAN DENGAN PHP !




1.If
<?php
$situasi="kuliah"; //deklarasi
if($situasi=="kuliah") //situasi 1
$situasi="pulang"; //deklarasi
if($situasi=="pulang") //situasi 2
{
echo "sekarang sedang kuliah"; //penyataan 1
echo "<br/>"; //untuk membuat baru
echo "sekarang kuliah sudah berakhir"; //pernyataan 2
}
?>

2.For
<?php
$rizal=1; //untuk masukan nilai awal
while ($rizal<=10) //ekspresi
{
echo "$Rizal Dwi Nim 1600018013<br/>"; //pernyataan yang diulang sebanyak 10 kali
$rizal++; //proses pengulangan
}
?>


3. Do While
<?php
$rizal=1; //nilai awal
do{
echo "$rizal"; //program berjalan tetapi tidak berurutan kebawah tapi kesamping
$rizal=$rizal+1; //proses perulangan
}
while($rizal <= 10); //untuk mengulang sebanyak 10 kali
?>

4. While
<?php
$rizal=1; //nilai awal
while ($rizal<= 10){ //untuk mengulang sebanyak 10 kali
echo "$rizal"; //program berjalan tetapi tidak berurutan kebawah tapi kesamping
$rizal=$rizal+1; //proses perulangan
}
?>

5. If Else
<?php
if($rizal > 10): //kondisi ketikarizal lebih dari 10
echo 'Baik';
else: //kondisi ketika tidak lebih dari 10
echo 'Kurang';
endif;
?>

Senin, 10 April 2017

EVALUASI DIRI MINGGU KE 6

EVALUASI DIRI MINGGU KE-6

     Pada kesempatan kali ini saya ingin menyampaikan evaluasi diri pada minggu ke 6 pada matakuliah Algoritma Pemrograman,pada minggu keenam ini kami mempelajari tentang Rekursif

1.Apa saja macam kegiatan belajar  
   Dosen mejelaskan apa itu Rekursif ,kemudian kami mengerjakan latihan dan juga kasus-kasus yang terdapat didalam diktat .

2.Berapa Menit total belajar selama 1 minggu  
    biasanya 1 kali pertemuan dalam 1 minggu sekitar 3 jam dan ditambah praktikum dan juga belajar kelompok sekitar 3 jam kemudian ditambah belajar secara individu dirumah masing-masing.

3.Rencana tindak lanjut  bila skenario belum sepenuhnya dijalani
 saya akan membahas bersama kelompok jika ada yang tidak dimengertiatau menanyakan kepada teman saya yang lebih paham mengenai materi yang kami pelajari.

WORKSHOP BAB 6 Latihan 1-10









 Latihan No 1,2,4
Dikerjakan oleh : amrullahahmad1600018013

Latihan N0 3.
        Hitunglah keliling persegi panjang.

  Analisis :
   Menerima masukkan P dan L, menghitung Luasnya dengan rumus 2*(P + L), kemudian menuliskan hasilny. 
 
Algoritma : {Menghitung Keliling Persegi Panjang}
Deklarasi :
                    P, L = Integer
                    keliling = Double
Deskripsi :
                   Read(P)
                   Read(L)
                   Keliling<-- 2*(P + L)
Write  : (Keliling)
RAPTOR :

                                                                 
C++  :
#include <iostream>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
class persegi {
public :
persegi ();
void input();
void proses();

private :
int p;
int l;
int hasil;
};
persegi::persegi(){
cout<<"=================================\n";
cout<<"Menghitung Keliling Persegi Panjang\n";
cout<<"=================================\n";
}

void persegi::input (){
cout<<"Masukkan Panjang : ";
cin>>p;
cout<<"Masukkan Lebar : ";
cin>>l;

}

void persegi::proses(){
hasil = 2*(p+l);
cout<<"Keiling : "<<hasil;
}

int main(int argc, char** argv) {
persegi Prsg;
Prsg.input();
Prsg.proses();
return 0;
}
OUTPUT :
                                                                    
Latihan No 5.
         Hitunglah keliling lingkaran.

Analisis :
-Input : jari-jari / r
-proses : keliling 2*3.14*r
              Luas 3.14*r*r
-Output : Luas lingkaran
                  & keliling lingkaran

 Algoritma  : {Menghitung keliling lingkaran }
Deklarasi :
                  R : integer
                  Volume : float
Deskripsi :
                   Read (r) → untuk input
                   Keliling ← 2*(22/(float)7)*r
Write : {Menampilkan hasil keliling lingkaran}


RAPTOR  :
                              
                                         
C++  :
#include <iostream>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
class lingkaran {
public :
lingkaran ();
void input();
void proses();

private :
int r;
float keliling;
};

lingkaran::lingkaran(){
cout<<"=================================\n";
cout<<"Menghitung Keliling Lingkaran\n";
cout<<"=================================\n";
}

void lingkaran::input (){
cout<<"Masukkan Jari-Jari : ";
cin>>r;
}

void lingkaran::proses(){
keliling=2*(22/(float)7)*r;
cout<<"Keliling : "<<keliling;
}
int main(int argc, char** argv) {
lingkaran Lkrn;
Lkrn.input();
Lkrn.proses();
return 0;
}
OUTPUT :
                                                                 
Latihan No 6.
                        Hitunglah Luas Segitiga.
 Analisis :
-Input : jari-jari / r
-proses : keliling sisi*sisi*sisi
              Luas 1/2*A*T
-Output : Luas segitiga
                  & keliling segitiga
 Algoritma  : { Menghitung Luas Segitiga }
Deklarasi :
A : integer
T : integer
Hasil : integer
Deskripsi :
Read (a) → untuk input
Read (t) → untuk input
Hasil ← a*t/2
Write  : {Menampilkan hasil Luas segitiga}

RAPTOR :
                                                                
C++  :
 #include <iostream>
using namespace std;
class segitiga {
public :
segitiga ();
void input();
void proses();

private :
int a;
int t;
int hasil;
};
segitiga::segitiga(){
cout<<"=================================\n";
cout<<"\n\nLuas Segitiga Siku-siku : \n"<<endl;
cout<<"=================================\n";
}
void segitiga::input (){
cout<<"Masukkan Alas : ";
cin>>a;
cout<<"Masukkan Tinggi : ";
cin>>t;
}
void segitiga::proses(){
hasil = (a*t)/2;
cout<<"Luas : "<<hasil;
}
main ()
{
 segitiga Sgtg;
Sgtg.input();
Sgtg.proses();
return 0;
}
OUTPUT :
                                                                 
Latihan No 8,9,10
Dikerjakan oleh : ardaris.blogspot.com