Kamis, 31 Maret 2011

Bahasa Pemrograman Ruby

1.1 Pengenalan Ruby

Ruby merupakan bahasa scripting yang memiliki string processing yang sangat akurat misalnya regular expression sehingga sangat cocok untuk administrator sistem untuk membuat shell script yang powerfull. Di pihak lain, bahasa scripting menawarkan pengembangan aplikasi yang cepat misalnya pembuatan aplikasi GUI, web scripts, system utilities, dan aplikasi yang membutuhkan pemrosesan string ataupun perhitungan yang akurat. Pencipta Ruby, Yukihiro Matsumoto (Matz), menggabungkan bagian-bagian dari bahasa-bahasa favorit beliau (Perl, Smalltalk, Eiffel, Ada dan Lisp) untuk membentuk bahasa baru yang seimbang antara pemrograman fungsional dengan pemrograman imperatif.

1.1.1 Perkembangan Ruby

Sejak Ruby pertama kali dirilis ke publik pada tahun 1995, banyak programmer profesional dari seluruh dunia serius ikut mengembangkan Ruby. Pada tahun 2006, Ruby diterima oleh banyak orang. Dengan komunitas pengguna Ruby yang aktif di banyak kota-kota di seluruh dunia dan konferensi-konferensi beserta pertemuan Ruby terkait.

Ruby-Talk, milis utama untuk diskusi Ruby (dalam bahasa Inggris) telah mencapai kisaran 200 email setiap hari. TIOBE index, yang menghitung perkembangan bahasa-bahasa pemrograman, menempatkan Ruby pada peringkat ke 10 diantara bahasa-bahasa pemrograman di seluruh dunia. Melihat pada perkembangan ini, mereka memperkirakan, “Kesempatan Ruby memasuki peringkat atas 10 besar adalah dalam waktu setengah tahun.” Kebanyakan dari perkembangan Ruby beratribut pada terkenalnya software yang ditulis dengan Ruby, terutama framework web Ruby on RailS. Ruby juga sepenuhnya bebas. Tidak hanya gratis, tetapi juga bebas untuk menggunakan, memodifikasi dan mendistribusikan Ruby.

1.1.2 Kelebihan Ruby

Pertama kali, Matz melihat bahasa-bahasa lain untuk mencari sintaks yang ideal. Terkenang pencariannya, Matz berkata, “Saya mau bahasa scripting yang lebih hebat daripada Perl dan lebih berorientasi obyek daripada Python.” Di Ruby, semua adalah obyek. Setiap informasi dan kode bisa diberi property dan action. Pemrograman berorientasi obyek memanggil property dengan nama variabel instant dan action, yang disebut sebagai metode. Pendekatan murni berorientasi obyek terutama terlihat pada demonstrasi sedikit kode yang diberikan pada number.

Di banyak bahasa-bahasa lain, number dan tipe primitif bukan obyek. Ruby mengikuti pengaruh bahasa Smalltalk dengan memberikan metode dan variabel instant pada semua tipe. Ini memudahkan menggunakan Ruby, karena peraturan-peraturan mengenai obyek semua berlaku pada Ruby. Ruby dianggap sebagai bahasa yang fleksibel, karena bagian-bagian dari Ruby bisa diubah-ubah dengan bebas. Bagian-bagian yang esensi di Ruby bisa dihapus maupun didefinisikan ulang. Bagian-bagian yang sudah ada bisa ditambahkan. Ruby mencoba untuk tidak membatasi programmer.

Misalnya, penambahan dilakukan dengan operator plus (+). Tetapi, jika ingin menggunakan kata plus yang lebih mudah dibaca, maka dapat menambahkan metode tersebut pada kelas Numeric.

class Numeric

def plus(x)

self.+(x)

end

end



y = 5.plus 6

# y sekarang adalah 11

Demi kemudahan, operator-operator Ruby adalah juga metode. Kita juga bisa mendefinisikan ulang operator. Blok Ruby juga dianggap sebagai sumber kekuatan Ruby yang sangat fleksibel. Programmer dapat menyertakan closure pada setiap metode, menjelaskan bagaimana metode yang bersangkutan seharusnya berperilaku. Closure disebut blok dan telah menjadi satu diantara banyak fitur-fitur Ruby yang paling populer pada banyak pendatang baru Ruby dari bahasa-bahasa imperatif lain seperti PHP atau Visual Basic.

Blok terinspirasi dari bahasa-bahasa fungsional. Matz berkata, “Saya ingin menghormati kultur Lisp di closure Ruby.”

search_engines =

%w[Google Yahoo MSN].map do |engine|

"http://www." + engine.downcase + ".com"

end

Pada kode diatas, blok dijelaskan dalam bentuk do ... end. Metode map memberlakukan blok agar menerima array kata-kata (Google, Yahoo dan MSN). Banyak metode-metode lain di Ruby dibiarkan mempunyai hole yang dibuka untuk programmer agar menulis blok mereka sendiri untuk mengisi dengan lebih lengkap apa saja yang seharusnya sebuah metode lakukan.

