Minggu, 22 Januari 2017

Hal yang harus dipenuhi dalam membuat algoritma


Input : data yang harus diberikan pada komputer
Output: informasi yang akan diperoleh dari komputer
Logika: Merencanakan proses program. Terdiri dari sejumlah instruksi yang mengubah              input menjadi output yang diinginkan.



CARA MENGHITUNG LOGARITMA


Cara Menghitung Logaritma tanpa kalkulator

NILAI DASAR LOGARITMA DAN AKURASI PERHITUNGAN

Berikut 4 nilai yang kemudian akan kita sebut sebagai "nilai dasar logaritma".
  • Log 2 = 0,301
  • Log 3 = 0,477
  • Log 5 = 0,699
  • Log 7 = 0,845
Perlu kita tahu bahwa metode menghitung logaritma tanpa kalkulator ketepatan nilainya (akurasi ) mendekati 100%. Artinya perhitungan ini tidak akan sepenuhnya tepat sesuai dengan nilai yang seharusnya. Namun, untuk dapat menghitung nilai-nilai logaritma dimana numerusnya relatif kecil, metode ini dapat dibilang cukup akurat (> 99,9%). dan sebaliknya, jika numerusnya cukup besar, akan terjadi penyimpangan dari hasil akhir yang semakin besar pula dengan kata lain akurasinya menurun.

Contoh Penghitungan Logaritma

1. Hitung nilai dari log 10!
    Kita tau nilai log 10 = 1. dengan menggunakan nilai log diatas kita akan membuktikannya
    Log 10 = Log (2 . 5)
                = Log 2 + Log 5
                = 0,301 + 0,699                = 1
2. Hitung nilai dari log 101000 !
101000 = 1000 . Log 10
            = 1000 . Log (2 . 5)
            = 1000 . (Log 2 + Log 5)
            = 1000 . (0,301 + 0,699) = 1000

Contoh Soal Logaritma dan pembahasannya

  • Hitung nilai Log 42 !
 Jawab :
    Log 42 = Log (2 . 3 . 7)
                = Log 2 + Log 3 + Log 7
                = 0,301 + 0,477 + 0,845
                = 1,623
  • Hitung nilai dari 3log 7 !
Jawab :
 3log 7     = Log 7 / Log 3
                = 0,845 / 0,477
                = 1,771

  • Hitung nilai dari 2log 21 !
 Jawab :
 3log 7     = Log 21 / Log 2
                = (Log 3 + Log 7) / Log 2
                = ( 0,477 + 0,845) / 0,301
                = 0,845 / 0,477
                = 4,392
  • Hitunglah nilai dari Log 0,18 !
Jawab :
Log 0,18    = Log 18/100
                   = Log 18 - Log 100
                   = Log 9 + Log 2 - Log 100
                   = (2 Log 3) + Log 2 - 2
                   = 0,954 + 0,301 - 2
                   = - 0,745
Demikian uraiannya.



CONTOH SOAL DAN JAWABAN LOGIKA ALGORITMA

I. PILIHAN GANDA

1. Dalam menyusun suatu program,langkah pertama yang harus di lakkukan adalah :
   
    a. Membuat program
    b. Membuat Algoritma
    c. Membeli komputer
    d. Proses
    e. Mempelajari program 

2. Sebuah prosedur langkah demi langkah yang pasti untuk menyelesaikan sebuah   masalah di sebut :
  
    a. Proses
    b. Program
    c. Algoritma
    d. Step

3. Pseudocode yang di gunakan pada penulisan algoritma berupa :
  
   a. Bahassa Inggris
   b. Bahasa Puitis
   c. Bahasa pemograman
   d. Sembarang bahasa asal terstruktur

4. Pada pembuatan program komputer, algoritma dibuat :
   
   a. Sebelum pembuatan program
   b. Pada saat program dibuat
   c. Sesudah pembuatan program
   d. Pada saat verifikasi program

5. Tahapan dalam menyelesaikan suatu masalah adalah :
  
   a. Masalah-Pseudocode-Flowchart-Program-Eksekusi-Hasil
   b. Masalah-Algoritma-Flowchart-Program-Eksekusi-Hasil
   c. Masalah-Model-Algoritma-Eksekusi-Hasil
   d. Masalah-Model-Algoritma-Program-Eksekusi-hasil 
   e. Algoritma-Program-Model-Eksekusi-Hasil

