import java.io.OutputStream;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.List;

public class PipaTeks {
    public static void main(String[] args) throws Exception {
        List<String> nama = Arrays.asList("durian", "apel", "jeruk", "apel");

        // 1) Umpan tetap masuk ke tr: huruf kecil menjadi besar.
        Process besar = new ProcessBuilder("/usr/bin/tr", "a-z", "A-Z").start();
        try (OutputStream masuk = besar.getOutputStream()) {
            masuk.write(String.join("\n", nama).getBytes(StandardCharsets.UTF_8));
        } // close() memberi sinyal EOF ke anak
        String hasilBesar = new String(besar.getInputStream().readAllBytes(),
                StandardCharsets.UTF_8);
        besar.waitFor();

        // 2) Umpan yang sama masuk ke sort: keluaran terurut.
        Process urut = new ProcessBuilder("/usr/bin/sort").start();
        try (OutputStream masuk = urut.getOutputStream()) {
            masuk.write(String.join("\n", nama).getBytes(StandardCharsets.UTF_8));
        }
        String hasilUrut = new String(urut.getInputStream().readAllBytes(),
                StandardCharsets.UTF_8);
        urut.waitFor();

        System.out.println("besar : " + hasilBesar.replace("\n", " ").trim());
        System.out.println("urut  : " + hasilUrut.replace("\n", " ").trim());
    }
}