Tidak seperti banyak bahasa-bahasa berorientasi obyek lain, Ruby hanya menyediakan single inheritance dengan sengaja. Tetapi Ruby mengetahui konsep module (disebut sebagai Categories di Objective-C). Module merupakan kumpulan dari metode-metode.

Kelas dapat menggabungkan sebuah module dan menerima semua metode-metode (dari module yang bersangkutan) dengan bebas. Contoh, setiap kelas yang mengimplementasikan metode each bisa mixin module Enumerable, yang menambahkan banyak metode-metode yang menggunakan each untuk melakukan perulangan.

Secara umum, Rubyist menganggap ini sebagai cara yang lebih jelas ketimbang multiple inheritance, yang rumit dan bahkan terlalu membatasi. Ruby jarang menggunakan tanda baca dan biasanya cenderung menggunakan keyword berbahasa Inggris, biasanya beberapa tanda baca digunakan untuk memperjelas kode Ruby

Ruby tidak perlu deklarasi variabel. Ruby menggunakan aturan penamaan yang mudah untuk menyatakan scope suatu variabel.

* var adalah variabel lokal.
* @var adalah variabel instant.
* $var adalah variabel global.

Simbol-simbol tersebut bertujuan untuk memudahkan dan memperjelas ketika dibaca bagi programmer untuk mengidentifikasi fungsi dari setiap variabel. Sigil juga bisa menjadi hal yang tidak perlu bila harus digunakan pada setiap member instant.

Ruby kaya fitur, antara lain sebagai berikut:

* Ruby merupakan bahasa interpreter.
* Ruby memiliki sintaks yang sederhana, mudah dipelajari dan dipahami.
* Ruby memiliki fitur-fitur yang menangani exception, seperti Java atau Python, untuk mempermudah menangani error.

* Ruby menyediakan mark-and-sweep garbage collector untuk semua obyek Ruby. Tidak perlu me-maintain reference count pada library extension.

* Menulis extension C di Ruby lebih mudah daripada di Perl ataupun di Python, dengan API yang elegan untuk memanggil Ruby dari C. Ini termasuk memanggil Ruby embedded di software, untuk digunakan sebagai bahasa scripting. Interface SWIG juga tersedia.

* Ruby bisa load library extension secara dinamis jika Sistem Operasi mengijinkan.

* Ruby menyediakan fitur OS threading yang independent. Maka, untuk semua platform dimana Ruby berjalan, kita juga punya multithreading, terlepas dari apakah Sistem Operasi mendukung multithreading atau tidak, bahkan pada MS-DOS sekalipun.

* Ruby sangat portable: Ruby kebanyakan dikembangkan di GNU/Linux, tetapi juga berjalan di banyak tipe UNIX, Mac OS X, Windows 95/98/Me/NT/2000/XP, DOS, BeOS, OS/2, dan lain-lain.
* Dan yang terakhir, tentunya Ruby gratis bahkan untuk aplikasi komersial.

1.1.3 Dasar Pemrograman Ruby

Sebagai bahasa scripting yang berbasis interpreter, Ruby menawarkan modus interaktif, yakni Interactive Ruby yang disingkat dengan irb. Untuk masuk ke modus interaktif Ruby, cukup mengetikkan irb pada command prompt, untuk keluar cukup menekan tombol Ctrl-D atau ketikkan “exit”. Dapat juga menambahkan opsi ”—simple-prompt” pada irb agar bentuk prompt-nya berubah menjadi >>.

Di samping itu, tentunya program Ruby juga dapat disimpan dalam file berextension ‘.rb’. Sama halnya seperti Python, modus interaktif Ruby juga dapat digunakan sebagai kalkulator untuk perhitungan sederhana. Kemampuan menghitung Ruby tidak kalah jika dibandingkan dengan Python. Konon, Ruby memiliki kecepatan eksekusi program yang lebih cepat dibandingkan dengan Python.

Gambar 2.1 Contoh Penulisan Sintax Ruby pada Command Prompt

1. Aturan penamaan variabel

Karena Ruby bersifat dynamic-typing, Kita tidak perlu mendeklarasikan tipe dan variable yang ingin kita gunakan seperti pada bahasa C. Kita cukup memasukkan nilai ke variable yang ingin kita pakai. Aturan penamaan variabel sama dengan aturan penamaan variabel pada umumnya, yakni tidak boleh dimulai dengan angka dan tidak memakai keyword penting dari bahasa tersebut.

Berikut contoh deklarasi variabel:

Contoh variabel yang benar:

x = 888

ini_variabel_string = “halo”

Contoh variabel yang tidak benar:

8x = 888

while = “halo” # while adalah reserved keyword

2. Konstanta

Konstanta tidak lain adalah sebuah variabel yang isinya tetap (tidak berubah). Konstanta di Ruby dideklarasikan dengan huruf kapital pada huruf pertama. Suatu konstanta tetap dapat diubah nilainya. Pemberian status konstanta pada suatu variabel hanya akan memberikan suatu peringatan apabila kita mengubah isi konstanta tersebut.

3. Input Output

Untuk meminta input-an dari user, kita menggunakan perintah gets. Sedangkan untuk output ke layar monitor, kita dapat menggunakan puts, print maupun printf.

>> puts “Halo, pa kabar ?”

Halo, pa kabar?

