Menggunakan Java Scala di FreeBSD

· 2 min read

Scala mengandalkan prinsip fungsional Haskell dan ML, tanpa melepaskan beban berat dari konsep berorientasi objek yang sudah dikenal, yang sangat disu

Scala adalah bahasa pemrograman komputer serbaguna yang mendukung gaya pemrograman berorientasi objek dan fungsional dalam skala yang lebih besar. Scala adalah jenis bahasa pemrograman statis yang kuat dan dipengaruhi oleh bahasa pemrograman Java. Scala adalah bahasa pemrograman berorientasi objek murni yang juga menyediakan dukungan untuk pendekatan pemrograman fungsional. Program Scala dapat diubah menjadi bytecode dan dapat dijalankan pada JVM (Java Virtual Machine).

Salah satu kesamaan terbaik antara Scala dan Java adalah Anda dapat membuat kode Scala dengan cara yang sama seperti Anda membuat kode Java. Scala adalah singkatan dari Scalable language. Bahasa ini juga menyediakan runtime Javascript. Scala sangat dipengaruhi oleh Java dan beberapa bahasa pemrograman lain seperti Lisp, Haskell, Pizza, dll. Scala telah menjadi salah satu bahasa pemrograman paling populer di kalangan pengembang dan terus berkembang melalui teknologi saat ini.

Scala adalah bahasa hibrida objek fungsional dengan beberapa kekuatan dan keunggulan:
  • Scala mengandalkan prinsip fungsional Haskell dan ML, tanpa melepaskan beban berat dari konsep berorientasi objek yang sudah dikenal, yang sangat disukai oleh programmer Java. Hasilnya, Scala dapat memadukan yang terbaik dari kedua dunia menjadi satu kesatuan, yang memberikan keuntungan signifikan tanpa mengorbankan kesederhanaan yang kita harapkan.
  • Scala dikompilasi menjadi bytecode Java, artinya ia berjalan pada JVM. Selain kemampuan Anda untuk terus memanfaatkan Java sepenuhnya sebagai ekosistem sumber terbuka yang dikembangkan dengan baik, Scala dapat diintegrasikan ke dalam ruang informasi (lingkungan) yang ada tanpa upaya migrasi.
  • Scala dikembangkan oleh Martin Odersky, yang mungkin lebih dikenal di komunitas Java untuk bahasa Pizza dan GJ, yang terakhir menjadi prototipe yang berfungsi untuk generik di Java 5. Jika demikian, Scala memiliki kesan "keseriusan"; bahasa ini tidak dibuat begitu saja, dan tidak akan ditinggalkan.

1. Cara Instal Scala

Scala berjalan pada bahasa pemrograman Java, jadi Anda harus menginstal JDK 1.8 atau yang lebih tinggi dan siap untuk melanjutkan instalasi Scala. Karena Anda di sini untuk mempelajari Scala, saya berasumsi Anda telah menginstal Java di sistem Anda. Instalasi Scala di Linux, Ubuntu, MacOS atau sistem berbasis Unix lainnya sama saja, jadi langkah-langkah di bawah ini dapat digunakan untuk sistem Unix apa pun.
Sebagai langkah pertama, kami memeriksa versi Java di server FreeBSD Anda, ini sangat berguna dan memastikan bahwa server FreeBSD Anda telah menginstal Java.
root@ns7:~ # java -version
openjdk version "17.0.9" 2023-10-17
OpenJDK Runtime Environment (build 17.0.9+9-1)
OpenJDK 64-Bit Server VM (build 17.0.9+9-1, mixed mode, sharing)
Di FreeBSD sangat sulit untuk menginstal Scala dengan sistem port, jadi kami hanya menggunakan paket FreeBSD PKG. Sebelum menginstal Scala, pastikan dependensi Scala telah terinstal. Berikut ini adalah dependensi yang diinstal terlebih dahulu.
root@ns7:~ # pkg install devel/coursier
root@ns7:~ # pkg install devel/sbt
root@ns7:~ # pkg install boehm-gc
Setelah Anda menginstal ketiga dependensi ini, kita lanjutkan dengan menginstal Scala.
root@ns7:~ # pkg install lang/scala
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking integrity... done (0 conflicting)
The following 1 package(s) will be affected (of 0 checked):

Installed packages to be UPGRADED:
        scala: 3.1.0 -> 3.3.1

Number of packages to be upgraded: 1

The process will require 4 MiB more space.

Proceed with this action? [y/N]: y
Sebelum Anda mulai menjalankan Scala di FreeBSD, sebaiknya periksa versi Scala terlebih dahulu. Ini untuk memastikan bahwa Scala telah terinstal di server FreeBSD Anda.
root@ns7:~ # scala -version
Scala code runner version 3.3.1 -- Copyright 2002-2023, LAMP/EPFL
Setelah menyelesaikan proses instalasi, IDE atau editor teks apa pun yang mendukung Java dapat digunakan untuk menulis Kode Scala dan Menjalankannya di IDE atau Terminal dengan menggunakan perintah.

