Python vs Ruby


PYTHON

Kelebihan dan Kekurangan Python

Kelebihan :

1.       Tidak ada tahapan kompilasi dan penyambungan (link) sehingga kecepatan perubahan pada masa pembuatan system aplikasi meningkat.
2.       Tidak ada deklarasi tipe sehingga program menjadi lebih sederhana, singkat, dan fleksible
3.       Manajemen memori otomatis yaitu kumpulan sampah memori sehingga dapat menghindari pencatatan kode
4.       Tipe data dan operasi tingkat tinggi yaitu kecepatan pembuatan system aplikasi menggunakan tipe objek yang telah ada
5.       Pemrograman berorientasi objek
6.       Pelekatan dan perluasan dalam C



 Aturan penulisan Python

Program-program yang ditulis dalam Python secara khas jauh lebih pendek dibandingkan
dengan program-program C atau C++, karena beberapa pertimbangan:
• tipe data tingkat tinggi digunakan untuk menyatakan operasi kompleks dalam suatu statemen
tunggal;
• pengelompokan statemen telah selesai dengan indentasi sebagai pengganti dari pengurungan
mulai dan akhiran;
• tidak ada deklarasi-deklarasi argumentasi atau variabel yang diperlukan

Perulangan Pada Python

Perintah perulangan di gunakan untuk mengulang pengeksekusian statemen-statemen hingga
berkali-kali sesuai dengan iterasi yang diinginkan. Dalam python, perintah untuk perulangan (loop)
adalah while dan for.

1. Perintah While
Perintah while pada python merupakan perintah yang paling umum digunakan untuk proses
iterasi. Konsep sederhana dari perintah while adalah ia akan mengulang mengeksekusi statemen dalam blok while selama nilai kondisinya benar. Dan ia akan keluar atau tidak melakukan eksekusi blok statemen jika nilai kondisinya salah.

Bentuk umum statemen while,
while (kondisi) :
statemen

Contoh penggunaan while :
contoh 1 : >>> while True :
... print "Tekan CTRL + C untuk Stop"
...

2. Perintah For
Perintah for dalam python mempunyai ciri khas tersendiri dibandingkan dengan bahasa
pemrograman lain. Tidak hanya mengulang bilangan-bilangan sebuah ekspresi aritmatik, atau
memberikan keleluasaan dalam mendefinisikan iterasi perulangan dan menghentikan perulangan pada saat kondisi tertentu. Dalam python, statemen for bekerja mengulang berbagai macam tipe data sekuensial seperti List, String, dan Tuple.

Bentuk umum perintah for,
for (variabel) in (objek) :
statemen
else:
statemen

Contoh penggunaan for :
Contoh 1 : >>> for i in [5, 4, 3, 2, 1]:
... print i,
...
5 4 3 2 1

3. Perintah Break, Continue dan Pass

Perintah Break
Perintah break digunakan untuk menghentikan jalannya proses iterasi pada statemen for
atau while. Statemen yang berada di bawah break tidak akan di eksekusi dan program akan keluar dari proses looping.

Contoh break : >>> x = 1
>>> while x < 5:
... if x == 3:
... break
... print x
... x = x+1
... else:
print "Loop sdh selesai dikrjkn"
...
1
2

Perintah Continue

Statemen continue menyebabkan alur program kembali ke perintah looping. Jadi jika
dalam sebuah perulangan terdapat statemen continue, maka program akan kembali ke perintah looping untuk iterasi selanjutnya.

Contoh continue : >>> n = 10
>>> while n:
... n = n - 1
... if n % 2 != 0:
... continue
... print n
...
8
6
4
2

Perintah Pass

Statemen pass mengakibatkan program tidak melakukan tindakan apa-apa. Perintah pass
biasanya digunakan untuk mengabaikan suatu blok statemen perulangan, pengkondisian, class, dan fungsi yang belum didefinisikan badan programnya agar tidak terjadi error ketika proses compilasi.

Contoh program pass : #program tidak akan melakukan
#proses looping
while True : pass

Perintah Percabangan pada Python

1. Percabangan

Pada umumnya dalam membuat program, selalu ada seleksi dimana diperlukan
pengecekan suatu kondisi untuk mengarahkan program agar berjalan sesuai keinginan. Pada
Python untuk melakukan suatu pengecekan kondisi, terdapat tiga macam statemen. Antara lain :
1. Perintah if
2. Perintah if – else
3. Perintah if – elif– else
4. Perintah If bersarang

1. Perintah If
Bentuk umum perintah if :
if (kondisi) :
statemen
Statemen if digunakan untuk melakukan penyeleksian dimana jika kondisi bernilai benar
maka progam akan mengeksekusi statemen dibawahnya. Dalam python, untuk penulisan
pengkondisian dan statemen di pisahkan oleh tanda titik dua ( : ).

Contohnya,
>>> nama = "python"
>>> if nama == "python" :
... print "Hello " + nama
...
Hello python

Untuk setiap penulisan perintah if setelah penentuan kondisi maka dilanjutkan dengan
penulisan tanda titik dua ( : ). Tanda titik dua ini berarti jika kondisi bernilai benar maka
statemen-statemen setelah tanda titik dua akan di jalankan.

