Scala (bahasa pemrograman): Perbedaan antara revisi

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas
Konten dihapus Konten ditambahkan
k Menambahkan beberapa kata untuk menyambungkan kalimat agar pembaca mudah memahami artikel tersebut dan juga memberikan beberapa URL tambahan agar pembaca dapat mengetahui apa maksud dari kata tersebut.
Tag: VisualEditor Suntingan perangkat seluler Suntingan peramban seluler Tugas pengguna baru
456ID (bicara | kontrib)
Tidak ada ringkasan suntingan
Tag: Suntingan perangkat seluler Suntingan peramban seluler Suntingan seluler lanjutan Tugas pengguna baru Newcomer task: copyedit
 
(7 revisi perantara oleh 6 pengguna tidak ditampilkan)
Baris 14: Baris 14:
}}
}}


'''Scala''' merupakan bahasa pemrograman umum (''general purpose'') yang mendukung [[pemrograman berorientasi objek]] dan [[pemrograman fungsional]]. Secara umum, tujuan dibuatnya '''Scala''' adalah kritisi untuk bahasa pemrograman [[Java (Platform Perangkat Lunak)|Java]].
'''Scala''' merupakan bahasa pemrograman umum (''general purpose'') yang mendukung [[pemrograman berorientasi objek]] dan [[pemrograman fungsional]]. Secara umum, tujuan dibuatnya '''Scala''' adalah untuk mengkritisi bahasa pemrograman [[Java (Platform Perangkat Lunak)|Java]].