6. Diketahui bahwa kantong P kosong. Kantong Q berissi 10 buah kelereng dan kantong R berisi 15 kelereng. Apabila yang terbawa hanya sebuah kantong dan di katakan BUKAN kantong P yang terbawa, Maka jumlah kelereng yang terbawa adalah : 
  
   a. 10
   b. 15
   c. 10 atau 15
   d. 10 dan 15
   e. Kosong

7. Diberikan algoritma : Apabila warna merah maka jadi hijau. Apabila warna hijau maka jadi putih, selain warna merah dan hijau maka jadi ungu. Jika kondisi input warna adalah hitam, maka warna jadi :
   
   a. Merah
   b. Ungu
   c. Hijau 
   d. Putih
   e. Abu-abu

8. Instruksi P=Q akan mengakibatkan nilai P=nilaiQ,dan nilai Q menjadi :

   a. Menjadi Sembarang Nilai
   b. Menjadi hampa 
   c. Q tetap 
   d. Menjadi 10
   e. P tetap

9. Apabila a=5, b=10, maka jika di berikan instruksi a=b; b=a akan mengakibatkan :

   a. a=0 , b=5
   b. a=10 , b=5
   c. a=10 , b=0
   d. a=b
   e. a=10 , b=10

10. Di berikan algoritma P=10; P=P+5; Q=P. Nilai P dan Q masing-masing adalah :

   a. 15 dan 0
   b. 0 dan 15
   c. 15 dan 15
   d. 0 dan 10
    e. 10 dan 15

II. ESSAI

  Membuat program sederhana dengan menggunakan C++
  • Menghitung Luas Segitiga
  • Menghitung Luas Persegi Panjang
  • Menghitung Luas Bujur Sangkar

JAWABAN PILIHAN GANDA


  1. B
  2. C
  3. C
  4. A
  5. -
  6. C
  7. B
  8. E
  9. E
  10. C 

JAWABAN ESSAI

3.Program Hitung Luas Bujur Sangkar 
I.Listing program

#include<iostream.h>
#include<stdio.h>
#include<conio.h>
/*program luas bujursangkar */
main()
{
float s1,s2;
float luas;
printf("PROGRAM HITUNG LUAS BUJUR SANGKAR \n");
cout<<"=================================="<<endl;
cout<<" sisi bujur sangkar 1 = ";cin>>s1;
cout<<" sisi bujur sangkar 2 = ";cin>>s2;
luas=(s1*s2);
/* berikan format pada tipe data float jika terlalu panjang angka di belakang koma*/
cout<<" luas bujur sangkar = "<<luas<<endl;
getche ();
}