2. Perintah If – Else

Statemen if – else digunakan untuk melakukan penyeleksian kondisi dimana jika kondisi
bernilai benar maka program akan mengeksekusi statemen 1. Namun, jika nilai kondisi bernilai salah maka statemen 2 yang akan dieksekusi.

Bentuk umum perintah if – else :
if ( kondisi ) :
statemen 1
else :
statemen 2

Contoh Program :
>>> kunci = "python"
>>> password = raw_input("Masukkan Password : ")
Masukkan Password : saya
>>> if password == kunci:
... print "Password Benar"
... else:
... print "Password Salah"
...
Password Salah

3. Perintah If – Elif –Else

Statemen if – else - elif digunakan untuk melakukan penyeleksian kondisi dimana kondisi
yang diberikan lebih dari 1 kondisi atau memiliki beberapa kondisi. Jika kondisi pertama bernilai benar maka lakukan seleksi kondisi ke-dua dan seterusnya.

Bentuk umum perntah if – else – elif :
if ( kondisi 1 ) :
statemen
elif ( kondisi 2 ) :
statemen
else:
statemen


OOP Pada Python
Evolusi pemrograman telah beralih dari pengeksekusian instruksi langkah-demi-langkah menuju kepada pendekatan blok program yang lebih terorganisir, di mana blok kode tersebut dapat dibungkus menjadi subrutin dan fungsi yang  telah ditetapkan.

Fungsi pada pyhon
Fungsi (Function) adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai
sub-program (modul program) yang merupakan sebuah program kecil untuk memproses sebagian
dari pekerjaan program utama.
Scope variabel atau cakupan variabel merupakan suatu keadaan dimana pendeklarasian
sebuah variabel di tentukan. Dalam scope variabel dikenal dua istilah yaitu local dan global .
Variabel disebut local ketika variabel tersebut didefinisikan didalam sebuah fungsi (def). Artinya,
variabel tersebut hanya dapat di gunakan dalam cakupan fungsi tersebut saja. Dan jika sebuah
variabel didefinisikan diluar fungsi maka variabel tersebut bersifat global. Artinya, variabel tersebut
dapat digunakan oleh fungsi lain atau pun program utamanya.

Selain statemen def, Python juga menyediakan suatu bentuk ekspresi yang menghasilkan
objek fungsi. Karena kesamaannya dengan tools dalam bahasa Lisp, ini disebut lambda .Seperti def,
ekspresi ini menciptakan sebuah fungsi yang akan dipanggil nanti, tapi mengembalikan fungsi dan
bukan untuk menetapkan nama. Inilah sebabnya mengapa kadang-kadang lambda dikenal sebagai
anonim (yakni, tidak disebutkan namanya) fungsi. Dalam prakteknya, mereka sering digunakan
sebagai cara untuk inline definisi fungsi, atau untuk menunda pelaksanaan sepotong kode.

Fungsi Rekursif merupakan suatu fungsi yang memanggil dirinya sendiri. Artinya, fungsi
tersebut dipanggil di dalam tubuh fungsi itu sendiri. Tujuan di lakukan rekursif adalah untuk
menyederhanakan penulisan program dan menggantikan bentuk iterasi. Dengan rekursi, program
akan lebih mudah dilihat.
RUBY

Percabangan dan Perulangan

Percabangan

Dalam pemrograman, kita tentunya mengenal istilah seleksi dan perulangan. Pada umumnya dalam membuat program, selalu ada seleksi dimana diperlukan pengecekan suatu kondisi untuk mengarahkan program agar berjalan sesuai keinginan. Pada Ruby untuk melakukan suatu pengecekan kondisi, terdapat tiga macam statemen. Antara lain :
- Perintah if
- Perintah if – else
- Perintah if – else – elsif

  1. Perintah if
                Statemen if  digunakan untuk melakukan penyeleksian dimana jika kondisi bernilai benar maka progam akan mengeksekusi statemen dibawahnya. Dalam ruby, setelah penulisan statement di akhiri dengan end.
               
                Bentuk umum perintah if :
                                                                if kondisi
                                                                                statemen
                                                                end

B.      Perintah if-else
                Statemen if – else digunakan untuk melakukan penyeleksian kondisi dimana jika kondisi bernilai benar maka program akan mengeksekusi statemen 1. Namun, jika nilai kondisi bernilai salah maka statemen 2 yang akan dieksekusi.               
                Bentuk umum perintah if :
                                                                if kondisi
                                                                                statemen1
                                                                else
                                                                                statemen2
                                                                end
Perulangan

Perintah perulangan di gunakan untuk mengulang pengeksekusian statemen-statemen hingga berkali-kali sesuai dengan iterasi yang diinginkan. Dalam Ruby, perintah untuk perulangan (loop) adalah times, while dan for.

A.      Times

