content:
Tidak ayal hal ini membuat banyak orang dari berbagai usia dan pekerjaan mulai memutar otak untuk membuka cara dapat uang cepat usaha sampingan. Tentu saja memerlukan beberapa persiapan yang harus dipahami dengan jelas. Dan wireless media bersama dengan data digital mengenai karakteristik dan kebiasaan pelanggan.
Anda bisa memasarkan kulinernya lewat mulut ke mulut. Dimulai dari keluarga dan tetangga dekat. Atau bisa juga diiklankan di jejaring sosial, seperti Facebook dan tweeter. Langkah-langkah Mendaftar Kartu Pra-Kerja Online (Update 11 April 2020).
Sebut saja Selebgram A, dia mempunyai 400.000 followers, dan untuk satu kali post di feed-nya, saya harus membayar Rp. 550.000,- per satu produk, kalau saya punya dua produk, maka saya harus membayar Rp. 1.000.000. Salah satunya yakni transaksi yang semakin praktis dan bisa dilakukan kapan saja. Hanya bermodalkan saldo uang elektronik dan akses internet serta media seperti kartu, smartphone dan lainnya transaksi sudah bisa dilakukan dengan mudah.
Analisa Teknikal Saham & Motivasi Dari Orang-Orang Sukses Untuk Memotivasi Kita.
Itulah daftar barang yang sebisa mungkin harus Anda sediakan di toko Anda. Namun jangan memaksakan diri untuk menjual semuanya jika Anda tidak mendapat pemasok yang bagus. Menahan diri untuk membeli sesuatu tanpa harus merepotkan orangtua. Di halaman berikutnya, Anda akan melihat beberapa tema cara dapat uang cepat yang sudah terinstall. Seperti tambilan dibawah ini.
Faktor eksternal perusahaan yaitu suatu kondisi yang berada diluar perusahaan dan biasanya tidak dapat dikontrol oleh perusahan tetapi dapat mempengaruhi kelancaran kegiatan operasi perusahaan, seperti: gejolak ekonomi negara, kebijakan moneter, politik, keamanan negara dan sebagainya. Hasil dari kegiatan jual beli saham ini tidak lagi akan masuk kedalam kas perusahaan tetapi akan masuk dalam kas para pemodal. Nah, itulah forex menurut saya. Banyak orang lain yang mendefinisikan berbeda-beda. Ada yang sebagai hoby, sebagai bisnis sampingan, hingga sebagai mata pencaharian tetap. Namun apapun pilihannya, tetap 3 hal yang selalu sama yaitu dibutuhkan skill, manajemen uang dan manajemen psikologis sehingga mampu memberikan tujuan akhir dari trading forex yaitu kepuasan batin dan materi. Agar strategi pemasaran restoran dapat berjalan dengan sukses, maka perlu memperhatikan beberapa hal, diantaranya yakni mampu membangun branding restoran, memanfaatkan media sosial, memposisikan restoran dengan tepat, menganalisis menu dan training.
Cara dapat uang cepat - Bagaimana cara mendapatkan uang banyak dengan mudah
Vitamin kulit alami bisa di dapatkan dari produk Mirtoplus dan Izumio merupakan herbal alami untuk kesehatan hasil dari ekstrak sayur berwarna cerah & terdiri dari 6 macam karoteniod yang mencakup keseluruhan cara dapat uang cepat zat makanan yang dibutuhkan tubuh. S.Lutena mengandung Vit E, B, dan DHA. Nutisi ini yaitu pilihan terbaik buat masyarakat modern yang mau melindungi keseimbangan nutrisi setiap hari.
Wah benar-benar perlu menjadi angkat topi buat yang berhasil menjadi orang-orang NgetoP i.
Konten marketing merupakan media yang bisa Anda gunakan dalam berkomunikasi dengan konsumen. Anda harus bisa menjadikan konten marketing yang sesuai dengan produk atau brand Anda karena akan menjadi kunci pencarian informasi untuk calon konsumen. Selain itu, dengan menggunakan konten marketing Anda akan mampu menaikkan brand awareness dan calon konsumen bisa mengenal lebih dekat jenis dan image bisnis. Kamu bisa mendaftar menjadi reseller berbagai produk. Ada banyak produk yang membuka peluang reseller. Karena Kamu bisa menghasilkan hasil yang lumayan dari menjadi reseller. Kalau kamu enggan membeli produk duluan, takut modal sudah keluar tapi produk belum laku, kamu bisa menjadi dropship.
Kemudian dari kesalahannya itu ia merancang kembali supaya lebih teratur sehingga kegagalan tidak akan menimpanya cara dapat uang cepat lagi. Akan tetapi, tidak ada yang bisa mengalahkan kebahagiaan karena kita bisa memulai bisnis sendiri sebagai freelancer atau entrepeneur. Hal yang kerap membuat pengusaha gagal, terutama jika mereka masih pemula adalah belum memahami resiko bisnis dan gagal mengantisipasi resiko tersebut. Resiko sebuah usaha memang sulit dipantau ketika seseorang belum ahli di bidang usaha tersebut. Ketika Anda berniat untuk memulai usaha, setidaknya Anda perlu memahami beberapa resiko bisnis berikut.
Jangan lupa untuk memastikan keberadaan pesaing di lokasi yang Anda pilih. Hal cara dapat uang cepat ini akan memengaruhi jumlah kunjungan dan konsumen salon. Dokumen Persyaratan Pembuatan Surat Izin Usaha Perdagangan. Setelah itu masukan detail username dan password yang sebelumnya sudah anda buat.
Bisnis Tanpa Modal
Posting sebelumnya & berikutnya
Cara dapat uang 300 ribu per hari
Membangun mental orang kaya
Tinggalkan Balasan Batalkan balasan
Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai *
Komentar
Nama *
Surel *
Situs web
Simpan nama, email, dan situs web saya di browser ini untuk lain kali Anda berkomentar.
Anda Mungkin Menyukainya
Cara cepat menjadi kaya raya tanpa modal
04 Jun
Giveaway berhadiah uang tunai
07 Januari
Cara dapatkan pinjaman uang online cepat
15 Julai
Kiriman Terbaru
Jenis investasi masa depan
Ide bisnis untuk ibu rumah tangga
Mengelola arus kas keluarga
Cara dapet duit banyak dan cepat
Game online hp penghasil uang
Ini dia beberapa cara memulai bisnis online bagi pemula
Dapat uang paypal gratis
Bisnis virtual terbaru
Cara cari uang di internet
Ingin jadi pengusaha sukses simak filosofi ini
Categories
Tujuan KeuanganDapat Uang MudahCari Uang CepatBisnis InvestasiBisnis Di Tahun 2020Bisnis Air BersihForex Untuk PemulaCara Cari UangAnda Bisa KayaFitur InvestasiCara Dapat UangBisnis Luar BiasaBisnis Tanpa ModalInvestasi AmanJika Ingin KayaAnda Bisa SuksesCara Mencari UangCara Bayar HutangReksadana SyariahCara Tutupi HutangBisnis Di Rumah Peta Situs


content:
Tips Trik Kumpulan Tips Trik kesehatan, diet, kecantikan, cinta, pergaulan, keuangan & bisnis yang efektif dan mudah dilakukan.
Tips trik
Diet
Panduan
Cinta
Karir
Kecantikan
Kesehatan
Motivasi
Home»Kesehatan
Kesehatan
Tips mencegah terkena serangan stroke
Cara mencegah serangan penyakit stroke yang membahayakan. Penyakit stroke terjadi ketika aliran darah ke otak berhenti yang dapat membuat otak rusak dan seseorang meninggal dunia. Resiko terkena serangan stroke akan semakin meningkat seiring bertambahnya usia seseorang dan juga pola hidup yang dijalani. Di artikel ini tips dan trik akan memberikan beberapa tips ampuh yang dapat mengurangi resiko terkena stroke, diantaranya: …
Read More »
Tanda tubuh tidak sehat dan bermasalah
Orang sering salah persepsi yaitu bila tidak terserang penyakit maka artinya kondisi tubuh sehat. Padahal itu belum tentu karena sebenarnya ada sejumlah indikator yang cenderung kita abaikan dan badan sebenarnya sudah memberitahu kita tanda bahwa tubuh sedang tidak sehat dan bermasalah. Mengetahui tanda tubuh tidak sehat adalah penting untuk diketahui karena bisa saja mengarah pada hal yang lebih buruk bila …
Read More »
Cara menghilangkan plak / karang gigi dengan mudah dan cepat
Tips membersihkan karang gigi dan pencegahannya. Plak atau karang gigi merupakan lapisan film lengket yang menempel pada gigi dan sangat sulit dibersihkan. Karang gigi mengandung bakteri yang melepaskan asam perusak enamel. Bila plak gigi dibiarkan dalam waktu lama, plak akan mengeras dan berubah menjadi tartar dan menyebabkan kerusakan gigi dan penyakit gusi. Sangatlah penting untuk segera menghilangkan karang gigi supaya …
Read More »
10 Makanan pembentuk Tulang sehat dan kuat
Memiliki tulang yang kuat dan sehat sangat penting karena memiliki fungsi untuk melindungi organ-organ kita dari cedera dan juga menentukan bentuk tubuh kita. Seiring bertambahnya usia, tulang kita akan berubah dan berkembang, oleh karena itu supaya berfungsi sebagaimana mestinya kita harus memberikan tulang nutrisi yang dibutuhkan (terutama kalsium dan magnesium). Di artikel ini tips dan trik akan memberikan berbagai macam …
Read More »
Cara ampuh mengobati sakit flu dan pilek dengan cepat
Penyakit Flu (Influenza) dan pilek (common cold) dapat menginfeksi orang secara cepat dan tiba-tiba. Hal ini kerap terjadi ketika sistem kekebalan tubuh menurun, kurang tidur, jam makan yg tidak teratur, konsumsi makanan yang kurang bergizi, dan konsumsi air putih yang tidak memadai. Karena penyakit flu tidak ada obatnya maka cara mengobati Flu dan pilek dengan cepat dan mudah adalah dgn …

content-type: text/plain

warc-type: conversion

warc-identified-content-language: ind

label: id

annotation: short_sentences header footer


content:
Perempuan Korea identik dengan kulit yang lebih sehat bila kamu lihat hampir seluruh penduduk Korea memiliki kulit yang putih bersih, lembab, dan halus. Jika diperhatikan perempuan atau laki-laki di negara tersebut wajahnya awet muda dan sangat terawat, hal itu disebabkan karena mereka memiliki kulit yang sehat.
Umur 30 tahun namun wajahnya seperti berusia 20 tahun, hal itu tentu membuat semua perempuan di berbagai dunia ingin mengetahui rahasia kecantikan yang dimiliki oleh perempuan Korea. Saat ini banyak sekali produk Korea yang tersebar luas.
Produk skincare Korea sering diburu oleh kaum perempuan karena sudah terkenal bahwa produk kecantikan Korea sangat berkualitas. Orang Korea baik perempuan maupun laki-laki menggunakan skincare secara rutin untuk menjaga kesehatan kulit mereka.
BerikutPopmama.com rangkum informasi rahasia awet muda orang Korea, dibaca yuk!
1. Membersihkan wajah dengan face cleanser
Freepik/Jcomp
Mencuci muka dengan air saja tidak cukup terlebih jika kamu habis menggunakan makeup atau berada di luar ruangan seharian. Pembersih wajah (face cleanser) berguna untuk membersihkan segala kotoran yang menempel di wajah.
Cleansing merupakan tahapan rutin yang wajib dilakukan oleh orang Korea dalam menjaga kebersihan kulitnya, mencuci muka dengan pembersih wajah membuat kotoran dan minyak di wajah terangkat serta membuat pH kulit menjadi seimbang.
Buat kamu yang malas membersihkan wajah kamu harus mulai mencuci muka dengancleanser ya biar kulit kamu menjadi bersih dan bebas jerawat.
2. Menggunakan toner bisa membuat wajah lebih segar
Freepik/Kitthanes
Setelah membersihkan wajah dengan face cleanser kamu harus menggunakan toner sebagai tahap selanjutnya. Toner berfungsi sebagai pelembab dan mengencangkan kulit.
Toner Korea berbeda dengan toner lainnya karena bahan yang digunakan lebih banyak mengandung bahan pelembab, penggunaan toner dilakukan agar kondisi kulit mampu menyerap skincare yang akan digunakan.
Menggunakan toner setelah mencuci muka juga akan memberikan sensasi kesegaran pada wajah kamu, jangan lupa memakai toner setelah mencuci muka ya. Hal ini sangat baik agar kulit kamu terawat sejak dini dan kamu bisa menjadi terlihat awet muda seperti orang Korea.
3. Menutrisi kulit dengan produk essence
Freepik/Sitthiphong
Esensi adalah perawatan yang dilakukan setelah kamu memakai toner. Esensi yang digunakan oleh penduduk Korea ada dua jenis yaitu first essence dan essence regular.
Produk esensi bentuknya berupa gel, krim, dan cair, produk ini juga cepat menyerap di kulit dan berfungsi untuk menutrisi kulit kamu. Kebanyakan orang Korea memilih menggunakan essence regular.
4. Kulit wajah akan lembab dengan memakai serum
Freepik
Memiliki kulit yang sehat memerlukan usaha dalam merawatnya. Menggunakan serum bisa membuat kulit wajah kamu menjadi lembab dan sangat halus. Selain itu, penggunaan serum yang teratur bisa membuat kulit wajah kamu menjadi lebih cerah.
Serum memiliki khasiat yang lebih baik dibandingkan produk esensi, kerutan yang ada di wajah kamu perlahan bisa memudar jika kamu teratur memakai serum. Cara mengaplikasikan serum pada wajah sebaiknya kamu lakukan sebelum memakai moisturizer.
Produk ini mengandung vitamin C yang bisa membuat kulit kusam kamu menjadi cerah bersinar, miliki kulit yang sehat dengan melakukan perawatan wajah dengan benar ya!
5. Exfoliating membuat wajah bebas komedo
Freepik/Maksymiv_yura
Melakukan perawatan wajah harus dilakukan secara maksimal jika kamu menginginkan hasil yang memuaskan. Usahakan melakukan exfoliating sebanyak dua minggu sekali. Menggunakanscrub bisa membantu pengelupasan sel kulit yang mati.
Kotoran di wajah kamu juga akan hilang saat melakukan scrubbing, komedo yang diakibatkan minyak berlebih juga akan hilang. Jadi wajah kamu bisa terbebas dari komedo yang bisa menyebabkan jerawat pada wajah kamu.
7. Eye cream memperlambat penuaan dini pada kulit wajah
Freepik/Maksymiv_yura
Memiliki mata panda tentu bisa membuat kamu menjadi kurang percaya diri kan? Tidur yang terlalu malam dan kelelahan bisa membuat kantong mata kamu menjadi hitam. Istirahat yang cukup dan banyak minum air putih bisa mengurangi mata panda.
Namun, akan lebih efektif jika kamu mengguakan eye cream, kulit di bawah mata sangat tipis dan paling cepat mengalami penuaan dini.
Pemakaian eye cream bisa membantu kamu mengurangi mata panda, sehingga wajah kamu akan terlihat lebih segar dan lebih awet muda serta terhindar dari penuaan dini. Silahkan untuk mencobanya di rumah ya!
6. Rutin maskeran dapat mencerahkan wajah
Freepik
Maskeran sangat efektif untuk membuat wajah kamu menjadi segar dan lembab. Waktu yang baik untuk maskeran sebaiknya dilakukan pada malam hari untuk mendapatkan perawatan yang maksimal.
Gunakan masker 2-3 kali dalam seminggu supaya wajah kamu bersih dan bersinar, tunggu sampai 15-20 menit lalu pijat wajah yang dibaluri oleh masker. Pijatan dilakukan agar aliran darah kamu menjadi lancar dan produk masker cepat menyerap pada kulit.
8. Sunscreen melindungi kulit dari sinar matahari
Freepik
Kegiatan di siang hari tidak bisa dihindari untuk itu kamu perlu menggunakan tabir surya untuk melindungi kulit terpapar dari sinar matahari secara langsung. Terkena paparan sinar matahari secara terus-menerus bisa membuat kulit kamu mengalami flek dan penuaan dini.
Jika kamu belum menggunakan sunscreen, sebaiknya mulai saat ini kamu memakainya ya untuk melindungi kulit wajah.
Namun, jika kamu ingin menjaga kulit kamu tetap sehat dan terlindungi kamu tidak boleh malas dan harus selalu menggunakan tabir surya saat ingin keluar rumah.
9. Jangan lupa memakai krim malam sebelum tidur
Freepik/Vectorpouch
Berkegiatan seharian akan membuat kulit kamu menjadi kusam karena kotoran yang menempel pada kulit, untuk menjaga kulit kamu tetap sehat kamu harus menggunakan krim malam sebelum tidur. Krim malam akan membantu kamu meregenerasi kolagen.
Selain itu penggunaanya juga menutrisi kulit kamu, nutrisi dari krim malam mampu membuat kulit kamu menjadi kenyal dan terjaga kelembapannya.
Nah, sekarang kamu sudah mengetahui rahasia perawatan kulit yang dilakukan oleh orang Korea kan, sekarang kamu bisa menerapkannya untuk membuat kulit kamu menjadi awet muda.


