Looping in Python

Meningat banyaknya penggunaan looping di openerp, tidak ada salahnya saya mengkhususkan pembahasan tsb pada kesempatan kali ini.

Proses lopping di python ada 2 macam, diantaranya :

1. While Loops

Perulangan while, memiliki struktur default spt ini :

while kondisi:
perintah_jika_kondisi_benar (atau TRUE)
else:
perintah_lain

Perintah2 dibawah while akan selalu dijalankan jika kondisi benar/true. Perintah2 di bawah else akan dijalankan setelah kondisi berubah menjadi false.

Contohnya berikut ini :

a = 0
 while a < 10 :
     print a
     a += 1
 else:
     print 'selesai'

Ketika a masih bernilai dibawah 10 maka program akan terus mengexecute ‘print a’, kemudian nilai a ditambah 1 dgn perintah ‘a += 1’ perintah tsb sama spt ‘a = a + 1’. Jika nilai a telah melebihi angka 10, maka perintah di bawah else yang akan dijalankan. Hasil output seperti dibawah ini :

 0
 1
 2
 3
 4
 5
 6
 7
 8
 9
 selesai

Biasanya dalam looping/perulangan akan ditemui keyword python yang lain yaitu Break & Continue. Fungsi break akan menghentikan semua proses looping (semua eksekusi looping akan dihentikan termasuk setelah else). Sedangkan continue sebaliknya, eksekusi akan terus dijalankan. Contohnya berikut ini :

 a = 0
 while a < 10 :
     print a
     if a == 5 :
         break
     a += 1
 else:
     print 'selesai'

Outputnya :

 0
 1
 2
 3
 4

Algoritma diatas menunjukan ketika nilai a bernilai 5, maka proses looping akan dimatikan/berhenti walaupun ada perintah else disana. Contoh lain dari while loops :

 password = "admin"
 while password != "adsoft":
     password = raw_input("Masukan Password: ")
 print "Selamat Datang !"

Outputnya :

 Masukan Password : ahmad
 Masukan Password : admin
 Masukan Password : adsoft
 Selamat Datang !

Pada syntax diatas, program akan selalu mengecek, apakah password sudah bernilai ‘adsoft’ atau belum, jika blum program akan selalu meminta memasukan password, ketika password sudah bernilai ‘adsoft’, maka program akan mengeksekusi print ‘Selamat Datang !’

2. For Loops

Perulangan For memiliki struktur default spt ini :

for variabel in objek:
perintah_perintah
else:
perintah_lain

Tidak seperti while yang melakukan looping dengan pengecekan terlebih dahulu, for melakukan eksekuis sesuai dengan iterasi yang telah ditentukan, baik berupa objeck maupun lainnya. Ada 2 pola pada for loops, yaitu : for in & for in range(). Contohnya sebagai berikut :

 objek = [1,2,3,4,5]
 for x in objek:
      print x

dan

 for x in range (1,6,1):
      print x

dari kedua syntax tsb menghasilkan output yang sama, yaitu :

 1
 2
 3
 4
 5

Pada code yang pertama, looping for akan menjalankan eksekusi ‘print x’ sesuai dgn jumlah element objek tsb yaitu list. Sedangkan yang kedua, kita menggunakan looping for in range(), Dimana range membutuhan beberapa parameter, diantaranya range(nilai_awal, nilai_akhir, kelipatan).

Contoh lainnya :

 list = [4, 5, 7, 8, 9, 1,0,7,10]
 list.sort()
 prev = list[0]
 del list[0]
 for item in list:
     if prev == item:
         print ("Duplicate of ",prev," Found")
     prev = item

Outputnya adalah :

 Duplicate of  7  Found

Adakah yang bisa menjelaskan code diatas ??

Advertisements

4 thoughts on “Looping in Python

  1. gan, gimana ya misalnya dalam openerp kita ingin membatasi looping hanya 100 x, misalnya:

    for x in obj_pool.browse(cr, uid, ids, context=context) <== ada 1000 data, tp mau stop saat looping ke 100
    …..
    return ….

    mohon bantuanya gan,

    trims..

    • Ada banyak cara gan. Awalan kita harus mengetahui looping for loop itu sendiri. Sebenarnya looping for loop ada 2 jenis dan masing-masing menyediakan beberapa parameter : for x in range (nilai_awal, nilai_akhir, kelipatan) dan for x in list_python. Untuk kasus agan jika kita menggunakan kedua cara diatas hasilnya seperti ini :

      
      val = obj_pool.browse(cr, uid, ids, context=context)
      
      for x in val[:100]:
          print x
      
      ### ATAU ###
      
      for x in range(0, 100):
          print val[x]
      
      
      

      Bisa juga cara seperti ini :

      
      val = obj_pool.browse(cr, uid, ids, context=context)
      
      n = 0
      for x in val:
          n += 1
          print x
          if n == 100:
              break
      
      ### ATAU ###
      
      for x in range(0, len(val)):
          print val[x]
          if x == 99:
              break
      
      

      Atau mungkin agan & temen2 disini memiliki cara yang lebih baik lagi 🙂
      Semoga bermanfaat …

  2. Pingback: Tutorial Dasar Python | Tutorial OpenERP

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s