=> nil

>> print “Halo, pa kabar ?”

Halo, pa kabar ?=> nil

>> nama = gets

Eric

=> “Eric\n”

>> printf “Nama saya %s”, nama

printf “Nama saya %s”, nama

Nama saya Eric

=> nil

Adapun perbedaan antara puts , print dan printf yakni di mana puts akan menambahkan karakter newline (‘\n’) pada akhir string dan parameternya harus string, sedangkan print hanya mencetak string tanpa menambahkan karakter newline, printf sama dengan print; bedanya printf mengenal formatting seperti %s untuk string,%f untuk float, %d untuk integer, dan seterusnya. Perintah printf ini sama dengan perintah printf di bahasa C.

4. Struktur program

Program Ruby umumnya juga memakai indentasi seperti bahasa Python. Akan tetapi indentasi tidak mutlak harus dilakukan, karena Ruby menggunakan keyword end untuk menandakan akhir dari suatu bagian program.

5. Lain-lain

Mungkin pada beberapa contoh di atas, sering melihat tulisan nil. Nil berarti suatu objek di Ruby sama dengan NULL di bahasa C. Nil berarti hasil eksekusi perintah tersebut tidak mengembalikan objek apapun alias nil (tidak memiliki return value). Misalkan perintah puts hanya mencetak string ke layar dan tidak mengembalikan objek apapun untuk disimpan alias nil. Akan tetapi lainnya halnya dengan a = “halo” akan mengembalikan objek String “halo” yang akan disimpan dalam variabel a. Untuk komentar pada program Ruby, Kita dapat menggunakan tanda # . Untuk lebih dari satu statement pada satu baris , Kita dapat menggunakan pemisah ‘;’. Sedangkan untuk statement yang lebih dari satu baris, Kita dapat menggunakan tanda ‘\’.

>> a = 1#Variabel a berisi 1
=> 1
>> print “Halo “; puts “ apa
kabar ?”
Halo apa kabar ?
=> nil
>> b = 1 + 3 + 5 \
?> + 7 + 9
=> 25

1.1.4 Tipe Data Dasar

Setelah berkenalan dengan dasar-dasar interpreter Ruby, selanjutnya dibahas beberapa tipe data dasar yang disediakan Ruby yang tentunya merupakan instansi dari kelas–kelas mengingat Ruby adalah bahasa berorientasi objek yang murni. Di samping itu, akan dibahas beberapa metode yang umum dari kelas– kelas tersebut.

1. Angka

Ruby dapat menangani angka baik yang bertipe integer maupun float. Untuk tipe data Integer di Ruby, kelas Integer dibagi dalam dua kelas yakni FixNum dan BigNum. Angka dengan batas -230 sampai 230–1 tergolong dalam kelas FixNum; apabila suatu angka telah melampaui batas tersebut, maka akan digolongkan dalam kelas BigNum. Karena Ruby bersifat dynamic–typing, Kita tidak perlu melakukan konversi dari FixNum ke BigNum karena konversi akan dilakukan secara otomatis. Sedangkan untuk angka yang bertipe float, Ruby akan menganggap objek angka tersebut merupakan instansi dari kelas Float.

Seperti bahasa pemrograman umumnya, pada Ruby dapat menggunakan prefiks (awalan) untuk menandakan arti angka tersebut, misalya untuk menyatakan bilangan negatif, 0 untuk bilangan oktal , 0b untuk bilangan biner dan 0x untuk bilangan heksadesimal serta e untuk bilangan eksponensial. Untuk mempermudah penulisan suatu angka dengan nilai yang sangat besar, Kita dapat membubuhkan karakter _ pada penulisan angka (karakter _ tidak akan disimpan, hanya untuk membantu saja).

>> a = 2
=> 2
>> a.class
=> FixNum
>> a = a ** 31
=> 2147483648
>> a.class
=> BigNum
>> 188_888_000_000
=> 188888000000
>> 0x6AF
=> 1711
>> 1.89e+18
=> 1.89e+18
>> b = 1.4
=> 1.4
>> b.class
=> Float

2. String

Tipe data String di Ruby sama dengan tipe data String pada bahasa pemrograman lain umumnya. Untuk membuat tipe data String, kita dapat menggunakan kutip satu ‘ ataupun kutip dua “ . Adapun perbedaan di antara keduanya, yakni di mana objek String yang dibuat dengan kutip dua “ akan mengerti karakter khusus seperti ‘\n’,’\r’,’\b’ ,dsb. ; sedangkan karakter dengan objek String yang dibuat dengan kutip satu ‘ tidak bisa menerjemahkan karakter khusus di atas.

Perhatikanlah contoh berikut:

>> a = “Hello\n”
=> “Hello\n”
>> print a
Hello
=> nil
>> b = ‘Hello\n’
=> “Hello\\n”
>> print b
Hello\n=> nil

Kelas String kaya akan metode-metode yang powerful. Kita dapat mencoba beberapa di antaranya seperti berikut ini:

· Length : untuk mengetahui panjang suatu string.

· Capitalize : untuk mengubah huruf pertama pada awal kalimat menjadi huruf kapital.

· Downcase : mengubah string menjadi huruf kecil.