# scalac file_name.scala
# scala class_name


2. Membuat Project dengan Scala

Setelah Anda selesai menginstal Scala di sistem Anda, Anda kini siap untuk memulai proyek pemrograman Scala Anda. Mulailah dengan membuat program sederhana "Hello World".

Buat file teks bernama "HelloWorld.scala" dan folder /var/scala, menggunakan Putty dan gunakan penyunting teks pilihan Anda.
root@ns7:~ # mkdir -p /var/scala
root@ns7:~ # cd /var/scala
Kita lanjutkan dengan membuat file "/var/scala/HelloWorld.scala".
root@ns7:/var/scala # ee HelloWorld.scala

object HelloWorld {
  def main(args: Array[String]): Unit = {
    println("Hello, Mount Everest!")
  }
}
Lakukan kompilasi.
root@ns7:/var/scala # scalac HelloWorld.scala
Gunakan perintah scala untuk mengeksekusi bytecode yang dihasilkan.
root@ns7:/var/scala # scala HelloWorld.scala
Hello, Mount Everest!

3. Membuat Project Scala dengan SBT

Karena SBT merupakan dependensi Sacala, kami telah menginstal SBT dengan dependensi lainnya. Sebelum menggunakan SBT, Anda harus memverifikasi apakah SBT telah ditetapkan dengan benar atau tidak. Jalankan perintah.
root@ns7:/var/scala # sbt about
Perintah tersebut akan menampilkan detail tentang versi SBT yang terinstal. Oke, sekarang mari kita lanjutkan dengan menyiapkan proyek SBT, ikuti langkah-langkah berikut.

Untuk memulai proyek SBT, kita buat direktori SBT untuk menyimpan semua file SBT. Misalnya, kita akan membuat direktori SBT di "/var" dan kita akan menamainya "/var/sbt-project".
root@ns7:~ # mkdir -p /var/sbt-project
root@ns7:~ # cd /var/sbt-project
Inisialisasi SBT dalam direktori.
root@ns7:/var/sbt-project # sbt new scala/scala-seed.g8
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
A minimal Scala project.

name [Scala Seed Project]: projectSBT

Template applied in /var/sbt-project/./projectsbt
Untuk menjalankan tugasnya, SBT memiliki berkas bernama build.sbt untuk konfigurasi proyek. Berkas ini terletak di direktori /var/sbt-project/projectsbt proyek Anda. Berkas build.sbt berisi pengaturan seperti dependensi pustaka, versi Scala, dan konfigurasi khusus proyek lainnya.

Tujuan utama dari setiap alat build adalah mengompilasi kode sumber. Gunakan perintah ini untuk mengompilasi SBT.
root@ns7:/var/sbt-project # cd projectsbt
root@ns7:/var/sbt-project/projectsbt # sbt compile
Setelah proyek Anda siap, kami akan mengemasnya. Gunakan perintah paket untuk membuat berkas JAR.
root@ns7:/var/sbt-project/projectsbt # sbt package
Perintah di atas akan menggabungkan kode yang telah dikompilasi ke dalam berkas JAR. Perintah di atas akan menggabungkan kode yang telah dikompilasi ke dalam berkas JAR. Setelah itu, lanjutkan dengan perintah "sbt clean".

Pengujian merupakan bagian penting dari setiap proyek. Dengan SBT, Anda dapat menjalankan pengujian dengan menggunakan perintah "sbt test".
root@ns7:/var/sbt-project/projectsbt # sbt test
Langkah terakhir adalah menjalankan proyek SBT.
root@ns7:/var/sbt-project/projectsbt # sbt run
[info] welcome to sbt 1.9.7 (OpenJDK BSD Porting Team Java 17.0.9)
[info] loading project definition from /var/sbt-project/projectsbt/project
[info] loading settings for project root from build.sbt ...
[info] set current project to projectSBT (in build file:/var/sbt-project/projectsbt/)
[info] compiling 1 Scala source to /var/sbt-project/projectsbt/target/scala-2.13/classes ...
[info] running example.Hello
hello
[success] Total time: 7 s, completed Jan 1, 2024, 9:12:42 PM

4. Membuat Project Scala dengan Maven

Untuk membuat proyek Scala dengan Maven, pastikan Anda telah menginstal Maven di server FreeBSD Anda. Anda dapat membaca artikel kami sebelumnya tentang cara menginstal Maven di FreeBSD.


Maven adalah alat manajemen untuk membuat proyek yang lengkap. Alat ini mengutamakan konvensi daripada konfigurasi, hal ini sangat menyederhanakan pembuatan proyek "standar" dan pengguna Maven biasanya dapat memahami struktur proyek Maven lainnya hanya dengan melihat pom.xml (Model Objek Proyek).

