Lewati ke konten utama

Cara Mengurutkan Data di R: Tutorial Lengkap

Pelajari cara mengurutkan vektor, data frame, dan lainnya di R menggunakan order(), sort(), dan arrange() dari dplyr dengan contoh praktis.
Diperbarui 28 Sep 2026  · 6 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

R menyediakan berbagai cara untuk mengurutkan data baik secara menaik maupun menurun; Analis data dan data scientist menggunakan order(), sort() dan paket seperti dplyr untuk mengurutkan data tergantung pada struktur data yang diperoleh.

Ringkas

  • Gunakan sort() untuk langsung mengurutkan sebuah vektor dan mengembalikan nilai yang sudah diurutkan
  • Gunakan order() untuk mendapatkan indeks yang akan mengurutkan sebuah vektor—ideal untuk mengurutkan data frame
  • Gunakan dplyr::arrange() untuk pendekatan modern dan mudah dibaca saat mengurutkan data frame
  • Tangani nilai NA dengan parameter na.last (TRUE menempatkan NA di akhir, FALSE di awal)
  • Urutkan menurun dengan decreasing = TRUE atau dengan menggunakan tanda minus

order() dapat mengurutkan vektor, matriks, dan juga sebuah data frame dapat diurutkan naik dan turun dengan bantuannya, yang ditunjukkan di bagian akhir tutorial ini.

Sintaks order()

Fungsi sort()

Sebelum membahas order(), mari lihat fungsi sort() yang lebih sederhana. Jika order() mengembalikan indeks, sort() langsung mengembalikan nilai yang sudah diurutkan:

# Create a vector
values <- c(4, 12, 6, 7, 2, 9, 5)

# sort() returns the sorted values directly
sort(values)
[1]  2  4  5  6  7  9 12

Perbedaan utamanya adalah sort() memberikan nilai yang sudah diurutkan, sedangkan order() memberikan posisinya. Hal ini membuat order() lebih berguna untuk mengurutkan data frame, seperti yang akan kita lihat nanti.

Sintaks order()

Sintaks order() ditunjukkan di bawah ini:

order(x, decreasing = TRUE or FALSE, na.last = TRUE or FALSE, method = c("auto", "shell", "quick", "radix"))

Argumen pada order() di atas menyatakan bahwa:

  • x: data frame, matriks, atau vektor
  • decreasing: nilai boolean; TRUE maka urut menurun atau FALSE maka urut menaik.
  • na.last: nilai boolean; TRUE maka indeks NA ditempatkan di akhir atau FALSE maka indeks NA ditempatkan di awal.
  • method: metode pengurutan yang digunakan.

order() di R

Mari lihat contoh order() saat digunakan.

Kode di bawah membuat vektor y yang berisi daftar angka. Saya akan menggunakan order(y) untuk mendapatkan indeks yang akan mengurutkan angka-angka tersebut.

y <- c(4, 12, 6, 7, 2, 9, 5)
order(y)

Kode di atas menghasilkan keluaran berikut:

5 1 7 3 4 6 2

Di sini order() akan mengurutkan angka yang diberikan menurut indeksnya secara menaik. Karena angka 2 adalah yang terkecil, yang memiliki indeks lima dan angka 4 berindeks 1, dan seterusnya proses bergerak dengan pola yang sama.

y <- c(4, 12, 6, 7, 2, 9, 5)
y[order(y)]

Kode di atas menghasilkan keluaran berikut:

2 4 5 6 7 9 12

Di sini pengindeksan order dilakukan sehingga nilai sebenarnya dicetak secara menaik. Nilai diurutkan menurut indeks menggunakan order() lalu setiap nilai diakses menggunakan y[some-value].

Mengurutkan vektor menggunakan berbagai parameter di order()

Mari lihat contoh saat dataset berisi nilai berupa simbol NA (Not available/tidak tersedia).

order(x,na.last=TRUE)

x <- c(8, 2, 4, 1, -4, NA, 46, 8, 9, 5, 3)
order(x, na.last = TRUE)

Kode di atas menghasilkan keluaran berikut:

5 4 2 11 3 10 1 8 9 7 6

Di sini order() juga akan mengurutkan daftar angka yang diberikan menurut indeksnya secara menaik. Karena ada NA, indeksnya akan ditempatkan di akhir, yaitu 6 akan ditempatkan terakhir karena na.last=TRUE.

order(x,na.last=FALSE)

order(x, na.last = FALSE)

Kode di atas menghasilkan keluaran berikut:

6 5 4 2 11 3 10 1 8 9 7

Di sini order() juga akan mengurutkan daftar angka yang diberikan menurut indeksnya secara menaik. Karena ada NA, indeksnya yaitu 6 akan ditempatkan di awal karena na.last=FALSE.

order(x,decreasing=TRUE,na.last=TRUE)

order(x, decreasing = TRUE, na.last = TRUE)

Kode di atas menghasilkan keluaran berikut:

7 9 1 8 10 3 11 2 4 5 6

Di sini order() akan mengurutkan daftar angka yang diberikan menurut indeksnya secara menurun karena decreasing=TRUE: 46 yang terbesar ditempatkan pada indeks 7, dan nilai lainnya diatur secara menurun. Karena ada NA, indeks 6 akan ditempatkan terakhir karena na.last=TRUE.

order(x,decreasing=FALSE,na.last=FALSE)

order(x, decreasing = FALSE, na.last = FALSE)

Kode di atas menghasilkan keluaran berikut:

6 5 4 2 11 3 10 1 8 9 7