content:
Komputer sering digunakan untuk mengotomatiskan tugas-tugas yang berulang. Mengulang tugas-tugas yang sama atau mirip tanpa membuat kesalahan adalah hal yang dilakukan dengan sangat baik oleh komputer dan sangat buruk oleh manusia.
Eksekusi berulang dari sekumpulan pernyataan dinamakan perulangan (iteration). Karena perulangan sangatlah umum, Python menyediakan beberapa fitur bahasa untuk mempermudahnya. Kita sudah melihat pernyataan for pada bab 3. Ini adalah bentuk dari perulangan yang akan sering kamu gunakan. Tapi pada bab ini kita akan mempelajari tentang pernyataan while -- cara lain untuk membuat program melakukan perulangan, yang akan berguna untuk situasi yang berbeda.
Sebelum kita melakukannya, mari kita review beberapa pemahaman...
7.1. Pemberian Nilai (Assigment)
Seperti yang kita bahas sebelumnya, pemberian nilai pada suatu variabel lebih dari satu kali itu dibolehkan. Pemberian nilai baru membuat variabel sebelumnya merujuk pada nilai yang baru (dan berhenti merujuk ke nilai yang sebelumnya).
waktu_tersisa = 15
print(waktu_tersisa)
waktu_tersisa = 7
print(waktu_tersisa)
Output dari program ini adalah:
15
7
Itu karena waktu_tersisa pertama kali memegang nilai 15, dan kedua kali nilainya diganti menjadi 7. Tercetaklah 15 dan kemudian 7.
Sangatlah penting untuk bisa membedakan antara sebuah pemberian nilai dan ekspresi Boolean untuk menguji kesetaraan. Karena Python menggunakan token sama dengan ( = ) untuk pemberian nilai, sangat mungkin seseorang akan menganggap pernyataan seperti a = b sebagai sebuah pengujian Boolean. Tidak seperti matematika! Ingat bahwa token untuk operator persetaraan pada Python adalah menggunakan ==.
Ingat juga bahwa sebuah pengujian kesetaraan sifatnya simetris, tapi pemberian nilai tidak. Sebagai contoh, jika a == 7 maka 7 == a juga artinya sama. Tapi di Python, pernyataan a = 7 adalah legal dan 7 = a adalah tidak.
Di Python, sebuah pernyataan pemberian nilai bisa membuat dua variabel bernilai sama, tapi karena, pemberian nilai selanjutnya bisa merubah masing-masing, hal itu tidak mesti dikatakan demikian:
a = 5
b = a    # Setelah menjalankan baris ini, a dan b bernilai sama
a = 3    # Setelah menjalankan baris ini, a dan b tidak lagi sama
Baris ketiga merubah nilai dari a tapi tidak merubah nilai dari b, jadi mereka tidak lagi sama. (dalam beberapa bahasa pemrograman lainnya, digunakan simbol yang berbeda untuk pemberian nilai, misalnya seperti <- atau :=, untuk menghindari kebingungan. Beberapa orang juga menganggap bahwa variabel adalah kata yang tidak tepat untuk digunakan, tapi lebih tepat kalau kita memanggilnya sebagai assignable. Python memilih untuk mengikuti peristilahan umum dan penggunaan tokennya, juga ditemukan dalam bahasa seperti C, C++, Java, dan C#, jadi kita menggunakan token = untuk pemberian nilai, == untuk persetaraan, dan kita menyebutnya sebagai variabel.
7.2. Memperbaharui Variabel
Ketika sebuah pernyataan pemberian nilai dieksekusi, ekspresi di sisi kanan (contoh: ekspresi yang ditulis setelah token pemberian nilai) akan dinilai terlebih dahulu. Ini akan menghasilkan sebuah nilai. Lalu pemberian nilai dilakukan, jadi itu berarti variabel pada sisi kiri sekarang merujuk ke nilai yang baru.
Satu dari banyak bentuk yang paling umum dari pemberian nilai adalah sebuah pembaharuan, dimana nilai baru dari variabel bergantung pada nilai lamanya. Ambil tarik 50 ribu dari ATM, atau tambah satu putaran ke papan nilai.
n = 5
n = 3 * n + 1
Baris 2 berarti dapatkan nilai sekarang dari n, kalikan dengan tiga dan tambahkan satu, dan berikan jawabannya ke n, sehingga n merujuk ke nilai itu. Jadi setelah mengeksekusi dua baris diatas, n akan berisi atau merujuk ke integer 16.
Jika kamu mencoba untuk mendapatkan nilai sebuah variabel yang sama sekali belum diberikan nilai, kamu akan mendapatkan sebuah error.
>>> w = x + 1
Traceback (most recent call last):
File "<interactive input>", line 1, in
NameError: name 'x' is not defined
Sebelum kamu bisa memperbaharui sebuah variabel, kamu mesti menginisialisasi nilai awalnya, biasanya dengan sebuah pemberian nilai sederhana:
skor_tim = 0
...
skor_tim = skor_tim + 1
Baris 3 -- memperbaharui sebuah variabel dengan menambahkannya 1 -- sangatlah umum. Ini dimanakan sebagai increment dari variabel; pengurangan dengan 1 dinamakan decrement. Terkadang programer juga menyebutnya bumping variabel, yang artinya juga sama menjumlahkan dengan 1.
7.3. Meninjau Lagi Perulangan for
Ingat bahwa perulangan for memproses setiap item dalam sebuah list. Setiap item pada gilirannya dimuat ulang ke variabel perulangan, dan body dari perulangan pun dieksekusi. Kita melihat contoh ini pada bab sebelumnya:
for f in ["Joe", "Zoe", "Brad", "Angelina", "Zuki", "Thandi", "Paris"]:
    invitation = "Hi " + f + ".  Please come to my party on Saturday!"
    print(invitation)
Memproses semua item dalam sebuah list dinamakan dengan traversing list, atau traversal.
Mari buat sebuah fungsi untuk menjumlahkan semua elemen dari sebuah list bilangan. Lakukan ini secara manual dulu, dan coba pisahkan langkah-langkap apa saja yang kamu ambil. Kamu akan menyadari kamu perlu mempersiapkan "total berjalan" dari penjumlahan yang telah lewat, baik dalam selembar kertas, atau di kepala mu, atau kalkulator. Mengingat hal-hal dari satu langkah ke langkah selanjutnya adalah alasan mengapa kita punya variabel-variabel dalam sebuah program: jadi kita akan perlu beberapa variabel untuk mengingat "total berjalan". Yang mestinya dimulai dengan nilai nol, dan kemudian kita perlu melintasi item-item yang ada dalam daftar. Untuk setiap item, kita akan perlu memperbaharui nilai dari total berjalan dengan menjumlahkannya dengan bilangan selanjutnya.
def mysum(xs):
    """ Sum all the numbers in the list xs, and return the total. """
    running_total = 0
    for x in xs:
        running_total = running_total + x
    return running_total

# Add tests like these to your test suite ...
test(mysum([1, 2, 3, 4]) == 10)
test(mysum([1.25, 2.5, 1.75]) == 5.5)
test(mysum([1, -2, 3]) == 2)
test(mysum([ ]) == 0)
test(mysum(range(11)) == 55)  # 11 is not included in the list.
7.4. Pernyataan while
Berikut merupakan potongan kode yang mendemonstrasikan penggunaan dari pernyataan while:
def sum_to(n):
    """ Return the sum of 1+2+3 ... n """
    ss  = 0
    v = 1
    while v <= n:
        ss = ss + v
        v = v + 1
    return ss

# For your test suite
test(sum_to(4) == 10)
test(sum_to(1000) == 500500)
Kamu hampir bisa membaca pernyataan while sebagaimana dalam bahasa Inggris. Itu berarti, sementara v nilainya kurang dari atau sama dengan n, lanjutkan eksekusi dari body perulangan. Di dalam body, setiap kali putaran, increment nilai v. Ketika v nilainya melewati n, kembalikan (return) hasil penjumlahan yang sudah terakumulasi.
Lebih formalnya, berikut adalah alur tepat dari pernyataan while:
Nilai kondisi pada baris ke 5, menghasilkan sebuah nilai baik False atau True.
Jika nilainya adalah False, keluar dari pernyataan while dan lanjutkan eksekusi ke pernyataan berikutnya (dalam kasus ini line 8).
Jika nilainya adalah True, eksekusi setiap pernyataan di dalam body (baris 6 dan 7) lalu kembali ke pernyataan while pada baris ke 5.
Bagian body terdiri dari semua pernyataan yang bertakuk dibawah keyword while.
Perhatikan bahwa jika kondisi perulangan mengubah nilai dari satu atau lebih variabel-variabel sehingga akhirnya kondisinya menjadi false dan perulangan dihentikan. Selain itu perulangan akan melakukan pengulangan selama-lamanya, yang dinamakan dengan infinite loop. Salah satu sumber hiburan untuk ilmuan komputer adalah hasil pengamatan bahwa cara pakai yang ditulis pada kemasan sampo, "lather, rinse, repeat", adalah sebuah infinite loop.
Pada kasus ini, kita bisa membuktikan bahwa perulangan berakhir karena kita tahu bahwa nilai dari n adalah terbatas, dan kita bisa melihat nilai dari v ber-increment setiap kali perulangan berputar. Jadi pada akhirnya tibalah waktunya ia akan melewati n. Dalam kasus lainnya, itu tidaklah mudah, bahkan menjadi tidak mungkin dalam beberapa kasus, untuk mengetahui apakah perulangan akan berhenti.
Apa yang akan kamu sadari disini adalah bahwa perulangan while adalah pekerjaan lebih untuk mu -- sang programer -- ketimbang saudaranya perulangan for. Ketika menggunakan sebuah perulangan while kita mesti mengatur variabel perulangan kita sendiri: berikan nilai awal, cara uji kondisi untuk menentukan penyelesaian, lalu memastikan kamu merubah sesuatu pada body sehingga perulangan akan berhenti. Sebagai perbandingan, berikut adalah sebuah fungsi yang sama tetapi menggunakan for:
def sum_to(n):
    """ Return the sum of 1+2+3 ... n """
    ss  = 0
    for v in range(n+1):
        ss = ss + v
    return ss
Perhatikan pemanggilan fungsi range yang cukup sulit -- kita mesti menambah satu ke n, karena range menghasilkan listnya hingga tapi tidak termasuk nilai yang kamu berikan padanya. Kesalahan pemrograman sangat mungkin terjadi dan mengabaikan hal ini, tapi karena kita telah membuat investasi dari penulisan beberapa unit tes, tes suite kita akan menangkap erorr kita.
Jadi mengapa harus ada dua perulangan jika for terlihat lebih mudah? Contoh selanjutnya memperlihatkan kasus dimana kita perlu kemampuan ekstra yang akhirnya kita dapatkan dari perulangan while.
7.5. Urutan Collatz 3n + 1
Mari lihat pada urutan sederhana yang telah membuat para ahli matematika berdecak kagum dan mabuk selama bertahun-tahun. Mereka masih belum bisa jawab bahkan pertanyaan yang paling sederhana mengenai hal ini.
"Aturan perhitungan" untuk membuat urutannya adalah mulai dari menentukan bilangan n, dan membuat urutan berikutnya dari n, baik dengan membelah dua n, (ketika n adalah genap), atau lainnya dengan mengalikannya dengan tiga dan menambahkan satu. Urutan ini akan brakhir ketika n mencapai 1.
Fungsi Python berikut menggambarkan algoritma tersebut:
def seq3np1(n):
    """ Print the 3n+1 sequence from n,
        terminating when it reaches 1.
    """
    while n != 1:
        print(n, end=", ")
        if n % 2 == 0:        # n is even
            n = n // 2
        else:                 # n is odd
            n = n * 3 + 1
    print(n, end=".\n")
Pertama perhatikan bahwa fungsi print pada baris 6 memiliki argumen tambahan end=", ". Ini memberitahu fungsi print untuk menyertakan string yang tercetak apapun yang dipilih oleh programmer (dalam kasus ini, sebuah koma diikuti dengan sebuah spasi), daripada mengakhiri baris. Jadi setiap kali sesuatu tercetak dalam perulangan, hasilnya akan tercetak pada baris yang sama, menjadi bilangan-bilangan yang dipisahkan dengan koma. Pemanggilan print(n, end=".\n" pada baris ke 11 setelah perulangan selesai akan mencetak nilai akhir dari n diikuti dengan sebuah titik dan sebuah karakter baris baru. (Kamu akan mengetahui apa itu \n (karakter baris baru atau newline) dalam bab berikutnya).
Kondisi untuk meneruskan perulangan ini adalah n != 1, jadi perulangan akan terus berlanjut hingga ia mencapai kondisi pengakhirannya, (misal n == 1).
Setiap kali dalam perulangan, program akan mencetak nilai dari n dan kemudian menguji apakah nilainya genap atau ganjil. Jika genap, nilai dari n dibagi dua menggunakan pembagian integer. Jika ganjil, nilainya digantikan menjadi n * 3 + 1. Berikut beberapa contohnya:
>>> seq3np1(3)
3, 10, 5, 16, 8, 4, 2, 1.
>>> seq3np1(19)
19, 58, 29, 88, 44, 22, 11, 34, 17, 52, 26, 13,
40, 20, 10, 5, 16, 8, 4, 2, 1.
>>> seq3np1(21)
21, 64, 32, 16, 8, 4, 2, 1.
>>> seq3np1(16)
16, 8, 4, 2, 1.
>>>
Karena n terkadang bertambah dan terkadang berkurang, tidak ada bukti yang bisa terlihat bahwa n akan bisa mencapai 1, atau programnya akan berhenti. Untuk beberapa nilai tertentu dari n, kita bisa membuktikan pengakhiran. Sebagai contoh, jika nilai awal adalah pangkat dua, maka nilai dari n akan menjadi genap setiap kali dalam perulangan hingga ia mencapai 1. Contoh sebelumnya berhenti dengan sebuah urutan, yang dimulai dengan 16.
Lihat jika kamu bisa menemukan sebuah nilai awal kecil yang memerlukan ratusan langkah sebelum akhirnya selesai.
Disamping nilai tertentu, pertanyaan menarik pertama kali diungkapkan oleh seorang ahli matematika Jerman bernama Lothar Collatz: Collatz conjecture (juga dikenal sebagai 3n + 1 conjecture), adalah bahwa urutan ini berakhir untuk semua nilai positif dari n. Sejauh ini, tak seorang pun mampu membuktikan menyangkalnya! (Sebuah conjecture atau tebakan adalah sebuah pernyataan yang mungkin benar, tapi tak ada seorang pun yang tahu dengan pasti.)
Pikirkan dengan matang mengenai apa yang dibutuhkan untuk sebuah pembuktian dan sebuah penyangkalan dari tebakan "Semua integer positif pada akhirnya akan bertemu dengan 1 menggunakan aturan Collatz". Dengan komputer yang cepat kita telah mampu menguji setiap integer hingga nilai yang sangat besar, dan sejauh ini, mereka semua pada akhirnya berakhir dengan satu. Tapi siapa yang tahu? Mungkin terdapat bilangan yang berkurang menjadi 1.
Kamu akan menyadari bahwa jika kamu berhenti ketika kamu mencapai 1, urutannya masuk kedalam lingkaran putarnya sendiri: 1, 4, 2, 1, 4, 2, 1, 4 ... Jadi satu kemungkinannya adalah bahwa mungkin terdapat putaran lainnya yang belum kita ketahui hingga sekarang.
Wikipedia memiliki artikel informatif mengenai dugaan Collatz. Urutannya juga memiliki nama lain (Urutan Hailstone, bilangan-bilangan Wonderous, dll.) kamu akan menemukan seberapa banyak integer yang telah diuji oleh komputer, dan diketahui bisa bertemu!
Memilih antara for dan while
Gunakan perulangan for jika kamu tahu, sebelum kamu memulai perulangan, jumlah maksimal putaran yang kamu perlukan untuk mengeksekusi body. Sebagai contoh, jika kamu melintasi sebuah list yang berisi elemen-elemen, kamu tahu bahwa jumlah maksimal dari iterasi perulangan yang mungkin kamu butuhkan adalah "semuah elemen yang berada dalam daftar". Atau jika kamu perlu mencetak 12 kali putaran, kita tahu dengan pasti seberapa banyak perulangan yang perlu dilakukan.
Jadi masalah apapun seperti "putari model cuaca ini untuk 1000 kali putaran", atau "cari daftar kata-kata ini". "temukan semua bilangan primer hingga 10000" untuk itu paling bagus adalah menggunakan perulangan for.
Kebalikannya, jika kamu harus mengulang beberapa komputasi hingga beberapa kondisi terpenuhi, dan kamu tidak bisa menghitung lebih detil ketika (dari if) hal tersebut akan terjadi, seperti yang kita lakukan pada masalah 3n + 1 ini, kamu akan memerlukan sebuah perulangan while.
Kita menamai kasus pertama sebagai definite iteration -- kita tahu seberapa banyak perulangan diperlukan. Kasus selanjutnya adalah indefinite iteration -- kita tidak tahu pasti seberapa banyak perlulangan yang kita perlukan -- kita bahkan tidak bisa menentukan batas atasnya!
7.6. Menelusuri Sebuah Program (Tracing)
Untuk menulis program komputer yang efektif, dan untuk membangun model konseptual sebuah eksekusi program, seorang programer perlu mengembangkan kemampuannya dalam melacak eksekusi dari program komputer. Penelusuran melibatkan sudut pandang menjadi itu sendiri dan mengikuti flow of execution melalui sebuah sampel program berjalan, merekam kondisi dari semua variabel dan output apapun yang dihasilkan program setelah setiap intruksi selesai dieksekusi.
Untuk memahami proses ini, mari lacak pemanggilan ke fungsi seq3np1(3) dari sesi sebelumnya. Pada permulaan dari pelacakan, kita punya sebuah variabel, n (sebuah parameter), dengan sebuah nilai awal 3. Karena 3 tidak sama dengan 1, body dari perulangan while dieksekusi. 3 tercetak dan 3 % 2 == 0 dinilai. Karena itu akan menghasilkan False, maka cabang else dieksekusi dan 3 * 3 + 1 dinilai dan hasilnya diberikan ke n.
Untuk mencatat semuanya ketika kita menelusuri program, buat sebuah kolom dalam selembar kertas untuk setiap variabel yang dibuat sebagaimana program berjalan dan satu lagi untuk outputnya. Penelurusan kita sejauh ini akan terlihat seperti berikut:
n output printed so far
-- ---------------------
3 3,
10
Karena 10 != 1 menghasilkan True, body perulangan dieksekusi lagi, dan tercetak 10. 10 % 2 == 0 adalah true, jadi cabang if yang dieksekusi dan n menjadi 5. Pada akhirnya kita mendapatkan:
n output printed so far
-- ---------------------
3 3,
10 3, 10,
5 3, 10, 5,
16 3, 10, 5, 16,
8 3, 10, 5, 16, 8,
4 3, 10, 5, 16, 8, 4,
2 3, 10, 5, 16, 8, 4, 2,
1 3, 10, 5, 16, 8, 4, 2, 1.
Tracing program bisa menjadi sedikit membosankan dan mudah error (itulah kenapa kita menyuruh komputer untuk melakukan hal ini duluan!), tapi ini adalah sebuah skill penting yang harus dimiliki oleh seorang programer. Melalui penelusuran ini kita bisa belajar banyak hal mengenai bagaimana kode-kode yang kita tulis bekerja. Kita bisa mengamati bahwa segera setelah n menjadi pangkat 2, sebagai contoh, program akan memerlukan pengeksekusian log2(n) dari body perulangan untuk bisa selesai. Kita juga bisa melihat bahwa final 1 tidak akan tercetak sebagai output dalam body perulangan, itulah mengapa kita menempatkan fungsi print khusus pada bagian akhir.
Menelusuri program adalah, tentu saja, berhubungan dengan single-stepping pada kode mu dan bisa memeriksa variabel-variabelnya. Menggunakan single-step pada komputer untuk diri mu cenderung mengurangi eror dan tentunya lebih nyaman. Jiga, sebagaimana program mu berkembang menjadi lebih rumit, mereka mungkin mengeksekusi berjuta-juta langkah sebelum mereka bisa sampai ke kode yang benar-benar kamu inginkan, jadi tracing manual tentunya tidak mungkin untuk dilakukan. Bisa menentukan sebuah breakpoint dimana kamu memerlukannya adalah jauh lebih berguna. Jadi kami sangat menganjurkan mu untuk meluangkan waktu mempelajari bagaimana menggunakan lingkungan pemrograman mu (PyScripter, dalam catatan tersebut) dengan sepenuhnya.
Juga tersedia beberapa tools visualisasi yang bagus untuk membantu mu melacak dan memahami bagian kecil dari kode Python. Salah satu yang direkomendasikan adalah http://netserv.ict.ru.ac.za/python3_viz
Kita telah diberitahu mengenai fungsi-fungsi chatterbox, tapi kita sekarang menggunakannya disini. Seiring kita mempelajari Python lebih jauh lagi, kita akan melihat bagaimana cara membuat sebuah list yang berisi nilai-nilai untuk menyimpan urutannya, ketimbang membuat fungsi yang mencetak mereka. Dengan melakukan ini maka kita bisa menghilangkan fungsi-fungsi print yang mengganggu tersebut di pertengahan logika kita, dan tentunya membuat fungsi menjadi lebih berguna.
7.7. Menghitung Digit
Fungsi berikut menghitung jumlah dari digit desimal dalam integer positif.
def num_digits(n):
    count = 0
    while n != 0:
        count = count + 1
        n = n // 10
    return count
Pemanggilan ke fungsi print(num_digits(710)) akan mencetak 3. Pelacakan eksekusi dari pemanggilan fungsi ini (mungkin menggunakan fungsi single-step pada PyScripter, atau Python visualizer, atau menggunakan selembar kertas) untuk meyakinkan diri mu sendiri bahwa ia bekerja.
Fungsi ini menunjukan sebuah pola penting dari komputasi yang dimanakan dengan counter. Variabel count diinisialisasi dengan 0 dan kemudian ditambahkan setiap kali body perulangan dieksekusi. Ketika perulangan keluar, count berisi hasilnya -- yaitu berapa kali body perulangan dieksekusi, yang tentunya sama dengan jumlah digit yang dihitung.
Jika kita hanya ingin menghitung digit 0 atau 5 saja, kita bisa melakukannya dengan menambahkan pengkondisian sebelum menambahkan counter:
def num_zero_and_five_digits(n):
    count = 0
    while n > 0:
        digit = n % 10
        if digit == 0 or digit == 5:
            count = count + 1
        n = n // 10
    return count
Pastikan bahwa test(num_zero_and_five_digits(1055030250) == 7) bisa dilewati.
Perhatikan kalau test(num_digits(0) == 1) hasilnya gagal. Jelaskanlah kenapa bisa demikian. Apakah kamu berpikir ini adalah bug di dalam kode, atau bug di spesifikasi, atau ekspektasi kita, atau pengujiannya yang bermasalah?
7.8. Pemberian Nilai yang Disingkat (Abbreviated assignment)
Menambahkan sebuah variabel (incrementing) adalah tugas umum dan maka dari itu Python memiliki syntax yang disingkat untuk itu:
>>> count = 0
>>> count += 1
>>> count
1
>>> count += 1
>>> count
2
count += 1 adalah sebuah singkatan untuk count = count + 1. Kita mengucapkan operator tersebut sebagai "plus-sama dengan". Nilai increment tidak harus 1:
>>> n = 2
>>> n += 5
>>> n
7
Ada juga singkatan-singkatan lainnya untuk -=. *=, /=, //= dan %=:
>>> n = 2
>>> n *= 5
>>> n
10
>>> n -= 4
>>> n
6
>>> n //= 2
>>> n
3
>>> n %= 2
>>> n
1
7.9. Bantuan dan meta-notation
Python datang dengan dokumentasi luas untuk semua fungsi-fungsi built-in, dan library-library atau pustakanya. Sistem lain memiliki cara lain untuk mengakses bantuan ini. Di PyScripter, caranya dengan mengklik item menu Help, dan memilih Python Manual. Kemudian cari bantuan pada fungsi built-in range. Kamu akan menemukan bantuan seperti gambar berikut:
Bantuan Fungsi Range pada Python.png
Perhatikan kurung siku pada deskripsi argumen. Itu adalah contoh dari meta-notation -- notasi yang menjelaskan syntax Python, tapi bukan merupakan bagian dari argumen. Kurung siku pada dokumentasi ini berarti bahwa argumen tersebut sifatnya opsional -- programer bisa mengisi atau menghiraukannya. Jadi apa yang baris help ini maksud adalah bahwa range harus selalu memiliki argumen stop, tapi untuk argumen start nya bisa opsional (yang mana harus diikuti dengan koma jika ada), dan ia juga bisa memiliki argumen tambahan berupa step, diawali dengan koma jika ada.
Contoh dari help tersebut memperlihatkan bahwa range bisa memiliki 1, 2 atau 3 argumen. Hasilnya yang berupa list bisa dimulai dari nilai awal berapapun, dan bertambah atau berkurang terus dalam increment 1 (step = 1). Dokumentasi ini juga mengatakan bahwa, argumennya harus bertipe integer.
Meta-notation lainnya yang juga akan sering kamu lihat adalah penggunaan huruf tebal dan huruf miring. Huruf tebal artinya ia adalah sejenis token -- keyword atau simbol -- yang artinya ia harus ditulis pada kode Python mu seperti apa adanya, timana istilah yang ditulis dengan huruf miring berarti "sesuatu dengan tipe ini". Jadi deskripsi syntax:
for variabel in list:
artinya adalah kamu bisa menggantinya dengan variabel legal dan list legal apapun ketika kamu menulisnya pada kode Python mu.
Deskripsi ini (yang disederhanakan) adalah miliki fungsi print, juga memperlihatkan contoh lain dari meta-notation yang mana tanda elipsis (...) berarti bahwa kamu bisa memiliki objek sebanyak yang kamu inginkan (bahkan nol), dipisahkan dengan koma:
print( [object, ...] )
Meta-notation memberikan kita cara ringkas dan powerful untuk menjelaskan pola-pola dari beberapa syntax atau fitur.
7.10. Tabel
Satu dari sekian hal yang paling bagus jika diselesaikan menggunakan perulangan adalah pembuatan tabel. Sebelum adanya komputer, orang-orang mesti menghitung logaritma, sin dan cos, dan fungsi matematika rumit lainnya secara manual dengan tangan. Untuk membuatnya menjadi lebih mudah, buku-buku matematika berisi tabel-tabel panjang yang berisi daftar nilai-nilai dari fungsi-fungsi tersebut. Membuat tabel tentu merupakan pekerjaan yang lamban dan membosankan, dan mereka tentunya cenderung menghasilkan banyak error.
Ketika komputer datang sebagai solusi, satu dari reaksi-reaksi awal yang muncul adalah, "Wah ini bagus sekali! Sekarang kita bisa menggunakan komputer untuk membuat tabel, jadi pasti tidak akan ada lagi error." Hal tersebut memang menjadi kenyataan (kebanyakan) tapi masih merupakan opini jangka pendek. Karena segera setelahnya, komputer-komputer dan kalkulator telah menyebar dengan sangat cepat, dan begitu banyak orang yang menggunakan, sehingga secara otomatis penggunaan tabel berangsur-angsur ditinggalkan. Komputer tidak lagi diharapkan ada untuk membuat tabel, tetapi komputer dan kalkulator sendiri sudah bisa menggantikan fungsi tabel!
Ya, hampir. Tapi untuk beberapa operasi, komputer-komputer juga ternyata masih menggunakan tabel dari nilai-nilai untuk mendapatkan jawaban terdekat dan kemudian melakukan perhitungan untuk meningkatkan keakuratan hasilnya. Dalam beberapa kasus, terdapat error-error dalam tabel-tabel pokok tersebut, kejadian yang paling terkenal adalah tabel pada chip prosesor Intel Pentium yang digunakan untuk melakukan pembagian floating-point.
Meskipun tabel log tidak terlalu berguna seperti sedia kala, ia masih bisa dijadikan contoh dari perulangan. Program berikut menghasilkan urutan dari nilai-nilai pada kolom sisi kiri dan nilai di kiri tadi dipangkatkan dengan dua dan hasilnya ditampilkan pada kolom di sisi kanan:
for x in range(13):   # Generate numbers 0 to 12
    print(x, "\t", 2**x)
String "\t" fungsinya untuk mewakili karakter tab. Karakter garis miring belakang (backslash) pada "\t" menandakan awal dari sebuah escape sequence. Escape sequence digunakan untuk mewakili karakter-karakter yang tidak terlihat seperti tab dan baris baru. Urutan dari \n mewakili baris baru.
Escape squence bisa muncul dimana saja di dalam string; pada contoh ini, escape sequence tab adalah satu-satunya yang digunakan pada string untuk membuat tab. Bagaimana menurut mu cara untuk mewakili backslash dalam sebuah string?
Seperti halnya karakter-karakter dan string-string ditampilkan di layar, tanda tak terlihat yang dinamakan cursor mencatat posisi dimana karakter selanjutnya akan ditempatkan. Setelah fungsi print, cursor biasanya pergi ke awal baris baru.
Karakter tab akan menggeser cursor ke kanan hingga mencapai satu tab stop. Tab berguna untuk membuat kolom dari baris teks, seperti terlihat pada output dari program sebelumnya:
0 1
1 2
2 4
3 8
4 16
5 32
6 64
7 128
8 256
9 512
10 1024
11 2048
12 4096
Karena ada karakter tab diantara kolom, posisi dari kolom kedua tidak bergantung pada jumlah digit dari kolom pertama.
7.11. Tabel dua dimensi
Tabel dua dimensi adalah tabel yang nilainya bisa dibaca pada interseksi dari baris dan kolomnya. Tabel perkalian adalah contoh yang bagus. Mari katakan kamu ingin mencetak tabel perkalian untuk nilai-nilai dari 1 hingga 6.
Cara yang bagus untuk memulainya adalah dengan menulis perulangan yang mencetak hasil perkalian dia, semuanya dalam satu baris:
for i in range(1, 7):
    print(2 * i, end="   ")
print()
Disini kita menggunakan fungsi range, tetapi untuk awal urutannya kita mulai dari 1. Ketika perulangannya dieksekusi, nilai dari i akan berubah dari 1 hingga 6. Ketika semua elemen dari range telah diberikan ke i, perulangan akan berakhir. Setiap kali perulangan berputar, ia akan menampilkan nilai dari 2 * 1, diikuti dengan tiga spasi.
Lagi, argumen tambahan end=" " pada fungsi print mengabaikan baris baru, dan menggunakan tiga spasi sebagai gantinya. Setelah perulangan selesai, pemanggilan print pada baris 3 akan mengakhiri baris sekarang, dan memulai baris baru di bawahnya.
Output dari program ini adalah :
2 4 6 8 10 12
Bagus sekali kita sudah sampai sejauh ini. Langkah selanjutnya adalah melakukan enkapsulasi dan generalisasi (encapsulate & generalize).
7.1.2. Enkapsulasi dan generalisasi
Enkapsulasi adalah proses pembalutan pototangan-potongan kode ke dalam sebuah fungsi, sehingga memungkinkan kita untuk mendapatkan keuntungan dari semua hal yang bisa dilakukan oleh fungsi tersebut. Kamu telah melihat beberapa contoh dari enkapsulasi, termasuk is_divisible pada bab sebelumnya.
Generalisasi berarti melakukan suatu hal khusus, seperti mencetak hasil perkalian dengan 2, lalu membuatnya menjadi lebih umum, seperti mencetak hasil perkaluan dengan integer berapapun.
Fungsi berukut akan mengenkapsulasi perulangan sebelumnya dan menggeneralisasikannya untuk mencetak hasil perkalian dengan n:
def print_multiples(n):
    for i in range(1, 7):
        print(n * i, end="   ")
    print()
Untuk enkapsulasi, semua yang perlu kita lakukan adalah menambahkan baris pertama, yang mendeklarasikan nama dari fungsi dan daftar parameternya. Untuk menggeneralisasi, semua yang perlu kita lakukan adalah mengganti nilai 2 dengan parameter n.
Jika kita memanggil fungsi ini dengan argumen 2, kita akan mendapatkan output yang sama seperti sebelumnya. Dengan argumen 3, outputnya adalah:
4 8 12 16 20 24
Sekarang kamu tentunya bisa menebak bagaimana cara mencetak tabel perkalian -- dengan memanggil print_multiples secara berulang dengan argumen-argumen yang berbeda. Tentunya, kita bisa menggunakan perulangan lain seperti:
for i in range(1, 7):
    print_multiples(i)
Perhatikan bagaimana miripnya perulangan ini dengan yang ada di dalam print_multiples. Semua yang kita lakukan adalah mengganti fungsi print dengan sebuah pemanggilan fungsi.
Output dari program ini adalah sebuah tabel perkalian:
1 2 3 4 5 6
2 4 6 8 10 12
3 6 9 12 15 18
4 8 12 16 20 24
5 10 15 20 25 30
6 12 18 24 30 36
7.13. Enkapsulasi lebih lanjut
Untuk mendemonstrasikannya lagi, mari ambil kode dari sesi terakhir dan bungkus kedalam sebuah fungsi:
def print_mult_table():
    for i in range(1, 7):
        print_multiples(i)
Proses ini adalah rencana pengembangan (development plan) yang sangat umum. Kita mengembangkan kode dengan menulis baris-baris kode diluar fungsi apapun, atau menuliskannya langsung pada interpreter. Ketika kita sudah bisa membuat kodenya berjalan, baru kita mengekstraknya dan membungkusnya ke dalam sebuah fungsi.
Rencana pengembangan ini khususnya sangat berguna jika kamu tidak tahu bagaimana cara membagi program menjadi fungsi ketika kamu mulai menulis. Pendekatan ini akan membantu mu mendesain seiring dengan berkembangnya kode.
7.14. Variabel-variabel lokal
Kamu mungkin bertanya-tanya bagaimana kita dapat menggunakan variabel yang sama, i, pada kedua fungsi print_multiples dan print_mult_table. Bukankan hal tersebut dapat menjadi masalah ketika salah satu fungsi merubah nilai dari variablenya?
Jawabannya adalah tidak, karena i pada print_multiples dan i pada print_mult_table bukanlah variabel yang sama.
Variabel yang dibuat di dalam sebuah definisi fungsi akan bersifat lokal; kamu tidak bisa mengakses variabel lokal dari luar fungsi yang memiliki variabel tersebut. Itu artinya kamu bisa memiliki banyak variabel dengan nama yang sama selama variabel-variabel tersebut tidak berada dalam satu fungsi.
Python menilai semua pernyataan di dalam sebuah fungsi -- jika salah satu dari fungsi itu memberikan nilai pada variabel, itulah petunjuk yang digunakan oleh Python untuk membuat variabel menjadi sebuah variabel lokal.
python_local_variable_stack.png
Nilai dari i pada print_mult_table berubah dari 1 hingga enam. Pada diagram yang terjadi adalah 3. Saat selanjutnya setelah perulangan nilainya akan menjadi 4. Setiap kali saat perulangan, print_mult_table memanggil print_multiples dengan nilainya yang sekarang dari i sebagai sebuah argument. Nilai tersebut diberikan ke parameter n.
Di dalam print_multiples, nilai dari i berubah dari 1 hingga 6. Pada diagram, yang terjadi adalah 2. Merubah variabel ini tidak memiliki efek pada nilai dari i pada fungsi print_mult_table.
Merupakan hal umum dan diperbolehkan untuk memiliki variabel lokal berbeda namun dengan nama yang sama. Khususnya, nama seperti i dan j biasa digunakan sebagai variabel perulangan. Jika kamu menghindari penggunaannya hanya karena kamu sudah menggunakannya di tempat lain, kamu kemungkinan hanya akan membuat programmnya semakin sulit untuk dibaca.
7.15. Pernyataan break
Pernyataan break digunakan untuk meninggalkan body dari perulangan secara langsung. Kemudian, setelah perulangan ditinggalkan, pernyataan selanjutnya yang dieksekusi adalah penyataan pertama setelah body perulangan yang ditinggalkan.
for i in [12, 16, 17, 24, 29]:
    if i % 2 == 1: #Jika bilangan ganjil
        break      #... Langsung keluar dari perulangan
    print(i)
print("selesai")
Ini akan mencetak:
12
16
done
Perulangan pra-pengujian -- sifat perulangan standar
for dan while adalah perulangan yang melakukan pengujian kondisi pada saat dimulai, sebelum mengeksekusi bagian manapun pada body. Mereka dinamakan perulangan pra-pengujian (pre-test loops), karena pengujiannya berlangsung sebelum (pra) bagian body. Pernyataan break dan return adalah alat kita untuk menyesuaikan sifat standar ini.
7.1.6 Rasa lain dari perulangan
Terkadang kita akan memerlukan perulangan dengan pengujian di tengah (middle-test loop) dengan sebuah pengujian exit sebagai pengakhir, daripada pada bagian atas atau akhir. Atau sebuah pengujian diakhir (post-test loop) yang menempatkan pengujian akhirnya sebagai hal terkahir pada body. Bahasa lainnya memiliki syntax yang berbeda dan kata kunci yang berbeda pula untuk masing-masing rasa, tapi Python hanya menggunakan sebuah kombinasi while dan if condition: break untuk dapat menyelesaikan urusan ini.
Contoh biasanya adalah masalah dimana user mesti menginput angka yang akan dihitung. Untuk menandakan bahwa tidak ada input lagi yang perlu dimasukan, user mesti memasukan nilai spesial, nilai biasanya adalah -1, atau string kosong. Hal seperti ini memerlukan pola perulangan middle-exit: masukan bilangan selanjutnya, kemudian uji apakah selesai, atau lainnya proses bilangannya.
total = 0
while True:
    response = input("Masukan bilangan selanjutnya. (Kosong = selesai")
    if response == "":
        break
    total += int(response)
print("Total bilangan yang anda masukan adalah ", total)
Yakinkan diri mu kalau contoh di atas tepat dengan flowchart middle-exit: baris 3 melakukan pekerjaan yang sangat berguna, baris ke 4 dan 5 bisa mengeluarkan perulangan, dan jika mereka tidak baris ke 6 melakukan tugasnya dengan lebih berguna sebelum perulangan selanjutnya dimulai.
Bagian while bool: menggunakan ekspresi Boolean untuk menentukan apakah harus mengulang kembali. True adalah sebuah ekspresi Boolean yang sangat penting, jadi while True: artinya selalu lakukan perulangan lagi dan lagi. Ini adalah sebuah idiom bahasa -- sebuah kebiasaan yang kebanyakan programmer kenali secara langsung. Karena ekspresi pada baris 2 tidak akan mengakhiri perulangan, (itu hanyalan contoh acak) programmer harusnya mengatur sendiri bagian break (atau return) ditempat lain diluar body dari perulangan, dalam beberapa cara lain (misal, pada baris 4 dan 5 pada contoh ini), Seorang kompiler dan penterjemah cerdas akan memahami bahwa baris ke 2 adalah pengujian palsu yang pastinya akan selalui bernilai sukses, jadi ia tidak akan membuat test, dan flowchart kita bahkan tidak akan punya bentuk diamon sebagai dummy test pada bagian atas dari perulangan!
Begitu pula, dengan hanya memindahkan if condition: break ke bagian bawah dari body perulangan kita membuat pola untuk sebuah perulangan dengan post-test. Perulangan post-test digunakan ketika kamu ingin memastikan bahwa perulangan selalu mengeksekusi bodynya setidaknya satu kali (karena pengujian pertama hanya terjadi di akhir dari eksekusi dari perulangan body yang pertama). Teknik ini akan berguna, sebagai contoh, jika kita ingin bermain sebuah game interaktif dengan pengguna -- kita selalu ingin bermain setidaknya satu kali permainan:
while True:
    play_the_game_once()
    response = input("Main lagi? (ya / tidak)")
    if response != "ya":
        break
print("Dadahh!")
Petunjuk: Pikirkan dimana kamu ingin exit testnya terjadi
Setelah kamu paham bahwa kamu perlu sebuah perulangan untuk mengulang sesuatu, pikirkan tentang kondisi pengakirannya (terminating condition) -- kapankah saya ingin berhenti mengulangi? Kemudian tentukan apakah kamu perlu melakukan pengujian sebemul memulai perulangan yang pertama (dan setiap perulangan selanjutnya), atau diakhir dari yang pertama (dan setiap yang lainnya juga), atau mungkin di tengah dari setiap perulangan. Program interaktif yang memerlukan masukan dari pengguna atau membaca dari file-file sering perlu melakukan pengakhiran perulangan pada bagian tengah atau pada bagian akhir dari sebuah perulangan, ketika saatnya sudah pasti bahwa tidak ada lagi data yang harus diproses, atau pengguna sudah tidak ingin bermain lagi.
7.17. Sebuah Contoh
Program berikut mengimplementasikan sebuah permainan tebak-tebakan sederhana:
import random                   # Kita mencakupkan bilangan acak pada
rng = random.Random()           #  bab modul, jadi mari lanjutkan
number = rng.randrange(1, 100) # Dapatkan bilangan acak antara [1 dan 100].

guesses = 0
msg = ""

while True:
    guess = int(input(msg + "\nTebak bilangan saya antara 1 dan 100: "))
    guesses += 1
    if guess > number:
       msg += str(guess) + " masih terlalu besar.\n"
    elif guess < number:
       msg += str(guess) + " masih terlalu kecil.\n"
    else:
       break

input("\n\nBagus, berhasil ditebak dalam {0} tebakan!\n\n".format(guesses))
Program ini menggunakan hukum matematika trichotomy (diberikan bilangan riil a dan b, dengan tepat salah satu ketiganya harus true: a > b, a < b, atau a == b).
Pada baris 18 terdapat pemanggilan ke fungsi input, tapi kita tidak melakukan apapun terhadap hasilnya, bahkan tidak memberikan nilai pada variabel. Hal seperti ini adalah legal di Python. Disini memiliki efek untuk memunculkan jendela dialog input dan menunggu pengguna untuk merespon sebelum programnya berakhir. Programmer sering kali menggunakan trik ini untuk melakukan beberapa masuka ekstra pada bagian akhir dari sebuah script, hanya untuk membuat jendelanya tetap terbuka atau programnya tidak langsung keluar.
Juga perhatikan penggunakan variabel msg, awalnya sebuah string kosong, pada baris 6, 12 dan 14. Setiap kali melalui perulangan kita menambahkan pesan yang ditampilkan: ini memungkinkan kita untuk menampilkan umpan dari program langsung pada tempat yang sama seiring dengan kita meminta tebakan selanjutnya.
game_tebak_bilangan_menggunakan_python_3.png
7.18. Pernyataan continue
Pernyataan ini adalah pernyataan kontrol alur yang menyebabkan program secara langsung melompati pemrosesan dari sisa body perulangan, hanya untuk urutan perulangan yang sekarang sedang berlangsung. Tapi perulangan secara keseluruhan akan tetap berlanjut untuk sisa perulangan yang belum dieksekusi:
for i in [12, 16, 17, 24, 29, 30]:
    if i % 2 == 1:        # Jika bilangannya adalah ganjil
        continue          # Jangan diproses
    print(i)
print("done")
Ini akan mencetak:
12
16
24
30
done
7.19. Generalisasi lebih lanjut
Seperti contoh lain dari generalisasi, bayangkan kamu ingin sebuah program yang akan mencetak sebuah perkalian tabel berukuran apapun, tidak hanya tabel 6 kali 6. Kamu bisa menambahkan sebuah parameter ke print_mult_table:
def print_mult_table(high):
    for i in range(1, high+1):
        print_multiples(i)
Kita mengganti nilai 7 dengan ekspresi high+1. Jika kita memanggil print_mult_table dengan argument 7, ia akan menampilkan:
1      2      3      4      5      6
2      4      6      8      10     12
3      6      9      12     15     18
4      8      12     16     20     24
5      10     15     20     25     30
6      12     18     24     30     36
7      14     21     28     35     42
Ini adalah wajar, kecuali bahwa kita kemungkinan ingin tabelnya persegi -- dengan jumlah baris dan kolom sama. Untuk melakukan hal itu, kita menambahkan parameter lain ke print_multiples untuk menentukan seberapa banyak kolum yang harus dimiliki oleh tabel.
Untuk membuatnya sedikit menganggu, kita menamakan parameter ini high, mendemonstrasikan bahwa fungsi lain dapat memiliki parameter dengan nama yang sama (sama halnya dengan variabel lokal). Berikut programnya secara keseluruhan:
def print_multiples(n, high):
    for i in range(1, high+1):
        print(n * i, end="   ")
    print()

def print_mult_table(high):
    for i in range(1, high+1):
        print_multiples(i, high)
Perhatikan bahwa ketika kita menambahkan sebuah parameter baru, kita mesti merubah baris pertama dari fungsi (kepala fungsi), dan kita juga mesti merubah tempat dimana fungsi itu dipanggil pada print_mult_table.
Sekarang, ketika kita memanggil print_mult_table(7):
1      2      3      4      5      6      7
2      4      6      8      10     12     14
3      6      9      12     15     18     21
4      8      12     16     20     24     28
5      10     15     20     25     30     35
6      12     18     24     30     36     42
7      14     21     28     35     42     49
Ketika kamu menggeneralisir sebuah fungsi dengan tepat, kamu akan mendapatkan program dengan kemampuan yang tidak kamu rencanakan. Sebagai contoh, kamu mungkin menyadari bahwa, karena ab = ba, semua catatan pada table akan tampil dua kali. Kamu bisa mengurangi penggunaan tinta dengan mencetak hanya setengah dari tabel. Untuk melakukan itu, kamu hanya perlu mengganti satu baris dari print_mult_table. Ganti
print_multiples(i, high+1)
menjadi
print_multiples(i, i+1)
dan kamu akan mendapatkan:
1
2      4
3      6      9
4      8      12     16
5      10     15     20     25
6      12     18     24     30     36
7      14     21     28     35     42     49
7.20. Fungsi-fungsi
Sekarang telah beberapa kali, kita telah mengenal semua hal-hal bagus dalam penggunaan fungsi. Mulai dari sekarang, kamu mungkin bertanya-tanya apa sesungguhnya hal-hal itu sebenarnya. Berikut adalah beberapa dari mereka:
Mengasah mental pembilahan mu. Memcah tugas rumit menjadi bilahan-bilahan tugas, dan memberikan bilahan tersebut nama yang berarti adalah teknik mental yang luar biasa. Lihat kembali ke contoh yang mengilustrasikan perulangan post-test: kita mengasumsikan bahwa kita memiliki fungsi yang bernama play_the_game_once. Bilahan ini memungkinkan kita untuk mengesampingkan detil dari permaian -- dan dengan mudah kita dapat fokus pada bagian khusus dari logika program kita -- yaitu untuk membiarkan pemain untuk memilih apakah mereka ingin bermain lagi atau tidak.
Membagi program yang panjang menjadi fungsi-fungsi memungkinkan mu untuk memisahkan bagian-bagian program, melakukan debug dalam lingkungan terisolir, dan kemudian mengkomposisikan atau merangkainya menjadi satu kesatuan utuh.
Fungsi-fungsi memfasilitasi penggunaan dari perulangan/iteration.
Fungsi yang didesain dengan baik akan berguna untuk banyak programmer. Setelah kamu menulis dan men-debug salah satunya, kamu bisa menggunakannya lagi di tempat lain.
7.21. Data yang Berpasangan (Paired Data)
Kita sudah pernah melihat list dari nama-nama dan list dari bilangan-bilangan di Python. Sekarang kita melangkah maju pada teks book sedikit lebih jauh, dan memperlihatkan cara yang lebih lanjut dalam merepresentasikan data kita. Membuat hal-hal berpasangan di Python adalah sama mudahnya dengan menempatkan mereka dalam sebuah kurung, seperti ini:
tahun_lahir = ("Indonesia", 1945)
Kita dapat menempatkan banyak pasangan (pair) kedalam list yang berisi pair-pair:
aspek_tuhan = [ ("Brahman", 1), ("Paramatma", 2), ("Bhagavan", 3) ]
Berikut adalah contoh sederhana hal-hal yang bisa kita lakukan dengan data seperti ini, mencetak tahap menginsyafi Tuhan:
print(aspek_tuhan)
print(len(aspek_tuhan))
[("Brahman", 1), ("Paramatma", 2), ("Bhagavan", 3)]
3
Perhatikan bahwa list aspek_tuhan hanya memiliki tiga elemen, setiap elemen adalah pasangan.
Sebagai catatan, seperti yang tertulis pada literatur tertua yang telah ada sejak awal sejarah, Tuhan dikenali dalam tiga tahapan oleh para murid yang mempelajari ilmu ketuhanan. Murid yang baru belajar memahami Tuhan pada aspek Beliau sebagai Brahman (Energy), atau Tuhan yang tidak berbentuk pribadi dan tidak memiliki sifat. Murid yang sudah sedikit lebih maju, memahami Tuhan pada aspek Beliau sebagai Paramatma (Localized), yaitu beliau ada di mana-mana, bersemayam di hati setiap mahluk hidup untuk menuntun mereka mengarungi lautan kehidupan material. Terakhir, murid yang paling maju, memahami aspek Tuhan sebagai Bhagavan (Personality), yaitu Tuhan secara pribadi. Murid kelas 3 ini adalah murid yang paling maju. Aspek tuhan ini diibaratkan seperti sinar matahari sebagai Brahman yang tidak bersifat pribadi, bola matahari sebagai paramatma yang menyinari hati setiap mahluk hidup, dan kegiatan yang ada di dalam bola matahari itu sendiri sebagai Bhagavan atau Kepribadian Tuhan Yang Maha Esa.
Sekarang kita mencetak nama dari aspek_tuhan yang paling awal sebelum tahapan ketiga:
for (aspek, tahapan) in aspek_tuhan:
    if tahapan < 3:
        print(aspek)
Brahman
Paramatma
Ini mendemonstrasikan sesuatu yang belum kita lihat pada perulangan for: daripada menggunakan kontrol variabel satu perulangan, kita lebih memilih menggunakan nama variabel berpasangan, (aspek, tahapan). Perulangannya dieksekusi tiga kali -- sekali untuk setiap pasang pada list, dan pada setiap perulangan kedua variabel diberikan nilai dari pasangan data yang sedang ditangani.
7.22. Perulangan Bersarang untuk Data Bersarang (Nested Loop for Nested Data)
Sekarang kita akan mencoba petualangan yang jauh lebih seru pada penggunaan list data terstruktur. Pada kasus ini, kita memiliki list dari murid-murid. Setiap murid memiliki nama yang dipasangkan dengan list subyek lainnya yang mereka ambil.
students = [
    ("John", ["CompSci", "Physics"]),
    ("Vusi", ["Maths", "CompSci", "Stats"]),
    ("Jess", ["CompSci", "Accounting", "Economics", "Management"]),
    ("Sarah", ["InfSys", "Accounting", "Economics", "CommLaw"]),
    ("Zuki", ["Sociology", "Economics", "Law", "Stats", "Music"])]
Disini kita memberikan sebuah list lima buat elemen. Mari cetak setiap nama murid, dan jumlah dari sbuyek (mata pelajaran) yang mereka ambil:
# Cetak semua murid dengan jumlah mata pelajarannya
for (name, subjects) in students:
    print(name, "takes", len(subjects), "courses")
Python akan merespon dengan output seperti berikut:
John takes 2 courses
Vusi takes 3 courses
Jess takes 4 courses
Sarah takes 4 courses
Zuki takes 5 courses
Sekarang kita ingin mengetahui berapa banyak murid yang mengambil CompSci. Ini memerlukan sebuah counter, dan untuk setiap murid kita perlu perulangan kedua yang menguji setiap subjectnya:
# Count how many students are taking CompSci
counter = 0
for (name, subjects) in students:
    for s in subjects:                 # A nested loop!
        if s == "CompSci":
           counter += 1

print("The number of students taking CompSci is", counter)
The number of students taking CompSci is 3
Kamu harus membuat sebuah list dari data mu sendiri yang menarik minat mu -- anggap sebuah list dari CD mu, masing-masing berisi daftar lagu-lagu pada CD, atau daftar judul film, masing-masing dengan bintang film yang memainkan filmnya. Kamu bisa kemudian menanyakan pertanyaan seperti "Film yang mana yang dibintangi oleh Gita Gutawa?"
7.23. Metode Newton untuk menemukan akar pangkat dua
Perulangan sering kali digunakan pada program yang menghitung hasil numerik yang dimulai dengan jawaban terdekat dan secara beruntun meningkatkan keakuratannya.
Sebagai contoh, sebelum kita memiliki kalkulator atau komputer, orang-orang harus menghitung akar pangkat dua secara manual. Newton menggunakan metode khusus yang sangat bagus (terdapat beberapa bukti bahwa metode ini telah diketahui untuk waktu yang lama sebelumnya). Anggap bahwa kamu ingin tahu bagaimana cara mengetahui akar pangkat dua dari n. jika kamu mulai dengan perkiraan apapaun, kamu bisa menghitung perkiraan yang lebih baik (yang paling dekat dengan jawaban yang sebenarnya) dengan formula berikut ini:
better = (approx + n/approx)/2
Ulangi perhitungan ini beberapa kali menggunakan kalkulator mu. Bisakan kamu melihat mengapa setiap perulangan memberikan mu perkiraan yang sedikit lebih dekat? Salah satu properti menakjubkan dari algoritma khusus ini adalah seberapa cepatnya ia berpusat ke jawaban yang akurat -- sebuah keuntungan yang besar ketimbang melakukannya secara manual.
Dengan menggunakan sebuah perulangan dan mengulang rumus ini hingga perkiraan yang lebih baik hingga cukup dekat dengan hasil yang sebelumnya, kita bisa menulis sebuah fungsi untuk menghitung akar pangkat dua. (Faktanya, ini adalah cara bagaimana kalkulator mu menemukan akar pangkat dua -- ia mungkin punya metode dan rumus yang jauh berbeda, tapi ia juga berdasarkan pada secara berulang meningkatkan tebakannya.)
Ini adalah sebuah contoh dari masalah pada perulangan indefinite: kita tidak bisa memprediksi lebih lanjut berapa kali kita ingin melakukan improvisasi pada tebakan kita -- kita hanya ingin terus bergerak lebih dekat dan lebih dekat. Kondisi pemberhentian dari perulangan kita akan berlaku ketika tebakan lama kita dan tebakan yang telah diimprovisasi sudah "cukup dekat" satu sama lain.
Idealnya, kita ingin yang lama dan yang baru untuk bernilai sama ketika kita berhenti. Tapi persamaan eksak adalah tuntuntan yang sulit pada aritmetika komputer ketika melibatkan bilangan riil. Karena bilangan riil tidak direpresentasikan secra absulut secara akurat (setelah semuanya, sebuah bilangan seperti pi atay akar kuadrat dua memiliki sebuah bilangan tak terhingga sekian desimal karena ia tidak rasional), kita perlu merumuskan pengujian pengakhir untuk perulangannya dengan pertanyaan "apakah a cukup dengan dengan b"? Kondisi pemberhentian ini bisa dikodekan seperti ini:
if abs(a-b) < 0.001:  # Buat nilainya makin kecil agar makin akurat
    break
Perhatikan bahwa kita mengambil nilai absolut dari selisi antara a dan b!
Masalah ini juga merupakan contoh yang bagus ketika sebuah perulangan middle-exit sudah cukup cocok:
def sqrt(n):
    approx = n/2.0     # Mulai dengan beberapa atau tebakan lainnya pada jawaban
    while True:
        better = (approx + n/approx)/2.0
        if abs(approx - better) < 0.001:
            return better
        approx = better

# Test cases
print(sqrt(25.0))
print(sqrt(49.0))
print(sqrt(81.0))
Outputnya adalah:
5.00000000002
7.0
9.0
Lihat apakah kamu bisa meningkatkan perkiraannya dengan mengubah kondisi stopnya. Juga, oprek lagi algoritmanya (mungkin dengan tangan, menggunakan kalkulator mu) untuk melihat seberapa banyak perulangan yang kita perlukan sebelum ia mencapai tahapan keakuratan untuk sqrt(25).
7.24. Algoritma
Metode Newton adalah sebuah contoh dari apa yang namanya algoritma: ia adalah sebuah proses mekanika untuk memecahkan sebuah katagori dari masalah (dalam kasus ini, menghitung akar kuadrat dua).
Beberapa jenis pengetahuan tidaklah algoritmik. Sebagai contoh, mempelajari tanggal dari sejarah atau tabel perkalian mu melibatkan proses mengingat dan menghafal mengenai solusi khsusus.
Tapi teknik yang telah kamu pelajari penambahan dengan membawa, pengurangan dengan meminjam, dan pembagian panjang semuanya adalah algoritma. Atau jika kami adalah seorang pemecah puzzle Sudoku, kamu mungkin punya beberapa set langkah-langkah yang selalu kamu ikuti.
Satu dari karakteristik algoritma adalah bahwa mereka tidak memerlukan kecerdasan apapun untuk muncul. Mereka adalah proses mekanika yang mana setiap langkahnya mengikuti dari akhir berdasarkan pada set aturan-aturan sederhana. Dan mereka didesain untuk memecahkan kelas umum atau kategori dari masalah-masalah, tidak hanya satu masalah saja.
Memahami bahwa masalah sulit bisa diselesaikan dengan proses algoritmik langkah demi langkah (dan memiliki teknologi untuk menjalankan algoritma tersebut untuk kita) adalah satu dari terobosan besar yang telah menghasilkan kuntungan yang besar. Jadi sementara eksekusi dari algoritma mungkin membosankan dan mungkin tidak memerlukan kecerdasan sama sekali, algoritmik atau pemikiran komputasional -- missal, menggunakan algoritma dan otomasi sebagai basis dalam pendekatan masalah -- adalah secara cepat merubah masyarakat kita. Beberapa mengklaim bahwa pergeseran ini terhadap pemikiran algoritmik dan prosesnya memiliki dampak yang jauh lebih besar pada masyarakat kita dari penemuan mesin cetak. Dan proses dari mendesain algoritma itu sangat menarik, menantang secara intelektual, dan bagian inti dari apa yang kita sebut dengan programming.
Beberapa dari hal-hal yang orang-orang lakukan secara alami, tanpa kesulitan atau pemikiran yang sadar, adalah algoritma yang paling sulit untuk diekspresikan. Memahami bahasa natural adalah salah satu contohnya. Kita semua melakukannya, tapi sejauh ini tak ada seorang pun yang telah dapat menjelaskan bagaimana kita melakukannya, setidaknya tidak dalam bentuk step-by-step algoritma mekanika.
7.25. Glosarium
algoritma
Step-by-step proses untuk memecahkan sebuah kategori dari masalah-masalah.
body
Pernyataan-pernyataan yang ada di dalam perulangan.
breakpoint
Titik pada kode program dimana eksekusi program akan pause (atau break), memungkinkan kamu untuk meninjau kondisi dari variabel-variabel program, atau melakukan single-step secara individual pada pernyataan-pernyataan, mengeksekusi mereka satu demi satu.
bump
Slang dikalangan programmer. Sinonim untuk increment.
continue statement
Sebuah pernyataam yang menyebabkan sisa dari perulangan yang sekarang dari sebuah perulangan untuk diloncati. Alur dari eksekusi pergi kembali ke awal perulangan, menguji kondisi, dan jika masih true maka urutan perulangan selanjutkan akan dieksekusi.
counter
Sebuah variabel yang digunakan untuk menghitung sesuatu, biasanya dimulai dengan nol dan di-increment pada body perulangan.
cursor
Tanda tak terlihat yang mencatan jalur dari karakter selanjutnya yang akan dicetak.
decrement
Kurangi dengan 1.
definite iteration
Perulangan dimana kita memiliki jumlah maksimal berapa kali body akan dieksekusi. Definite iteration biasanya paling baik dikodekan menggunakan perulangan for.
development plan
Sebuah proses untuk membangun program. Pada bab ini, kita mendemonstrasikan gaya dari pengembangan berdasarkan pada mengembangkan kode untuk hal sederhana, hal khusus dan kemudian membungkusnya dan menggeneralisasikan.
encapsulate
Untuk membagi program besar yang rumit menjadi komponen-komponen (seperti fungsi-fungsi) dan mengisolasi komponen-komponen satu sama lainnya (dengan menggunakan variabel lokal, sebagai contoh).
escape squence
Sebuah karakter escape, \, diikuti dengan satu atau lebih karakter yang bisa dicetak untuk mendesain karakter yang tidak bisa dicetak.
generalize
Untuk mengganti sesuatu yang secara khusus tidak perlu (seperti sebuah nilai konstan) dengan sesuatu yang lebih umum (seperti variabel atau parameter). Generalisasi membuat kode menjadi lebih serba guna, lebih bisa digunakan kembali, dan terkadang bahkan lebih mudah untuk ditulis.
increment
Keduanya sebagai kata benda dan kata kerja, increment berarti untuk ditambahkan dengan 1.
infinite loop
Perulangan yang mana kondisi pengakirannya tidak akan pernah tercapai.
indefinite interation
Perulangan dimana kita hanya perlu terus melanjutkan hingga beberapa kondisi tercapai. Pernyataan while digunakan untuk kasus seperti ini.
initialization (dari sebuah variabel)
Untuk memulai (inisialisasi) sebuah variable adalah dengan memberikannya sebuah nilai awal. Karena di Python variabel statusnya tidak ada hingga mereka diberikan sebuah nilai, mereka dimulai ketika mereka dibuat. Pada bahasa pemrograman lainnya ini tidaklah sama, dan variabel bisa dibuat tanpa diinisialisasi, yang mana mereka memiliki nilai default atau nilai sampah.
iteration
Eksekusi berulang dari set pernyataan pemrograman.
loop
Konstruksi yang memungkinkan kita untuk secara berulang mengeksekusi sebuah pernyataan atau grup dari pernyataan hingga kondisi pengakhiran tercapai.
loop variable
Variabel yang digunakan sebagai bagian dari kondisi pengkahiran dari sebuah perulangan.
meta-notation
Simbol tambahan atau notasi yang membantu memperjelas notasi lainnya. Disini kita memperkenalkan kurung siku, jorong / ellipses, italic, dan bold sebagai meta-notation untuk membantu memperjelas opsional, repeatable, substituable dan fixed part dari syntax Python.
middle-test loop
Perulangan yang mengeksekusi beberapa bagian dari body, kemudian menguji kondisi exit, lalu mungkin mengeksekusi beberap bagian body lainnya. Kita tidak punya konstruksi Python khusus untuk kasus ini, tapi kita bisa menggunakan while dan break secara bersamaan.
nested loop
Perulangan di dalam body dari perulangan yang lainnya.
newline
Karakter spesial yang menyebabkan cursor berpindah ke awal baris selanjutnya.
post-test loop
Perulangan yang mengeksekusi body, kemudian menguji kondisi exit. Kita tidak punya konstruksi Python khusus untuk kasus ini, tapi kita bisa menggunakan while dan break secara bersamaan.
single-step
Mode dari eksekusi interpreter dimana kamu dimungkinkan untuk mengeksekusi program mu langkah demi langkah, dan meninjau konsekuensi dari langkah tersebut. Berguna untuk debugging dan membangun mental model internal mu dari apa yang sedang berlangsung.
tab
Karakter spesial yang menyebabkan cursor bergerak ke tab stop dari baris sekarang.
trichotomy
Diberikan bilangan riil apapun a dan b, dengan tepat salah satu relasi berikut menahan: a < b, a > b, atau a == b. Maka ketika kamu bisa mendirikan bahwa dua diantara relasi adalah false, kamu bisa mengasumsikan sisanya adalah true.
trace
Untuk mengikuti alur dari eksekusi dari sebuah program menggunakan tangan, merekam perubahan dari kondisi dari variabel dan output apapun yang dihasilkan.
37.939
Tags
Python
Tutorial Pemrograman
Daftar Artikel Terkait
Python 3 RLE BAB 1: Seni Dalam Program
Python 3 RLE BAB 2: Variabel, Ekspresi, dan Pernyataan
Python 3 RLE BAB 3: Halo, Turtle Kecil!
Python 3 RLE BAB 4: Pengenalan Fungsi
Python 3 RLE BAB 5: Pengkondisian
Python 3 RLE BAB 6: Fungsi Fruitful
Python 3 RLE BAB 7: Perulangan
Outline
Bagaimana Cara Berpikir Layaknya Ilmuan Komputer: Belajar dengan Python 3 (RLE)
Python 3 RLE BAB 1: Seni Dalam Program
Python 3 RLE BAB 2: Variabel, Ekspresi, dan Pernyataan
Python 3 RLE BAB 3: Halo, Turtle Kecil!
Python 3 RLE BAB 4: Pengenalan Fungsi
Python 3 RLE BAB 5: Pengkondisian
Python 3 RLE BAB 6: Fungsi Fruitful
Python 3 RLE BAB 7: Perulangan
‹ Python 3 RLE BAB 6: Fungsi Fruitful
ke atas
Facebook
Twitter
Google+
Artikel Sebelumnya
Artikel Selanjutnya
Aditya Suranata
Aditya suka menulis, bukan hanya sekedar hobi, menulis menjadi medianya untuk mencurahkan pikiran dan perasaan. Di TutorKeren.com kebanyakan menyumbang tulisan sesuai dengan minat dan keahliannya yaitu pada kategori pemrograman dan elektronika. Selain itu juga gemar menulis mengenai hal-hal umum, seperti ilmu alam, sosial dan beberapa pengalamannya yang mungkin bisa berguna untuk orang lain.
Artikel Menarik Lainnya
Video
Instalasi dan Konfigurasi
Mengontrol Kecepatan & Arah Gerak Motor DC Melalui...
17 Juni 2016
Pemrograman
Interfacing Sensor Ultrasonic Pinger HC-SR04 di Raspberry...
31 Mei 2016
Instalasi dan Konfigurasi
[Setup] Salamigal - Smart Home Controller Modern Web...
30 Mei 2016
Lainnya...
Mari Gabung
Halo , Ada yang ingin disampaikan? Jangan sungkan untuk gabung diskusi ini. Silahkan Login dulu atau Daftar baru.
Terpopuler
Pemrograman 01 Desember 2015
[Tutorial] Membuat Remote Control (RC) dengan Kendali...
Pemrograman 03 Desember 2015
[TUTORIAL] Dasar Menggambar Objek pada Processing
Elektronika 10 Juni 2016
[TUTORIAL] Menggunakan Sensor Suhu DS18B20 pada Arduino
Kategori
Elektronika 61
Filsafat Hidup 17
Ilmu Umum 35
Instalasi dan Konfigurasi 31
Pemrograman 114
Troubleshooting dan Problem Solving 9
Komentar terbaru
Hemat pin Arduino untuk banyak LED dan Banyak Button 1 pekan 5 hari yang lalu
Led dan switch dengan hanya 2 kabel...raspi/arduino 1 pekan 5 hari yang lalu
Parasit Power DS18B20 3 bulan 2 pekan yang lalu
izin koreksi 4 bulan 22 jam yang lalu
Link Download Program 6 bulan 5 hari yang lalu
Cara Membuat Beberapa Raspberry pada satu jaringan 6 bulan 3 pekan yang lalu
Troubleshoot SaklarApp tidak ke detect 8 bulan 3 pekan yang lalu
File comblang 8 bulan 3 pekan yang lalu
Perangkat tidak terdetect pada saat di scan 8 bulan 3 pekan yang lalu
Maksudnya 8 bulan 3 pekan yang lalu
Gudangnya tutorial keren seputar elektronika, pemrograman dan hal menarik lainnya dalam bahasa Indonesia yang tentunya worth it untuk disimak.

warc-identified-content-language: ind,eng

label: en

label: sh

label: de


content:
Poker adalah salah satu bagian yang paling ditunggu oleh para penikmat permainan kartu untuk dimainkan, maka dari itu Audy88 hadirkan juga game yang paling menyenangkan dan juga terpercaya dari Situs Idn Poker Online yang dimana kami telah hadir selama lebih dari 10 tahun untuk menciptakan permainan yang menyenangkan untuk bisa dinikmati segalanya keuntungannya yang ada didalamnya.
Pertama disini kami hadirkan permainan poker yang cukup menyenangkan dan terpercaya karena telah memiliki izin dari lembaga Internasional PAGCOR dan BMM Testlabs, yang memberikan permainan menguntungkan seperti Texas poker , Ceme , Capsa susun , Gaple, Domino , Omaha, Sakong dan Super10 dengan keuntungan yang cukup besar.
Apa Itu Idn Poker?
Jika anda adalah orang baru dalam dunia perjudian poker online tentu akan asing dengan mendengar sebutan idn poker . Provider itu merupakan salah satu agen poker terkenal dan populer di Asia yang memberikan anda pengalaman menarik soal permainan kartu poker dengan macam-macam jenis game yang keuntungannya berbeda-beda dari setiap jenisnya.
Idn Poker ini hadirkan permainan Ceme Online yang memiliki sistem fair play dengan jenis lainnya diantaranya seperti capsa susun, omaha, texas poker, capsa susun, blackjack, super10, dan masih banyak lagi dengan adanya lisensi yang tentu saja akan bebas dari gangguan bot serta admin, sehingga anda akan terbebas dari gangguan dalam permainan tersebut.
Disini anda bisa memainkan banyak permainan judi poker online dan Joker fishing yang mana hanya perlu mendaftarkan dan membuat satu akun UserID serta setelah itu lakukan deposit dengan minimal yang paling murah se-Indonesia hanya Rp20.000 saja, maka semua permainan dari agen Idn Poker bisa dinikmati dalam satu platform yang terpercaya dan resmi yang mudah dijangkau oleh siapa saja.
Agen Ceme Online Terlengkap Bisa Dapatkan Banyak Bonus
Audy88 menjadi agen poker online yang memberikan banyak keuntungan kepada para pemainnya, yang terutama dari segi pelayanannya yang cukup menakjubkan untuk bisa didapatkan.
Hal ini berkaitan dengan banyaknya keinginan untuk memainkan sebuah game yang cukup menyenangkan, karena itulah disini kami telah hadirkan salah satu lokasi permainan kartu yang amat lengkap dari jenis yang bisa dimainkan dan juga pelayanan lengkap yang bisa memberikan rasa yang berbeda ketika memainkannya.
Salah satu yang dibanggakan pelayanan adalah Cs yang disediakan selama 24 jam full tanpa libur yang akan memberikan anda bantuan dengan cepat dengan respon baik, karena disini menggunakan staff customer yang profesional.
Tidak hanya sampai disitu saja Audy88 juga hadirkan permainan yang menguntungkan dengan hadirnya bonus dan promo poker yang tinggi untuk para pemain setia yang rela habiskan waktunya demi memainkan salah satu game terfavorite di dunia ini.
Disini kami sediakan untuk anda promo bonus untuk pendatang baru sebesar 10% dan bonus rollingan poker 0.3% yang dapat anda klaim secara mudah dengan menghubungi CS melalui Live Chat yang telah disediakan untuk anda, dan selain itu masih banyak lagi keuntungan lainnya yang bisa didapatkan di dalam permainan poker idn ini yang terutama adalah Jackpot yang hadiahnya jutaan rupiah.
Apalagi untuk dapatkan hadiah bonus tersebut terbilang mudah anda hanya perlu membeli tiket yang sangat murah mulai dari 100 perak hingga 2000 rupiah yang nantinya jika anda beruntung, maka hadiah jackpot bisa didapatkan dengan amat mudah.
Situs Poker88 Bisa Dimainkan Dengan Versi WAP
Situs Poker88 ini bisa dimainkan kapan saja dan dimana saja dengan beberapa versi yang memudahkan anda agar dapat bermain kapan saja dan dimana saja.
Pertama anda bisa memainkannya dengan perangkat ponsel dengan versi WAP dengan memanfaatkan teknologi yang ada kini kami hadirkan permainan poker dengan bentuk yang dapat anda mainkan secara mobile kapanpun dan dimanapun anda ingin mainkan tentu saja bisa. Keunggulan dari versi ini lebih praktis dan simple yang dapat digunakan melalui perangkat Android atau IOS dengan icon khusus dan memiliki ciri khasnya.
Selain itu anda juga bisa memainkannya melalui versi desktop yang tentu saja lebih komplek namun juga mudah untuk dimainkan serta dimengerti oleh para pemain baru. Apapun pilihan akses untuk anda memainkan permainan Idn Poker ini.
Tentu saja semuanya akan memiliki hal yang sama yaitu keuntungan dan juga kemudahan dalam memainkannya yang tentu saja akan berbeda dari situs poker online lainnya yang pernah anda jumpai. Disini tak hanya bisa memainkan dari satu provider poker saja namun ada juga seperti Balak Play dan 9 Gaming yang tentu saja semua pilihan tersebut bisa anda nikmati di dalam satu platform.
Jadi itu artinya anda hanya perlu daftar sekali saja melalui link alternatif yang telah kami sediakan, maka semua permainan poker online yang ingin anda mainkan dapat dinikmati dengan sangat mudah dan menguntungkan.
PELAYANAN
Keunggulan Pelayanan
DEPOSIT
Rata-Rata Waktu
PENARIKAN
Rata-Rata Waktu
* Selama bank maintenance dan bank offline deposit dan penarikan tidak dapat diproses
PRODUK
Keunggulan Produk
SPORTS BETTING
Sportsbook Gaming Platform Terbaik menawarkan lebih banyak game, odds yang lebih tinggi, dan menyediakan pilihan yang lebih banyak untuk pemain.


content:
Binary option strategi 90 Sekarang kita cermati contoh usaha salon kecantikan yang sudah bisa ditinggal dan tetap menghasilkan. Informasi penyedia lowongan kerja, butuh tenaga kerja dan lowongan pekerjaan hanya di olx. Perubahan ini dapat memengaruhi inflasi dan resesi. Inflasi mengacu pada kenaikan harga barang dan jasa dari waktu ke waktu. Ini adalah hasil dari tinjauan tentang akun vip Binomo ekonomi yang kuat dan sehat. Namun, jika inflasi dibiarkan tidak terkendali, hal itu dapat menyebabkan hilangnya daya beli yang signifikan. Transaksi adalah kegiatan yang dilakukan oleh seseorang yang menyebabkan perubahan dalam aset atau keuangan yang dimiliki oleh kenaikan atau penurunan. Misalnya, menjual properti, membeli barang, membayar utang, membayar berbagai jenis pengeluaran, dan sebagainya.
Yang harus diingat, setor tunai lewat ATM Mandiri hanya berlaku di ATM Mandiri yang bertanda setor tunai. Selain itu, uang pecahan yang bisa diproses ATM Mandiri hanya pecahan Rp 50.000 dan Rp 100.000. Dan 9 bab tutorial awal yang options pemahaman tentang tindakan system sebelum munculnya sinyal masuk strategi perdagangan yang mungkin Anda gunakan. Cara registrasi mudah, bisa dengan akun Facebook atau Gmail. Binary, saya bertanya-tanya tentang perdagangan yang Anda sebutkan di akhir Perdagangan dengan Dz13 Volume Untuk pemula perdagangan pemula di pasar, kami mencari 2 bar berturut-turut dengan warna tertentu untuk mengkonfirmasi keadaan pasar. Terdapat beberapa faktor yang mempengaruhi harga seperti kerajaan, bank pusat atau broker. Tetapi faktor utama adalah penawaran dan permintaan. Mereka memainkan peranan terbesar dalam membentuk harga.
Tinjauan tentang akun vip Binomo, live trading highlow option
Cara Penarikan Shopeepay – Setelah sebelumnya saya sudah membahas tentang cara top up Shopeepay. Nah, sebaliknya nih! Di artikel kali ini saya akan membahas tentang cara penarikan dana Shopeepay ke rekening. Kebetulan saya menggunakan rekening BCA. Kamu bisa melakukan penarikan Shopeepay ke berbagai macam rekening bank yang kamu miliki seperti rekening Bank BRI, BNI, Mandiri, BTN, Bank Jatim dan bank lainnya. Sebelum melakukan penarikan dana Shopeepay, pastikan kamu sudah melakukan verifikasi rekening bank yang kamu miliki ya! Bagi mereka yang ingin trading pasar Forex dengan menggunakan XM, ada lebih dari 55 pasangan mata uang yang mencakup jurusan maupun eksotik. Pasar Forex memungkinkan Anda untuk trading 24 jam sehari, 5 hari seminggu menggunakan platform yang berbeda yang kompatibel dengan XM Forex. Ada tinjauan tentang akun vip Binomo daftar lengkap informasi di situs web mereka, tetapi XM tentu memiliki berbagai macam pasangan forex untuk diperdagangkan.
Untuk mengetahui sesuatu teknik itu valid atau tidak, anda boleh cuba dengan melakukan backtest kepada pasaran Forex yang lalu. Ramai yang mengetahui Forex ini adalah sejarah yang sentiasa berulang-ulang. Jadi, anda hanya perlu scroll back kebelangkang market tersebut dan kenal pasti adakah teknik anda berkesan atau tidak. Peruntukkan 3 JAM untuk anda melakukan backtest ini. Supaya nanti trading anda akan lebih mantap!
Tempat tinjauan tentang akun vip Binomo memasukkan perdagangan Anda: Jika Anda memiliki 3 lilin merah berurutan, Anda entri perdagangan titik adalah di ujung lilin. Itu benar ketika lilin berikutnya mulai. Seperti yang mungkin sudah Anda duga, Anda harus menempatkan perdagangan yang lebih tinggi. Jika ada 3 lilin hijau berturut-turut, pesanan Anda yang lebih rendah harus datang tepat setelah lilin ketiga berakhir. Simpan dan Muat: Anda dapat membuat dan menyimpan konfigurasi favorit Anda untuk penggunaan di masa depan. Anda juga bisa meniru template dari satu diagram. Coba Demo Akun dahulu Untuk anda yang sudah menentukan Broker Forex, anda harus cba akun demo terlebih dahulu di broker terebut. Perhatikan baik-baik pergerakan dari harganya selama sebulan terakhir. Apakah ada mencurigakan atau tidak, seperti harga yang berbeda dengan harga official.Untuk anda yang bingun mengapa di demo akun selalu profit tetapi saat deposit malah loss, karena pada akun demo tersebut anda diberikan modal yang cukup besar sehingga pertahanan margin anda lebih banyak dari pada anda deposit kecil. Walaupun pada Broker Forex tersebut ditawarkan leverage tinggi, anda akan tetap sulit untuk trading dengan modal kecil.
Oleh sebab itu, sangatlah penting untuk mencari broker berpengalaman disertai review yang baik. PT Medussa Multi Business Centre Tour & Travel (MMBC Tour & Travel) (sistem Keagenan dan Waralaba tanya izin). Rasio penyaluran kredit terhadap PDB juga tak lebih baik mengingat masih ada di kisaran 43 persen. Bandingkan dengan Filipina yang mencapai 61 persen, Thailand 125 persen, Singapura 129 persen, dan Malaysia 134 persen. Lihat juga:Biaya Transaksi Kartu Debit Dipatok Maksimal 1 Persen.
Time frame grafik 30 menit Candle Stick berdagang opsi biner dengan tren Bar tinjauan tentang akun vip Binomo 2. Harga yang digunakan merupakan harga tips dan trik untuk sukses di pasar Forex terakhir dari pasar.
Namun, bukan berarti harus menjawab apa adanya dengan menjawab bingung, belum tahu, atau tidak menjawabnya sama sekali. Adapun yang perlu dilakukan adalah jawablah dengan alasan yang realistis agar pihak pewawancara pun bisa paham dan mengerti akan hal tersebut.
Masih menurut expert trading yang akrab dipanggil U. Variant hampir semua variant dan Tenga atau Sistem perdagangan krx. Jika Anda memiliki banyak opsi seperti aset-aset yang berbea untuk diperdagangkan pada binary options Anda, maka Anda telah tiba di tempat yang tepat. Beberapa produk investasi di Indonesia, seperti saham perusahaan juga secara tidak langsung dipengaruhi oleh permintaan dan penawaran. Ini berarti bahwa jika Anda menukarkan volume kecil dari tinjauan tentang akun vip Binomo aset yang mendasarinya, hasilnya akan secara proporsional rendah hati. Spread trading Seperti harga lainnya, sebaran pasangan biasanya terdiri dari harga penawaran, yang dapat dijual serta harga penawaran di mana Anda dapat membeli.
Namun suatu hal yang penting yaitu ekspansi ekonomi itu akan disertai pendalaman pasar modal. Saat ini pasar-pasar modal di Indonesia lebih kecil dan kurang likuid dibandingkan negara ASEAN lain dan negara berkembang lain. Ini disebabkan kerendahan penggunaan pasar modal untuk membiayai investasi dan keterbatasan intermediasi oleh lembaga keuangan yang non-bank (hedging dan fasilitas asuransi yang tinjauan tentang akun vip Binomo kurang memadai). Pasar efek dan pasar ekuitas hingga kini (relatif) kurang dikembangkan dan kapitalisasi pasar perusahaan-perusahaan yang terdaftar di BEI lebih rendah dibandingkan perusahaan terdaftar di negara-negara lain di Asia Tenggara. Sisi positif dari situasi ini adalah bahwa Indonesia masih memiliki ruang yang cukup luas untuk tumbuh. Over trade merupakan hal yang sangat wajar bagi trader pemula. Namun hal ini perlu dikendalikan supaya Anda dapat mencapai hasil yang maksimal. “Pakcik tanya Saiful: Awak tengok motor orang hari-hari macam best tak cemburu ke? Sambil itu kita tengah baiki exciter gold cover set.
Sebagai sebuah uang dalam bentuk digital, mata uang digital tidak memiliki bagian fisik dan tidak memiliki batas, membuat mereka lebih tidak terbatasi untuk transaksi di seluruh dunia. Terlebih lagi, transaksi yang sudah dibuat tidak dapat dibatalkan dan sifat dari mata uang digital membuat pelacakan menjadi sangat sulit dibandingkan dengan sistem mata uang fiat. Indonesia. Effendi Langkah 2: Pertimbangan terpenting dalam menilai kinerja unit bisnis adalah pertumbuhan penjualan, pertumbuhan laba, kontribusi terhadap pendapatan perusahaan, dan pengembalian modal yang diinvestasikan dalam bisnis. Daya tarik industri perlu dievaluasi dari tiga sudut: Garuda Indonesia membuka berbagai rute penerbangan baru baik domestic maupun mancanegara, antara lain rute Jakarta-tanjung karang, Jakarta —malangdll c.
Cara membacanya adalah: 1. Apabila garis ADX semakin naik maka kekuatan tinjauan tentang akun vip Binomo sebuah trend semakin besar sehingga besar kemungkinan market bergerak lebih lanjut searah. Seperti yang ditunjukkan pada gambar berikut. BOLEH. SRB ialah system yang hanya perlu di install di laptop/desktop anda melalui arahan yang diberikan dalam Video Tutorial SRB. Menekan ctrl+S atau ctrl+klik pada harga bid akan menempatkan order jual baru menggunakan besar trade yang paling terkini.


content:
Desainer Alexander Wang diterpa kabar miring. Perancang asal Amerika Serikat itu dituduh jadi pelaku pelecehan seksual.
Tuduhan ini berawal dari unggahan dua akun Instagram berpengaruh di dunia fashion, @shitmodelmgmt dan @dietprada, yang membagikan informasi tentang dugaan pelecehan seksual yang pernah dilakukan Alexander Wang. Salah satunya pengakuan dari seorang model bernama Owen Mooney.
Sang model bercerita lewat video TikTok bahwa dia pernah bertemu dengan Alexander Wang di sebuah klub yang ramai di New York City pada 2017. Owen mengaku saat itu area genitalnya diremas oleh desainer 37 tahun tersebut.
"Saat saya lagi sendirian pria di samping saya jelas-jelas mengambil keuntungan dari situasi di mana orang-orang kesulitan bergerak dan dia mulai menyentuh saya di bagian atas," ujar Owen, seperti dilansir People.
Baca juga: Alexander Wang Bikin Bungkus Makanan Stylish Seharga Rp 4,1 Juta
Dia melanjutkan, "Dia benar-benar, menyentuh kaki, selangkangan, membuat saya benar-benar diam membatu karena sangat syok. Saya tengok ke sebelah kiri untuk melihat siapa pelakunya dan dia adalah seorang desainer mode yang sangat terkenal. Saya tidak percaya dia melakukan itu pada saya."
[Gambas:Instagram]
Owen memang tidak menyebutkan secara frontal siapa pelaku pelecehan seksual tersebut. Tapi setelah seorang netizen berkomentar dan menyebut nama Alexander Wang, dia membenarkannya.
"Komentar ini mengejutkanku karena tebakanmu tepat. Sepertinya Alexander Wang memang predator seksual besar. Dan sudah banyak juga orang lain yang pernah jadi korban. Jadi, perbuatannya perlu diungkap," tambahnya.
Baca juga: Giliran Alexander Wang Setop Pamer Koleksi di New York Fashion Week
Sementara itu akun @shitmodelmgmt juga mengumumkan dugaan pelecehan seksual Alexander Wang. Dia menyebut bahwa desainer langganan selebriti itu sudah melakukan perbuatan itu beberapa tahun belakangan.
"Alexander Wang telah diduga melakukan pelecehan seksual selama beberapa tahun ini. Kejadian ini jangan sampai ditutupi, saatnya berbuat sesuatu tentang ini. Mohon unfollow @alexwangny dan @alexanderwangny untuk menunjukkan dukunganmu kepada para korban," tulis @@shitmodelmgmt yang diunggah pada Selasa (29/12/2020).
Terkait kasus pelecehan seksual yang ramai dituduhkan padanya, pihak Alexander Wang belum memberikan tanggapan apapun. Sejumlah media ternama seperti People, WWD dan InStyle sudah menghubungi pihaknya untuk klarifikasi, namun juru bicaranya menolak berkomentar.


content:
Rusia adalah negara berdaulat yang terletak di sebelah timur benua Eropa dan utara Asia. Rusia memiliki wilayah dengan luas 17.125.200 km2 yang menjadikan Rusia sebagai negara terluas di dunia, dimana luas wilayah negara ini mencakup dari seperdelapan luas daratan di bumi. Rusia pun menjadi salah satu negara penghasil minyak dan gas alam terbesar di dunia yang menjadi salah satu penopang utama perekonomian negara ini. Selain penghasil komoditas yang penting bagi dunia, Rusia juga dikenal sebagai negara berteknologi canggih dalam menciptakan senjata militer atau perang, dimana Rusia pun biasa kita kenal dari film – film sebagai salah satu saingan Amerika Serikat dalam berbagai hal, terutama senjata perang. Namun, dalam sejarah, Rusia ternyata memiliki senjata – senjata perang yang dikenal sangat mengerikan bagi lawannya. Berikut adalah Senjata Perang Mengerikan Milik Rusia versi anehdidunia.com
Katyusha Rocket Launcher
Pada bulan Juni 1941, ketika invasi Jerman yang ketiga, hanya ada 40 unit Katyusha yang dibuat di Uni Soviet. Dan pada tahun 1943, sekitar 3237 unit Katyusha yang beroperasi. Dilihat dari beberapa penyangga roket bersiku yang digunakan, awalnya akan terlihat sangat tidak efisien. Namun faktanya, mereka menggunakan penyangga dengan artileri (roket) yang dikalibrasikan dengan tepat, sehingga senjata ini menjadi sangat ekonomis. Dengan bobot yang relatif ringan, membuat reposisi setelah melakukan tembakan menjadi lebih mudah yang membuat musuh kewalahan saat diserang ataupun melakukan serangan balasan. Jangkauan maksimum dari Katyusha adalah 6 mil, meskipun tidak memadai dalam hal presisi bidikan, namun Katyusha tetap menjadi senjata yang mengerikan bagi para tentara Jerman, yang menjuluki senjata ini “Stalin’s Organ”.
T-34 Medium Tanks
Para penggemar Perang Dunia ke-2 lebih banyak mengenal Tank Panzer Jerman ataupun Tank Tiger, tetapi pada awal perang, semua tank milik tentara Jerman pasti akan takluk dengan tank medium yang satu ini. Senjata yang telah menyelamatkan Moskow dari Operasi Barbarossa. Dengan lapis baja yang beratnya tersebar, peluru dari senjata “Anti Tank” milik Jerman hanya akan terpental saat menembaki tank T-34 ini. Dimana tank ini pun dapat melaju dengan mulus di dalam lumpur saat tank milik tentara Jerman masih tersendat untuk berjalan dalam lumpur.
Butuh waktu bertahun – tahun bagi Jerman untuk menemukan peluru yang bisa menembus lapis baja tank T-34 ini (Peluru 88mm yang terkenal). Red Army (tentara merah) memulai perang dengan 1.000 tank T-34, dan pada saat penyelamatan Moskow, ada 2.800 unit tank T-34 yang digunakan. Selama perang, ada puluhan ribu tank T-34 yang di produksi. Tentara Jerman pun secara terbuka mengatakan bahwa tank T-34 adalah tank terbaik di dunia (Dimana gelar ini luntur saat Tank Tiger yang lebih unggul hadir).
K-278 Nuclear Submarine
Kapal selam K-278 ini diluncurkan pada tanggal 30 Mei 1983. K-278 adalah kapal selam eksperimental yang memiliki kulit ganda dan merupakan bagian dari rangkaian prototipe yang disebut “Komsomolet” (Anggota Pemuda Soviet). Kapal selam ini mampu menyelam sampai 3.346 kaki ( 2 kali lipat dari kemampuan selam kapal selam Amerika) dan berada jauh dibawah jangkauan sistem torpedo Amerika. Namun, pada tahun 1989 saat beroperasi di laut Norwegia, terjadi kebakaran dibagian buritan kapal, dan para kru menghabiskan waktu 6 jam untuk mencoba mengatasinya. Tapi karena katup pasokan udara utama membuat api menjadi semakin ganas, maka usaha para kru pun menjadi sia-sia. Saat evakuasi, sekitar dua pertiga kru kapal meninggal.
Kapal selam ini memiliki 2 tempat penyimpanan senjata misil nuklir, dan berakhir karam di kedalaman 5.250 kaki. Baru pada tahun 1998, pemerintah Rusia menyatakan telah menutup sepenuhnya kapal selam tersebut melalui beberapa ekspedisi. Tapi ada dua hal yang mengganjal dari semua ini. Pertama, kapal selam ini karam tepat diatas jalur penangkapan ikan utama, yang mengingatkan pada pembuangan senjata kimia di laut Baltik. Kedua, bahwa ada pernyataan dengan bukti adanya “kunjungan tidak berizin” ke lokasi kapal selam K-278 oleh “Pihak Asing”. Kemungkinan bahwa senjata nuklir K-278 bisa jatuh ketangan kelompok non-pemerintah yang bisa menjadi hal mengerikan dimasa yang akan datang.
RS-28 Sarmat Nuclear Missile
Ketika NATO menyatakan memiliki senjata nuklir “Satan 2”, kita bisa mengerti perasaan siapa saja yang akan merasa tidak nyaman (bahkan ngeri) dengan kenyataan bahwa ini adalah bagian dari sistem peluncuran senjata yang bisa ditembakan kebagian bumi manapun. RS-28 adalah senjata yang mulai dikembangkan pada tahun 2011 dan diharapkan dapat beroperasi secara aktif pada tahun 2018. Dikatakan, Rs-28 memiliki bobot seratus metriks ton dengan kisaran 6.200 mil. Yang lebih penting lagi, misil ini dilengkapi dengan teknologi “Stealth” (Mode Sunyi - Sembunyi) yang canggih, sehingga target tidak akan dapat mengetahui kedatangannya. Menurut militer Rusia, ledakan dari misil ini sangatlah “ekstrim”, sehingga dikatakan bahwa satu misil saja bisa menghancurkan semua wilayah Prancis, atau seperti yang mereka katakan lebih jelas, Texas.
The Mosin-Nagant Rifle
Senjata ini adalah senjata pilihan para Sniper (penembak jitu) Tentara Merah selama Perand Dunia ke-2. Bahkan pada masa – masa awal perang, ketika kekalahan dari para tentara Jerman, para Sniper yang memakai senjata ini tetap mampu memberi para tentara Jerman beberapa korban jiwa yang menyedihkan. Dalam laporan Nasional, sebuah penyergapan pada bulan September 1941 menyatakan beberapa Sniper menembaki 75 korban pada 1 resimen pasukan infanteri Jerman. Ini adalah pembelajaran kemenangan yang sulit bagi Soviet, mengingat bahwa inilah senjata yang digunakan seorang tentara Finlandia yang disebut Simo “White Death” Hayha (Kematian Putih) untuk membunuh 542 tentara Soviet pada tahun 1939-1940.
Sumber:
nationalinterest.org/blog/the-buzz/the-mosin-nagant-the-russian-sniper-rifle-nazi-germany-19913
todayifoundout.com/index.php/2010/01/simo-hayha-white-death-sniped-over-542-soviet-soldiers-in-wwii/
ww2db.com/vehicle_spec.php?q=418
express.co.uk/news/world/827590/russia-missile-nuclear-train-world-war-3-R28-sarmat-satan-2-intercontinental-ballistic
nationalinterest.org/blog/russia-has-dead-nuclear-submarine-armed-nuclear-weapons-18227
militaryfactory.com/armor/detail.asp?armor_id=38


'+u+' "+d.moreText+""+y+"
"}else{if(A==3||A==4){c+='
"+w+"
"+y+"
"}else{if(A==5){c+='
'+w+""+y+"
"}else{if(A==6){c+='
"+w+'
'+u+""+y+"
"}else{c+='
"+w+"
"}}}}}s.innerHTML=c+="
"+y;d.callBack()};randomRelatedIndex=h;showRelatedPost=g;j(d.homePage.replace(/\/$/,"")+"/feeds/posts/summary"+e+"?alt=json-in-script&orderby=updated&max-results=0&callback=randomRelatedIndex")})(window,document,document.getElementsByTagName("head")[0]); //]]>