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 :
ax2 + bx + c = 0

Fungsi dari rumus ABC sendiri adalah mencari nilai x1 dan x2 yang 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 x2 
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 :)

    Tuesday, September 30, 2014

    Pemfaktoran Menggunakan Bilangan Prima di Bahasa Pemrograman Python

    Pemfaktoran Menggunakan Bilangan Prima di Bahasa Pemrograman Python | pemrograman | komputer | bahasa python


    Bilangan Prima adalah bilangan yang habis dibagi oleh angka 1 dan dirinya sendiri. Contohnya angka 11, angka tersebut hanya bisa dibagi 1 dan 11. Jika sobat ingin membaginya dengan angka 2 atau 3, maka akan menghasilkan sisa. Saya yakin sebagian besar dari sobat sudah banyak yang mengetahui dan memamahi apa itu bilangan prima. Di postingan saya yang berjudul Mencari Bilangan Prima di Bahasa Pemrograman Python sudah pernah saya jelaskan sedikit tentang bilangan prima. 

    Pada postingan saya sebelumnya hanya membuat program bagaimana Mencari Bilangan Prima di Bahasa Pemrograman Python. Sedangkan pada postingan saya kali ini adalah bagaimana membuat program pemfaktoran suatu bilangan dengan menggunakan bilangan prima semua. Jika masih bingung dengan kalimat saya, langsung lihat contoh di bawah sob :
    • Angka 30, faktor primanya adalah 2, 3, dan 5 (Angka 2, 3, dan 5 adalah bilangan prima, sedangkan 2 x 3 x 5 akan menghasilkan angka 30).
    • Angka 50, faktor primmanya adalah 2, 5, dan 5 (Angka 2 dan 5 adalah bilangan prima, sedangkan 2 x 5 x 5 akan menghasilkan angka 50).
    • Angka 45, faktor primanya adalah 3, 3, dan 5 (Angka 3 dan 5 adalah bilangan prima, sedangkan 3 x 3 x 5 akan menghasilkan angka 45)
    Saya rasa untuk permasalahan di atas tidaklah sulit, Dengan memahami contoh di atas, sobat bisa mengetahui program seperti apa yang akan kita buat nanti,  Kita akan membuat sebuah program untuk memfaktorkan suatu bilangan atau lebih spesifiknya bilangan asli, bilangan tersebut akan di faktorkan oleh bilangan-bilangan prima.
    Baik langsung saja kita mulai pembelajaran kali ini, simak dengan seksama program di bawah ini :
    1. def FaktorDariPrima(x):
    2.     for i in range (2,x+1):
    3.         if x == i :
    4.             return [i]
    5.         elif x % i == 0 :
    6.             x = x / i
    7.             return [i] + FaktorDariPrima(x)
    Keterangan :
    1. Membuat function dengan nama FaktorDariPrima(x) dan var x yang akan diinput oleh user.
    2. Looping, mengindeks angka 2 sampai (x+1) diwakili oleh var i.

      "Angka 2 sampai (x+1), nilai dari x sendiri adalah angka yang dimasukkan oleh user. Misalnya user memasukkan angka 30, berarti angka yang diindeks adalah 2 sampai (30+1). Sedangkan var i akan bernilai angka 2 sampai 30. Kenapa sampai 30 ? Tidak sampai 31 ? Karena di dalam python, penggunaan fungsi range diantara dua angka akan menghasilkan angka pertama yang diindeks sampai angka sebelum angka terakhir yang diindeks."
    3. Jika nilai dari var x sama dengan nilai dari var i, maka :
    4. Mengembalikan nilai dari var i itu sendiri dan nilai tersebut berada di dalam list. 
    5. Jika nilai dari var x dibagi oleh nilai dari var i menghasilkan sisa 0 (tidak bersisa), maka :
    6. Nilai var x yang baru adalah nilai dari var x itu sendiri dibagi dengan nilaii dari var i.
    7. Mengembalikan nilai dari var i di dalam list dan ditambah hasil rekursif dari nilai var x yang baru.

      "Program ini menggunakan rekursif seperti program yang telah saya buat sebelumnya yang berjudul Membuat Program Katakan Angka atau Terbilang di Bahasa Pemrograman Python (Full Program)"
    Lihat gambar dari beberapa contoh di bawah setelah program dieksekusi :
    bahasa pemrograman python
    Demikian program Pemfaktoran Menggunakan Bilangan Prima di Bahasa Pemrograman Python. Semoga bermanfaat dan jangan lupa bagi yang sudah master memberikan saran dan komentar di bawah demi mengembangkan kemampuan saya dalam pemrograman python. Terimakasih :)


    Monday, September 29, 2014

    Membuat Program Katakan Angka atau Terbilang di Bahasa Pemrograman Python (Contoh)

    Membuat Program Katakan Angka atau Terbilang di Bahasa Pemrograman Python (Contoh) | pemrograman | komputer | bahasa python

    Sobat telah mempelajari bagaimana caraMmembuat Program Katakan Angka atau Terbilang di Bahasa Pemrograman Python. Saya benar-benar berharap sobat telah memahami semua part yang telah saya berikan di postingan sebelumnya. Kalau ada yang kurang jelas atau bahkan salah dalam kalimat yang saya tulis, saya mohon maaf karena saya juga seorang pelajar yang sedang dalam proses belajar bahasa pemrograman python. Saya mohon kepada sobat untuk berpartipasi dalam memeberikan saran ataupun komentar demi berkembangnya blog ini.
    Seperti yang saya sampaikan di postingan sebelumnya, saya akan memberikan beberapa contoh bagaimana hasil ketika program ini dieksekusi atau dijalankan. Langsung saja lihat gamabar-gambar di bawah ini.
    Saya akan memberikan program fullnya terlebih dahulu supaya sobat mengingat kembali :

    bahasa pemrograman python
    Mode interactive setelah program dieksekusi adalah sebagai berikut :
    bahasa pemrograman python
    Sobat telah melihat bahwa program ini berlaku hingga puluhan hingga ratusan triliun. Saya hanya membuat sampai ke tingkat ratusan triliun karena saya pikir itu sudah cukup. Jika sobat ingin menambah sampai ke miliyar triliun silahkan bisa menambahkan sendiri. Saya yakin dengan memahami program di atas step by step, sobat bisa menambahkan atau bahkan bisa memodifikasi program di atas ke program yang lebih simple. Kita semua saling belajar sob, jadi silahkan kalau punya pendapat lain mohon disampaikan. Terimakasih :)

    Sunday, September 28, 2014

    Membuat Program Katakan Angka atau Terbilang di Bahasa Pemrograman Python (Part 3)

    Membuat Program Katakan Angka atau Terbilang di Bahasa Pemrograman Python (Part 3) | pemrograman | komputer | bahasa python


    Pada postingan ini adalah part ketiga dari program katakan angka atau terbilang dalam bahasa pemrograman python. Semoga sobat bisa memahami apa yang saya sampaikan sebelumnya, kali ini, dan selanjutnya.


    Jika sobat sudah memahami postingan saya part 2 , sobat akan dengan mudah memahami part 3 ini karena script pada part 3 ini akan selalu mengembalikan nilai ke script part 2. Waduh kalimatnya membingungkan ya sob, oke biar lebih jelasnya kita mulai saja pembelajarannya. Seperti biasa saya akan memberikan gambarnya terlebih dahulu :


    bahasa pemrograman python


    Seperti postingan-postingan saya sebelumnya, script yang akan kita bahas adalah script yang berada di dalam kotak merah.

    1. elif 3 < n <= 6 :
    2.     p = y[-3:]
    3.     q = y[:-3]
    4.     if q == '1' :
    5.         return'seribu ' + katakan(p)
    6.     elifq == '000' :
    7.         returnkatakan(p)
    8.     else:
    9.         return katakan(q) + d + katakan(p)
    10. elif 6 < n <= 9 :
    11.     r = y[-6:]
    12.     s = y[:-6]
    13.     returnkatakan(s) + e + katakan(r)
    14. elif 9 < n <= 12 :
    15.     t = y[-9:]
    16.     u = y[:-9]
    17.     returnkatakan(u) + f + katakan(t)
    18. else :
    19.     v = y[-12:]
    20.     w = y[:-12]
    21.     return katakan(w) + g + katakan(v) 

    Keterangan :

    1. Jika jumlah dari var n adalah 3 < n <= 6, maka :

      “Saya yakin sobat sudah banyak yang mengetahui arti dari nilai var n tersebut. Artinya bahwa instruksi di bawahnya akan berjalan jika banyak digit yang dimasukkan adalah 4,5, dan 6”.
    2. Slicing, memotong nilai dari var y dengan indeks -3 sampai terakhir dan diwakili oleh var p.

      “Saya yakin pasti banyak sobat yang masih bingung dengan pengindeksan di atas, yaitu menggunakan tanda minus. Perlu sobat ketahui bahwa pengindeksan dengan tanda minus, perhitungan pengindeksannya dihitung dari belakang. Paling belakang mempunyai indeks -1. Saya akan memberikan contoh supaya sobat bisa mudah dalam memahami, misalnya terdapat angka ‘224567’, maka indek -1 adalah angka digit terakhir yaitu angka ‘7’, kemudian indeks -2 adalah angka ‘6’, dan seterusnya.
      Script di atas menggunakan indeks -3 sampai terakhir, jika kita pakai contoh angka ‘224567’ maka hasil yang kita peroleh adalah ‘567’. “
    3. Slcing, memotong nilai dari var  y dengan indeks dari 0 (awal) sampai indeks -3 dan diwakili dengan var q.

      “Kita masih menggunakan contoh angka ‘224567’, maka kita akan mendapatkan hasil angka ‘224’.”
    4. Jika varq  hanya bernilai string angka  ‘1’ , maka :
    5.       Mengembalikan nilai string “ seribu ” ditambah hasil rekursif dari function katakan(p)dimana var p adalah 3 digit angka terakhir yang telah saya jelaskan sebelumnya..
    6. Jiika var q bernilai string angka ‘000’, maka :
    7. Mengembalikan hasil rekursif dari function katakan(p) .
    8. Jika var q bernilai string angka selain ‘1’ dan ‘000’, maka :
    9. Mengembalikan hasil rekursif dari function katakan(q), ditambah var d yang bernilai string “ ribu ” dan ditambah hasil rekursif dari function katakan(p).
    10. Jika jumlah dari var nadalah 6 < n <= 9 ,  maka :
      “Ini berarti bahwa var n berjumlah 7 atau 8 atau 9 digit. Dari jumlah digit tersebut, kita bisa menyimpulkan bahwa instruksi di bawahnya akan berjalan jika user memasukkan angka 1000000 sampai 999000000.”

    11. Slicing, memotong nilai dari var ydengan indeks -6 sampai terakhir dan diwakili oleh var r.
    12. Slcing, memotong nilai dari var  y dengan indeks dari 0 (awal) sampai indeks -6 dan diwakili dengan var s.

    13. Mengembalikan hasil rekursif dari function katakan(s),ditambah var e yang bernilai string “ juta ” dan ditambah hasil rekursif dari function katakan(r).
    14. Jika jumlah dari var n adalah 9 < n <= 12 ,  maka :

      “Ini berarti bahwa var n berjumlah 10 atau 11 atau 12 digit. Dari jumlah digit tersebut, kita bisa menyimpulkan bahwa instruksi di bawahnya akan berjalan jika user memasukkan angka 1000000000 sampai 999000000000.”
    15. Slicing,  memotong nilai dari var y dengan indeks -9sampai terakhir dan diwakili oleh var t.
    16. Slcing, memotong nilai dari var  y dengan indeks dari 0 (awal) sampai indeks -9dan diwakili dengan var u.
    17. Mengembalikan hasil rekursif dari function katakan(u),ditambah var f yang bernilai string “ miliyar ” dan ditambah hasil rekursif dari function katakan(t).
    18. Jika jumlah dari var n adalah lebih dari 12, maka :

      “Ini berarti bahwa var n berjumlah 13 atau 14 atau 15 digit. Dari jumlah digit tersebut, kita bisa menyimpulkan bahwa instruksi di bawahnya akan berjalan jika user memasukkan angka 1000000000000 sampai 999000000000000.”
    19. Slicing, memotong nilai dari var ydengan indeks -12 sampai terakhir dan diwakili oleh var v.
    20. Slcing, memotong nilai dari var  y dengan indeks dari 0 (awal) sampai indeks -12 dan diwakili dengan var w.
    21. Mengembalikan hasil rekursif dari function katakan(w),ditambah var g yang bernilai string “ triliun ” dan ditambah hasil rekursif dari function katakan(v).

    Pada part ini sudah selesai dalam pembuatan progra katakan angka atau terbilang di bahasa pemrograman python. Program ini bisa digunakan dengan angka sampai ratusan triliun. Untuk postingan selanjutnya, saya akan memberikan contoh bagaimana hasilnya ketika program ini dieksekusi atau dijalankan. Silahkan berkunjung ke postingan selanjutnya. Terimakasih. J






    Saturday, September 27, 2014

    Membuat Program Katakan Angka atau Terbilang di Bahasa Pemrograman Python (Part 2)

    Membuat Program Katakan Angka atau Terbilang di Bahasa Pemrograman Python (Part 2) | pemrograman | komputer | bahasa python


    Pada part ini sobat akan berhadapan dengan banyak sekali script yang harus dipahami. Sobat harus benar-benar mengerti semua dasar-dasar bahasapemrograman python terlebih dahulu sebelum sampai kesini. Jika sobat benar-benar ingin belajar bahasa pemrograman python, sobat bisa explore postingan-postingan saya sebelumnya supaya tidak ada kendala pada materi-materi selanjutnya.

    Part yang ingin kita bahas hari ini adalah gambar yang saya kasih tanda kotak merah di bawah ini :


    bahasa pemrograman python

    1. def katakan(x):    
    2.     y = str(x)          
    3.     n = len(y)         
    4.     if n <= 3 :         
    5.         if n == 1 :    
    6.             if y == '0' :    
    7.                 return ''    
    8.             else :          
    9.                 return angka[int(y)]    
    10.         elif n == 2 :
    11.             if y[0] == '1' :                 
    12.                 if y[1] == '1' :
    13.                     return 'sebelas'
    14.                 elif y[0] == '0':
    15.                     x = y[1]
    16.                     return katakan(x)
    17.                 elif y[1] == '0' :
    18.                     return 'sepuluh'
    19.                 else :
    20.                     return angka[int(y[1])] + ' belas'
    21.             elif y[0] == '0' :
    22.                 x = y[1]
    23.                 return katakan(x)
    24.             else :
    25.                 x = y[1]
    26.                 return angka[int(y[0])] + b + katakan(x)
    27.         else :
    28.             if y[0] == '1' :
    29.                 x = y[1:]
    30.                 return 'seratus ' + katakan(x)
    31.             elif y[0] == '0' :  
    32.                 x = y[1:]
    33.                 return katakan(x)
    34.             else :
    35.                 x = y[1:]
    36.                 return angka[int(y[0])] + c + katakan(x)

    Keterangan :

    1. Membuat function bernama "katakan" dan var x diinput oleh user.
    2. Mengkonversi nilai var x menjadi string dengan diwakili var y.
    3. var n bernilai jumlah karakter dari var y.
    4. Jika var n bernilai kurang dari sama dengan 3, maka :

      "Semua instruksi di bawah if  n <= 3 akan berjalan ketika jumlah dari var n maksimal 3 digit angka. Ini berarti bahwa angka yang dimasukkan oleh user kurang dari 1000 karena 1000 sendiri sudah terdiri dari 4 digit angka".
    5. Jika var n == 1, maka :

      "Semua instruksi di bawah if n == 1 (maksud dari semua instruksi di bawahnya adalah dengan indentasi yang tepat, misalnya di bawah instruksi if n ==1 terdapat instruksi if y == '0' dan instruksi else. Merekalah yang dimaksud instruksi di bawah if n == 1). Saya anggap sobat paham dengan indentasi (script yang menjorok ke dalam).
      Kembali ke pembahasan tentang arti instruksi if n == 1 , maksudnya ketika user memasukkan hanya 1 digit angka, maka instruksi di bawah if n ==1 akan berjalan"
    6. Jika nilai dari var y adalah string '0', maka :
    7. Mengembalikan string kosong.
    8. Jika nilai dari var y adalah selain string '0', berarti nilainya angka selain 0, maka :
    9. Mencetak dictionay angka yang telah dibuat pada postingan sebelumnya dengan indeks int(y).

      "Kenapa dengan indeks int(y) ? karena var y bernilai string bukan integer, sedangkan dalam pengideksan harus menggunakan angka sehingga kita harus mengkonversi nilai var y menjadi inteteger."
      "Ada satu hal lagi yang perlu sobat ketahui bahwa nilai var y adalah hasil pengkonversian integer ke string dari var x yang dimasukkan oleh user. Tapi pada saat kita ingin mengindeks, kita mengkonversi balik yaitu dari string ke integer."
    10. Jika var n == 2, maka :

      "Instruksi-instruksi di bawah elif n == 2 akan berjalan ketika user menginput angka puluhan, berarti di bawah 100 karena 100 sendiri terdiri dari 3 digit angka."
    11. Jika nilai dari var y dengan indeks 0 (angka pertama) adalah string '1' , maka :
    12. JIka nilai dari var y dengan indeks 1 (angka kedua) adalah string '1', maka :
    13. Mengembalikan string "sebelas"
    14. Jika nilai var y dengan indeks 0 (angka pertama) adalah string '0', maka :

      "Contohnya angka 03, 06, 08 dan lain-lain. Instruksi ini akan berguna ketika user menginput angka banyak digit, misalnya ribuan, puluhan ribu, ratusan ribu, dan seterusnya. Maka sistem slicing (pemotongan) dan rekursif akan digunakan."
    15. Membuat var x baru dengan fungsi slicing (pemotongan). Jadi nilai dari var x yang baru adalah nilai var y dengan indeks 1.

      "Maksudnya adalah pada instruksi sebelumnya saya memberikan contoh 03, 06, dan 08. Kita memotong nilai var y dengan indeks 1, berarti kita mengambil angka kedua yaitu 3,6, dan 8."
    16. Mengembalikan nilai katakan(x).

      "Inilah yang dimaksud dengan fungsi rekursif, pada instruksi ini akan mengembalikan ke function katakan dengan nilai var x baru yang telah di slice (dipotong). Setelah sampai ke setiap fungsi rekursif, maka jalannya program akan kembali mengeksekusi dari awal lagi dan begitu seterusnya."
    17. Jika var y dengan indeks 1 (angka kedua) sama dengan string '0', maka :
    18. Mengembalikan string "sepuluh".
    19. Jika var y dengan indeks 1 (angka kedua) benilai selain string '0' dan '1', maka :
    20. Mengembalikan dictionary angka dengan indeks int(y[1]) ditambah string "belas".

      "int(y[1]) berarti mengkonversi string ke integer dimana var y sendiri diindeks oleh angka 1.  Contohnya var y dengan nilai string '05' , ketika kita ingin mengindeks dictionary angka berarti penulisan indeksnya adalah angka[int(y[1])]. Pengerjaannya mulai dari tanda kurung yang paling dalam. Jadi pertama kita akan mendapat nilai indeks seperti ini angka[int('5')] , kedua hasil indeksan tersebut akan dikonversi dari string menjadi integer sehingga menghasilkan angka[5]. Sedangkan nilai dictionary dari angka[5] adalah string "lima".
    21. Jika var y dengan indeks 0 (angka pertama) sama dengan string "0", maka :

      "Instruksi ini akan berguna jika var y bernilai string dua nol ('00') ".
    22. Nilai dari var x yang baru adalah slicing var y dengan indeks 1 (angka kedua).
    23. Mengembalikan function katakan(x) dengan nilai var x baru (rekursif).
    24. Ketika var y dengan indeks 0 (angka pertama) bernilai selain string '0' dan '1', maka :

      "Instruksi ini akan berjalan jika nilai dari var y adaah string angka 20 sampai 99."
    25. Slicing var y dengan indeks 1 yang menghasilkan var x baru dengan nilai string angka kedua.
    26. Mengembalikan dictionary angka dengan indeks angka[int(y[0])] seperti yang sudah saya jelaskan di atas. Ditambah dengan var b yang bernilai string "puluh", dan ditambah lagi dengan hasil rekursif yaitu function katakan(x) dengan nilai var x baru.
    27. Jika var n bernilai selain 1 dan 2 digit angka.

      "Berarti nilainya 3 digit,  hanya 3 digit? apakah 4, 5, 6 digit dan seterusnya bukan termasuk pada instruksi ini? Jawabannya bukan, alasannya adalah pada instruksi pertama (instruksi paling atas setelah function katakan dan 2 variabel yang ditulis). Instruksi tersebut menunjukkan bahwa instruksi di bawah if n <=  3 akan berjalan ketika nilai var n adalah maksimal 3 digit."
    28. Jika var y dengan indeks 0 (angka pertama) sama dengan string '1', maka :
    29. Slicing var y dengan indeks 1 sampai digit terakhir yang menghasilkan var x baru dengan nilai string angka kedua sampai digit terahir.
    30. Mengembalikan string "seratus" ditambah hasil rekursif dari var x baru.
    31. Jika var y dengan indeks 0 (angka pertama) sama dengan string '0', maka :
    32. Slicing var y dengan indeks 1 sampai digit terakhir yang menghasilkan var x baru dengan nilai string angka kedua sampai digit terakhir.
    33. Mengembalikan fungsi rekursif dengan var x baru.
    34. Jika var y dengan indeks 0 (angka pertama) bernilai selain string '0' dan '1', maka :
    35. Slicing var y dengan indeks 1 sampai digit terakhir yang menghasilkan var x baru dengan nilai string angka kedua sampai digit terakhir.
    36. Mengembalikan dictionary angka dengan indeks int(y[0])], ditambah stiring "ratus" dan ditambah lagi hasil rekursif dari var x yang baru.
    Sekian penjelasan saya pada part 2 ini. Saya harap sobat bersemangat dan sabar dalam memahami program ini karena dalam pemahaman terkadang membutuhkan waktu yang lama. Tapi dengan usaha yang keras, saya yakin sobat bisa meraihnya. Terimakasih atas kunjungannya dan silahkan menjutkan membaca ke part selanjutnya.