Perintah times digunakan untuk perulangan yang sangat sederhana. Hanya dengan bentuk umum seperti di bawah ini kita bisa langsung mendapatkan output berulang.
                Bentuk umumnya adalah :
                                                                Jumlah_Perulangan.times do
                                                                                statemen                                           
                                                                end
B.      While
C.       
                Perintah while pada Ruby merupakan perintah yang paling umum digunakan untuk proses perulangan. Konsep sederhana dari perintah while adalah statement yang terdapat di dalam while akan diulang pengeksekusiannya selama nilai kondisinya benar. Dan ia akan keluar atau tidak melakukan eksekusi blok statemen jika nilai kondisinya salah.

Bentuk umum statemen while,
                                                                while kondisi
                                                                                statemen
                                                                end

D.      Perintah For
                Perintah for dalam Ruby sama seperti bahasa pemrograman lainnya. Pada perulangan for ini
lebih spesifik dari pada perintah while. Kita dapat menentukan range (batasan) pada perulangan ini.
               
Bentuk umum statemen for,
                                                                For variable in range
                                                                                statemen
                                                                end


persamaan Ruby dan Python

·         Ada Ruby Interaktif (dinamakan irb).
·         Anda bisa membaca dokumentasi di command line (dengan ri, setara dengan pydoc di Python).
·         Tidak ada karakter khusus untuk akhir baris (newline biasa atau biasa kita sebut “enter”).
·         Isi string bisa dipisah ke banyak baris seperti string triple-quoted di Python. Di Ruby hal ini tidak membutuhkan sintaks khusus, cukup menggunakan petik tunggal atau petik ganda seperti biasanya, tapi Anda juga bisa menggunakan heredocdan sintaks lain (misalnya %q{ halo }) jika Anda suka.
·         Buka kurung dan tutup kurung siku ([]) untuk list, buka kurung dan tutup kurung kurawal ({}) untuk hash (istilah Ruby untuk dict.)
·         Array mempunyai fungsionalitas yang sama. Menambahkan array menghasilkan array gabungan. Memasukkan array ke dalam array lain menghasilkan array bersarang atau nested array: a3 = [ a1, a2 ]
·         Obyek bersifat dinamis dan strongly typed.
·         Semua adalah obyek, dan variabel hanya merupakan referenceke obyek.
·         Meskipun keyword  yang digunakan berbeda (Ruby menggunakan raise dan rescue), fitur exception setara dengan Python.
Perbedaan Ruby dan Python

  • String dapat diubah isinya (mutable.)
  • Anda dapat membuat konstanta (variabel yang nilainya tidak akan diubah).
  • Ada aturan penamaan (misalnya: nama kelas diawali dengan huruf kapital, nama variabel lokal diawali dengan huruf kecil).
  • Hanya ada satu jenis tipe kontainer yang berisi daftar data, yaitu Array. Array bersifat mutable yaitu dapat diubah-ubah.
  • Interpolasi string didukung menggunakan sintaks petik ganda. Interpolasi yang didukung adalah escape sequence (misalnya \tuntuk tab) dan substitusi ekspresi: "Selamat Datang, #{nama}!"akan menghasilkan string yang juga disisipkan isi variabel nama. Di Ruby, string berpetik tunggal (misalnya: 'halo semua') berfungsi persis seperti raw string di Python (tanpa interpolasi.)
  • Tidak ada kelas “new style” dan “old style”. Cuma ada satu macam kelas.
  • Anda tidak akan pernah langsung mengakses atribut. Di Ruby, semua menggunakan pemanggilan metode. Cara praktisnya adalah dengan menggunakan attr_reader, attr_writer, maupunattr_accessor.
  • Buka dan tutup kurung untuk pemanggilan metode biasanya dihilangkan (opsional / boleh dipakai boleh juga tidak).
  • Ada public, private, dan protected untuk mengatur akses keinstance member, yang biasanya di Python diakali menggunakan aturan penamaan _seperti_ __ini__.
  • Menggunakan “mixin”, bukan multiple inheritance.
  • Anda bisa “membuka” sebuah kelas kapan saja untuk mengubah atau menambahkan metode-metode ke kelas tersebut.
  • Ruby menggunakan true, false, dan nil, sedangkan Python menggunakan True dan False, dan None.
  • Kalau dites logika untuk true, hanya false dan nil yang dianggap bernilai false. Semua nilai lain dianggap true (termasuk 0, 0.0, "", dan []).
  • Menggunakan elsif sebagai ganti elif.
  • Menggunakan require sebagai ganti import. Cara penggunaannya sama.
  • Penggunaan komentar biasanya di atas yang ingin didokumentasikan (jadi bukan di bawahnya.) Biasa digunakan untuk menghasilkan dokumentasi secara otomatis dari source code.


Contoh Program Sederhana

Berikut ini adalah contoh program untuk menjumlahkan dua angka (diinputkan dari keyboard) di Python:

import sys
a = sys.stdin.readline()
b = sys.stdin.readline()
c = int(a) + int(b)
print c

Sedangkan jika menggunakan Ruby, kita dapat menuliskan sintaks-nya seperti ini :

a = gets.to_i
b = gets.to_i
c = a + b
puts c


Top