· Upcase : mengubah string menjadi huruf besar.

· Swapcase : mengubah objek string dengan huruf kecil diubah menjadi huruf kapital dan sebaliknya.

· Strip : membuang karakter whitespace di awal dan akhir string.

· Reverse : membalikkan string.

· Include ? str : mengembalikan true jika substring str terdapat dalam string dan false jika tidak ada.

· Chop : membuang karakter terakhir dari string.

Salah satu hal yang unik dari Ruby adalah Kita dapat menambahkan tanda ‘!’ di akhir metode untuk menandakan metodenya bersifat destruktif di mana hasil metode tersebut berdampak langsung pada objeknya.

>> “Hello”.length
=> 5
>> “hello”.capitalize
=> “Hello”
>> “HELlo”.downcase
=> “hello”
>> “HeLLo”.upcase
=> “HELLO”
>> “hElLo”.swapcase
=> “HeLlO”
>> “hello”.reverse
=> “olleh”
>> “ hello “.strip
=> “hello”
>> “helloo”.chop
=> “hello”
>> “hello”.include? “h”
=> true
>> a = “ Hello “
=> “ Hello “
>> a.strip
=> “Hello”
>> a
=> “ Hello “
>> a.strip!
=> “Hello”
>> a
=> “Hello”

3. Array
Tipe data Array di Ruby hampir sama dengan tipe data array pada bahasa pemrograman lain umumnya. Tipe data Array di Ruby sama dengan tipe data list di Python. Untuk membuat suatu objek Array baru, Kita dapat menggunakan literal Array [] ataupun konstruktor Array.new. Isi array dapat berupa objek apapun baik angka, string, maupun objek lain termasuk objek array itu sendiri. Untuk mengakses elemen objek Array ini, kita menggunakan indeks di mana indeks awal dimulai dari 0 sampai panjang array – 1. Kita juga dapat menggunakan indeks negatif di mana indeks -1 berarti elemen terakhir , -2 berarti elemen kedua terakhir, dan seterusnya.

Apabila kita mencoba mengakses elemen Array pada indeks yang di luar jangkauan, pernyataan tersebut tidak akan menyebabkan error seperti IndexError : list index out of range di Python, Ruby akan mengembalikan objek nil. Untuk mengubah isi array ataupun menambahkan data pada objek Array dengan indeks tertentu, kita bisa menggunakan statement biasa seperti array[indeks] = nilai baru. Apabila kita ingin membuat objek Array yang berisi string, akan repot sekali untuk menambahkan tanda kutip pada setiap elemen Array. Hal tersebut dapat diatasi dengan menggunakan prefiks %w. Untuk jelasnya, lihat contoh berikut:

>> a = []
=> []
>> a = [1,2,”m”,[3,4,5]]
=> [1, 2, “m”, [3, 4, 5]]
>> a[0]
=> 1
>> a[3]
=> [3, 4, 5]
>> a[3][1]
=> 4
>> a[-1]
=> [3, 4, 5]
>> a[6]
=> nil
>> a[1] = 88
=> 88
>> a
=> [1, 88, “m”, [3, 4, 5]]
>> c = %w(Anto, Eric, Isabel)
=> [“Anto,”, “Eric,”, “Isabel”]
Metode-metode pada kelas Array :

* Length : untuk mengetahui ukuran array.
* Push(nilai_baru) : untuk menambah data pada array. Data terbaru akan ditempatkan paling akhir.
* Pop : mengembalikan data pada indeks terakhir array dan menghapus data pada indeks terakhir.
* Reverse : membalik isi data array.
* Sort : mengurut isi array secara ascending.
>> a = [“a”,”b”,”c”]
=> [“a”, “b”, “c”]
>> a.length
=> 3
>> a.push(“d”)
=> [“a”, “b”, “c”, “d”]
>> a.pop
=> “d”
>> a
=> [“a”, “b”, “c”]
>> a.reverse
=> [“c”, “b”, “a”]
>> a.sort
=> [“a”, “b”, “c”]

4. Hash
Tipe data hash di Ruby sama dengan tipe data dictionary di Python. Untuk membuat objek hash yang baru, Kita dapat menggunakan literal hash {} ataupun konstruktor Hash.new. Lain halnya dengan array, untuk mengakses elemen objek Hash kita tidak menggunakan indeks seperti array. Kita dapat mendefinisikan kunci(key) yang unik untuk setiap elemen. Sama halnya seperti array, apabila kita mengakses elemen dengan key yang tidak tercantum di hash, maka akan mengembalikan nilai nil.

