Showing posts with label Python. Show all posts
Showing posts with label Python. Show all posts

Thursday, October 9, 2014

Pengertian Algoritma dan Flowchart di Bahasa Pemrograman Python

Di bidang matematika, algoritma adalah prosedur dalam perhitungan, penalaran, atau pemrosesan suatu data. Algoritma adalah hal terpenting dalam bahasa pemrograman karena dalam pembuatan program harus mengerti terlebih dahulu step jalannya program. Jika kita tidak mengetahui algortima bagaimana program dibuat, sama saja kita berjalan tanpa tujuan, 

Dengan penjelsan sedikit tentang algoritma di atas, saya yakin sobat sudah mempunyai gambaran tentang apa itu algoritma. Algoritma di Bahasa Pemrograman biasanya digambarkan dengan Flowchart. Apa itu flowchart ? 

Flowchart adalah diagram grafis yang menyatakan steps atau langkah-langkah dari algortima yang kita buat. Silahkan sobat lihat gambar-gambar yang digunakan untuk membuat algoritma di Flowchart :

GambarSimbol untukKeterangan
ProsesMenyatakan kegiatan yang akan ditampilkan dalam diagram (langkah-langkah)
Titik Keputusan (decision)Proses / Langkah dimana perlu adanya keputusan atau adanya kondisi tertentu. Di titik ini selalu ada dua output untuk melanjutkan proses yang berbeda..
Input / Output DataDigunakan untuk mewakili data yang masuk (input) dan data yang keluar (Output) / hasil dari decision.
TerminasiMenunjukkan awal atau akhir sebuah proses (Start dan Stop /Finish)
Garis Menunjukkan arah aliran proses atau algoritma.
Kontrol / InspeksiMenunjukkan proses / langkah dimana ada inspeksi atau pengontrolan.

Saya akan memberikan contoh pembuatan algoritma menggunakan Flowchart pada program yang simple. Saya akan mengambil program yang telah saya buat sebelumnya yaitu menentukan bilangan ganjil atau bilangan genap. Silahkan perhatikan langkah-langkah berikut :


Keterangan :
  • Program dimulai dengan diagram terminasi "Start" yang menandakan bahwa program dimulai.
  • Diagram input bilangan, seorang user menginput sebuah nilai bilangan.
  • Decision, mengambil keputusan jika bilangan yang diinput oleh user adalah bilangan yang habis dibagi 2 (genap), maka :
  • Jika "Yes" artinya bilangan tersebut memang habis dibagi 2, maka menghasilkan output dengan mencetak "Genap".
  • Setelah mencetak "Genap", program akan berhenti yang diwakili dengan diagram terminasi "Stop".
  • Jika "No" artinya bilangan tersebut tidak habis dibagi 2, maka program akan melanjutkan ke instruksi atau diagram selanjutnya.
  • Diagram selanjutnya adalah decision. Mengambil keputusan jika bilangan yang diinput oleh user adalah bilangan yang tidak habis dibagi 2 (ganjil), maka :
  • Jika "Yes", maka akan menghasilkan output dengan mencetak "Ganjil".
  • Stelah mencetak "Ganjil", program akan berhenti yang diwakili dengan diagram terminasi "Stop".

Dengan mempelajari Algoritma dan Flowchart ini, saya berharap bahwa sobat bisa mengaplikasikannya di Program lain. Jadi coba sobat membuat sebuah algortima menggunakan flowchart di program-program yang telah kita bahas sebelumnya. Semoga bermanfaat dan terimakasih. :)

Tuesday, October 7, 2014

Membuat Program Binary Search di Bahasa Pemrograman Python

Binary Search adalah salah satu metode pencarian atau pengecekan sebuah elemen angka di dalam sebuah wadah. Jika di dalam wadah terdapat elemen angka yang dicari oleh user, maka program tersebut akan mengembalikan statement True. Begitu pun sebaliknya, jika di dalam wadah tersebut tidak terdapat elemen angka yang dicari oleh user maka program tersebut akan mengembalikan statement False.

Point penting yang harus sobat perhatikan disini adalah metode ini hanya bisa digunakan untuk wadah dengan angka yang sudah urut (wadah dengan elemen angka dari kecil ke besar). Program ini akan sangat berguna ketika wadah yang user gunakan mengandung banyak sekali elemen angka di dalamnya.

Baiklah kita akan memulai pembahasan materi tentang bagaimana Membuat Program Binary Search di Bahasa Pemrograman Python. Silahkan cermati program di bawah ini :

  1. def binSearch(wadahList,target) :
  2.     low = 0
  3.     high = len(wadahList)-1
  4.     while low <= high :
  5.         mid = (high+low)//2
  6.         if target == wadahList[mid] :
  7.             return True
  8.         elif target < wadahList[mid] :
  9.             high = mid - 1
  10.         else :
  11.             low = mid + 1
  12.     return False