Di sini terdapat NA yang berindeks 6 akan ditempatkan di awal karena na.last=FALSE. order() akan mengurutkan daftar angka yang diberikan menurut indeksnya secara menaik karena decreasing=FALSE: -4 yang merupakan nilai terkecil ditempatkan pada indeks 5, dan nilai lainnya diatur secara menaik.

Mulai Belajar R Secara Gratis

Pengantar R

BasicSkill Level
4 jam
3.1M learners
Kuasai dasar analisis data di R, termasuk vectors, lists, dan data frames, lalu praktikkan R dengan data sets nyata.
See DetailsRight Arrow
Start Course

Mengurutkan sebuah dataframe menggunakan order()

Mari buat sebuah data frame dengan nilai populasi 10. Variabel gender terdiri dari nilai vektor 'male' dan 'female' di mana 10 nilai sampel dapat diperoleh dengan bantuan sample(), sedangkan replace = TRUE akan menghasilkan hanya nilai unik. Demikian pula, age terdiri dari nilai 25 hingga 75, bersama dengan degree dengan kemungkinan nilai c("MA," "ME," "BE," "BSCS"), yang juga akan menghasilkan nilai unik.

Tugas: Mengurutkan data yang diberikan secara menaik berdasarkan usia populasi yang ada.

Catatan: Data sampel yang ditampilkan mungkin berbeda saat Anda mencobanya di mesin lokal karena setiap kali menjalankan kode akan membuat data frame yang unik.

population <- 10
gender <- sample(c("male", "female"), population, replace = TRUE)
age <- sample(25:75, population, replace = TRUE)
degree <- sample(c("MA", "ME", "BE", "BSCS"), population, replace = TRUE)
final_data <- data.frame(gender = gender, age = age, degree = degree)
final_data
gender age degree
male 40 MA
female 57 BSCS
male 66 BE
female 61 BSCS
female 48 MA
male 25 MA
female 49 BE
male 52 ME
female 57 MA
female 35 MA

Kode di atas menghasilkan keluaran berikut, yang menunjukkan data frame baru dibuat.

  gender       age        degree
   male           40         MA
   female       57         BSCS
   male           66         BE
   female       61         BSCS
   female       48        MA
   male           25         MA
   female       49         BE
   male        52        ME
   female       57         MA
   female       35         MA

Mari urutkan data frame secara menaik dengan menggunakan order() berdasarkan variabel age.

order(final_data$age)

Kode di atas menghasilkan keluaran berikut:

6 10 3 9 5 8 4 2 7 1

Karena usia 25 berada pada indeks 6 diikuti usia 35 pada indeks 10 dan demikian seterusnya, semua nilai terkait usia diatur secara menaik.

Kode di bawah berisi order [] dengan variabel age, digunakan untuk mengurutkan secara menaik di mana gender bersama informasi degree juga dicetak.

final.data[order(final.data$age),]
  gender age degree
6 male 25 MA
10 female 35 MA
1 male 40 MA
5 female 48 MA
7 female 49 BE
8 male 52 ME
2 female 57 BSCS
9 female 57 MA
4 female 61 BSCS
3 male 66 BE

Kode di atas menghasilkan keluaran berikut:

gender    age    degree
6    male    25    MA
10    female    35    MA
1    male    40    MA
5    female    48    MA
7    female    49    BE
8    male    52    ME
2    female    57    BSCS
9    female    57    MA
4    female    61    BSCS
3    male    66    BE

Keluaran di atas menunjukkan bahwa age diatur secara menaik beserta informasi gender dan degree yang sesuai.

Pengurutan Dengan arrange() dari dplyr

Untuk pendekatan yang lebih mudah dibaca dan modern, Anda dapat menggunakan fungsi arrange() dari paket dplyr. Ini sangat berguna saat bekerja dalam ekosistem tidyverse:

# Install dplyr if needed: install.packages("dplyr")
library(dplyr)

# Sort by age in ascending order
final_data %>% arrange(age)

# Sort by age in descending order
final_data %>% arrange(desc(age))

# Sort by multiple columns
final_data %>% arrange(gender, desc(age))

Fungsi arrange() sering dipilih untuk alur kerja analisis data karena terintegrasi mulus dengan fungsi dplyr lainnya seperti filter(), select(), dan mutate() menggunakan operator pipe.

Perbandingan Metode Pengurutan

Fungsi Mengembalikan Terbaik Untuk Paket
sort() Nilai yang sudah diurutkan Vektor Base R
order() Indeks Data frame, pengurutan kompleks Base R
arrange() Data frame yang diurutkan Alur kerja Tidyverse dplyr
setorder() Memodifikasi secara in-place Dataset besar (hemat memori) data.table

Kesimpulan

Dalam tutorial ini, saya membahas metode penting untuk mengurutkan data di R:

  • sort() untuk langsung mengurutkan vektor
  • order() untuk mendapatkan indeks guna mengurutkan vektor dan data frame
  • Menangani nilai NA dengan parameter na.last
  • dplyr::arrange() untuk pengurutan data frame yang modern dan mudah dibaca
  • Pengurutan multi-kolom untuk kebutuhan pengurutan yang kompleks

Untuk informasi lebih lanjut, lihat dokumentasi resmi R untuk order().

Jika Anda ingin mempelajari lebih lanjut tentang R, ikuti kursus Introduction to R dari DataCamp. Anda juga dapat mengeksplorasi tutorial data.table kami untuk manipulasi data berkinerja tinggi, atau lihat panduan kami tentang pipe di R untuk kode yang lebih bersih.

Topik
R
Analisis Data

Kursus R

Kursus

Pengantar R

4 jam
3.1M
Kuasai dasar analisis data di R, termasuk vectors, lists, dan data frames, lalu praktikkan R dengan data sets nyata.
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat SelengkapnyaLihat Selengkapnya