>> alamat = {
?> “Amat” => “Kemanggisan Raya
50”,
?> “Budi” => “Sudirman 80”,
?> “Eric” => “Sandang 9A”,
?> “Melissa” => “Pandu 77”
?> }
=> {“Eric”=>”Sandang 9A”,
“Budi”=>”Sudirman 80",
“Amat”=>”Kemanggisan Raya 50",
“Melissa”=>”Pandu 77"}
>> alamat[“Eric”]
=> “Sandang 9A”
>> alamat[“Dani”]
=> nil

5. Range
Objek range di Ruby merupakan suatu barisan di mana terdapat nilai awal dan nilai akhir dari barisan tersebut. Objek Range ini sama dengan perintah range() di Python. Untuk membuat suatu objek Range, kita dapat menggunakan operator range ‘..’ dan ‘...’. Format ‘..’ akan menciptakan objek Range yang ikut menyertakan elemen terakhirnya, sedangkan format ‘...’ akan menghilangkan elemen terakhirnya. Range di Ruby tidak dianggap sebagai objek Array melainkan dianggap sebagai suatu objek Range sendiri. Untuk menjadikannya objek Array, Kita dapat menggunakan metode to_a . Untuk lebih jelasnya, perhatikanlah contoh berikut.

>> a = (1..5)
=> 1..5
>> a.class
=> Range
>> (1..5).to_a
=> [1, 2, 3, 4, 5]
>> (1...5).to_a
=> [1, 2, 3, 4]

1.1.5 Seleksi dan Perulangan

Dalam pemrograman, kita tentunya mengenal istilah seleksi dan perulangan. Untuk seleksi kita akan menggunakan if, sedangkan untuk perulangan kita akan menggunakan for dan while. Penulis tidak akan lagi menjelaskan detail sintaks if, for, while karena sintaksnya hampir sama seperti umumnya.

1. Seleksi If

#if.rb
#!/usr/bin/env ruby
print “Masukkan nilai Anda : “
nilai = gets
nilai.chop!
if nilai.to_i >= 85
puts “Anda mendapat grade A”
elsif nilai.to_i >= 75
puts “Anda mendapat grade B”
elsif nilai.to_i >= 65
puts “Anda mendapat grade C”
else
puts “Anda mendapat grade D”
end #end untuk if
$ ruby if.rb
Masukkan nilai Anda : 80
Anda mendapat grade B

2. Perulangan Times

>> 3.times { print “Hi “ }
Hi Hi Hi=> 3
>> 3.times do
?> print “Hi “
?> end
Hi Hi Hi=> 3

3. Perulangan While

#while.rb
#!/usr/bin/env ruby
i = 1
while i<= 5
printf “%d “, i
i = i + 1
end # end untuk while
$ ruby while.rb
1 2 3 4 5

4. Perulangan For

#for.rb
#!/usr/bin/env ruby
for i in 1..5
if i%2 == 1
puts i.to_s + “ ganjil”
else
puts i.to_s + “ genap”
end #end untuk if
end #end untuk for
$ ruby for.rb
1 ganjil
2 genap
3 ganjil
4 genap
5 ganjil

1.1.6 Fungsi

Untuk mendefinisikan suatu fungsi, kita menggunakan kata kunci def diakhiri dengan end. Kita akan membuat fungsi faktorial.

#faktorial.rb
#!/usr/bin/env ruby
def faktorial(n)
hasil = 1
ctr = 0
n.times do
ctr += 1
hasil *= ctr
end #end untuk do
return hasil
end #end untuk def
puts “Faktorial 5 = “ +
faktorial(5).to_s
puts “Faktorial 10 = “ +
faktorial(10).to_s
$ ruby faktorial.rb
Faktorial 5 = 120
Faktorial 10 = 3628800

Kamis, 10 Maret 2011

Manusia dan Keindahan,,,

Ilmu Budaya Dasar
MANUSIA DAN KEINDAHAN
1ia03



Disusun oleh :
ANASTASIA DEBBYLIA 50410647
CALCULATI ALFI JANNATI .M 51410506
DIETA PRIBADI 52410008
PUTRI RATNA SARI 55010464
SANDRA WULAN SARI 58410924



UNIVERSITAS GUNADARMA
2011
A. Keindahan
Menurut The Liang Gie dalam bukunya “Garis besar estetika”. Menurut asal katanya, dalam bahasa Inggris keindahan itu di terjemahkan dengan kata “beautiful” dalam bahasa Prancis “beau”, sedang Italia dan Spanyol “bello”berasal dari kata latin “bellum”. Akar katanya adalah “bonum” yang berarti kebaikan, kemudian mempunyai bentuk pengecilan menjadi “bonellum” dan terakhir diperpendek sehingga ditulis “bellum”.
Menurut cakupannya orang harus membedakan antara keindahan sebagai suatu kwalita abstrak dan sebagai sebuah benda tertentu yang indah. Untuk perbedaan ini dalm bahasa Inggris sering dipergunakan istilah beauty (keindahan) dan the beautiful (benda atau hal yang indah). Dalam pembatasan filsafat kedua pengertian itu kadang-kadang dicampuradukkan saja. Di samping itu terdapat pula perbedaan menurut luasnya pengertian, yakni :
1. Keindahan dalam arti yang luas
2. Keindahan dalam arti estetis murni
3. Keindahan dalam arti terbatas dalam hubungannya dengan penglihatan
Keindahan dalam arti luas merupakan pengertian semula dari bahasa Yunanai dulu yang didalamnya tercakup pula kebaikan. Plato misalnya menyebut tentang watak yang indah dan hokum yang indah, sedang Aristoteles merumuskan keindahan sebagai suatu yang selain baik juga menyenangkan. Plotinus menulis tentang ilmu yang indah dan kebajikan yang indah. Orang Yunani dulu berbicara pula mengenai buah pikiran yang indah dan adat kebiasaan yang indah. Tapi bangsa Yunani juga mengenal pengertian pengertian keindahan dalam arti estetis yang di sebutnya ‘symmetria’ untuk keindahan berdasarkan penglihatan (misalnya pada karya pahat dan arsitektur) dan harmonia untuk keindahan berdasarkan pendengaran (musik). Jadi pengertian keindahan yang seluas-luasnya meliputi :
• Keindahan seni
• Keindahan alam
• Keindahan moral
• Keindahan intelektual
Keindahan dalam arti estetis murni menyangkut pengalaman estetis dari seseorang dalam hubungannya dengan segala sesuatu yang di serapnya. Sedang keindahan dalam arti terbataslebih disempitkan sehingga hanya menyangkut benda-benda yang diserapnya dengan penglihatan,yakni berupa keindahan dari bentuk dan warna. Dari pembagian dan pembedaan terhadap keindahan diatas, masih belum jelas apakah sesungguhnya keindahan itu. Dalam hal tersebut didapatkan satu kemungkinan ciri-ciri umum yang ada pada semua benda yang dianggap indah dan kemudian menyamakan ciri-ciri umum yang ada atau kwalita hakiki itu dengan pengertian keindahan. Jadi keindahan pada dasarnya adalah sejumlah kwalita pokok tertentu yang terdapat pada suatu hal. Kwalita yng paling sering disebut adalah kesatuan (unity), keselarasan (harmony), kesetangkupan (symmetry), keseimbangan (balance), dan perlawanan (contrast).
Dari ciri itu dapat diambil kesimpulan, bahwa keindahan tersusun dari berbagai keselarasan dan kebaikan dari garis,warna, bentuk, nada, dan kata-kata. Ada pula yng berpendapat bahwa keindahan adalah suatu kumpulan hubungan-hubungan yang selaras dalam suatu benda dan diantara benda itu dengan si penganamat.
Keindahan berasal dari kata Indah, Keindahan atau "Beauty" adalah sifat dari sesuatu yang member i kita r asa senang bila melihatnya. Dalam Kamus Besar Bahasa Indonesia,Kei n dah an diartikan sebagai keadaan yang enak dipandang, cantik, bagus benar atau elok. Keindahan juga dapat memberikan kita rasa keingintahuan tentang hal tersebut semakin terus bertambah.
Betapa indahnya pemandangan matahari pagi dari timur dan pemandangan sore hari ketika matahari sedang menuju peraduannya di ufuk barat bumi ini. Demikian juga pemandangan yang indah ciptaan Tuhan yang muncul dari perpaduan gunung yang menghijau dengan samudera yang membiru. Indahnya pemandangan alam lepas, apalagi saat bulan pur nama yang sejuk dengan desir an angin sepoi- sepoi basah. Keindahan seperti itu sudah merupakan keindahan yang universal. Semua lapisan masyarakat akan merasakan betapa indahnya ciptaan Tuhan. Kar ena dalam Isl am sendir i, sebuah Hadits Rasul ullah SAW ber sabda :
“ SesungguhnyaAl l ah Ta'al a i n dah dan suka kepadak ei n dah an” . (HR. Muslim) Tidak demikian halnya dengan keindahan yang merupakan karya cipta manusia. Keindahan yang merupakan karya cipta manusia itu dibatasi oleh ruang dan waktu. Meskipun keindahan karya cipta manusia itu universal, akibat pemaknaannya akan ber beda. Per bedaan itu dibatasi oleh r uang dan waktu.
Keindahan juga identik dengan kebenaran. Keindahan adalah kebenaran, dan kebenar an adalah keindahan. Keduanya memiliki nilai yang sama yaitu abadi, dan mempunyai daya tarik yang bertambah, yang tidak mengandung kebenaran berarti tidak indah. Karena itu tiruan lukisan Monalisa tidak indah karena dasar nya ti dak benar Keindahan juga bersifat Universal, yang tidak terikat oleh selera perorangan, waktu dan tempat, selera mode, kedaerahan. Kemudian pertanyaannya apakah keindahan itu? Apakah nilaiEsteti k itu? Yang mendorong manusia menciptakan keindahan.
B. Nilai Estetik
Kata estetika ber asal dar i kataAest h esi s yang ar tinya per asaan atau sensitivitas, karena memang pada awalnya pengertian ini berhubungan dengan lidah dan perasaan. Dalam pengertian teknis,Est et i ka adalah ilmu keindahan atau ilmu yang mempelajari keindahan, kecantikan secara umum. Pengertian ini berdasarkan kepada, bila kita memandang sesuatu obyek dan obyek itu dapat member ikan r asa senang, puas dan sebagainya yang sejalur dengan kata tersebut, maka dapat dikatakan obyek yang dipandang itu mengandung keindahan. Dalam perkembangannya, pengertian ini, kemudian berubah meluas, tidak lagi berkaitan dengan lidah dan per asaan, tetapi ber hubungan dengan pikir an, etika dan logika.
TeoriThe Liang Gie menjelaskan bahwa, pengertian keindahan dianggap sebagai salah satu jenis nilai seperti halnya nilai Moral, nilai Ekonomi, nilai Pendidikan, dan sebagainya. Nilai yang ber hubungan dengan segala sesuatu yang tercakup dalam pengertian keindahan disebutNi l ai Estetik. Masalah sekarang ialah: apakah Nilai Estetik. itu? Dalam bidang filsafat, istilah nilai sering kali dipakai suatu kata benda abstrak yang berarti keber har gaan (Worth) atau kebai kan (Goodness).
Dalam “Dictionary Of Sociology And Related Science” diberikan rumus tentang nilai sebagai berikut :
“The believed Capacity of any object to saticgy a human desir e. The Quali ty of any object which causes it be of inter est to an individual or a gr oup” (Kemampuan yang di anggap ada pada suatu benda yang dapat memuaskan keinginan manusia. Sifat dar i suatu benda yang menar ik minat seseor ang atau suatu kelompok).
Hal itu berarti, bahwa nilai ini adalah semata-mata adalah realita psi kol ogi yang har us di bedakan secar a tegas dar i kegunaan, kar ena ter dapat dalam jiwa manusia dan bukan pada hendaknya itu sendiri. Nilai itu (oleh orang) dianggap terdapat pada suatu benda sampai terbukti letak kebenar annya. Tentang nilai itu ada yang membedakan antara nilai subjektif dan objektif, atau ada yang membedakan nilai perseorangan dan nilai kemasyarakatan. Tetapi penggolongan yang penting ialah : Nilai Ekstrinsik danNilai Instrinsik. Nilai Ekstrinsikadalah sifat baik dar i suatu benda sebagai alat atau sarana untuk sesuatu hal lainnya (instrumental/ Contributory value), yakni nilai yang ber sifat sebagai alat atau membantu. Nilai Instrinsik adalah sifat baik dari benda yang bersangkutan, atau sebagai suatu tujuan, ataupun demi kepentingan benda itu sendiri.
Contoh :
• Puisi, bentuk puisi yang terdiri dari bahasa, diksi, baris, sajak, irama, itu disebut nilai ekstrinsik. Sedangkan pesan yang ingin disampaikan kepada pembaca melalui (alat benda) puisi itu disebut Nilai Intrinsik.
• Tari, tarian Kecak dari Bali suatu tarian yang halus segala macam jenis pakaian dan gerak- geriknya. Dan merupakan nilai ekstrinsik.
C. Apa Sebab Manusia Mencipta Keindahan
Keindahan itu pada dasarnya adalah alamiah. Alam itu ciptaan Tuhan. Ini berarti bahwa keindahan itu ciptaan Tuhan. Alamiah itu artinya wajar, tidak berlebihan tidak pula kurang. Kalau pelukis wanita lebih cantik dar i keadaan sebenar nya, justr u tidak indah. Kar ena akan ada ucapan “ lebih cantik dari warna aslinya” . Bila ada pamain drama yang berlebih-lebihan, misalnya marah dengan meluap- luap padahal kesalahan kecil, atau karena kehilangan sesuatu yang tak berharga kemudian menangis meraung-raung, itu berarti tidak alamiah. Dibawah ini adalah alasan dan tujuan manusia menciptakan keindahan :
1. Tata nilai yang telah usang
Tata nilai yang sudah tidak sesuai dengan kondisi dan keadaan pada zaman sekarang, sehingga dirasakan sebagai hambatan yang dapat merugikan nilai- nilai kemanusiaan dan dipandang sebagai hak- hal dapat mengurangi nilai moral bermasyarakat, sehingga bisa dikatakan tiodak indah.


2. Kemerosotan zaman
Keadaan yang merendahkan derajat dan nilai kemanusiaan ditandai dengan kemerosotan moral. Kemerosotan moral dapat diketahui dari tingkah laku dan perbuatan bejat terutama dari segi kebutuhan seksual. Kebutuhan seksual ini dipenuhinya tanpa menghiraukan ketentuan- ketentuan agama dan norma-norma yang berlaku dalam masyarakat. Yang demikian itu tidak baik, yang tidak baik iu tidak indah.
3. Penderitaan Manusia
Penderitaan merupakan hal yang pernah dialami semua orang, dan hal ini merupakan resiko hidup manusia, yang diberikan oleh Tuhan agar manusia sadar untuk tidak menjauh dariNya. Walaupun penderitaan adalah r esiko hidup manusia, tapi hampir semua or ang menyukai adanya penderitaan, dan menganggap penderitaan merupakan hal yang tidak baik, yang tidak baik iu tidak indah.
4. Keagungan Tuhan
Keindahan mer upakan anuger ah yang diber ikan oleh manusia dan maka dari itu kita sebagai manusia wajib mensyukurinya, dan sebagian dari kita mengungkapkan rasa syukur tersebut dalam bentuk karya seni, seperti melukis pemandangan, yang merupakan hasil karya seni yang Agung yang diciptakanoleh Allah untuk kita sebagai hambanya. MAKNA KEINDAHAN
Menjawab pertanyaan sekitar apa itu keindahan, boleh jadi merupakan peker jaan yang sulit. Ini kalau yang dituntut jawaban yang bisa memuaskan semua pihak. Karena keindahan intu bersifat relatif, dan tiap orang mempunyai penilaian yang berbeda-beda. Kesulitan semacam itu memang bisa dimengerti oleh karena sampai sekarang ini bisa kita temukan sebagai batasan atau pengertian tentang keindahan yang celakanya, berbeda satu sama lain. Padahal, yang namanya keindahan itu secar a akademis sudah dikaji manusia sejak abad ke delapan belas, pada saat para filsuf banyak tertarik untuk mengembangkan estetika, salah satu cabang dar i filsafat yang tidak lain ber bicar a soal keindahan. Pengelompokan-pengelompokan yang bisa kita buat adalah sebagai berikut :
1. Pengelompokan pengertian keindahan berdasar pada titik pijak atau landasannya. Dalam hal ini ada 2 pengertian keindahan, yaitu yang bertumpu pada objek dan subjek. Yang pertama, yaitu yang bertumpuKeindahan Objektif, adalah keindahan yang memang ada pada objeknya
sementar a kita sebagai pengamat har us mener ima sebagaimana mestinya. Sedangkan yang kedua, yang disebut Keindahan Subjektif; adalah keindahan yang biasanya ditinjau dari segi subjek yang melihat dan menghayatinya. Disini keindahan diartikan sebagai segala sesuatu yang dapat menimbulkan rasa senang pada diri si penikmat dan penghayat (Subjek) tanpa dicampuri keinginan–keinginan yang bersifat praktis, atau kebutuhan-kebutuhan pribadi si penghayat.
2. Pengelompokan pengertian keindahan dengan berdasar pada cakupannya. Bertitik tolak dari landasan ini kita bisa membedakan antara keindahan sebagai kualitas abstr ak dan keindahan sebagai sebuah benda ter tentu yang memang indah. Perbedaan semacam ini lebih tampak, misalnya dalam penggunaan bahasa inggris yang mengenalnya istilahBeau t y untuk keindahan yang pertama, dan isitilahThe beautiful untuk pengertian yang kedua, yaitu benda atau hal- hal ter tentu yang memang indah.
3. Pengelompokan pengertian keindahan berdasar luas-sempitnya. Dalam pengelompokan ini kita bisa membedakan antara pengertian keindahan dalam ar ti luas, dalam ar ti estetik mur ni, dan dal am ar ti yang ter batas. Dar i apa yang dikemukakan di atas, dua hal bisa kita petik, yaitu : Per tama, keindahan menyangkut persoalan filsafati, sehingga jawaban terhadap apa itu keindahan sudah bar ang tentu bisa ber macam- macam. Kedua, keindahan sebagai pengertian mempunyai makna relatif, yaitu sangat tergantung kepada subjeknya. Secara demikian, upaya memperoleh pengertian yang jernih tentang keindahan tidak bisa hanya bertumpu pada definisi-definisi yang bersifat perorangan. Kendatipun dikemukakan seorang filsuf sekalipun. Langkah yang barangkali, bisa membantu adalah dengan mencoba menemukan ciri-ciri umum dari keindahan, baik yang ada pada semua benda ataupun semua kualis. Dalam hubungan ini Her ber t Read per nah mengemukakan, bahwa :
“Beuty is unity of formal relation of our sense perceptions” . Keindahan adalah suatu kesatuan hubungan for mal dar i pengamatan kita yang dapat menimbulkan r sa senang.
Keindahan itu merangsang timbulnya rasa senang tanpa pamrih dalam diri subjek yang melihatnya, serta bertumpu pada ciri-ciri dari objek yang sesuai dengan r asa senang itu sendir i. Kalau kita amati pemikiran Read tersebut, boleh jadi timbul kesan bahwa itulah pemikiran yang paling mendekati kebenaran. Akan tetapi kalau kita amati dengan lebih mendalam lagi, tampak bahwa konsep Her ber t Read ter lalu ber tumpu pada aspek sensual atau jasmaniah, dan kur ang member ikan por si pada objek yang diamati atau yang dimiliki keindahan itu sendiri. Padahal, yang namanya keindahan itu tidak hanya merupakan perpaduan pengamatan batiniah. Pengertian keindahan tidak hanya terbatas pada kenikmatan penglihatan semata- mata, tetapi lebih dalam dari itu, juga merupakan perpaduan pengamatan batiniah. Itulah sebabnyaAl - Gh azal i memasukkan nilai-nilai spiritual, moral dan agama sebagai unsur-unsur keindahan. Disamping sudah barang tentu unsur- unsur yang lain .
Dari apa yang dikemukakan diatas, satu kenyataan sekali lagi menghadang kita, bahwa sulit untuk memberikan jawaban yang memuaskan atas pernyataan apa itu keindahan ? itulah sebabnya dalam estetika modern orang lebih suka ber bicar a keindahan dengan mengaitkan pada dunia seni dan pengalaman estetik. Ini tidak lain disebabkan karena seni dan pengalaman estetik bukanlah pengalaman yang abstrak, melainkan gejala konkrit yang dapat ditelaah dengan pengamatan secara empirik ataupun melalui penguraian yang sistematik.

Referensi :
http://www.scribd.com/doc/17687427/MAKALAH-IBD-Keindahan