Sabtu, 19 Maret 2016

Refleksi 1 Algoritma

Assalamu'alaikum....

setelah 4 kali pertemuan dengan matkul algoritma banyak hal yg saya dapatkan, terutama bertambahnya jam ngoding saya :d dan bukan hanya itu, saya bjr juga tentang menghargai waktu karna banyaknya tugas jadi sebisa mungkin saya mengatur waktu untuk matkul yg lainnya, berikut tentang algoritma yg saya ketahui.


Definisi Algoritma
1. Langkah-langkah yang dilakukan agar solusi masalah dapat diperoleh
2. Suatu prosedur yang merupakan urutan langkah-langkah yang berintegrasi
3. Suatu metode khusus yang digunakan untuk menyelesaikan suatu masalah yang nyata.
Kriteria Pemilihan Algoritma
1. Ada output: mengacu pada definisi algoritma, suatu algoritma haruslah mempunyai output yang harus merupakan solusi dari masalah yang sedang diselesaikan.
2. Efektifitas dan Efisiensi :Dikatakan efektif jika algoritma tersebut menghasilkan suatu solusi yang sesuai dengan masalah yang diselesaikan dalam arti algoritma harus tepat guna.Dikatakan efisiensi jika waktu proses suatu algoritma relatif lebih singkat dan penggunaan memori komputernya lebih sedikit.
3. Jumlah langkahnya berhingga : maksudnya adalah barisan instruksi yang dibuat harus dalam suatu urutan tertentu atau harus berhingga agar masalah yang dihadapi dapat diselesaikan dengan tidak memerlukan waktu relatif lama.
4. Berakhir à (Semi Algoritma) : proses didalam mencari penyelesaian suatu masalah harus berhenti dan berakhir dengan hasil akhir yang merupakan solusinya atau berupa informasi yang tidak diketemukan solusinya. Artinya baik dalam kondisi solusi ada atau tidak ada, proses akan tetap harus berakhir dan berhenti. Istilah lain dalam algoritma dikenal sebagai SEMI ALGORITMA, yaitu suatu prosedur yang hanya akan berhenti jika mempunyai atau menghasilkan solusi, sedangkan jika tidak menghasilkan solusi, maka prosedur tersebut akan berjalan tanpa henti.
urutan barisan langkah-langkah yang digunakan harus disusun sedemikian rupa agar proses penyelesaian tidak berbelit-belit sedemikian sehingga bagian-bagian proses dapat dibedakan dengan jelas mana bagian input, proses dan output sehingga memudahkan user melakukan pemeriksaan ulang.
Kesimpulannya:
Suatu Algoritma yang terbaik(The Best) : “Suatu algoritma harus menghasilkan output yan tepat guna(efektif) dalam waktu yang relatif singkat & penggunaan memori yang relatif sedikit(efisien) dengan langkah yang berhingga & prosedurnya berakhir baik dalam keadan diperoleh suatu solusi ataupun tidak ada solusinya”
Contoh:
A. Algoritma untuk mengirimkan surat
1. Tulis surat pada secarik kertas surat
2. Ambil sampul surat atau amplop
3. Masukkan surat ke dalam amplop
4. Tutup amplop surat dengan lem perekat
5. Tulis alamat surat yang dituju, jika tidak diingat, lebih dahulu ambil buku alamat & cari alamat yang dituju, lalu tulis alamat tersebut pada amplop surat
6. Tempelkan perangko pada amplop surat
7. Bawa surat ke kantor pos untuk diserahkan pada pegawai pos atau menuju ke bis surat untuk memasukkan surat ke dalam kotak/bis surat.

B. Algoritma untuk menentukan bilangan akar kuadrat dari suatu bilangan bulat positif yang diinput.
1. Baca bilangan bulat positif yang diinput, sebut saja sebagai A.
2. Dinyatakan Nilai B adalah 0
3. Jika Nilai C sama dengan Nilai A, maka Nilai B adalah Akar dari Nilai A, lalu stop
4. Jika tidak, maka nilai B akan bertambah 1
5. Kembali ke langkah pada No.3

Contoh:
1. Untuk mengitung Luas Segitiga:
2. Masukan Nilai Alas
3. Masukan Nilai Tinggi
4. Hitung Luas = (Alas * Tinggi)/2
5. Cetak Luas
Dengan diagram alur atau flowchart: yaitu dengan membuat suatu penulisan atau penyajian   algoritma berupa diagram yang menggambarkan susunan alur logika dari suatu permasalahan

Contoh:

– Dengan Statement Program/Penggalan Program
Contoh:
1. Read Alas
2. Read Tinggi
3. Luas=(Alas*Tinggi)/2
4. Write(luas)