II.Runing program




    Sifat-Sifat Algoritma
     Banyaknya langkah instruksi harus berhingga: pelaksanaan sebuah algoritma yang terprogram haruslah dapat diakhiri atau diselesaikan melalui sejumlah langkah operasional yang berhingga. Jika tidak demikian, kita tidak akan dapat mengharapkan bahwa pelaksaan algoritma tersebut dapat menghasilkan suatu solusi yang baik.
     Langkah atau instruksi harus jelas: artinya bahwa penulisa setiap langkah yang terdapat didalam sebuah algoritma harus memiliki arti yang khusus atau spesifik sehingga dapat dibedakan antara penulisan langkah untuk komputer(program/pemrograman) dengan penulisan langkah bagi manusia(pesudocode). Manusia akan lebih mudah memahami algoritma yang terdiri atas simbol-simbol(Contoh: pembuatan algoritma dengan diagram alur/flowchart) sedangkan komputer hanya membutuhkan sebuah penulisan algoritma dengan kode-kode yang dituangkan dalam bahasa yang dimengerti oleh komputer itu sendiri(bahasa pemrograman).
     Proses harus jelas dan mempunyai batasan: rangkaian suatu proses yang berisi langkah-langkah instruksi dari suatu algoritma yang akan dilaksanakn harus ditetapkan dengna jelas, baik dan pasti sebab sebuah algoritma harus memiliki instruksi dasar tertentu dimana setiap instruksi harus memiliki unsur pelaksana yang berfungsi sebagai pemroses data yang akan dimasukkan dalam sebuah komputer. Dengan demikian, sebuah algoritma harus ditulis dengan jelas tentang batasa-batasan proses yang akan dilaksanakan oleh komputer.
     Input dan Output harus mempunyai batasan: input merupakan data yang dimasukkan ke dalam algoritma yang untuk kemudian akan dilaksanakan oleh komputer. Dengan begitu, input yang diberikan harus sesuai dengan jenis dari bahasa pemrograman yang digunakan, sedangkan ouput merupakan hasil yang diperoleh dari pekerjaan yang dilaksanakan komputer untuk kepentingan user yang merupakan pihak diluar komputer. Algoritma harus menghasilkan output karena merupaka solusi yang diharapkan dari suatu masalah yang timbul.
     Efektifitas: instruksi yang diberikan pada komputer agar hanya menjalankan atau melaksanakan proses yang mampu dilaksanakannya. Yang dimaksud mampu adalah bahwa suatu algoritma atau instruksi-instruksi dalam sebuah program hanya akan dapat dilaksanakan jika informasi yang diberikan oleh instruksi-instruksi tersebut lengkap, benar dan jelas.
     Adanya batasan ruang lingkup, sebuah algoritma yang baik adalah hanya ditujukan bagi suatu masalah tertentu saja. Susunana input harus ditentukan lebih dulu sebab susunan tersebut enentukan sifat umum dari algoritma yang bersangkutan.
    ANALISIS SUATU ALGORITMA
    (Untuk melihat faktor efisiensi & efektifitas dari algoritma tersebut), dapat dilakukan terhadap suatu algoritma dengan melihat pada:
     Waktu tempu(Running Time) dari suatu algoritma: adalah satuan waktu yang ditempuh atau diperlukan oleh suatu algoritma dalam menyelesaikan suatu masalah.
    Hal-hal yang dapat mempengaruhi daripada waktu tempuh adalah:
    1. Banyaknya langkah: Makin banyak langkah atau instruksi yang digunakan dalam menyelesaikan masalah, maka makin lama waktu tempuh yang dibutuhkan dalam proses tersebut
    2. Besar dan jenis input data: Besar dan jenis input data pada suatu algoritma akan sangat berpengaruh pada proses perhitugan yang terjadi. Jika jenis data adalah tingkat ketelitian tunggal(Single precision), maka waktu tempuh akan menjadi relatif lebih cepat dibandingkan dengan tingkat ketelitian ganda(double precesion)
    3. Jenis operasi: Waktu tempuh juga dipengaruhi oleh jenis operasi yang digunakan. Jenis operasi tersebut meliputi operasi matematika, nalar atau logika, atau yang lainnya. Sebagai contoh, operasi perkalian atau pembagian akan memakan waktu lebih lama dibandingkan operasi penjumlahan atau pengurangan.
    4. Komputer dan kompilator: hal terakhir yang mempengaruhi waktu tempuh suatu proses algoritma adalah komputer dan kompilatornya, walaupun sebenarnya faktor ini diluar tahap rancangan atau tahap pembuatan algoritma yang efisien. Algoritma dibuat untuk mencapai waktu tempuh yang seefektif dan seefisien mungkin, tetapi kesemuanya itu akan sangat bergantung pada kemampuan komputer yang tentunya harus sesuai dengan jumlah program atau langkah yang diperlukan oleh algoritma, begitu juga dengan kompilator tersebut, misalnya PC XT 8086 akan kalah cepat dibandingkan 8088 atau dengan AT 80286 atau 80386 atau 80486 dan seterusnya
     Jumlah Memori Yang digunakan: banyaknya langkah yang digunakan dan jenis variabel data yang dipakai dalam suatu algoritma akan sangat mempengaruhi penggunaan memori. Dalm hal ini, diharapkan dapat memperkirakan seberapa banyak kebutuhan memori yang diperlukan selama proses berlangsung hingga proses selesai dikerjakan. Dengan demikian, dapat disiapkan storage yang memadai agar proses suatu algoritma berjalan tanpa ada hambatan atau kekurangan memori.
    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.
    5. Terstruktur : yaitu 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
    Tahapan Analisa Algoritma
    1. Bagaimana merencakan suatu algoritma:
    Menentukan beberapa model atau desain sebagai penyelesaian dari suatu masalah untuk mendapat sebuah solusi yan mungkin. Dengan demikian, akan banyak terdapat variasi desain atau model yang dapat diambil yang terbaik.
    2. Bagaimana menyatakan suatu algoritma
    Menentukan model suatu algoritma yang digunakan sehingga dapat membuat barisan langkah secara berurutan guna mendapatkan solusi penyelesaian masalah. Menentukan model tersebut agar dapat digunakan dengan cara:
    – Dengan Bahasa semu(Pseudocode): yaitu dengan menggunakan bahasa sehari-hari, tetapi harus jelas dan terstruktur, seperti telah penulis sebutkan pada contoh-contoh sebelumnya(Contoh prosedur berikirm surat)
    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)
    3. Bagaimana validitas suatu algoritma
    Yakni jika penyelesaian memenuhi solusi yang sebenarnya, artinya solusi yang didapat merupakan penyelesaian suatu masalah dan bukannya membuat masalah baru.
    4. Bagaimana menganalisa suatu algoritma
    Caranya melihat running time atau waktu tempuh yang digunakan dalam menyelesaikan masalah serta jumlah memori yang digunakan dalam penyelesaian masalah tersebut.
    5. Bagaimana menguji program dari suatu algoritma
    Yaitu dengan cara menyajikannya dalam salah satu bahasa pemrogramana, misalnya BASIC, PASCAL, FORTRAN, dBase, atau yang lainnya. Dalam proses, uji program oleh komputer akan melalui beberapa tahap yaitu:
    1. Fase Debugging, yaitu fase dari suatu proses program eksekusi yang akan melakukan koreksi terhadap kesalahan program. Yang dimaksud disni adalah error atau salah dalam penulisan program baik logika maupun sintaksnya.
    2. Fase Profilling, yaitu fase yang akan bekerja jika program tersebut sudah benar atau telah melalui proses pada fase debugging. Fase ini bekerja untuk melihat dan mengukur waktu tempuh atau running time yang diperlukan serta jumlah memori/storage yang digunakan dalam menyelesaikan suatu algoritma.
    Sejarah Algoritma

          Algoritma adalah jantung ilmu computer atau informatika. Ditinjau dari asal usul kata, kata “algoritma” sendiri mempunyai sejarah yang cukup aneh. Kata ini tidak muncul di dalam kamus Webster sampai akhir tahun 1957. Orang hanya menemukan kata algorism yang berarti proses menghitung dengan angka Arab. Kata algorism berasal dari nama penulis buku Arab yang terkenal, yaitu Abu Ja’far Muhammad ibnu Musa al-Khuwarizmi ( al-Knuwarizmi dibaca orang barat menjadi algorism).
    Pada tahun 1950, kata algoritma pertama kali digunakan pada “ algoritma Euclidean” (Euclid’s algorithm). Euclid, seorang matematikawan Yunani (lahir pada tahun 350 M), dalam bukunya berjudul Element menuliskan langkah-langkah untuk menemukan pembagi bersama terbesar (common greatest divisor atau gcd), dari dua buah bilangan bulat, mdan n [KNU73] (Euclid tidak menyebut metodenya sebagai algoritma, baru di abab modernlah orang-orang menyebut metodenya itu sebagai “algoritma Euclidean”).
    Pembagi bersama terbesar dari dua buah bilangan bulat tak negative adalah bilangan bulat positif terbesar yang habis membagi kedua bilangan tersebut.

    Misalnya, m=80 dan n=12. Semua factor pembagi 80 adlah

    1,2,4,5,8,10,16,20,40,80,

    Dan semua factor pembagi 12 adalah

    1,2,3,4,6,12,

    Maka gcd(80,12)=4. Langkah-langkah mencari gcd(80,12) dengan algoritma Euclidean sbb:

    80 dibagi 12 hasilnya = 6, sisa = 8 (atau: 80 = 6 . 12 + 8)
    12 dibagi 8 hasilnya = 1, sisa = 4 (atau: 12 =1 . 8 + 4)
    8 dibagi 4 hasilnya = 2, sisa = 0 (atau: 8 = 4 .2 + 0)

    Karena pembagian yang terakhir menghasilkan 0, maka sisa pembagian terakhir sebelum 0, yaitu 4, menjadi gcd(80,12). Jadi, gcd(80,12) = gcd(12,8) =gcd(8,4) = gcd(4,0) = 4.

    Terdapat beberapa versi algoritma Euclidean, salah satu versinya dituliskan di bawah ini:

    ALGORITMA EUCLIDEAN:

    {Diberikan dua buah bilangan bulat tak-negatif m dan n (m>=n).
    Algoritma Euclidean mencari pembagi bersama terbesar, gcd, dari kedua
    bilangan tersebut, yaitu bilangan bulat positif terbesar yang habis
    membagi m dan n.}
    1. Jika n= 0 maka
    m adalah jawabannya;
    stop.
    tetapi jika n#0,
    lanjutkan ke langkah 2.
    2. Bagilah m dengan n dan misalkan r adalah sisanya.
    3. Ganti nilai m dengan nilai n dan nilai n dengan nilai r, lalu ulang
    kembali ke langkah 1.

    Dengan menggunakan algoritma Euclidean ini, kita dapat menhitung gcd dari dua buah bilangan bulat sembarang secara sistematis.
    Contoh-contoh algoritma yang sudah dijelaskan di atas memberi dua pesan penting. Pertama, sebuah algoritma harus benar. Kedua, algoritma harus berhenti, dan setelah berhenti, algoritma memberi hasil yang benar.
    Ciri-ciri Algoritma yang baik: Menurut Donald E.Knuth dalam bukunya yang berjudul the Art Of Computer Programming. Algoritma mempunyai 5 ciri penting yaitu:

    1.  Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas.
    2. Setiap langkah didefenisikan dengan tepat dan tidak berarti dua (ambiguous).
    3. Algoritma memiliki nol atau lebih masukan(input). Masukan ialah besaran yang diberikan kepada algoritma untuk diproses.
    4. Algoritma mempunyai nol atau lebih keluaran(output). Keluaran dapat berupa Pesan atau besaran yang memiliki hubungan dengan masukan.
    5. Algoritma harus sangkil (effective). Setiap langkah harus sederhana sehingga dapat dikerjakan dalam sejumlah waktu yang masuk akal.

    Ciri-ciri Algoritma yang baik:
    1. Tepat sasaran: memenuhi spesifikasi pekerjaan dan bekerja sesuai tujuan.
    2. Flexible dan portable: Flexible untuk dikembangkan lebih lanjut. Portable untuk digunakan pada berbagai system dan mesin.
    3. Bersih dari kesalahan system atau lojik.
    4. Efektif: setiap langkah harus sederhana sehingga dapat dikerjakan dalam sejumlah waktu yang masuk akal.
    5. Murah: Efisien dalam pengguna piranti memori dan penyimpanan lainnya. Cepat waktu pelaksanaanya.
    6. Didokumentasi dengan baik untuk pengoperasian, pemeliharaan dan Pengembangan.
    7. Algoritma merupakan pemberian (description) pelaksanaan suatu proses.
    8. Tidak ambiguous: tidak bermakna ganda.
    9. Harus berhenti setelah mengerjakan sejumlah langkah terbatas.

    Program dan Pemrograman
    Algoritma baru efektif jika dijalankan oleh sebuah pemroses (processor). Pemroses itu bisa manusia, komputer, robot, mesin dan sebagainya. Pemroses membaca setiap instruksi di dalam algoritma lalu mengerjakannya. Suatu pemroses harus :
    1. Mengerti setiap langkah dalam algoritma.
    2. Mengerjakan operasi yang bersesuaian dengan langkah tersebut.
    Kita memfokuskan pemroses algoritma adalah komputer. Komputer adalah alat bantu untuk menjalankan perintah-perintah di dalam algoritma yang telah “dimasukan” ke dalamnya. Agar komputer mengerti perintah yang dimaksudkan, maka perintah tersebut harus ditulis dalam bahasa yang dipahami olehnya. Oleh karena itu algoritma harus ditulis dalam bahasa khusus, yaitu bahasa komputer. Algoritma yang ditulis dalam bahasa komputer dinamakan program . Bahasa komputer yang digunakan dalam menulis program dinamakan bahasa pemrograman. Orang yang membuat program komputer disebut pemrogram. Dan kegiatan merancang dan menulis program disebut pemrograman. Di dalam pemrograman ada aktivitas menulis kode program, kegiatan ini dinamakan coding.