Keterangan :

  1. Membuat function bernama binSearch(wadahList, target) dengan dua variable yaitu var wadahList mewakili wadah dan var target mewakili elemen angka yang ingin dicari.
  2. Membuat var low dengan nilai 0.

    "Fungsi dari var low adalah untuk menentukan elemen angka pertama yang akan diindeks."
  3. Membuat var high dengan nilai banyak elemen angka pada saat itu dan dikurangi dengan angka 1.

    "Fungsi dari var high adalah untuk menentukan elemen angka terakhir yang akan diindeks."
  4. Looping dengan kondisi nilai dari var low kurang dari atau sama dengan nilai dari var high.
  5. Membuat var mid dengan nilai hasil kalkulasi dari penjumlahan nilai var high dan var low kemudian hasil penjumlahan tersebut dibagi 2.

    "Nilai var high dan var low bisa berubah, lihat step 9 dan 11."
  6. Jika nilai var target sama dengan nilai var wadahList dengan indeks nilai var mid, maka :
  7. Mengembalikan statement True.
  8. Jika nilai var target kurang dari nilai var wadahList dengan indeks nilai var mid, maka :
  9. Nilai var high berubah menjadi nilai var mid dikurangi dengan angka 1.
  10. Jika nilai var target kondisinya tidak sama dengan kedua kondisi (if dan elif) di atas, berarti nilai var target lebih besar dari nilai var wadahList dengan indeks var mid, maka :
  11. Nilai var low berubah menjadi nilai mid ditambah dengan angka 1.
  12. Mengembalikan statement False jika nilai var target tidak berada di dalam var wadahList.

Saya akan memberikan contoh beserta pengerjaan manual atau proses program ini berjalan. Silahkan sobat perhatikan contoh berikut :

A = [2,5,8,11,25,32,45,56,68,86,93]

Pada contoh di atas terdapat wadah bernama A dan didalamnya terdapat 11 elemen angka yang sudah berurutan dari kecil ke besar. 

Misalnya kita ingin mencari elemen angka dengan target = 68 maka :

2
5
8
11
25
32
45
56
68
86
93
  • Program akan mengindeks elemen pertama yaitu angka 2, elemen akhir yaitu angka 93, dan elemen tengah yaitu angka 32.
  • Perulangan program :
  • Program akan membandingkan target dengan elemen tengah (32).
  • Pada contoh tersebut kita bisa simpulkan bahwa 68 > 32, maka elemen awal akan berubah menjadi elemen dengan indeks tengah + 1 yaitu angka 45.
    Wadah akan berubah menjadi :
45
56
68
86
93
  • Perulangan program :
  • Program membandingkan lagi antara target dengan elemen tengah yang baru (68).
  • Pada kasus ini kita bisa menyimpulkan bahwa target (68) = elemen tengah (68), maka program tersebut akan mengembalikan statement True.
Catatan :

Program akan terus melakukan perulangan sampai target bernilai sama dengan nilai elemen tengah. Kemudian program akan berhenti dan mengembalikan statement True. Jika program tidak menemukan kondisi nilai target sama dengan nilai elemen tengah, maka program akan berhenti dan mengembalikan statement False.

Contoh program setelah dieksekusi :



Demikian materi hari ini tentang bagaimana Membuat Program Binary Search di Bahasa Pemrograman Python. Semoga tulisan saya mudah dipahami oleh sobat semua, dan jika ingin mengajukan pertanyaan silahkan menulis di kolom komentar. Terimakasih :)

Saturday, October 4, 2014

Membuat Rumus ABC di Bahasa Pemrograman Python

Membuat Rumus ABC di Bahasa Pemrograman Python | pemrograman | komputer | bahasa python
Di bidang matematika, sobat telah mengenal suatu rumus yang berfungsi untuk menyelesaikan persamaan kuadrat. Rumus yang sering kita dengar adalah rumus ABC. Masih ingatkah sobat dengan rumus tersebut ? Ketika sobat berada di SMA atau bahkan di SMP, saya yakin tidak asing bagi sobat terhadap rumus tersebut. 
Baik, saya akan sedikit mengulas pelajaran beberapa tahun yang lalu ketika saya mendapatkan rumus ABC. Bentuk dari persamaan kuadrat adalah sebagai berikut :
ax+ bx + c = 0

Fungsi dari rumus ABC sendiri adalah mencari nilai x1 dan xyang memenuhi persamaan kuadrat tersebut. Lalu bagaimana formula dari rumus ABC ? Lihat rumus di bawah :


