Dismenore primer disebabkan oleh aktivitas hormon prostaglandin yang secara normal berfungsi membuat otot dan pembuluh darah rahim berkontraksi.

Kadar hormon prostaglandin akan sangat tinggi di hari pertama menstruasi, kemudian makin menurun seiring periode haid berlangsung. Oleh karena itu, nyeri terasa paling hebat saat hari pertama menstruasi, kemudian menghilang saat menstruasi selesai.

Ada sejumlah faktor yang membuat wanita mengalami kram saat haid, yaitu:

  • Berusia di bawah 30 tahun
  • Memiliki ibu atau saudara perempuan yang juga mengalami nyeri haid
  • Mengalami menstruasi tidak lancar
  • Sudah mengalami pubertas sebelum usia 11 tahun
  • Mengalami perdarahan yang berlebihan saat menstruasi
  • Merokok

Sedangkan dismenore sekunder bisa disebabkan oleh penyakit pada organ reproduksi, seperti:

  • Endometriosis, yaitu kondisi ketika jaringan yang membentuk lapisan dalam dinding rahim tumbuh di luar rahim, misalnya di saluran telur (tuba falopi) atau indung telur (ovarium).
  • Adenomiosis, yaitu kondisi ketika jaringan yang membentuk lapisan dalam dinding rahim tumbuh ke dalam otot dinding rahim.
  • Miom, yaitu tumor jinak pada dinding rahim.
  • Radang panggul, akibat infeksi pada organ reproduksi wanita yang sudah menyebar di dalam rongga panggul.
  • Penyempitan leher rahim, yang menyebabkan darah menstruasi tidak bisa mengalir keluar dari rahim.