Sekian dari reflexi saya semoga berguna untuk para pembaca, jangan lupa untuk melihat kasus-kasus yg saya kerjakan. Mohon maaf jika masih ada kekurangan dari blog saya ataupun kasus-kasus saya karna masih dalam tahap pengembangan.
semoga kita semua sukses . amin :)

Wasalam.

Jumat, 18 Maret 2016

Kasus 4.1

Assalamu'alaikum....

Soal  :
Bilangan ganjil dari 0 sampai 10 diawali dengan 1, kemudian bertambah dengan 2 atau bilangan ganjil adalah bilangan yang bila dibagi 2 bersisa 1.

Deklarasi : integer

 C++nya :
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int i;
for(i=1;i<=4;i++)
cout<<” “<<i<<endl;
system(“PAUSE”);
return EXIT_SUCCESS;
}

Flowchartnya :





Wasalam.

Kasus 3.5

Assalamu'alaikum.....

Soal :

  • Konversikan hari ke 1 adalah hari senin sampai dengan hari ke-7 adalah hari minggu
Analisis:
  • Input: hari_ke
  • Proses: mengkonversi nilai angka menjadi nama hari
  • Output: Hasil konversi angka menjadi hari
Deklarasi:
  • hari_ke : integer{Input}
  • hari : string{Output}
Algoritma:
  • read(hari_ke)
  • pilih(hari_ke) untuk
    1:hari<--"Senin"
    2:hari<--"Selasa"
    3:hari<--"Rabu"
    4:hari<--"Kamis"
    5:hari<--"Jum'at"
    6:hari<--"Sabtu"
    else hari<--"Minggu"
    end{pilih}
  • write(hari)
C++nya:

#include<iostream.h>

#include<conio.h>

using namespace std;

main(){

int hari_ke;

char *hari;

cout<<"Masukkan hari ke-";cin>>hari_ke;

switch(hari_ke){

case 1: strcpy(hari, "Senin");break;

case 2: strcpy(hari, "Selasa");break;

case 1: strcpy(hari, "Rabu");break;

case 1: strcpy(hari, "Kamis");break;

case 1: strcpy(hari, "Jumat");break;

case 1: strcpy(hari, "Sabtu");break;

default: strpy(hari, "Minggu");break;

}

cout<<"Hari ke-"<<hari_ke<<"Adalah"<<hati<<endl;

return 0;

}

Flowchart :


 Wasalam.

Kasus 3.4

Assalamu'alaikum.....
 Konversikan nilai angka menjadi nilai huru
Analisis :
input nilai antara 0 - 100
output nilai huruf

Deklarasi :
n = integer (input)
h = char (output)

 C++nya :
#include <iostream.h>
#include <conio.h>
class Nilai {
friend ostream& operator<<(ostream&, Nilai&);
friend istream& operator>>(istream&, Nilai&);
public:
Nilai() {};
void konversikan() {
if ((nilai > 0) && (nilai <= 20))
nilai_huruf = ‘E’;
else if ((nilai > 20) && (nilai <= 40))
nilai_huruf = ‘D’;
else if ((nilai > 40) && (nilai <= 60))
nilai_huruf = ‘C’;
else if ((nilai > 60) && (nilai <= 80))
nilai_huruf = ‘B’;
else nilai_huruf = ‘A’;
}
private:
int nilai;
char nilai_huruf;
};
istream& operator>>(istream& in, Nilai& masukan) {
cout << “Masukkan nilai angka = “;
in >> masukan.nilai;
return in;
};
ostream& operator<<(ostream& out, Nilai& keluaran) {
out << “Nilai angka : ” << keluaran.nilai << endl;
out << “Nilai huruf : ” << keluaran.nilai_huruf;
return out;
}
main() {
Nilai angka;
cin >> angka;
angka.konversikan();
cout << angka;
getch();
return 0;
}


Flowchartnya :



Wasalam.

Kasus 2.6

Assalamu'alaikum....

Soal :

Buatlah algoritma untuk merepresentasikan m dan dalam bentuk m = q.n + r, bilangan bulat selalu bisa ditulis dalam bentuk :
m = q.n + r




  C++nya :





  Flowchartnya :

Kasus 4.7

Assalamu'alaikum....
Menghitung Hasil Perpangkatan
Algoritma:
  Deklarasi
    x : integer
    y : integer
    pangkat : integer
  Deskripsi
    read x,y
    hasil=1
    for(int i=1;i<=y;i++)
    hasil *=x
    write hasil
    end
Flowchartnya :

C++nya :