bahasa pemrograman






Saya rasa tidak perlu memberikan contoh penggunaan rumus ABC dalam matematika karena sobat pasti sudah ingat dan memahami penjelasan saya di atas. Jika masih ada yang kurang paham dengan rumus ABC, silahkan sobat mempelajari dulu penggunaan rumus tersebut sebelum melanjutkan pembelajaran tentang Membuat Rumus ABC di Bahasa Pemrograman Python ini.

Silahkan lihat function di bawah ini :

  1. from math import sqrt as akar
  2. def rumusABC(a,b,c) :
  3.     a = float(a) ; b = float(b) ; c = float(c)
  4.     D = b**2 - 4*a*c
  5.     x1 = (-b + akar(D)) / (2*a)
  6.     x2 = (-b - akar(D)) / (2*a)
  7.     hasil = (x1,x2)
  8.     return hasil

Keterangan :
  1. Mengimport modul math yang sudah disediakan oleh python. Sobat bisa mengecek modul apa saja yang sudah disediakan oleh python dengan cara membuka C:\Python 2.7\lib\. 

    "Dari modul math, kita mengimport fungsi sqrt (fungsi akar) dengan diwakili var akar."
  2. Membuat function dengan nama rumusABC(a,b,c) demgan var a, var b, dan var c yang akan diinput oleh user.
  3. Mengkonvert nilai var a, var b, dan var c dari tipe integer ke tipe float.

    "Fungsi kenapa kita mengkonvert tipe integer menjadi tipe float adalah ketika hasil dari 
    x1 dan x
