

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# HelloWorld Aplikasi
<a name="getting-started-example-helloworld"></a>

Untuk memperkenalkan cara aplikasi Amazon SWF terstruktur, kita akan membuat aplikasi Java yang berperilaku seperti alur kerja, tapi itu berjalan secara lokal dalam satu proses. Tidak ada koneksi ke Amazon Web Services yang akan diperlukan.

**catatan**  
[HelloWorldWorkflow](getting-started-example-helloworldworkflow.md)Contoh dibangun di atas yang satu ini, menghubungkan ke Amazon SWF untuk menangani pengelolaan alur kerja.

Sebuah aplikasi alur kerja terdiri dari tiga komponen dasar:
+ *Aktivitas pekerja* mendukung satu set *aktivitas*, yang masing-masing merupakan metode yang mengeksekusi secara independen untuk melakukan tugas tertentu.
+ *pekerja alur kerja* mengatur pelaksanaan aktivitas dan mengelola aliran data. Ini adalah realisasi program dari *topologi alur kerja*, yang pada dasarnya adalah bagan alur yang mendefinisikan ketika berbagai aktivitas mengeksekusi, apakah mereka mengeksekusi secara berurutan atau bersamaan, dan sebagainya.
+ *starter alur kerja* memulai instans alur kerja, yang disebut *eksekusi*, dan dapat berinteraksi dengannya selama eksekusi.

HelloWorld diimplementasikan sebagai tiga kelas dan dua antarmuka terkait, yang dijelaskan di bagian berikut. Sebelum memulai, Anda harus mengatur lingkungan pengembangan Anda dan membuat proyek AWS Java baru seperti yang dijelaskan dalam[Menyiapkan AWS Flow Framework untuk Java](setup.md). Paket yang digunakan untuk panduan berikut semua bernama `helloWorld.XYZ`. Untuk menggunakan nama-nama tersebut, atur atribut `within` di aop.xml sebagai berikut: 

```
...
<weaver options="-verbose">
   <include within="helloWorld..*"/>
</weaver>
```

Untuk mengimplementasikannya HelloWorld, buat paket Java baru di proyek AWS SDK Anda bernama `helloWorld.HelloWorld` dan tambahkan file berikut:
+ Sebuah file antarmuka bernama `GreeterActivities.java`
+ Sebuah file kelas bernama `GreeterActivitiesImpl.java`, yang mengimplementasikan pekerja aktivitas.
+ Sebuah file antarmuka bernama `GreeterWorkflow.java`.
+ Sebuah file kelas bernama `GreeterWorkflowImpl.java`, yang mengimplementasikan pekerja alur kerja.
+ Sebuah file kelas bernama `GreeterMain.java`, yang menerapkan starter alur kerja.

Detail dibahas dalam bagian berikut dan termasuk kode lengkap untuk setiap komponen, yang dapat Anda tambahkan ke file yang sesuai.

## HelloWorld Implementasi Kegiatan
<a name="getting-started-example-helloworld.activityworker"></a>

HelloWorld memecah keseluruhan tugas mencetak `"Hello World!"` salam ke konsol menjadi tiga tugas, yang masing-masing dilakukan dengan *metode aktivitas*. Metode aktivitas didefinisikan dalam antarmuka `GreeterActivities`, sebagai berikut.

```
public interface GreeterActivities {
   public String getName();
   public String getGreeting(String name);
   public void say(String what);
}
```

HelloWorld memiliki satu implementasi aktivitas`GreeterActivitiesImpl`, yang menyediakan `GreeterActivities` metode seperti yang ditunjukkan:

```
public class GreeterActivitiesImpl implements GreeterActivities {
   @Override
   public String getName() {
      return "World";
   }

   @Override
   public String getGreeting(String name) {
      return "Hello " + name + "!";
   }

   @Override
   public void say(String what) {
      System.out.println(what);
   }
}
```

Kegiatan independen satu sama lain dan sering dapat digunakan oleh alur kerja yang berbeda. Sebagai contoh, setiap alur kerja dapat menggunakan `say` aktivitas untuk mencetak string ke konsol tersebut. Alur kerja juga dapat memiliki beberapa implementasi aktivitas, masing-masing melakukan serangkaian tugas yang berbeda.

## HelloWorld Pekerja Alur Kerja
<a name="getting-started-example-helloworld.workflowworker"></a>

Untuk mencetak “Hello World\$1” ke konsol tersebut, tugas aktivitas harus dijalankan secara berurutan di urutan yang benar dengan data yang benar. Pekerja HelloWorld alur kerja mengatur eksekusi aktivitas berdasarkan *topologi alur kerja linier* sederhana, yang ditunjukkan pada gambar berikut.

![\[Topologi alur kerja linier\]](http://docs.aws.amazon.com/id_id/amazonswf/latest/awsflowguide/images/helloworld_topology.png)


Tiga aktivitas mengeksekusi secara berurutan, dan data mengalir dari satu aktivitas ke aktivitas berikutnya.

Pekerja HelloWorld alur kerja memiliki metode tunggal, titik masuk alur kerja, yang didefinisikan dalam `GreeterWorkflow` antarmuka, sebagai berikut: 

```
public interface GreeterWorkflow {
   public void greet();
}
```

Kelas `GreeterWorkflowImpl` mengimplementasikan antarmuka ini, sebagai berikut:

```
public class GreeterWorkflowImpl implements GreeterWorkflow{
   private GreeterActivities operations = new GreeterActivitiesImpl();

   public void greet() {
      String name = operations.getName();
      String greeting = operations.getGreeting(name);
      operations.say(greeting);
   }
}
```

`greet`Metode ini mengimplementasikan HelloWorld topologi dengan membuat instance dari`GreeterActivitiesImpl`, memanggil setiap metode aktivitas dalam urutan yang benar, dan meneruskan data yang sesuai ke setiap metode.

## HelloWorld Alur Kerja Starter
<a name="getting-started-example-helloworld.starter"></a>

*starter alur kerja* adalah aplikasi yang memulai eksekusi alur kerja, dan mungkin juga berkomunikasi dengan alur kerja saat mengeksekusi. `GreeterMain`Kelas mengimplementasikan HelloWorld alur kerja starter, sebagai berikut:

```
public class GreeterMain {
   public static void main(String[] args) {
      GreeterWorkflow greeter = new GreeterWorkflowImpl();
      greeter.greet();
   }
}
```

`GreeterMain` menciptakan sebuah instans dari `GreeterWorkflowImpl` dan panggilan `greet` untuk menjalankan pekerja alur kerja. Jalankan `GreeterMain` sebagai aplikasi Java dan Anda akan melihat “Hello World\$1” dalam output konsol tersebut.