Membuat Password Generator Menggunakan Python – pesonainformatika.com, tidak bosan bosan membahas bahasa pemrograman python, dan pastinya kita akan belajar studi kasus baru, kali ini kita akan membuat program password generator sederhana menggunakan python simak caranya disini Show
Deskripsi Kasusuntuk membuat password tentu harus sedikit rumit paling simple menggunakan kombinasi antara huruf dengan angka, bayangkan jika kamu harus membuat password untuk 10 akun, mungkin masih bisa tapi bagaimana jika 100 akun pasti membosankan dan ribet, bagaimana cara cepat memecahkan masalah tersebut Membuat Programokay kali ini masuk ke step membuat program, pastikan sudah menginstall python dan menggunakan text editor, untuk langkah pertama buat file misal main.py kemudian isi seperti ini data_dict = { 'username': ['pery', 'bayu', 'fajar', 'iqbal'] } def passMaker(dict_keys): password_list = [] username_list = [] for username in dict_keys: generate_password = sum(ord(c) for c in username) password_list.append(f"{username}{generate_password}") username_list.append(username) # append result named_dict = { "username": username_list, "generate_password": password_list } return named_dict print(passMaker(data_dict['username'])) jika dijalankan hasilnya akan seperti ini hasil program diatasPenjelasan Programsetelah berhasil running, kali ini kita akan bahas bagaimana si program bisa running dan apa sebabnya bisa menghasilkan password dengan angka yang berbeda pada tiap kata kita akan kupas tuntas disini pertama kita mempunyai data berbentuk list namun disini pada kasus ini datanya berbentuk dictionary seperti ini data_dict = { 'username': ['pery', 'bayu', 'fajar', 'iqbal'] } kemudian kita membuat fungsi misal passMaker dengan parameter berupa list seperti ini def passMaker(dict_keys): pass disini parameter dict_keys harus berupa list kemudian kita tambahkan dua list kosong untuk menampung data username dan hasil password yang sudah dibuat seperti ini password_list = [] username_list = [] kemudian karena parameter fungsi passMaker yaitu dict_keys berupa list maka kita dapat melakukan looping pada parameter tersebut dan membuat password generator dengan cara menghitung berapa jumlah karakter ASCII pada setiap string yang di input, kemudian kita tambahkan string yang sudah ditambahkan jumlah karakter ASCII dengan string (yang belum dihitung) kedalam list password_list for username in dict_keys: generate_password = sum(ord(c) for c in username) password_list.append(f"{username}{generate_password}") tambahkan juga username yang tadi di loop ke dalam list username_list username_list.append(username) setelah kedua list tersebut berisi data yang sudah di hitung di looping tadi kita dapat mengelopmpokannya kedalam dictionary baru kemudian di return named_dict = { "username": username_list, "generate_password": password_list } return named_dict kemudian kita dapat memanggil fungsinya seperti ini print(passMaker(data_dict['username'])) hasilnya seperti digambar yaitu seperti ini {'username': ['pery', 'bayu', 'fajar', 'iqbal'], 'generate_password': ['pery448', 'bayu433', 'fajar516', 'iqbal521']} Kreasikan Programkita dapat menambahkan beberapa fungsi dari program kita dapat menambahkan enkripsi pada password yang telah kita generate menggunakan modul bcrypt di python, kita install dulu menggunakan pip data_dict = { 'username': ['pery', 'bayu', 'fajar', 'iqbal'] }0 setelah itu kita membuat enkripsi seperti ini data_dict = { 'username': ['pery', 'bayu', 'fajar', 'iqbal'] }1 kemudian kita tampung di list kita buat list baru buat menampung enkripsi password misalnya encrypted_password data_dict = { 'username': ['pery', 'bayu', 'fajar', 'iqbal'] }2 kemudian kita terapkan di program kita seperti ini data_dict = { 'username': ['pery', 'bayu', 'fajar', 'iqbal'] }3 kemudian coba jalankan programnya hasilnya menjadi seperti ini hasil password yang di enckripsi menggunakan bcryptgimana cukup mudah bukan, sampai sini dulu studi kasus kali ini semoga bermanfaat dan selamat mencoba, soure code dapat diakses melalui github ikuti terus pesonainformatika, dan dapatkan studi kasus bahasa pemrograman lainya seperti Java, Python C++ Generator memudahkan kita membuat iterasi dalam Python dan menghasilkan kode lebih sedikit. Tutorial ini akan mengenalkan kamu pada Python Generator, keuntungannya, dan bagaimana mereka bekerja. DasarSebuah generator adalah fungsi yang mengembalikan objek generator yang bisa kita panggil method next(), sedemikian rupa sehingga setiap pemanggilan mengembalikan nilai berikutnya. Fungsi normal pada Python menggunakan keyword 229 untuk mengembalikan suatu nilai, tapi generator menggunakan keyword 230 untuk mengembalikan nilai. Ini berarti setiap fungsi Python yang berisi adalah fungsi generator. Statement 230 biasanya menghentikan fungsi dan menyimpan state lokal agar bisa dilanjutkan tepat seperti saat dihentikan. Fungsi generator bisa memiliki satu atau lebih statement 230. Sebuah generator juga merupakan sebuah iterator, tapi apa itu iterator? Sebelum kita membahas detail generator, saya rasa penting untuk mengetahui apa itu iterator karena merupakakn bagian penting dari diskusi ini. Iterator PythonSebuah iterator Python adalah kelas yang mendefinisikan sebuah fungsi 234. Sebagian besar objek Python bersifat iterable, artinya kamu bisa melakukan loop terhadap setiap elemen dalam objek tersebut. Contoh iterable pada Python misalnya string, list, tuple, dictionary, dan range. Kita lihat contoh di bawah, kita melakukan loop terhadap daftar warna: 1 colors= [“red”,”blue”,”yellow”] 2 3 def my_funct(): 4 for color in colors: 5 print color Di balik layar, statement 235 akan memanggil 236 pada objek list. Lalu fungsi akan mengembalikan objek iterator yang memiliki fungsi 237, yang akan mengakses masing-masing warna, satu per satu. Saat tidak ada warna tersisa, 238 akan melempar exception 239, yang akan menginformasikan loop 235 untuk berhenti. Mengiterasi sebuah Dictionary1 colors= [“red”,”blue”,”yellow”]0 2 colors= [“red”,”blue”,”yellow”]2 3 colors= [“red”,”blue”,”yellow”]4 4 5 colors= [“red”,”blue”,”yellow”]7 colors= [“red”,”blue”,”yellow”]8 colors= [“red”,”blue”,”yellow”]9 20 21 22 23 Mengiterasi Baris dalam file CSV1 25 2 3 28 4 30 5 32 colors= [“red”,”blue”,”yellow”]8 34 Mengiterasi String1 36 2 38 3 def my_funct():0 4 def my_funct():2 5 colors= [“red”,”blue”,”yellow”]7 colors= [“red”,”blue”,”yellow”]8 20 def my_funct():7 22 def my_funct():9 40 41 42 def my_funct():9 44 45 46 47 48 49 for color in colors:0 for color in colors:1 for color in colors:2 45 for color in colors:4 for color in colors:5 Keuntungan Menggunakan GeneratorMari kita bahas beberapa keuntungan menggunakan generator dibanding iterator: Mudah untuk diimplementasiMembuat iterator pada Python memerlukan kamu untuk mengimplementasi kelas dengan fungsi 234 dan 237 dan menangani semua error 239 yang mungkin muncul. 1 for color in colors:7 2 for color in colors:9 3 51 4 53 5 55 colors= [“red”,”blue”,”yellow”]8 20 58 22 print color0 40 42 print color3 44 print color5 46 print color7 48 print color9 for color in colors:0 11 Seperti yang kamu lihat di atas, implementasinya sangat panjang. Semua beban ini secara otomatis ditangani oleh generator. Penggunaan Memory Lebih SedikitGenerator membantu meminimalkan penggunaan memory, terutama saat berurusan dengan set data yang besar, karena generator hanya akan mengembalikan objek satu per satu. Performa dan Optimasi yang Lebih BaikGenerator pada dasarnya pemalas. Ini artinya mereka hanya menghasilkan nilai saat dibutuhkan saja. Tidak seperti iterator biasa, di mana semua nilai dihasilkan tidak peduli apakah mereka akan digunakan atau tidak, generator hanya menghasilkan nilai yang dibutuhkan. Inilah yang mendorong program untuk bekerja lebih cepat. Bagaimana membuat Generator pada PythonMembuat generator sangat mudah. Yang perlu kamu lakukan hanyalah menulis fungsi biasa, tapi dengan statement 230, bukan 229, seperti pada contoh di bawah. 1 13 2 15 Statement 229 menghentikan fungsi sepenuhnya, sedangkan 230 hanya menghentikan fungsi sampai dipanggil kembali oleh fungsi 248. Contohnya, program di bawah menggunakan statement 230 dan 248. 1 17 2 19 3 colors= [“red”,”blue”,”yellow”]01 4 colors= [“red”,”blue”,”yellow”]03 5 colors= [“red”,”blue”,”yellow”]05 colors= [“red”,”blue”,”yellow”]8 colors= [“red”,”blue”,”yellow”]07 20 colors= [“red”,”blue”,”yellow”]09 22 40 colors= [“red”,”blue”,”yellow”]12 42 colors= [“red”,”blue”,”yellow”]12 44 46 colors= [“red”,”blue”,”yellow”]17 Bagaimana Generator Python BekerjaKita lihat bagaimana generator bekerja. Lihat contoh di bawah. 1 colors= [“red”,”blue”,”yellow”]19 2 3 17 4 colors= [“red”,”blue”,”yellow”]24 5 colors= [“red”,”blue”,”yellow”]01 colors= [“red”,”blue”,”yellow”]8 colors= [“red”,”blue”,”yellow”]05 20 colors= [“red”,”blue”,”yellow”]03 22 colors= [“red”,”blue”,”yellow”]32 40 colors= [“red”,”blue”,”yellow”]07 42 colors= [“red”,”blue”,”yellow”]36 44 46 colors= [“red”,”blue”,”yellow”]12 48 colors= [“red”,”blue”,”yellow”]12 for color in colors:0 colors= [“red”,”blue”,”yellow”]12 for color in colors:2 colors= [“red”,”blue”,”yellow”]17 Pada fungsi di atas, kita mendefinisikan generator bernama 251, yang menerima argumen 252 berupa list. Lalu kita definisikan variabel 253 dan mengatur nilainya menjadi nol. Selain itu, kita melakukan loop ke setiap elemen pada list dan menambahkannya ke variabel total. Lalu kita buat instance 254 dan panggil fungsi 248. Ini akan menjalankan kode sampai berhenti pada nilai pertama dari 253, yang saat ini bernilai 257. Fungsi akan menyimpan nilai variabel total sampai berikutnya fungsi dipanggil. Tidak seperti statement 229 biasa, yang akan mengembalikan semua nilai sekaligus, generator akan melanjutkan dari yang terakhir diproses. Di bawah ini adalah nilai-nilai berikutnya. 1 colors= [“red”,”blue”,”yellow”]19 2 3 17 4 colors= [“red”,”blue”,”yellow”]24 5 colors= [“red”,”blue”,”yellow”]01 colors= [“red”,”blue”,”yellow”]8 colors= [“red”,”blue”,”yellow”]03 20 colors= [“red”,”blue”,”yellow”]05 22 colors= [“red”,”blue”,”yellow”]32 40 colors= [“red”,”blue”,”yellow”]07 42 colors= [“red”,”blue”,”yellow”]36 44 46 colors= [“red”,”blue”,”yellow”]12 48 colors= [“red”,”blue”,”yellow”]12 for color in colors:0 colors= [“red”,”blue”,”yellow”]12 for color in colors:2 colors= [“red”,”blue”,”yellow”]17 for color in colors:4 colors= [“red”,”blue”,”yellow”]75 colors= [“red”,”blue”,”yellow”]76 colors= [“red”,”blue”,”yellow”]77 colors= [“red”,”blue”,”yellow”]78 colors= [“red”,”blue”,”yellow”]79 colors= [“red”,”blue”,”yellow”]80 colors= [“red”,”blue”,”yellow”]81 colors= [“red”,”blue”,”yellow”]82 Jika kamu coba panggil fungsi setelah loop selesai, kamu akan mendapatkan error 259. 259 dilempar oleh fungsi 248 untuk menandai bahwa tidak ada objek yang dihasilkan oleh iterator. 1 colors= [“red”,”blue”,”yellow”]84 2 colors= [“red”,”blue”,”yellow”]86 3 colors= [“red”,”blue”,”yellow”]88 4 5 colors= [“red”,”blue”,”yellow”]91 colors= [“red”,”blue”,”yellow”]8 colors= [“red”,”blue”,”yellow”]93 20 colors= [“red”,”blue”,”yellow”]95 Contoh 2Pada contoh ini, kita akan lihat bagaimana cara menggunakan beberapa statement yield dalam sebuah fungsi. 1 colors= [“red”,”blue”,”yellow”]97 2 3 200 4 202 5 204 colors= [“red”,”blue”,”yellow”]8 206 20 colors= [“red”,”blue”,”yellow”]17 22 210 40 212 42 214 44 214 46 214 48 for color in colors:0 colors= [“red”,”blue”,”yellow”]75 for color in colors:2 for color in colors:4 224 colors= [“red”,”blue”,”yellow”]76 226 colors= [“red”,”blue”,”yellow”]77 228 Fungsi normal mengambalikan semua nilai saat fungsi tersebut dipanggil, sedangkan generator menunggu sampai fungsi 248 dipanggil kembali. Begitu 248 dipanggil, fungsi warna melanjutkan dari titik terakhir fungsi tersebut berhenti. KesimpulanGenerator sangat efisien dalam menggunakank memory, terutama saat berkerja dengan daftar atau objek yang sangat besar. Ini karena kamu bisa menggunakan yield untuk mengerjakan bagian lebih kecil dibanding menyimpan semua data dalam memory sekaligus. Apa itu generator pada python?PYTHON (Pemrograman Fungsional) – Generator
Generator adalah tipe iterasi seperti list dan tuple. Tidak seperti list, generator tidak mengizinkan indexing yang semena-mena tetapi masih dapat diiterasi menggunakan fungsi for. Generator dapat dibuat menggunakan sebuah fungsi dan statemen yield.
Keyword apa yang digunakan untuk membuat fungsi generator?Fungsi normal pada Python menggunakan keyword return untuk mengembalikan suatu nilai, tapi generator menggunakan keyword yield untuk mengembalikan nilai. Ini berarti setiap fungsi Python yang berisi yield adalah fungsi generator.
Apa itu yield pada python?Yield adalah salah satu cara kita untuk mengembalikan sebuah value dan menghentikan sementara eksekusi function yang sedang berjalan.
|