kode sumber Scala dibuat untuk dapat dikompilasi dengan [[Bytecode Java|Java bytecode]], sehingga mengakibatkan eksekusi kode berjalan pada [[Mesin Virtual Java|mesin virtual Java]]. Scala menyediakan [[interoperabilitas bahasa]] dengan Java, sehingga perpustakaan yang ditulis dalam dua bahasa ini dapat dirujuk langsung di Scala atau kode Java.<ref>{{Cite web|url=http://www.scala-lang.org/old/faq/4|title=Frequently Asked Questions – Java Interoperability|last=<!--Staff writer(s); no by-line.-->|website=scala-lang.org|access-date=2015-02-06}}</ref> Seperti Java, Scala adalah merupakan bahasa yang [[Pemrograman berorientasi objek|berorientasi objek]], dan menggunakan sintaks-kriting mengingatkan pada [[C (bahasa pemrograman)|bahasa pemrograman C]]. Tidak seperti Java, Scala memiliki banyak fitur dari [[Pemrograman Fungsional|pemrograman fungsional]] bahasa seperti [[Scheme (bahasa pemrograman)|Scheme]], [[Standard ML]] dan [[Haskell]], termasuk [[currying]], [[type inference]], [[Immutability|ketetapan]], [[Lazy evaluation|evaluasi malas]], dan [[Pattern matching|pencocokan pola]]. Ini juga memiliki lanjutan jenis sistem pendukung [[Algebraic data type|jenis data aljabar]], [[Covariance and contravariance (computer science)|kovarian dan kontravarian]], [[Higher-order type operator|jenis perintah tinggi]] (tapi tidak [[Parametric polymorphism|jenis lebih tinggi-peringkat]]), dan [[Anonymous type|jenis anonim]]. Fitur lain dari Scala tidak hadir di Java termasuk [[operator overloading]], [[optional parameter]], [[Named parameter|parameter bernama]], [[Raw string|string baku]], dan tidak ada [[Penanganan pengecualian|pengecualian terperiksa]].
Kode sumber Scala dibuat agar dapat dikompilasi dengan [[Bytecode Java]], sehingga mengakibatkan eksekusi kode berjalan pada [[Mesin Virtual Java|mesin virtual Java]]. Scala menyediakan [[interoperabilitas bahasa]] dengan Java, sehingga perpustakaan yang ditulis dalam dua bahasa ini dapat dirujuk langsung di Scala atau kode Java.<ref>{{Cite web|url=http://www.scala-lang.org/old/faq/4|title=Frequently Asked Questions – Java Interoperability|last=<!--Staff writer(s); no by-line.-->|website=scala-lang.org|access-date=2015-02-06}}</ref> Seperti Java, Scala adalah merupakan bahasa yang [[Pemrograman berorientasi objek|berorientasi objek]], dan menggunakan sintaks-kriting mengingatkan pada [[C (bahasa pemrograman)|bahasa pemrograman C]]. Tidak seperti Java, Scala memiliki banyak fitur dari [[Pemrograman Fungsional|pemrograman fungsional]] bahasa seperti [[Scheme (bahasa pemrograman)|Scheme]], [[Standard ML]] dan [[Haskell]], termasuk [[currying]], [[type inference]], [[Immutability|ketetapan]], [[Lazy evaluation|evaluasi malas]], dan [[Pattern matching|pencocokan pola]]. Ini juga memiliki lanjutan jenis sistem pendukung [[Algebraic data type|jenis data aljabar]], [[Covariance and contravariance (computer science)|kovarian dan kontravarian]], [[Higher-order type operator|jenis perintah tinggi]] (tapi tidak [[Parametric polymorphism|jenis lebih tinggi-peringkat]]), dan [[Anonymous type|jenis anonim]]. Fitur lain dari Scala tidak hadir di [[Java]] termasuk [[operator overloading]], [[optional parameter]], [[Named parameter|parameter bernama]], [[Raw string|string baku]], dan tidak ada [[Penanganan pengecualian|pengecualian terperiksa]].


== Etimologi ==
== Etimologi ==
Nama Scala adalah [[lakuran]] dari "''scalable''" dan "''language''", dalam artian bahasa ini dirancang untuk berkembang sesuai keperluan penggunanya.<ref name="StepsInScala">{{Cite book|url=https://books.google.com/books?id=vZAfN_Vk2i0C&pg=PR13&dq=%22steps+in+scala%22&hl=en&sa=X&ei=W__aU7qsH4bgsASjv4LIBw&ved=0CCkQ6AEwAA#v=onepage&q=%22steps%20in%20scala%22&f=false|title=Steps in Scala: An Introduction to Object-Functional Programming|last=Loverdo|first=Christos|date=2010|publisher=[[Cambridge University Press]]|isbn=978-1-139-49094-8|page=xiii|access-date=31 July 2014}}</ref>
Nama Scala adalah [[lakuran]] dari "''scalable''" dan "''language''", untuk menggambarkan bahwa bahasa ini dirancang supaya berkembang sesuai keperluan penggunanya.<ref name="StepsInScala">{{Cite book|url=https://books.google.com/books?id=vZAfN_Vk2i0C&pg=PR13&dq=%22steps+in+scala%22&hl=en&sa=X&ei=W__aU7qsH4bgsASjv4LIBw&ved=0CCkQ6AEwAA#v=onepage&q=%22steps%20in%20scala%22&f=false|title=Steps in Scala: An Introduction to Object-Functional Programming|last=Loverdo|first=Christos|date=2010|publisher=[[Cambridge University Press]]|isbn=978-1-139-49094-8|page=xiii|access-date=31 July 2014}}</ref>


== Sejarah ==
== Sejarah ==
Desain Scala dimulai pada tahun 2001 di [[École Polytechnique Fédérale de Lausanne]] (EPFL) oleh Martin Odersky. Hal ini diikuti dari bekerja pada Corong, sebuah bahasa pemrograman yang menggabungkan ide-ide dari pemrograman fungsional dan [[Petri net]]s.<ref name="history-of-scala">Martin Odersky, [http://www.artima.com/weblogs/viewpost.jsp?thread=163733 "A Brief History of Scala"], Artima.com weblogs, June 9, 2006</ref> Odersky sebelumnya bekerja pada Generic Javadan javac, Sun Java compiler.
Desain Scala dimulai pada 2001 di [[École Polytechnique Fédérale de Lausanne]] (EPFL) oleh Martin Odersky. Hal ini diikuti dari bekerja pada Corong, sebuah bahasa pemrograman yang menggabungkan ide-ide dari pemrograman fungsional dan [[Petri net]]s.<ref name="history-of-scala">Martin Odersky, [http://www.artima.com/weblogs/viewpost.jsp?thread=163733 "A Brief History of Scala"], Artima.com weblogs, June 9, 2006</ref> Odersky sebelumnya bekerja pada Generic Javadan javac, Sun Java compiler.


Setelah internal yang rilis pada akhir tahun 2003, Scala dirilis ke publik pada awal tahun 2004 di [[Java (Platform Perangkat Lunak)|platform Java]],<ref name="cacm">{{Cite journal|last=Odersky|first=M.|last2=Rompf|first2=T.|year=2014|title=Unifying functional and object-oriented programming with Scala|journal=Communications of the ACM|volume=57|issue=4|page=76|doi=10.1145/2591013}}</ref> dan pada [[.NET Framework]] pada bulan juni 2004.<ref name="spec">Martin Odersky, "The Scala Language Specification Version 2.7"</ref> versi kedua (v2.0) diikuti pada bulan Maret 2006. .NET dukungan resmi turun pada tahun 2012.<ref>[https://github.com/scala/scala/pull/1718 Expunged the .net backend. by paulp · Pull Request #1718 · scala/scala · GitHub].</ref>
Setelah internal yang rilis pada akhir 2003, Scala dirilis ke publik pada awal tahun 2004 di [[Java (Platform Perangkat Lunak)|platform Java]],<ref name="cacm">{{Cite journal|last=Odersky|first=M.|last2=Rompf|first2=T.|year=2014|title=Unifying functional and object-oriented programming with Scala|journal=Communications of the ACM|volume=57|issue=4|page=76|doi=10.1145/2591013}}</ref> dan pada [[.NET Framework]] pada bulan juni 2004.<ref name="spec">Martin Odersky, "The Scala Language Specification Version 2.7"</ref> versi kedua (v2.0) diikuti pada bulan Maret 2006.NET dukungan resmi turun pada tahun 2012.<ref>[https://github.com/scala/scala/pull/1718 Expunged the .net backend. by paulp · Pull Request #1718 · scala/scala · GitHub].</ref>


Meskipun Scala memiliki dukungan yang luas untuk pemrograman fungsional dari awal, Java tetap yang sebagian besar berorientasi objek bahasa sampai masuknya ekspresi lambda dengan Java 8 pada tahun 2014.
Meskipun Scala memiliki dukungan yang luas untuk pemrograman fungsional dari awal, Sebagian besar Java tetap berorientasi objek bahasa sampai masuknya ekspresi lambda dengan Java 8 pada 2014.


== Platform dan lisensi ==
== Platform dan lisensi ==
Scala berjalan pada [[Java (Platform Perangkat Lunak)|platform Java]] ([[Mesin Virtual Java|Java virtual machine]]) dan kompatibel dengan yang ada program [[Java]]. Sebagai aplikasi [[Android (sistem operasi)|Android]] yang biasanya ditulis di Java dan diterjemahkan dari bytecode Java ke bytecode [[Dalvik (perangkat lunak)|Dalvik]] (yang selanjutnya dapat diterjemahkan ke asli kode mesin selama instalasi) ketika dikemas, kompatibilitas Scala dengan Java memungkinkan pengembangan Android, lebih jadi ketika fungsional pendekatan yang lebih disukai.<ref>{{Cite web|url=http://scala-android.org/|title=Scala on Android|access-date=8 June 2016}}</ref>
Scala berjalan pada [[Java (Platform Perangkat Lunak)|platform Java]] ([[Mesin Virtual Java|Java virtual machine]]) dan kompatibel dengan yang ada program [[Java]]. Sebagai aplikasi [[Android (sistem operasi)|Android]] yang biasanya ditulis di Java dan diterjemahkan dari bytecode Java ke bytecode [[Dalvik (perangkat lunak)|Dalvik]] (yang selanjutnya dapat diterjemahkan ke asli kode mesin selama instalasi) ketika dikemas, kompatibilitas Scala dengan Java memungkinkan pengembangan Android, lebih jadi ketika fungsional pendekatan yang lebih disukai.<ref>{{Cite web|url=http://scala-android.org/|title=Scala on Android|access-date=8 June 2016}}</ref>


Scala juga dapat dikompilasi ke [[JavaScript]], memungkinkan pengembang menulis program Scala yang dapat berjalan di peramban web.<ref>{{Cite web|url=http://www.scala-lang.org/news/2015/02/05/scala-js-no-longer-experimental.html|title=Scala Js Is No Longer Experimental &#124; The Scala Programming Language|publisher=Scala-lang.org|access-date=28 October 2015}}</ref>
Scala juga dapat dikompilasi ke [[JavaScript]], memungkinkan pengembang menulis program Scala yang dapat berjalan di peramban web.<ref>{{Cite web|url=http://www.scala-lang.org/news/2015/02/05/scala-js-no-longer-experimental.html|title=Scala Js Is No Longer Experimental &#124; The Scala Programming Language|publisher=Scala-lang.org|access-date=28 October 2015|archive-date=2015-10-02|archive-url=https://web.archive.org/web/20151002194359/http://www.scala-lang.org/news/2015/02/05/scala-js-no-longer-experimental.html|dead-url=yes}}</ref>


== Contoh ==
== Contoh ==
Baris 44: Baris 44:
Ketika pengguna menyimpan dengan nama ''HelloWorld.scala'', pengguna dapat menjalankan kompilasi dengan perintah
Ketika pengguna menyimpan dengan nama ''HelloWorld.scala'', pengguna dapat menjalankan kompilasi dengan perintah
$ scalac HelloWorld.scala
$ scalac HelloWorld.scala
dan menjalankan dengan
dan dapat dijalankan dengan perintah:
$ scala HelloWorld
$ scala HelloWorld
Ini mirip dengan proses kompilasi dan menjalankan kode Java, karena model kompilasi dan eksekusi Scala identik dengan Java, sehingga kompatibel dengan alat build Java seperti Apache Ant.
Konsep ini mirip dengan proses kompilasi dan menjalankan kode Java, karena model kompilasi dan eksekusi Scala identik dengan Java, sehingga kompatibel dengan alat ''build'' Java seperti [[Apache Ant]].


== Referensi ==
== Referensi ==
Baris 56: Baris 56:


{{Java (platform perangkat lunak)}}
{{Java (platform perangkat lunak)}}
{{Authority control}}


[[Kategori:Keluarga bahasa pemrograman Java]]
[[Kategori:Keluarga bahasa pemrograman Java]]

Revisi terkini sejak 10 April 2023 12.04

Scala
Paradigmamulti paradigma: concurrent, fungsional, imperatif, berorientasi objek
Dirancang olehMartin Odersky
PengembangProgramming Methods Laboratory di École Polytechnique Fédérale de Lausanne
Rilis perdana20 Januari 2004
LisensiLisensi Apache
Ekstensi nama berkas.scala, .sc
Situs webwww.scala-lang.org
Repositoriwww.scala-lang.org
Sunting kotak info
Sunting kotak info • L • B
Info templat
Bantuan penggunaan templat ini


Scala merupakan bahasa pemrograman umum (general purpose) yang mendukung pemrograman berorientasi objek dan pemrograman fungsional. Secara umum, tujuan dibuatnya Scala adalah untuk mengkritisi bahasa pemrograman Java.

Kode sumber Scala dibuat agar dapat dikompilasi dengan Bytecode Java, sehingga mengakibatkan eksekusi kode berjalan pada mesin virtual Java. Scala menyediakan interoperabilitas bahasa dengan Java, sehingga perpustakaan yang ditulis dalam dua bahasa ini dapat dirujuk langsung di Scala atau kode Java.[1] Seperti Java, Scala adalah merupakan bahasa yang berorientasi objek, dan menggunakan sintaks-kriting mengingatkan pada bahasa pemrograman C. Tidak seperti Java, Scala memiliki banyak fitur dari pemrograman fungsional bahasa seperti Scheme, Standard ML dan Haskell, termasuk currying, type inference, ketetapan, evaluasi malas, dan pencocokan pola. Ini juga memiliki lanjutan jenis sistem pendukung jenis data aljabar, kovarian dan kontravarian, jenis perintah tinggi (tapi tidak jenis lebih tinggi-peringkat), dan jenis anonim. Fitur lain dari Scala tidak hadir di Java termasuk operator overloading, optional parameter, parameter bernama, string baku, dan tidak ada pengecualian terperiksa.

Etimologi[sunting | sunting sumber]

Nama Scala adalah lakuran dari "scalable" dan "language", untuk menggambarkan bahwa bahasa ini dirancang supaya berkembang sesuai keperluan penggunanya.[2]

Sejarah[sunting | sunting sumber]

Desain Scala dimulai pada 2001 di École Polytechnique Fédérale de Lausanne (EPFL) oleh Martin Odersky. Hal ini diikuti dari bekerja pada Corong, sebuah bahasa pemrograman yang menggabungkan ide-ide dari pemrograman fungsional dan Petri nets.[3] Odersky sebelumnya bekerja pada Generic Javadan javac, Sun Java compiler.

Setelah internal yang rilis pada akhir 2003, Scala dirilis ke publik pada awal tahun 2004 di platform Java,[4] dan pada .NET Framework pada bulan juni 2004.[5] versi kedua (v2.0) diikuti pada bulan Maret 2006.NET dukungan resmi turun pada tahun 2012.[6]

Meskipun Scala memiliki dukungan yang luas untuk pemrograman fungsional dari awal, Sebagian besar Java tetap berorientasi objek bahasa sampai masuknya ekspresi lambda dengan Java 8 pada 2014.

Platform dan lisensi[sunting | sunting sumber]

Scala berjalan pada platform Java (Java virtual machine) dan kompatibel dengan yang ada program Java. Sebagai aplikasi Android yang biasanya ditulis di Java dan diterjemahkan dari bytecode Java ke bytecode Dalvik (yang selanjutnya dapat diterjemahkan ke asli kode mesin selama instalasi) ketika dikemas, kompatibilitas Scala dengan Java memungkinkan pengembangan Android, lebih jadi ketika fungsional pendekatan yang lebih disukai.[7]

Scala juga dapat dikompilasi ke JavaScript, memungkinkan pengembang menulis program Scala yang dapat berjalan di peramban web.[8]

Contoh[sunting | sunting sumber]

Contoh "Hello World"[sunting | sunting sumber]

Program "Hello World" yang ditulis pada bahasa pemrograman Scala memiliki bentuk:

 object HelloWorld extends App {
   println("Hello, World!")
 }

Tidak seperti aplikasi pemrograman tunggal dari Java, bahasa pemrograman ini tidak membutuhkan suatu deklarasi kelas statik; sebuah objek tunggal dibuat dengan menambahkan kata kunci object di dalamnya.

Ketika pengguna menyimpan dengan nama HelloWorld.scala, pengguna dapat menjalankan kompilasi dengan perintah

$ scalac HelloWorld.scala

dan dapat dijalankan dengan perintah:

$ scala HelloWorld

Konsep ini mirip dengan proses kompilasi dan menjalankan kode Java, karena model kompilasi dan eksekusi Scala identik dengan Java, sehingga kompatibel dengan alat build Java seperti Apache Ant.

Referensi[sunting | sunting sumber]

  1. ^ "Frequently Asked Questions – Java Interoperability". scala-lang.org. Diakses tanggal 2015-02-06. 
  2. ^ Loverdo, Christos (2010). Steps in Scala: An Introduction to Object-Functional Programming. Cambridge University Press. hlm. xiii. ISBN 978-1-139-49094-8. Diakses tanggal 31 July 2014. 
  3. ^ Martin Odersky, "A Brief History of Scala", Artima.com weblogs, June 9, 2006
  4. ^ Odersky, M.; Rompf, T. (2014). "Unifying functional and object-oriented programming with Scala". Communications of the ACM. 57 (4): 76. doi:10.1145/2591013. 
  5. ^ Martin Odersky, "The Scala Language Specification Version 2.7"
  6. ^ Expunged the .net backend. by paulp · Pull Request #1718 · scala/scala · GitHub.
  7. ^ "Scala on Android". Diakses tanggal 8 June 2016. 
  8. ^ "Scala Js Is No Longer Experimental | The Scala Programming Language". Scala-lang.org. Diarsipkan dari versi asli tanggal 2015-10-02. Diakses tanggal 28 October 2015. 

Pranala luar[sunting | sunting sumber]