Jika semuanya berjalan lancar, Anda sekarang seharusnya memiliki dukungan Maven dan Scala di server FreeBSD Anda. Mari buat proyek Scala baru dengan maven, dimulai dengan proyek Scala sederhana berdasarkan arketipe.

Jalankan perintah berikut untuk membuat proyek maven.
root@ns7:/ # cd var
root@ns7:/var # mvn archetype:generate -DgroupId=com.unixwinbsd.blogapp -DartifactId=java-blog-project -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
Kita simpan proyek Maven di folder "/var/java-blog-project".

Kita buka file "/var/java-blog-project/pom.xml", lalu hapus semua isinya, lalu ganti dengan skrip di bawah ini.

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.unixwinbsd</groupId>
    <artifactId>java-blog-project</artifactId>
    <version>1.0.0-SNAPSHOT</version>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

        <java.version>1.8</java.version>
        <scala.version>2.12.6</scala.version>
    </properties>

    <dependencies>
        <!-- scala-maven-plugin determines the Scala version to use from this dependency -->
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
            <version>${scala.version}</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <!-- Configure maven-compiler-plugin to use the desired Java version -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <mainClass>com.unixwinbsd.blogapp.HelloScala</mainClass>
                        </manifest>
                    </archive>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>


            <!-- Use build-helper-maven-plugin to add Scala source and test source directories -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>3.0.0</version>
                <executions>
                    <execution>
                        <id>add-source</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>add-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>src/main/scala</source>
                            </sources>
                        </configuration>
                    </execution>
                    <execution>
                        <id>add-test-source</id>
                        <phase>generate-test-sources</phase>
                        <goals>
                            <goal>add-test-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>src/test/scala</source>
                            </sources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <!-- Use scala-maven-plugin for Scala support -->
            <plugin>
                <groupId>net.alchim31.maven</groupId>
                <artifactId>scala-maven-plugin</artifactId>
                <version>3.2.2</version>
                <executions>
                    <execution>
                        <goals>
                            <!-- Need to specify this explicitly, otherwise plugin won't be called when doing e.g. mvn compile -->
                            <goal>compile</goal>
                            <goal>testCompile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <!-- scala assembly-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>


Buat folder baru di proyek maven Anda.
root@ns7:/var # cd /var/java-blog-project/src/main
root@ns7:/var/java-blog-project/src/main # mkdir -p scala/com/unixwinbsd/blogapp
Buat file HelloScala.scala.
root@ns7:/var/java-blog-project/src/main # cd scala/com/unixwinbsd/blogapp
root@ns7:/var/java-blog-project/src/main/scala/com/unixwinbsd/blogapp # touch HelloScala.scala
root@ns7:/var/java-blog-project/src/main/scala/com/unixwinbsd/blogapp # chmod +x HelloScala.scala
Dalam file "/var/java-blog-project/src/main/scala/com/unixwinbsd/blogapp/HelloScala.scala", masukkan skrip berikut.

package com.unixwinbsd.blogapp;

object HelloScala extends App {
  println("Hello FreeBSD Scala")
}

Kami menjalankan perintah kompilasi, paket, dan instalasi pada proyek Maven yang telah kami buat.
root@ns7:/var/java-blog-project/src/main/scala/com/unixwinbsd/blogapp # cd /var/java-blog-project
root@ns7:/var/java-blog-project # mvn compile && mvn package && mvn install
Sebelum kita menjalankan proyek Maven Scala, mari kita lihat folder "target".
root@ns7:/var/java-blog-project # cd target
root@ns7:/var/java-blog-project/target # ls
archive-tmp                                                     java-blog-project-1.0.0-SNAPSHOT-jar-with-dependencies.jar
classes                                                         java-blog-project-1.0.0-SNAPSHOT.jar
classes.-1515151658.timestamp                                   maven-archiver
generated-sources                                               maven-status
File yang dapat dieksekusi JAR adalah "java-blog-project-1.0.0-SNAPSHOT-jar-with-dependencies.jar".

Sebagai langkah terakhir, kami menjalankan proyek Maven Scala.
root@ns7:/var/java-blog-project/target # java -jar java-blog-project-1.0.0-SNAPSHOT-jar-with-dependencies.jar
Hello FreeBSD Scala
Dengan tampilan "Hello FreeBSD Scala", Anda telah berhasil membuat proyek Scala dengan Maven.

Selamat! Anda telah berhasil menginstal Scala dengan SBT dan Maven. Anda kini siap untuk mulai menjelajahi fitur-fitur canggih dan fleksibilitas yang ditawarkan Scala. Selamat membuat kode!.
Subscribe on LinkedIn Menggunakan Java Scala di FreeBSD

Enclosures Link: Menggunakan Java Scala di FreeBSD

Silahkan Berkomentar, Kakak...! Bunda...!

Posting Komentar