berbentuk desimal. Berdasarkan pengalaman dulu, ketika menggunakan rumus ABC, hasilnya selalu dalam bentuk desimal. Karena memang pada dasarnya rumus ABC ini digunakan ketika nilai persamaan kuadrat tidak bisa difaktorkan dengan pemfaktoran biasa sehingga menghasilkan nilai desimal."
  • Membuat var D dengan nilai hasil kalkulasi dari b**2 - 4*a*c.

    "Var D disini adalah Diskriminan, masih ingat kan rumus Diskriminan? "
  • Membuat var x1 dengan nilai (-b + akar(D)) / (2*a).

    "Sebagai hasil dari nilai x yang pertama."
  • Membuat var x2 dengan nilai (-b - akar(D)) / (2*a).

    "Sebagai hasil dari nilai x yang kedua."
  • Membuat var hasil dengan nilai tuple yang berisi nilai var x1 dan var x2.
  • Mengembalikan nilai dari var hasil.


  • Contoh ketika program ini di eksekusi :

    bahasa pemrograman


    Cukup sekian materi yang bisa saya sampaikan hari ini. Saya mohon maaf jika ada kesalahan ketik ataupun salah dalam menerjemahkan script di atas, Saya harap sobat semua bisa memberikan komentar atau saran tentang materi saya, Semoga bermanfaat dan terimakasih atas kunjungannya. :)



    Thursday, October 2, 2014

    Cara Membuat List Comprehension di Bahasa Pemrograman Python

    Cara Membuat List Comprehension di Bahasa Pemrograman Python | pemrograman | komputer | bahasa python
    List comprehension adalah sebuah cara pembuatan list secara singkat di bahasa pemrograman python tanpa membuat sebuah function. Jadi sobat akan membuat sebuah program di dalam list dan akan menghasilkan output yang sama ketika kita membuat program dengan sebuah function. Akan tetapi list comprehension biasanya digunakan hanya untuk membuat program-program yang simple. Misalnya program untuk mencetak angka-angka kuadrat, mencetak matriks, mencetak angka genap, mencetak angka ganjil, dan lain-lain.
    Formula yang biasa digunakan adalah seperti ini : 

    [expression for iter var in iterable]

    Dan formula yang lebih lanjut, biasanya membutuhkan kondisi-kondisi tertenru adalah seperti ini :

    [expression for iter var in iterable if condition]

    Untuk memperjelas materi kita hari ini, langsung saja scroll ke bawah untuk melihat contoh-contohnya sob :
    NB : Saya menggunakan mode interactive pada materi ini dengan alasan agar tidak menghabiskan waktu. Jika sobat menulis di 
    1. Membuat list cetak bilangan asli dengan range.
      [x for x in range(1,11)]

      "var x adalah nilai yang akan dicetak."
    2. Membuat list cetak kuadrat dari sebuah bilangan dengan range.
      [x**2 for x in range(1,11)]

      "x**2 artinya nilai dari var x dikuadratkan."
    3. Membuat list yang berisi tuple.
      [(x,x**2) for x in range(1,11)]

      "Tuple di dalam list berisi pasangan antara bilangan asli dan hasil kuadratnya."

    4. Membuat list yang berisi bilangan genap.
      [x for x in range(1,51) if x % 2 == 0]

      "Mencetak var x dengan nilai bilangan genap dalam range 1 sampai 51."
    5. Membuat list yang berisi satu bilangan dengan banyak n.
      [3 for x in range(10)]

      "Mencetak angka 3 sejumlah 10 elemen."
    6. Membuat matiks 0 dengan 3 dimensi (3x3).
      [[0 for y in range(3)]for x in range(3)]

      "Mencetak matriks 0 (3x3)."
    7. Membuat matrik identitas (4x4).
      [[1 if y == x else 0 for y in range(4)]for x in range(4)]

      "Cara membaca list comprehension di atas adalah : Matriks dasarnya adalah matriks 0 dengan dimensi 4 (4x4). Akan tetapi yang membedakan adalah adanya instruksi if yang menyebabkan beberapa elemen menjadi angka 1. Jika nilai var y sama dengan nilai var x dalam looping (perulangan) tersebut, maka elemen yang dicetak adalah angka 1."

    8. Membuat list yang berisi huruf vokal dari suatu string kalimat.
      [x for x in "Belajar bahasa python" if x in "AIUEOaiueo"]

      "Looping, dengan mengindeks string "Belajar bahasa python" satu per satu dan diwakili dengan var x. Kemudian mengambil keputusan bahwa nilai yang dicetak adalah nilai var x yang berada dalam daftar string "AIUEOaiueo".
    Gambar dibawah ini adalah hasil dari contoh-contoh di atas :


    bahasa pemrograman
    Jika ada bagian yang salah atau belum dipahami, saya berharap sobat bisa membenarkan atau bertanya di kolom komentar. Saya akan berusaha memperbaiki atau menjawab pertanyaan sesuai kemampuan saya. Terimakasih atas kunjungan sobat :)


    Wednesday, October 1, 2014

    Membuat Format Rupiah di Bahasa Pemrograman Python

    Membuat Format Rupiah di Bahasa Pemrograman Python | pemrograman | komputer | bahasa python
    Format penulisan rupiah dalam sejumlah bilangan di Indonesia adalah diawali dengan "Rp" dan di-split atau dipisah tiga angka dari belakang dengan tanda titik ("."). Jadi sobat akan membuat sebuah program untuk mengubah sejumlah bilangan dengan format biasa menjadi sejumlah bilangan dengan format rupiah. 
    Misalnya seorang user menginput bilangan angka 2545000, maka program ini akan mengubah dengan format rupiah seperti berikut "Rp 2.545.000" . 

    Silahkan sobat pahami program di bawah ini :
    1. def formatrupiah(uang):
    2.     y = str(uang)
    3.     if len(y) <= 3 :
    4.         return 'Rp ' + y     
    5.     else :
    6.         p = y[-3:]
    7.         q = y[:-3]
    8.         return   formatrupiah(q) + '.' + p
    9.         print 'Rp ' +  formatrupiah(q) + '.' + p 

    Keterangan :

    1. Membuat sebuah function dengan nama formatrupiah(uang) dan var uang yang akan diinput oleh user.
    2. Mengkonversi nilai var uang dari tipe integer menjadi string dengan diwakili var y.
    3. Jika jumlah nilai var y kurang dari atau sama dengan 3, maka :
    4. Mengembalikan nilai string "Rp" ditambah nilai dari var y itu sendiri.
    5. Jika jumlah nilai var y lebih dari 3,  maka :
    6. Slicing, memotong nilai var y dengan indeks -3 sampai terakhir dan diwakili oleh var p.
    7. Slicing, memotong nilai var y dengan indeks pertama (0) sampai -3 dan diwakili oleh var q.
    8. Mengembalikan nilai hasil rekursif dari formatrupiah(q) dimana q adalah hasil slicing di step nomor 6, ditambah string "." dan ditambah nilai var p.
    9. Mencetak string "Rp " ditambah hasil rekursif dari formatrupiah(q) dimana q adalah hasil slicing step nomor 7, ditambah string ".", dan ditambah nilai var p.
    Silahkan lihat contoh di bawah ini setelah program dieksekusi :
    bahasa pemrograman python
    Seperti yang kita lihat bahwa program ini masih menggunakan rekursif. Jadi saya kasih saran kepada sobat semua untuk benar-benar memahami bagaimana sistem rekursif berjalan. Jika sobat masih belum memahami rekursif, maka sobat bisa mengunjungi postingan saya sebelumnya karena disitu banyak menggunakan rekursif. Demikian postingan saya hari ini, semoga bermanfaat. Terimakasih :)